sistema de banco de dados, 5/e -...

32
Sistema de Banco de Dados, 5/E © Korth • Silberschatz • Sundarshan

Upload: doandiep

Post on 09-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Page 2: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 3: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 4: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 5: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 6: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 7: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Visão dos dados

Page 8: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 9: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 10: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 11: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 12: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Modelo relacional

Exemplo de dados tabulares no modelo relacional

Atributos

Page 13: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Exemplo de banco de dados relacional

Page 14: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Exemplo de banco de dados relacional

(Cont.)

Page 15: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 16: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 17: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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:

Page 18: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 19: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 20: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 21: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Processamento de consulta

1. Análise e tradução

2. Otimização

3. Avaliação

Page 22: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 23: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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.

Page 24: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 25: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 26: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 27: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Estrutura geral do sistema

Page 28: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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)

Page 29: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

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

Page 30: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Final do Capítulo 1

Page 31: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Figura 1.4

Page 32: Sistema de Banco de Dados, 5/E - kessia.blogs.unipar.brkessia.blogs.unipar.br/files/2009/02/capitulo-1.pdf · Exemplo: O banco de dados consiste nas informações sobre um conjunto

Sistema de Banco de Dados, 5/E

© Korth • Silberschatz • Sundarshan

Figura 1.7