Você está na página 1de 32

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 char(10),
saldo 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