Escolar Documentos
Profissional Documentos
Cultura Documentos
ELMASRI • NAVATHE
'P Pearson
QUER SEP MAIS LIVRE?
Aprenda a Pesquisar e Fazer Ebooks | Armazene arquivos de forma segura
https://www.mises.org.br/Ebook.aspx?id=29
t.me/AnonLivros
SISTEMAS DE
BANCO DE DADOS
SISTEMAS DE
BANCO DE DADOS
7s edição
Ramez Elmasri
Departamento de Ciência da Computação e Engenharia
Universidade do Texas em Arlington
Shamkant B. Navathe
Faculdade de Computação
Georgia Institute of Technology
Tradução
Daniel Vieira
Revisão técnica
Enzo Seraphim
Thatyana F. Piola Seraphim
Professores Doutores Associados do Instituto de
Engenharia de Sistemas e Tecnologias da Informação -
Universidade Federal de Itajubá
Pearson
e 2016. 20] 1.2007 In Ramez Elmasri and Shamkant B. Navalhe
£2019 by Pcjbími Education do Brasil lida.
Iodos os direitos rescnados. Nenhuma parte desta publicação poderá ser reproduzida
ou transmitida de qualquer iimxJooci por qualquer outro meio, eletrônico ou mecânico. íik IiiíikIo
fbtocõpra. gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de
informação, sem présii .mtorizaçáo por escrito da Pearson Education do Brasil
Elmasri. Ramez
S ste~as de oanco de dados • Ramez Elmasri. Snamleant B
Navatne; tradução Daniel Vieira; revisão técn<a F-vo Seraphim,
TFatyana de Faria Pioã Seraphim. — 7. ed — São Paulo : Pearson
Education do Brasi. 2018.
18-16099 CDDO05.7S
2018
Direitos excliisixos cedidos à
Pearson Education do Brasil Ltda..
nina empresa do gnipo Pearson Education
Avenida Santa Marina. 1195
CEP 05056-001 - São Paulo - SP - Brasil
Fone: 11 2178-8609 e 11 2178-8655
pea rsonti niversidadesia pea rson .com
Para Amalia e para Ramy, Riyad, Katrina e Thomas
R.E.
Este livro é uma introdução aos conceitos fundamentais necessários para projetar,
usar e implementar sistemas de banco de dados e aplicações de banco de dados.
Nossa apresentação enfatiza os fundamentos da modelagem e projeto de banco
de dados, as linguagens e modelos fornecidos pelos sistemas de gerenciamento de
banco de dados e as técnicas de implementação do sistema de banco de dados. O
propósito do livro é que ele seja usado como um livro-texto para um curso de um
ou dois semestres sobre sistemas de banco de dados nos níveis técnico, graduação
ou pós-graduação, e como um livro de referência. Nosso objetivo é oferecer uma
apresentação profunda c atualizada dos aspectos mais importantes dos sistemas e
aplicações de banco de dados, bem como das tecnologias relacionadas. Consideramos
que os leitores estejam acostumados aos conceitos elementares de programação e
estruturação de dados, e que tenham tido algum contato com os fundamentos de
organização de computadores.
e triggers (Seção 26.1), bancos de dados temporais (Seção 26.2), bancos de dados
espaciais (Seção 26.3), bancos de dados multimídia (Seção 26.4) e bancos de
dados dedutivos (Seção 26.5). O Capítulo 27 discute técnicas de recuperação
de informações (RI) e pesquisa na web, incluindo tópicos como RI e pesquisa
baseada em palavra-chave, comparação de BI) com RI, modelos de recuperação,
avaliação de busca e algoritmos de ranqueamento (ranking). O Capítulo 28 é
uma introdução à mineração de dados (data mining), que inclui uma visão geral
dc diversos métodos de mineração de dados, como mineração por regra dc asso
ciação, agrupamento, classificação e descoberta de padrão sequencial. O Capítulo
29 é uma visão geral do data warehousing, incluindo tópicos como modelos e
operações de data warehousing e o processo de criação de um data warehouse.
■ A Parte 12 (Capítulo 30) inclui apenas um capítulo sobre segurança de banco de
dados, que traz uma discussão sobre comandos SQL para o controle de acesso
discricionário (GRANT, REVOKE), além dos níveis de segurança obrigatórios e
modelos para a inclusão do controle de acesso obrigatório nos bancos de dados
relacionais, com uma discussão sobre ameaças, como os ataques de injeção de SQL
e outras técnicas e métodos relacionados à segurança e à privacidade dos dados.
1,2
Introdução
3,4
Modelos
ER, EER Modelo 6,7
SQL
Álgebra
relacionai
Z 16,17 10,11
' 9 Organização de Programação
EReERR çarquivo, indexação de BD e web
para relacionai
28,29
20,21,22
Mineração de dados.
Transações, CC.
Warehousing
recuperação
30
14,15 23,24, 25 Segurança
FD, DMV, BDD, NOSQL de BD
normalização Big Data
18,19
Processamento de
consulta, otimização
Agradecimentos
*
Prefácio................ .VII
Exerdcios.................................................................................................................................. 52
Bibliografia selecionada............................................................................................................... 52
Exerdcios................................................................................................................................ 624
Bibliografia selecionada..............................................................................................................624
Capítulo 19 Otimização deconsulta........................................................................................... 625
19.1 Árvores de consulta e heuristica para otimização de consulta.......................................................626
192 Escolha de planos de execução de consulta............................................................................ 634
19.3 Usando seletividades na otimização baseada em custo............................................................. 642
19.4 Funções de custo para a operação SELEÇÃO............................................................................ 645
19.5 Funções de custo para a operação JUNÇÃO............................................................................ 648
19.6 Exemplo para ilustrar a otimização de consulta baseada em custo................................................ 657
19.7 Outras questões relacionadas ã otimização de consulta............................................................. 659
19.8 Exemplo de otimização de consulta em data warehouses............................................................ 661
19.9 Visão geral da otimização da consulta na Oracle...................................................................... 663
19.10 Otimização de consulta semântica...................................................................................... 667
19.11 Resumo......................................................................................................................... 667
Perguntas de revisão................................................................................................................. 668
Exerdcios................................................................................................................................ 669
Bibliografia selecionada..............................................................................................................669
Para professores:
Esse material é de uso exclusivo para professores e
■ Apresentações em PowerPoint.
está protegido por senha. Para ter acesso a ele, os
■ Banco de imagens (em inglês). professores que adoram o livro devem entrar em con
■ Manual de soluções (em inglês). tato com seu representante Pearson ou enviar e-mail
para professoraluno.atendimento@pearson.com.
Para estudantes:
■ Xlanual de laboratório (em inglês).
PARTE 1
Introdução aos
bancos de dados
Bancos de dados e
usuários de banco de dados
1.1 Introdução
Os bancos dc dados e sua tecnologia tem um impacto importante sobre o uso
cada vez maior dos computadores. E correto afirmar que os bancos de dados desem
penham um papel crítico em quase todas as áreas nas quais os computadores são
usados, incluindo comércio tradicional, comércio eletrônico, mídias sociais, enge
nharia, medicina, genérica, direito, educação e biblioteconomia. O termo banco de
dados (do original database) é tão utilizado que precisamos começar definindo o
que é um banco dc dados. Nossa definição inicial é bastante genérica.
Um banco de dados é uma coleção de dados1 relacionados. Com dados queremos
dizer fatos conhecidos que podem ser registrados e que possuem significado implí
cito. Por exemplo, considere os nomes, números de telefone e endereços das pessoas
que você conhece. Atualmente, esses dados costumam ser armazenados em telefones
celulares, que possuem seu próprio software de banco dc dados simples. Eles também
podem ser registrados cm uma agenda indexada ou armazenados cm um disco rígido,
usando um computador pessoal e um software como Microsoft Access ou Excel. Essa
coleção de dados relacionados, com um significado implícito, é um banco de dados.
Essa definição de banco de dados é muito genérica; por exemplo, podemos considerar
a coleção de palavras que compõem esta página dc texto como dados relacionados c,
portanto, constitui um banco de dados. Porém, o uso comum do termo banco de dados
normalmente é mais restrito. Um banco de dados tem as seguintes propriedades implícitas:
1 O livro original utiliza a palavra data no singular c no plural, pois isso c comum na literatura dc
banco de dados; o contexto determinará se ela está no singular ou no plural. (Em inglês padrão, data é
usado para o plural e datum, para o singular.)
Capítulo 1 Bancos de dados e usuários de banco de dados 5
Em outras palavras, um banco de dados tem alguma fonte da qual os dados são
derivados, algum grau de interação com eventos no mundo real e uma audiência
que está ativamente interessada cm seu conteúdo. Os usuários finais de um banco de
dados podem realizar transações comerciais (por exemplo, um cliente compra uma
câmera) ou podem acontecer eventos (por exemplo, uma funcionária tem um filho)
que fazem com que a informação no banco de dados mude. Para que um banco de
dados seja preciso e confiável o tempo todo, ele precisa ser um reflexo verdadeiro
desse minimundo que representa; portanto, as mudanças precisam ser refletidas no
banco de dados o mais rápido possível.
Um banco de dados pode ter qualquer tamanho e complexidade. Por exemplo, a lista
de nomes e endereços referenciados anteriormente pode consistir em apenas algumas
centenas de registros, cada um com uma estrutura simples. Por outro lado, o catálogo com
putadorizado de uma grande biblioteca pode conter meio milhão de entradas organizadas
sob diferentes categorias — por sobrenome do autor principal, por assunto, por título do
livro—com cada categoria organizada alfabeticamente. Um banco de dados de tamanho
e complexidade ainda maiores podería ser mantido por uma empresa de rede social, como
o Facebook, que tem mais de um bilhão de usuários. O banco de dados precisa manter
informações sobre quais usuários estão relacionados a outros como amigos, as postagens
de cada usuário, quais usuários poderão ver cada postagem e uma quantidade imensa
de outros tipos de informações necessárias para a operação correta de seu website. Para
esses sites, é preciso haver uma grande quantidade de bancos de dados para acompanhar
as informações, em constante mudança, exigidas pelo site de rede social.
Um exemplo de um grande banco de dados comercial é o Amazon.com. Ele
contém dados de mais de 60 milhões de usuários ativos e milhões de livros, CDs,
vídeos, DVDs, jogos, produtos eletrônicos, roupas e outros itens. O banco de dados
ocupa mais de 42 terabytes (um terabyte equivale a IO12 bytes de armazenamento)
e é armazenado em centenas de computadores (denominados servidores). Milhões
de visitantes acessam o Amazon.com diariamente e utilizam o banco de dados para
fazer compras. O banco de dados é continuamente atualizado à medida que novos
livros e outros itens são acrescentados ao estoque e as quantidades em estoque são
atualizadas à medida que as compras são feitas.
Um banco de dados pode ser gerado e mantido manualmente, ou pode ser compu
tadorizado. Por exemplo, um catálogo de cartão de biblioteca é um banco de dados que
pode ser criado e mantido manualmente. Um banco de dados computadorizado pode
ser criado e mantido por um grupo de programas de aplicação, escritos especifica mente
para essa tarefa, ou por um sistema de gerenciamento de banco de dados. Neste livro,
naturalmente, vamos tratar apenas dos bancos de dados computadorizados.
Um sistema de gerenciamento de banco de dados (SGBD) é um sistema compu
tadorizado que permite que os usuários criem e mantenham um banco de dados. O
SGBD é um sistema de software de uso geral que facilita o processo de definição,
construção, manipulação e compartilhamento de bancos de dados entre diversos
usuários e aplicações. A definição de um banco de dados envolve especificar os tipos
de dados, as estruturas e restrições dos dados a serem armazenados. A definição
ou informação descritiva do banco de dados também é armazenada pelo SGBD na
forma de um catálogo ou dicionário, chamado de metadados. A construção do banco
de dados é o processo de armazenar os dados em algum meio de armazenamento
6 Sistemas de banco de dados
Usuários/programadores
- O termo consulta (em inglês query), que originalmente significa uma pergunta ou uma pesquisa, é usado
livremente para todos os tipos de interações com bancos de dados, incluindo a modificação dos dados.
Capítulo 1 Bancos de dados e usuários de banco de dados 7
1.2 Um exemplo
Vamos considerar um exemplo simples ao qual a maioria dos leitores pode estar
acostumada: um bancode dados UNIVERSIDADE,para manter informações referentes
a alunos, disciplinas e notas em um ambiente universitário. A Figura 1.2 mostra
a estrutura do banco de dados e alguns exemplos de registros de dados. O banco
de dados está organizado como cinco arquivos, cada um armazenando registros
ALUNO
Figura 1.2 Exemplo de um
Nome Numero aluno Tipo aluno Curso
banco de dados que armazena
Silva 17 1 CC informações de aluno e
disciplina.
Braga 8 2 cc
DISCIPLINA
Introdução à dênda
CC1310 4 CC
da computação
TURMA
REGISTRO.NOTA
17 112 B
17 119 C
8 85 A
8 92 A
8 102 B
8 135 A
PRE REQUISITO
CC3380 CC3320
CC3380 MAT2410
CC3320 CC1310
8 Sistemas de banco de dados
de dados do mesmo tipo.3 O arquivo ALUNO armazena dados sobre cada aluno, o
arquivo DISCIPLINA armazena dados sobre cada disciplina, o arquivo TURMA arma
zena dados sobre cada turma de uma disciplina, o arquivo REGISTRO_NOTA armazena
as notas que os alunos recebem nas várias turmas que eles concluíram, e o arquivo
PRE_REQUISITO armazena os pré-requisitos de cada disciplina.
Para definir esse banco de dados, precisamos especificar a estrutura dos registros
de cada arquivo, especificando os diferentes tipos de elementos de dados a serem
armazenados em cada registro. Na Figura 1.2, cada registro de ALUNO inclui dados
para representar Nome, Numero_aluno, Tipo_aluno (como novato ou ‘1’, segundo
ano ou ‘2*, e assim por diante) e Curso (como matemática ou ‘MAT e ciência da
computação ou ‘CC’); cada registro de DISCIPLINA inclui dados para representar
Nome_disciplina, Numero_disciplina, Créditos e Departamento (o departamento que
oferece a disciplina), e assim por diante. Também precisamos especificar um tipo
de dado para cada elemento de dado dentro de um registro. Por exemplo, pode
mos especificar que o Nome de ALUNO é uma sequência de caracteres alfabéticos;
Numero.aluno de ALUNO é um inteiro, e Nota de REGISTRO_NOTA é um único carac-
tere de um conjunto {‘A’, ‘B’, ‘C’, ‘D’, ‘F, ‘I’}. Também podemos usar um esquema
de codificação para representar os valores de um item de dados. Por exemplo, na
Figura 1.2, representamos o Tipo_aluno de um ALUNO como 1 para novato, 2 para
segundo ano, 3 para júnior, 4 para sênior e 5 para aluno formado.
Para construir o banco de dados UNIVERSIDADE, armazenamos dados para repre
sentar cada aluno, disciplina, turma, registro de nota e pré-requisito como um registro
no arquivo apropriado. Observe que os registros nos diversos arquivos podem estar
relacionados. Por exemplo, o registro para Silva no arquivo ALUNO está relacionado a
dois registros no arquivo REGISTRO_NOTA, que especificam as notas de Silva em duas
turmas. De modo semelhante, cada registro no arquivo PRE_REQUISITO relaciona-se
a dois registros de disciplina: um representando a disciplina e o outro representando
o pré-requisito. A maioria dos bancos de dados de tamanho médio e grande inclui
muitos tipos de registros e possui muitos relacionamentos entre os registros.
A manipulação do banco de dados envolve consulta e atualização. Alguns exem
plos de consultas são os seguintes:
3 Usamos o termo arquiix) informalmente aqui. Em um nível conceituai, um arquiio é uma coleção de
registros que podem ou não estar ordenados.
Capítulo 1 Bancos de dados e usuários de banco de dados 9
RELAÇÕES
Figura 1.3 Exemplo de um
Nome_relacao Numero_colunas
catálogo para o banco de
ALUNO 4 dados na Figura 1.2.
DISCIPLINA 4
TURMA 5
REGISTRO-NOTA 3
PRE_REQUISITO 2
COLUNAS
Nota: Tipo_curso é definido como um tipo enumerado com todas as matérias conheddas.
XXXXNNNN é usado para definir um tipo com quatro caracteres alfanuméricos seguidos por quatro dígitos.
caracteres (bytes) em cada registro — e cada item de dados pode ser especificado
pelo byte inicial dentro de um registro e seu tamanho em bytes. O registro de
ALUNO, assim, seria representado como mostra a Figura 1.4. Mas um usuário de
banco de dados típico nâo está preocupado com o local de cada item de dados
dentro de um registro ou seu tamanho; em vez disso, o usuário se preocupa que,
quando for feita uma referência ao Nome do ALUNO, o valor correto seja retor
nado. Uma representação conceituai dos registros de ALUNO aparece na Figura 1.2.
Muitos outros detalhes da organização do armazenamento do arquivo — como
os caminhos de acesso especificados em um arquivo — podem ser ocultados dos
usuários do banco de dados pelo SGBD; discutiremos detalhes de armazenamento
nos capítulos 16 e 17.
Na abordagem de banco de dados, a estrutura e organização detalhadas de cada
arquivo são armazenadas no catálogo. Os usuários do banco de dados e os programas
de aplicação se referem à representação conceituai dos arquivos, e o SGBD extrai os
detalhes do armazenamento do arquivo do catálogo quando estes são necessários
pelos módulos de acesso a arquivo do SGBD. Muitos modelos de dados podem ser
usados para oferecer essa abstração de dados aos usuários do banco de dados. Uma
parte significativa deste livro é dedicada à apresentação dos vários modelos de dados
e os conceitos que eles utilizam para abstrair a representação dos dados.
Nos bancos de dados orientado a objeto e objeto-relacional, o processo de abs
tração inclui não apenas a estrutura dos dados, mas também as operações sobre os
dados. Essas operações oferecem uma abstração das atividades do minimundo nor-
mahnente entendidas pelos usuários. Por exemplo, uma operação CALCULA_MEDIA
pode ser aplicada ao objeto ALUNO para calcular a média das notas. Essas operações
podem ser chamadas pelas consultas do usuário ou por programas de aplicação sem
ter de saber os detalhes de como as operações são implementadas.
Curso 36 4
HISTORICO
a)
Historico.aluno
Nome_aluno
Numerodisciplina Nota Semestre Ano ldentificador_turma
MAT2410 A Segundo 07 85
CC1310 A Segundo 07 92
Braga
CC3320 B Primeiro 08 102
H. Brooke.
A true copy from the original deposited in the office of the General
Assembly.
H. Brooke, C.S.
A true copy from the original, deposited in the office of the General Assembly.
John Stewart, Keeper of Rolls.
Answers of the several State Legislatures.
J. T. Gilman, Governor.
A true copy.