Transcript Capitulo01
Sistema de Banco de Dados, 5/E
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Capítulo 1: Introdução
•
•
•
•
•
•
•
•
•
•
•
•
Finalidade dos sistemas de banco de dados
Visão dos dados
Linguagens de banco de dados
Bancos de dados relacionais
Projeto de banco de dados
Bancos de dados semiestruturados e baseados em objeto
Armazenamento e consulta de dados
Gerenciamento de transação
Arquitetura do banco de dados
Usuários e administradores de banco de dados
Estrutura geral
História dos sistemas de banco de dados
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Sistema de gerenciamento de banco
de dados (DBMS)
•
Um DBMS contém informações sobre uma determinada empresa.
Coleção de dados inter-relacionados
Conjunto dos programas para acessar os dados
Um ambiente que é conveniente e eficiente de usar
•
Aplicações de banco de dados:
Banco: todas as transações
Linhas aéreas: reservas, horários
Universidades: matrículas, registros, notas
Vendas: clientes, produtos, compras
Revendedores on-line: acompanhamento de pedidos,
recomendações personalizadas
Indústria: produção, estoque, pedidos, cadeia de suprimento
Recursos humanos: registros de empregados, salários,
deduções de impostos
•
Os bancos de dados tocam todos os aspectos das nossas vidas
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Finalidade dos sistemas de banco
de dados
Antigamente, as aplicações de banco de dados eram construídas
diretamente sobre os sistemas de arquivo.
Desvantagens de usar sistemas de arquivo para armazenar dados:
Redundância e inconsistência de dados
Múltiplos formatos de arquivo, duplicação de informações em diferentes
arquivos
Dificuldade de acessar os dados
Necessidade de escrever um novo programa para realizar cada nova tarefa
Isolamento dos dados — vários arquivos e formatos
Problemas de integridade
Restrições de integridade (por exemplo, saldo de conta > 0) se tornam
“enterrados” no código do programa em vez de serem declarados
explicitamente
•
Difícil de acrescentar novas restrições ou modificar as existentes
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Finalidade dos sistemas de banco
de dados (cont.)
Desvantagens de usar sistemas de arquivo (cont.)
Atomicidade das atualizações
Falhas podem deixar o banco de dados em um estado inconsistente com atualizações
parciais realizadas
Exemplo: A transferência de fundos de uma conta para outra deve ser completa ou não
deve ocorrer
Acesso concorrente por vários usuários
Acesso concorrente necessário para o desempenho
Acessos concorrentes não controlados podem levar a inconsistências
–
Exemplo: Duas pessoas lendo um saldo e atualizando-o ao mesmo tempo
Problemas de segurança
Difícil de fornecer ao usuário o acesso a alguns, mas nem todos, os dados
•
Os sistemas de banco de dados oferecem soluções para todos os
problemas acima
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Níveis de abstração
Nível físico: descreve como um registro (por exemplo, cliente) é
armazenado.
Nível lógico: descreve os dados armazenados no banco de dados e
as relações entre eles.
•
type cliente = registro
id_cliente : string;
nome_cliente : string;
rua_cliente : string;
cidade_cliente : string;
end;
•
Nível de view: os programas de aplicação ocultam detalhes dos tipos
de dados. As views também podem ocultar informações (como o
salário de um funcionário) por motivos de segurança.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Visão dos dados
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Instâncias e esquemas
Semelhantes aos tipos e variáveis nas linguagens de programação
Esquema – a estrutura lógica do banco de dados
Exemplo: O banco de dados consiste nas informações sobre um conjunto de
clientes e contas e na relação entre eles
Análogo às informações de tipo de uma variável em um programa
Esquema físico: projeto de banco de dados no nível físico
Esquema lógico: projeto de banco de dados no nível lógico
Instância – o conteúdo real do banco de dados em um determinado ponto no
tempo
Análogo ao valor de uma variável
Independência de dados física – a capacidade de modificar o esquema físico sem
mudar o esquema lógico
Aplicações dependem do esquema lógico
Em geral, as interfaces entre os vários níveis e componentes devem ser bem-
definidas de modo que as mudanças em algumas partes não influenciem
seriamente outras.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Modelos de dados
Uma coleção de ferramentas conceituais para descrever
Dados
Relacionamentos de dados
Semântica de dados
Restrições de dados
Modelo relacional
Modelo de relação de entidade (principalmente para projeto de banco
de dados)
Modelo de dados baseado em objeto (orientado a objeto e relacional
de objeto)
Modelo de dados semiestruturado (XML)
Outros modelos mais antigos:
Modelo de rede
Modelo hierárquico
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Linguagens de manipulação
de dados (DML)
Linguagem para acessar e manipular os dados
organizados pelo modelo de dados apropriado
A DML também é conhecida como linguagem de
consulta
Duas classes de linguagem
Procedurais – usuário especifica que dados são
necessários e como obter esses dados
Declarativas (não procedurais) – usuário especifica
que dados são necessários sem especificar como
obter esses dados
SQL é a linguagem de consulta mais utilizada
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Linguagem de definição de dados (DDL)
Notação de especificação para definir o esquema de banco de dados
•
Exemplo:
•
create table conta (
número_conta
saldo
char(10),
integer)
O compilador DDL gera um conjunto de tabelas armazenado em um dicionário de dados
O dicionário de dados contém metadados (ou seja, dados sobre os dados)
Esquema de banco de dados
Linguagem de armazenamento e definição de dados
Especifica a estrutura de armazenamento e os métodos de acesso usados
Restrições de integridade
Registros de domínio
Integridade referencial (restrição de referências na SQL)
Afirmações
Autorização
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Modelo relacional
Exemplo de dados tabulares no modelo relacional
Atributos
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Exemplo de banco de dados relacional
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Exemplo de banco de dados relacional
(Cont.)
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
SQL
SQL: linguagem não procedural amplamente usada
Exemplo: encontre o nome do cliente com id_cliente 192-83-7465
select cliente.nome_cliente
from cliente
where cliente.id_cliente = ‘192-83-7465’
Exemplo: encontre os saldos de todas as contas pertencentes ao
cliente com id_cliente 192-83-7465
select conta.saldo
from depositante, conta
where depositante.id_cliente = ‘192-83-7465’ and
depositante.número_conta = conta.número_conta
Os programas de aplicação geralmente acessam banco de dados
através de
Extensões de linguagem para permitir SQL embutida
Interface de programa de aplicação (por exemplo, ODBC/JDBC), que
permite que consultas SQL sejam enviadas a um banco de dados.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Projeto de banco de dados
O processo de projetar a estrutura geral do banco de dados.
Projeto lógico – Decidir sobre o esquema de banco de
dados. O projeto de banco de dados exige encontrar uma
“boa” coleção de esquemas de relação.
Decisão empresarial – Que atributos devemos registrar no
banco de dados?
Decisão de ciência da computação – Que esquemas de
relação devemos ter e como os atributos devem ser
distribuídos entre os vários esquemas de relação?
Projeto físico – Decidir sobre o layout físico do banco de
dados.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
O modelo entidade-relacionamento
Modela uma empresa como uma coleção de entidades e relacionamentos
Entidade: uma “coisa” ou “objeto” na empresa que é distinguível dos
outros objetos
Descrito por um conjunto de atributos
Relacionamento: uma associação entre várias entidades
Representado graficamente por um diagrama entidade-relacionamento:
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Modelos de dados relacionais de objeto
Estendem o modelo de dados relacional incluindo
orientação a objeto e construções para lidar com tipos
de dados inseridos.
Permitem que atributos de tuplas tenham tipos
complexos, incluindo valores não atômicos como
relações aninhadas.
Preservam as fundações relacionais, em especial o
acesso declarativo aos dados, enquanto estendem a
capacidade de modelagem.
Fornecem compatibilidade com linguagens relacionais
posteriores existentes.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
XML: Extensible Markup Language
Definida pelo WWW Consortium (W3C)
Originalmente criada como uma linguagem de marcação
de documento, não como uma linguagem de banco de
dados
A capacidade de especificar novas tags e criar estruturas
de tag aninhadas tornaram a XML uma excelente maneira
de trocar dados, não apenas documentos.
A XML se tornou a base para todos os formatos de
intercâmbio de dados da nova geração.
Uma ampla variedade de ferramentas está disponível
para análise, navegação e consulta de
dados/documentos XML.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Gerenciamento de armazenamento
Gerenciador de armazenamento é um módulo de programa
que fornece a interface entre os dados de baixo nível
armazenados no banco de dados e os programas de
aplicação e consultas submetidos ao sistema.
O gerenciador de armazenamento é responsável pelas
seguintes tarefas:
Interagir com o gerenciador de arquivos
Armazenar, recuperar e atualizar dados eficientemente.
Problemas:
Acesso ao armazenamento
Organização de arquivos
Indexação e hashing
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Processamento de consulta
1. Análise e tradução
2. Otimização
3. Avaliação
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Processamento de consulta (cont.)
Maneiras alternativas de avaliar uma consulta dada
Expressões equivalentes
Diferentes algoritmos para cada operação
A diferença de custo entre um bom e um mau método
de avaliar uma consulta pode ser enorme
Necessidade de estimar o custo das operações
Depende profundamente das informações sobre
relações que o banco de dados precisa manter
Necessidade de estimar estatísticas para resultados
intermediários para calcular custo de expressões
complexas
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Gerenciamento de transação
Uma transação é um conjunto de operações que
realiza uma única função lógica em uma aplicação de
banco de dados.
O componente de gerenciamento de transação garante
que o banco de dados permanece em um estado
consistente (correto) apesar de falhas do sistema (por
exemplo, interrupções de energia e falhas do sistema
operacional) e falhas de transação.
O gerenciador de controle de concorrência controla a
interação entre as transações concorrentes para
assegurar a consistência do banco de dados.
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Arquitetura do banco de dados
A arquitetura de um sistema de banco de dados é bastante
influenciada pelo sistema de computador subjacente em que o
sistema de banco de dados é executado:
Centralizado
Cliente-servidor
Paralelo (multiprocessador)
Distribuído
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Usuários de banco de dados
Os usuários são diferenciados pela forma como esperam interagir com o
Sistema
Programadores de aplicação – interagem com o sistema através de
chamadas de DML
Usuários avançados — interagem com o sistema formulando suas
requisições em uma linguagem de consulta de banco de dados
Usuários especializados — interagem com o sistema escrevendo
aplicações de banco de dados especializadas que não se encaixam na
estrutura de processamento de dados tradicional
Usuários leigos — interagem com o sistema chamando um dos
programas de aplicação previamente escritos
Exemplos, pessoas acessando bancos de dados através da
Web, caixas bancários, equipe de contabilidade
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Administrador de banco de dados
Coordena todas as atividades do sistema de banco de
dados; o administrador de banco de dados tem um bom
conhecimento dos recursos e necessidades de informação
da empresa.
As responsabilidades do administrador de banco de dados
incluem:
Definição de esquema
Estrutura de armazenamento e definição de método de acesso
Modificação de esquema e de organização física
Concessão de autorização para acesso ao banco de dados
Especificar restrições de integridade
Agir como ligação com os usuários
Monitorar o desempenho e responder a mudanças em requisições
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Estrutura geral do sistema
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
História dos sistemas de banco de dados
Década de 1950 e início da década de 1960:
Processamento de dados usando fitas magnéticas para armazenamento
Fitas fornecem apenas acesso seqüencial
Cartões perfurados para entrada
Final da década de 1960 e década de 1970:
Discos rígidos permitem acesso direto aos dados
Modelos de dados de rede e hierárquico em largo uso
Ted Codd define o modelo de dados relacional
Ganharia o ACM Turing Award por este trabalho
IBM Research inicia o protótipo do System
UC Berkeley inicia o protótipo do Ingres
Processamento de transação de alto desempenho (para a época)
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
História (cont.)
Década de 1980:
Protótipos relacionais de pesquisa evoluem para sistemas comerciais
SQL se torna o padrão do setor
Sistemas de banco de dados paralelos e distribuídos
Sistemas de banco de dados orientados a objeto
Década de 1990:
Grandes aplicações de suporte a decisão e exploração de dados
Grandes data warehouses de vários terabytes
Surgimento do comércio Web
Década de 2000:
Padrões XML e XQuery
Administração de banco de dados automatizada
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Final do Capítulo 1
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Figura 1.4
© Korth • Silberschatz • Sundarshan
Sistema de Banco de Dados, 5/E
Figura 1.7
© Korth • Silberschatz • Sundarshan