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