Escolar Documentos
Profissional Documentos
Cultura Documentos
Banco de Dados
Sist_Banco_Dados_Livro.indb 1
01/08/2012 17:39:21
Sist_Banco_Dados_Livro.indb 2
01/08/2012 17:39:21
Sistema de
Banco de Dados
Sist_Banco_Dados_Livro.indb 3
01/08/2012 17:39:21
CIP-Brasil. Catalogao-na-fonte.
Sindicato Nacional dos Editores de Livros, RJ
_________________________________________________________________________
S576s
Silberschatz, Abraham
Sistema de Bancos de Dados / Avi Silberschatz, Henry F. Korth, S.
Sudarshan; traduo Daniel Vieira. Rio de Janeiro: Elsevier, 2012.
Traduo de: Database System Concepts, 6th ed.
Inclui bibliografia e ndice
ISBN 978-85-352-4535-6
1. Banco de dados Gerncia. I. Korth, Henry F. II. Sudarshan, S.
III. Ttulo.
11-5992.
CDD: 005.74
CDU: 004.65
_________________________________________________________________________
Sist_Banco_Dados_Livro.indb 4
01/08/2012 17:39:21
Sist_Banco_Dados_Livro.indb 5
01/08/2012 17:39:21
Sist_Banco_Dados_Livro.indb 6
01/08/2012 17:39:21
Sist_Banco_Dados_Livro.indb 7
01/08/2012 17:39:21
Sist_Banco_Dados_Livro.indb 8
01/08/2012 17:39:21
Prefcio
Sist_Banco_Dados_Livro.indb 9
Organizao
O texto est organizado em nove partes principais, mais
cinco apndices.
Viso geral (Captulo 1). O Captulo 1 oferece uma viso geral da natureza e propsito dos sistemas de banco
de dados. Explicamos como o conceito de um sistema
de banco de dados se desenvolveu, quais so os recursos
comuns dos sistemas de banco de dados, o que um sistema de banco de dados faz para o usurio e como um
sistema de banco de dados realiza sua interface com os
sistemas operacionais. Tambm introduzimos uma aplicao de banco de dados de exemplo: uma instituio
universitria consistindo em vrios departamentos, alunos e cursos. Esse exemplo utilizado por professores
todo o livro. O captulo motivador, histrico e explicativo por natureza.
Parte 1: Bancos de dados relacionais (Captulos 2 a 5).
O Captulo 2 introduz o modelo relacional de dados, incluindo conceitos bsicos e tambm a estrutura dos bancos de dados relacionais, esquemas de banco de dados,
chaves, diagramas de esquema, linguagens de consulta
relacionais e operaes relacionais. Os Captulos 3, 4 e 5
01/08/2012 17:39:21
focalizam a mais influente das linguagens relacionais orientadas ao usurio: SQL. O Captulo 6 aborda as linguagens
formais de consulta relacionais: lgebra relacional, clculo
relacional de tupla e clculo relacional de domnio.
Os captulos dessa parte descrevem a manipulao
de dados: consultas, atualizaes, inseres e excluses,
assumindo que um projeto de esquema foi oferecido.
As questes de projeto de esquema so deixadas para
a Parte 2.
Parte 2: Projeto de banco de dados (Captulos 7 a 9).
O Captulo 7 oferece uma viso geral do processo de
projeto de banco de dados, com a nfase principal no
projeto de banco de dados usando o modelo de dados
entidade-relacionamento. O modelo de dados entidade-relacionamento oferece uma viso de alto nvel das
questes de projeto de banco de dados e dos problemas
que encontramos na captura da semntica de aplicaes
realistas dentro das restries de um modelo de dados. A
notao de diagrama de classes da UML tambm abordada nesse captulo.
O Captulo 8 apresenta a teoria do projeto de banco
de dados relacional. A teoria das dependncias funcionais e da normalizao abordada, enfatizando a motivao e o conhecimento intuitivo de cada forma normal.
Esse captulo comea com uma viso geral do projeto
relacional e conta com um conhecimento intuitivo da
implicao lgica das dependncias funcionais. Isso permite que o conceito de normalizao seja introduzido
antes da cobertura completa da teoria da dependncia
funcional, que apresentada mais adiante no captulo.
Os professores podem decidir usar apenas essa cobertura inicial nas Sees 8.1 a 8.3, sem perda da continuidade. Os professores que utilizam o captulo inteiro
se beneficiaro com os alunos tendo um bom conhecimento dos conceitos de normalizao, a fim de motivar
alguns dos conceitos desafiadores da teoria da dependncia funcional.
O Captulo 9 aborda o projeto e o desenvolvimento de aplicaes. Esse captulo enfatiza a construo de
aplicaes de banco de dados com interfaces baseadas
na Web. Alm disso, o captulo aborda a segurana da
aplicao.
Parte 3: Armazenamento e consulta de dados (Captu
los 10 a 13). O Captulo 10 trata de dispositivos de armazenamento, arquivos e estruturas de armazenamento de dados. Diversas tcnicas de acesso aos dados so apresentadas
no Captulo 11, incluindo ndices de rvore B+ e hashing.
Os Captulos 12 e 13 enfatizam algoritmos de avaliao de
consulta e otimizao de consulta. Esses captulos oferecem
um conhecimento dos detalhes internos dos componentes
de armazenamento e recuperao de um banco de dados.
Sist_Banco_Dados_Livro.indb 10
ELSEVIER
01/08/2012 17:39:21
Prefcioxi
Parte 7: Bancos de dados especiais (Captulos 22 e
23). O Captulo 22 aborda os bancos de dados baseados
em objeto. O captulo descreve o modelo de dados objeto-relacional, que estende o modelo de dados relacional
para dar suporte a tipos de dados complexos, herana de
tipo e identidade de objeto. O captulo tambm descreve
o acesso ao banco de dados a partir de linguagens de
programao orientadas a objeto.
O Captulo 23 aborda o padro XML para representao de dados, que est sendo cada vez mais usado para
troca e armazenamento de dados complexos. O captulo
tambm descreve as linguagens de consulta para XML.
Parte 8: Tpicos avanados (Captulos 24 a 26). O
Captulo 24 aborda questes avanadas no desenvolvimento de aplicaes, incluindo ajuste de desempenho,
benchmarks de desempenho, teste de aplicaes de banco de dados e padronizao.
O Captulo 25 aborda os dados espaciais e geogrficos, dados temporais, dados de multimdia e questes
de gerenciamento de bancos de dados mveis e pessoais.
Finalmente, o Captulo 26 trata do processamento
avanado de transaes. Os tpicos abordados no captulo incluem monitores de processamento de transao,
fluxos de trabalho transacionais, comrcio eletrnico,
sistemas de transao de alto desempenho, sistemas de
transao em tempo real e transaes de longa durao.
Parte 9: Estudos de caso (Captulos 27 a 30). Nessa
parte, apresentamos estudos de caso de quatro dos principais sistemas de banco de dados: PostgreSQL, Oracle,
IBM DB2 e Microsoft SQL Server. Esses captulos esboam os recursos exclusivos de cada um desses sistemas,
descrevendo sua estrutura interna. Eles oferecem diversas informaes interessantes sobre os respectivos produtos, ajudando o leitor a ver como as diversas tcnicas
de implementao descritas nas partes anteriores so
usadas em sistemas reais. Eles tambm abordam vrios
aspectos prticos interessantes no projeto de sistemas
reais.
Apndices. Oferecemos cinco apndices que abordam o
material de natureza histrica ou avanada; esses apndices esto disponveis apenas on-line no site do livro
www.elsevier.com.br/silberschatz. Uma
exceo o Apndice A, que apresenta detalhes do nosso
esquema de universidade, incluindo o esquema completo, a DDL e todas as tabelas. Esse apndice aparece no
texto impresso.
O Apndice B descreve o projeto avanado de banco
de dados relacional, incluindo a teoria de dependncias
de mltiplos valores, dependncias de juno e as formas normais de juno de projeto e chave de domnio.
Esse apndice beneficia aqueles indivduos que desejam
estudar a teoria do projeto de banco de dados relacional
com mais detalhes, e professores que queiram fazer isso
Sist_Banco_Dados_Livro.indb 11
A sexta edio
A produo desta sexta edio levou em considerao os
muitos comentrios e sugestes que recebemos com relao
s edies anteriores, nossas prprias observaes enquanto
lecionvamos na Yale University, Lehigh University e IIT de
Bombaim, e nossa anlise das direes para onde a tecnologia de banco de dados est evoluindo.
Substitumos o exemplo utilizado em todo o livro sobre
um estabelecimento bancrio por um exemplo de universidade. Esse exemplo tem uma conexo intuitiva imediata
para os alunos, que auxilia no apenas a lembrar do exemplo, porm, mais importante, a obter discernimento mais
profundo para as diversas decises de projeto que precisam
ser feitas.
Reorganizamos o livro de modo que rena toda a nossa cobertura de SQL e a coloque mais no incio do livro.
Os Captulos 3, 4 e 5 apresentam a cobertura completa da
SQL. O Captulo 3 apresenta os fundamentos da linguagem,
com recursos mais avanados no Captulo 4. No Captulo
5, apresentamos a JDBC junto com outros meios de acesso
SQL a partir de uma linguagem de programao de uso
geral. Apresentamos triggers e recurso, e depois conclumos com a cobertura do processamento analtico on-line
(OLAP). Os cursos introdutrios podero cobrir apenas certas sees do Captulo 5 ou adiar as sees para depois da
cobertura sobre projeto de banco de dados, sem prejudicar
a continuidade.
Alm dessas duas mudanas importantes, revisamos o
material em cada captulo, atualizando o material mais antigo, acrescentando discusses sobre desenvolvimentos recentes na tecnologia de banco de dados e melhorando as
descries dos tpicos que os alunos julgaram difceis de
entender. Tambm acrescentamos novos exerccios e referncias atualizadas. A seguir, veja a lista das mudanas especficas:
Cobertura da SQL mais cedo. Muitos professores utilizam SQL como um componente-chave dos projetos finais
do semestre (veja alguns exemplos de projetos finais no
01/08/2012 17:39:21
xii
ELSEVIER
Sist_Banco_Dados_Livro.indb 12
01/08/2012 17:39:22
Prefcioxiii
Cobertura adiada dos bancos de dados de objeto e
XML. Embora as linguagens orientadas a objeto e XML
sejam muito usadas fora dos bancos de dados, seu uso
nos bancos de dados ainda limitado, tornando-as apropriadas para cursos mais avanados ou como material
suplementar para um curso introdutrio. Esses assuntos,
portanto, foram movidos mais para o final do livro, nos
Captulos 22 e 23.
QBE, Microsoft Access e Datalog em um apndice
on-line. Esses tpicos, que anteriormente faziam parte
de um captulo sobre outras linguagens relacionais,
agora so abordados no Apndice B on-line.
Todos os tpicos no listados foram atualizados a
partir da quinta edio, embora sua organizao geral
seja relativamente inalterada.
Nota ao professor
O livro contm material bsico e avanado, que pode
no ser abordado em um nico semestre. Marcamos vrias
sees como avanadas, usando o smbolo **. Essas sees podero ser omitidas, se for desejado, sem perda de
continuidade. Os exerccios que so difceis (e que podem
ser omitidos) tambm esto marcados com o smbolo **.
possvel elaborar cursos usando vrios subconjuntos
dos captulos. Alguns dos captulos tambm podem ser
abordados em uma ordem diferente da ordem indicada no
livro. Esboamos aqui algumas das possibilidades:
O Captulo 5 (SQL avanada) pode ser pulado ou deixado para depois sem perda da continuidade. Esperamos
que a maioria dos cursos cubra pelo menos a Seo 5.1.1
primeiramente, pois JDBC provavelmente ser uma ferramenta til nos projetos do aluno.
Sist_Banco_Dados_Livro.indb 13
O Captulo 6 (Linguagens formais de consulta relacional) pode ser abordado imediatamente aps o Captulo
2, antes da SQL. Como alternativa, esse captulo poder
ser omitido em curso introdutrio.
Recomendamos incluir a Seo 6.1 (lgebra relacional)
se o curso tambm inclui o processamento da consulta.
Porm, as Sees 6.2 e 6.3 podem ser omitidas se os alunos
no usarem o clculo relacional como parte do curso.
O Captulo 7 (Modelo E-R) pode ser includo antes dos
Captulos 3, 4 e 5, se for desejado, pois o Captulo 7 no
tem qualquer dependncia da SQL.
O Captulo 13 (Otimizao da consulta) pode ser omitido de um curso introdutrio sem afetar a cobertura de
qualquer outro captulo.
Nossa abordagem do processamento de transaes
(Captulos 14 a 16) e nossa abordagem da arquitetura
do sistema (Captulos 17 a 19) consiste em um captulo de viso geral (Captulos 14 e 17, respectivamente),
seguido por captulos com detalhes. Voc pode decidir
usar os Captulos 14 e 17, enquanto omite os captulos
15, 16, 18 e 19, se quiser deixar esses captulos para um
curso avanado.
Os Captulos 20 e 21, abordando depsito de dados, minerao de dados e recuperao de informaes, podem
ser usados como material de autoestudo ou omitidos de
um curso introdutrio.
Os Captulos 22 (Bancos de dados orientados a objeto) e
23 (XML) podem ser omitidos de um curso introdutrio.
Os Captulos 24 a 26, cobrindo o desenvolvimento
avanado de aplicaes, dados espaciais, temporais e
mobilidade, e processamento avanado de transaes,
so adequados para um curso avanado ou para autoestudo pelos alunos.
Os Captulos 27 a 30, que so estudos de caso, so adequados para autoestudo pelos alunos. Como alternativa,
eles podem ser usados como ilustrao dos conceitos
quando os captulos anteriores so apresentados em aula.
Exemplos de plano de estudos do curso, baseados no
livro, podem ser encontrados no site de apoio.
01/08/2012 17:39:22
xiv
ELSEVIER
Informaes de contato
Foram feitos todos os esforos para eliminar do texto
erros de digitao, bugs e coisas desse tipo. Porm, como em
novas verses de software, os bugs quase certamente permanecem; uma lista de errata atualizada pode ser encontrada
no site do livro. Agradecemos ao leitor se puder nos informar sobre erros ou omisses no livro que no estejam na
lista atual da errata.
Tambm gostaramos de receber suas sugestes sobre
melhorias no livro. Alm disso, estamos abertos a contribuies para o site do livro que possam ser teis para outros
leitores, como exerccios de programao, sugestes de projetos, laboratrios e tutoriais on-line e dicas de ensino.
O e-mail dever ser endereado para db-book-authors@cs.yale.edu. Qualquer outra correspondncia dever ser enviada para Avi Silberschatz, Department of
Computer Science, Yale University, 51 Prospect Street, P.O.
Box 208285, New Haven, CT 06520-8285 USA.
Agradecimentos
Muitas pessoas nos ajudaram com esta sexta edio, bem
como nas cinco edies anteriores, das quais ela derivada.
Sexta edio
Anastassia Ailamaki, Sailesh Krishnamurthy, Spiros
Papadimitriou e Bianca Schroeder (Carnegie Mellon
University) por escreverem o Captulo 27, que descreve
o sistema de banco de dados PostgreSQL.
Hakan Jakobsson (Oracle), por escrever o Captulo 28,
sobre o sistema de banco de dados Oracle.
Sriram Padmanabhan (IBM), por escrever o Captulo 29,
que descreve o sistema de banco de dados DB2 da IBM.
Sameet Agarwal, Jose A. Blakeley, Thierry DHers, Gerald
Hinson, Dirk Myers, Vaqar Pirzada, Bill Ramos, Balaji
Rathakrishnan, Michael Rys, Florian Waas e Michael
Zwilling (todos da Microsoft) por escreverem o Captulo
30, que descreve o sistema de banco de dados Microsoft
SQL Server, e em particular a Jos Blakeley, por coordenar
e editar o captulo; Csar Galindo-Legaria, Goetz Graefe,
Kalen Delaney e Thomas Casey (todos da Microsoft) por
suas contribuies edio anterior do captulo sobre o
Microsoft SQL Server.
Daniel Abadi, por revisar o sumrio da quinta edio e
ajudar com a nova organizao.
Steve Dolins, University of Florida; Rolando Fernandez,
George Washington University; Frantisek Franek,
McMaster University; Latifur Khan, University of Texas
Dallas; Sanjay Madria, University of Missouri Rolla;
Aris Ouksel, University of Illinois; e Richard Snodgrass,
University of Waterloo; que atuaram como revisores do
livro e cujos comentrios nos ajudaram bastante na formulao desta sexta edio.
Sist_Banco_Dados_Livro.indb 14
Edies anteriores
Chen Li e Sharad Mehrotra, por fornecerem material sobre JDBC e segurana para a quinta edio.
Marilyn Turnamian e Nandprasad Joshi, cujo excelente
auxlio como secretrias foi essencial para o trmino da
quinta edio; Marilyn tambm preparou um esboo inicial do projeto da capa para a quinta edio.
Lyn Dupr revisou a terceira edio e Sara Strandtman
editou o texto da terceira edio.
Nilesh Dalvi, Sumit Sanghai, Gaurav Bhalotia, Arvind
Hulgeri K. V. Raghavan, Prateek Kapadia, Sara Strandtman,
Greg Speegle e Dawn Bezviner ajudarama preparar o contedo complementar para as edies anteriores.
A ideia de usar barcos como parte do conceito da capa
nos foi sugerida inicialmente por Bruce Stephan.
As seguintes pessoas apontaram erros na quinta edio:
Alex Coman, Ravindra Guravannavar, Arvind Hulgeri,
Rohit Kulshreshtha, Sang-Won Lee, Joe H. C. Lu, Alex
N. Napitupulu, H. K. Park, Jian Pei, Fernando Saenz
Perez, Donnie Pinkston, Yma Pinto, Rajarshi Rakshit,
Sandeep Satpal, Amon Seagull, Barry Soroka, Praveen
Ranjan Srivastava, Hans Svensson, Moritz Wiese e Eyob
Delele Yirdaw.
As seguintes pessoas ofereceram sugestes e comentrios para a quinta edio e as edies anteriores
do livro. R. B. Abhyankar, Hani Abu-Salem, Jamel
R. Alsab-bagh, Raj Ashar, Don Batory, Phil Bernhard,
Christian Breimann, Gavin M. Bierman, Janek
Bogucki, Haran Boral, Paul Bourgeois, Phil Bohannon,
Robert Brazile, Yuri Breitbart, Ramzi Bualuan, Michael
Carey, Soumen Chakrabarti, Tom Chappell, Zhengxin
Chen, Y. C. Chin, Jan Chomicki, Laurens Damen,
Prasanna Dhandapani, Qin Ding, Valentin Dinu, J.
Edwards, Christos Faloutsos, Homma Farian, Alan
Fekete, Frantisek Franek, Shashi Gadia, Hector
Garcia-Molina, Goetz Graefe, Jim Gray, Le Gruenwald,
Eitan M. Gurari, William Hankley, Bruce Hillyer,
Ron Hitchens, Chad Hogg, Arvind Hulgeri, Yannis
Ioannidis, Zheng Jiaping, Randy M. Kaplan, Graham
01/08/2012 17:39:22
Prefcioxv
J. L. Kemp, Rami Khouri, Hyoung-Joo Kim, Won
Kim, Henry Korth (pai de Henry F.), Carol Kroll, Hae
Choon Lee, Sang-Won Lee, Irwin Levinstein, Mark
Llewellyn, Gary Lindstrom, Ling Liu, Dave Maier,
Keith Marzullo, Marty Maskarinec, Fletcher Mattox,
Sharad Mehrotra, Jim Melton, Alberto Mendelzon,
Ami Motro, Bhagirath Narahari, Yiu-Kai Dennis Ng,
Thanh-Duy Nguyen, Anil Nigam, Cyril Orji, Meral
Ozsoyoglu, D. B. Phatak, Juan Altmayer Pizzorno,
Bruce Porter, Sunil Prabhakar, Jim Peterson, K. V.
Raghavan, Nahid Rahman, Rajarshi Rakshit, Krithi
Ramamritham, Mike Reiter, Greg Riccardi, Odinaldo
Rodriguez, Mark Roth, Marek Rusinkiewicz, Michael
Rys, Sunita Sarawagi, N. L. Sarda, Patrick Schmid,
Nikhil Sethi, S. Seshadri, Stewart Shen, Shashi
Shekhar, Amit Sheth, Max Smolens, Nandit Soparkar,
Greg Speegle, Jeff Storey, Dilys Thomas, Prem Thomas,
Tim Wahls, Anita Whitehall, Christopher Wilson,
Marianne Winslett, Weining Zhang e Liu Zhenming.
Sist_Banco_Dados_Livro.indb 15
Notas pessoais
Sudarshan gostaria de agradecer sua esposa, Sita, por
seu amor e apoio, e a seus filhos Madhur e Advaith por seu
amor e alegria de viver. Hank gostaria de agradecer sua
esposa, Joan, e a seus filhos, Abby e Joe, por seu amor e
compreenso. Avi gostaria de agradecer a Valerie por seu
amor, pacincia e apoio durante a reviso deste livro.
A. S.
H. F. K.
S. S.
01/08/2012 17:39:22
Sist_Banco_Dados_Livro.indb 16
01/08/2012 17:39:22
Sumrioxvii
Sumrio
Captulo 1 Introduo....................................................................................................................................... 1
1.1. Aplicaes do sistema de banco de dados.................................................................................................................1
1.2. Finalidade dos sistemas de banco de dados..............................................................................................................2
1.3. Viso dos dados........................................................................................................................................................4
1.3.1.
Abstrao de dados..................................................................................................................................4
1.3.2.
Instncias e esquemas..............................................................................................................................5
1.3.3.
Modelos de dados....................................................................................................................................5
1.4. Linguagens de banco de dados.................................................................................................................................6
1.4.1.
Linguagem de manipulao de dados.......................................................................................................6
1.4.2.
Linguagem de definio de dados............................................................................................................7
1.5. Bancos de dados relacionais......................................................................................................................................7
1.5.1. Tabelas.....................................................................................................................................................7
1.5.2.
Linguagem de manipulao de dados.......................................................................................................8
1.5.3.
Linguagem de definio de dados............................................................................................................9
1.5.4.
Acesso ao banco de dados pelos programas de aplicao..........................................................................9
1.6. Projeto de banco de dados........................................................................................................................................9
1.6.1.
Processo de projeto..................................................................................................................................9
1.6.2.
Projeto de banco de dados para uma organizao universitria..............................................................10
1.6.3.
O modelo entidade-relacionomento.......................................................................................................10
1.6.4. Normalizao.........................................................................................................................................11
1.7. Armazenamento e consulta de dados......................................................................................................................12
1.7.1.
Gerenciador de armazenamento.............................................................................................................13
1.7.2.
O processador de consulta.....................................................................................................................13
1.8. Gerenciamento de transao...................................................................................................................................13
1.9. Arquitetura do banco de dados...............................................................................................................................14
1.10. Minerao de dados e recuperao de informaes.................................................................................................16
1.11. Bancos de dados especializados..............................................................................................................................16
1.11.1. Modelos de dados baseados em objeto...................................................................................................16
1.11.2. Modelos de dados semiestruturados.......................................................................................................17
1.12. Usurios e administradores de banco de dados.......................................................................................................17
1.12.1. Usurios de banco de dados e interfaces do usurio...............................................................................17
1.12.2. Administrador de banco de dados..........................................................................................................17
1.13. Histria dos sistemas de banco de dados................................................................................................................18
1.14. Resumo..................................................................................................................................................................19
Sist_Banco_Dados_Livro.indb 17
01/08/2012 17:39:22
ELSEVIER
Termos de reviso...................................................................................................................................................19
Exerccios prticos..................................................................................................................................................20
Exerccios...............................................................................................................................................................21
Ferramentas...........................................................................................................................................................21
Notas bibliogrficas................................................................................................................................................21
PARTE 1
BANCOS DE DADOS RELACIONAIS
Captulo 2 Introduo ao modelo relacional................................................................................................. 25
2.1. Estrutura dos bancos de dados relacionais..............................................................................................................25
2.2. Esquema de banco de dados...................................................................................................................................27
2.3. Chaves...................................................................................................................................................................29
2.4. Diagramas de esquema...........................................................................................................................................30
2.5. Linguagens de consulta relacional..........................................................................................................................31
2.6. Operaes relacionais.............................................................................................................................................31
2.7. Resumo..................................................................................................................................................................34
Termos de reviso...................................................................................................................................................34
Exerccios prticos..................................................................................................................................................34
Exerccios...............................................................................................................................................................35
Notas bibliogrficas................................................................................................................................................35
Captulo 3 Introduo SQL........................................................................................................................... 37
3.1. Viso geral da linguagem de consulta SQL..............................................................................................................37
3.2. Definio de dados da SQL.....................................................................................................................................38
3.2.1.
Tipos bsicos..........................................................................................................................................38
3.2.2.
Definio bsica de esquema..................................................................................................................38
3.3. Estrutura bsica das consultas SQL.........................................................................................................................41
3.3.1.
Consultas sobre uma nica relao.........................................................................................................41
3.3.2.
Consultas sobre mltiplas relaes.........................................................................................................42
3.3.3.
A juno natural....................................................................................................................................46
3.4. Operaes bsicas adicionais..................................................................................................................................47
3.4.1.
A operao renomeao.........................................................................................................................47
3.4.2.
Operaes de string...............................................................................................................................48
3.4.3.
Especificao de atributo na clusula select.............................................................................................49
3.4.4.
Ordem de classificao na exibio de tuplas.........................................................................................49
3.4.5.
Predicados da clusula where..................................................................................................................49
3.5. Operaes de conjunto...........................................................................................................................................50
3.5.1.
A operao unio ..................................................................................................................................50
3.5.2.
A operao interseo............................................................................................................................51
3.5.3.
A operao excluso...............................................................................................................................51
3.6. Valores nulos..........................................................................................................................................................52
3.7. Funes agregadas..................................................................................................................................................53
3.7.1.
Agregao bsica....................................................................................................................................53
3.7.2.
Agregao com agrupamento.................................................................................................................53
3.7.3.
A clusula having....................................................................................................................................55
3.7.4.
Agregao com valores nulos e booleanos..............................................................................................56
3.8. Subconsultas aninhadas..........................................................................................................................................56
3.8.1.
Membros de conjunto............................................................................................................................56
3.8.2.
Comparao de conjunto.......................................................................................................................57
3.8.3.
Teste de relaes vazias..........................................................................................................................57
3.8.4.
Teste da ausncia de tuplas duplicadas...................................................................................................58
3.8.5.
Subconsultas na clusula from................................................................................................................59
Sist_Banco_Dados_Livro.indb 18
01/08/2012 17:39:22
Sumrioxix
3.8.6.
A clusula with.......................................................................................................................................59
3.8.7.
Subconsultas escalares...........................................................................................................................60
3.9. Modificao do banco de dados..............................................................................................................................60
3.9.1. Excluso................................................................................................................................................60
3.9.2. Insero.................................................................................................................................................61
3.9.3. Atualizaes...........................................................................................................................................62
3.10. Resumo..................................................................................................................................................................63
Termos de reviso...................................................................................................................................................63
Exerccios prticos..................................................................................................................................................64
Exerccios...............................................................................................................................................................65
Ferramentas...........................................................................................................................................................67
Notas bibliogrficas................................................................................................................................................67
Captulo 4 SQL intermediria......................................................................................................................... 69
4.1. Expresses join.......................................................................................................................................................69
4.1.1.
Condies de join..................................................................................................................................70
4.1.2.
Outer joins.............................................................................................................................................71
4.1.3.
Tipos e condies de join.......................................................................................................................74
4.2. Views......................................................................................................................................................................74
4.2.1.
Definio da view...................................................................................................................................75
4.2.2. Usando views em consultas SQL.............................................................................................................75
4.2.3.
Views materializadas...............................................................................................................................76
4.2.4.
Atualizao de uma view........................................................................................................................76
4.3. Transaes..............................................................................................................................................................78
4.4. Restries de integridade........................................................................................................................................79
4.4.1.
Restries sobre uma nica relao........................................................................................................79
4.4.2. Restrio not null....................................................................................................................................79
4.4.3. Restrio unique.....................................................................................................................................79
4.4.4.
A clusula check.....................................................................................................................................80
4.4.5.
Integridade referencial...........................................................................................................................80
4.4.6.
Violao de restrio de integridade durante uma transao...................................................................82
4.4.7. Condies check complexas e assertivas (assertions)................................................................................82
4.5. Tipos de dados e esquemas da SQL........................................................................................................................83
4.5.1.
Tipos de data e hora na SQL..................................................................................................................83
4.5.2.
Valores padro.......................................................................................................................................84
4.5.3.
Criao de ndice...................................................................................................................................84
4.5.4.
Tipos de objeto grande...........................................................................................................................85
4.5.5.
Tipos definidos pelo usurio..................................................................................................................85
4.5.6.
Extenses de create table.........................................................................................................................86
4.5.7.
Esquemas, catlogos e ambientes...........................................................................................................87
4.6. Autorizao............................................................................................................................................................87
4.6.1.
Concedendo e revogando privilgios......................................................................................................88
4.6.2.
Roles.......................................................................................................................................................89
4.6.3.
Autorizao sobre views..........................................................................................................................89
4.6.4.
Autorizaes sobre esquemas.................................................................................................................90
4.6.5.
Transferncia de privilgios....................................................................................................................90
4.6.6.
Revogao de privilgios........................................................................................................................91
4.7. Resumo..................................................................................................................................................................92
Termos de reviso...................................................................................................................................................92
Exerccios prticos..................................................................................................................................................92
Exerccios...............................................................................................................................................................94
Notas bibliogrficas................................................................................................................................................94
Sist_Banco_Dados_Livro.indb 19
01/08/2012 17:39:22
xx
ELSEVIER
Sist_Banco_Dados_Livro.indb 20
01/08/2012 17:39:22
Sumrioxxi
6.1.4.
Sist_Banco_Dados_Livro.indb 21
01/08/2012 17:39:22
ELSEVIER
7.7.3.
Conjuntos de relacionamentos binrios versus n-rios..........................................................................178
7.7.4.
Posicionamento dos atributos de relacionamento.................................................................................179
7.8. Recursos de E-R estendidos..................................................................................................................................180
7.8.1. Especializao......................................................................................................................................180
7.8.2. Generalizao.......................................................................................................................................181
7.8.3.
Herana de atributo.............................................................................................................................182
7.8.4.
Restries sobre generalizaes............................................................................................................183
7.8.5. Agregao............................................................................................................................................184
7.8.6.
Reduo aos esquemas relacionais........................................................................................................185
7.8.6.1. Representao da generalizao...........................................................................................185
7.8.6.2. Representao da agregao.................................................................................................186
7.9. Notaes alternativas para modelagem de dados..................................................................................................186
7.9.1.
Notaes E-R alternativas.....................................................................................................................187
7.9.2.
Unified Modeling Language....................................................................................................................188
7.10. Outros aspectos do projeto de banco de dados.....................................................................................................190
7.10.1. Restries de dados e projeto de banco de dados relacional.................................................................190
7.10.2. Requisitos de uso: consultas, desempenho...........................................................................................191
7.10.3. Requisitos de autorizao.....................................................................................................................191
7.10.4. Fluxo de dados, fluxo de trabalho........................................................................................................191
7.10.5. Outras questes do projeto de banco de dados....................................................................................192
7.11. Resumo................................................................................................................................................................192
Termos de reviso.................................................................................................................................................193
Exerccios prticos................................................................................................................................................193
Exerccios.............................................................................................................................................................195
Ferramentas.........................................................................................................................................................197
Notas bibliogrficas..............................................................................................................................................197
Captulo 8 Projeto de banco de dados relacional....................................................................................... 199
8.1. Caractersticas de um bom projeto relacional........................................................................................................199
8.1.1.
Alternativa de projeto: esquemas maiores.............................................................................................200
8.1.2.
Alternativa de projeto: esquemas menores............................................................................................200
8.2. Domnios atmicos e primeira forma normal........................................................................................................202
8.3. Decomposio usando dependncias funcionais...................................................................................................203
8.3.1.
Chaves e dependncias funcionais.......................................................................................................203
8.3.2.
Forma normal de Boyce-Codd.............................................................................................................205
8.3.3.
FNBC e preservao de dependncia....................................................................................................206
8.3.4.
Terceira forma normal..........................................................................................................................207
8.3.5.
Formas normais mais altas...................................................................................................................207
8.4. Teoria da dependncia funcional..........................................................................................................................208
8.4.1.
Fecho de um conjunto de dependncias funcionais.............................................................................208
8.4.2.
Cobertura cannica..............................................................................................................................210
8.4.3.
Decomposio sem perdas...................................................................................................................212
8.4.4.
Preservao de dependncia.................................................................................................................213
8.5. Algoritmos para decomposio.............................................................................................................................214
8.5.1.
Decomposio FNBC...........................................................................................................................214
8.5.1.1. Teste para FNBC..................................................................................................................214
8.5.1.2. Algoritmo de decomposio da FNBC.................................................................................214
8.5.2.
Decomposio 3FN..............................................................................................................................216
8.5.3.
Corretude do algoritmo da 3FN...........................................................................................................216
8.5.4.
Comparao entre FNBC e 3FN...........................................................................................................217
8.6. Decomposio usando dependncias de valores mltiplos....................................................................................218
8.6.1.
Dependncias de valores mltiplos......................................................................................................218
8.6.2.
Quarta forma normal...........................................................................................................................220
Sist_Banco_Dados_Livro.indb 22
01/08/2012 17:39:22
Sumrioxxiii
8.6.3.
Decomposio 4FN..............................................................................................................................220
Mais formas normais............................................................................................................................................221
Processo de projeto de banco de dados.................................................................................................................221
8.8.1.
Modelo E-R e normalizao..................................................................................................................221
8.8.2.
Nomeao dos atributos e relaes.......................................................................................................222
8.8.3.
Desnormalizao para desempenho.....................................................................................................222
8.8.4.
Outros aspectos de projeto...................................................................................................................223
8.9. Modelando dados temporais.................................................................................................................................223
8.10. Resumo................................................................................................................................................................225
Termos de reviso.................................................................................................................................................225
Exerccios prticos................................................................................................................................................226
Exerccios.............................................................................................................................................................228
Notas bibliogrficas..............................................................................................................................................229
8.7.
8.8.
Sist_Banco_Dados_Livro.indb 23
01/08/2012 17:39:22
ELSEVIER
9.9. Resumo................................................................................................................................................................258
Termos de reviso.................................................................................................................................................258
Exerccios prticos................................................................................................................................................259
Exerccios.............................................................................................................................................................259
Ferramentas.........................................................................................................................................................263
Notas bibliogrficas..............................................................................................................................................263
PARTE 3
ARMAZENAMENTO E CONSULTA DE DADOS
Captulo 10 Armazenamento e estrutura de arquivos............................................................................... 267
10.1. Viso geral do meio de armazenamento fsico.......................................................................................................267
10.2. Discos magnticos e armazenamento flash............................................................................................................269
10.2.1. Caractersticas fsicas dos discos...........................................................................................................269
10.2.2. Medidas de desempenho dos discos.....................................................................................................271
10.2.3. Otimizao de acesso ao bloco de disco...............................................................................................272
10.2.4. Armazenamento flash...........................................................................................................................274
10.3. RAID....................................................................................................................................................................275
10.3.1. Melhoria da confiabilidade por meio da redundncia...........................................................................275
10.3.2. Melhoria do desempenho por meio do paralelismo..............................................................................276
10.3.3. Nveis de RAID....................................................................................................................................277
10.3.4. Escolha do nvel de RAID.....................................................................................................................279
10.3.5. Questes de hardware..........................................................................................................................280
10.3.6. Outras aplicaes de RAID...................................................................................................................281
10.4. Armazenamento tercirio......................................................................................................................................281
10.4.1. Discos pticos......................................................................................................................................281
10.4.2. Fitas magnticas...................................................................................................................................281
10.5. Organizao de arquivo........................................................................................................................................282
10.5.1. Registros de tamanho fixo....................................................................................................................283
10.5.2. Registros de tamanho varivel..............................................................................................................284
10.6. Organizao de registros em arquivos...................................................................................................................286
10.6.1. Organizao sequencial de arquivos.....................................................................................................286
10.6.2. Organizao de arquivos com agrupamento de mltiplas tabelas.........................................................288
10.7. Armazenamento em dicionrio de dados..............................................................................................................289
10.8. Buffer de banco de dados......................................................................................................................................290
10.8.1. Gerenciador de buffer...........................................................................................................................291
10.8.2. Polticas de substituio de buffer.........................................................................................................291
10.9. Resumo................................................................................................................................................................293
Termos de reviso.................................................................................................................................................293
Exerccios prticos................................................................................................................................................294
Exerccios.............................................................................................................................................................295
Notas bibliogrficas..............................................................................................................................................295
Captulo 11 Indexao e hashing................................................................................................................. 297
11.1. Conceitos bsicos.................................................................................................................................................297
11.2. ndices ordenados................................................................................................................................................298
11.2.1. ndices densos e esparsos.....................................................................................................................298
11.2.2. ndices multinveis...............................................................................................................................300
11.2.3. Atualizao do ndice...........................................................................................................................301
11.2.4. ndices secundrios..............................................................................................................................302
11.2.5. ndices por mltiplas chaves................................................................................................................303
11.3. Arquivos de ndice de rvore B+............................................................................................................................303
11.3.1. Estrutura de uma rvore B+..................................................................................................................303
Sist_Banco_Dados_Livro.indb 24
01/08/2012 17:39:22
Sumrioxxv
11.3.2.
11.3.3.
Sist_Banco_Dados_Livro.indb 25
01/08/2012 17:39:22
ELSEVIER
Sist_Banco_Dados_Livro.indb 26
01/08/2012 17:39:22
Sumrioxxvii
13.6. Tpicos avanados em otimizao da consulta**..................................................................................................383
13.6.1. Otimizao top K.................................................................................................................................383
13.6.2. Minimizao de juno........................................................................................................................384
13.6.3. Otimizao de atualizaes..................................................................................................................384
13.6.4. Otimizao de consultas mltiplas e varreduras compartilhadas..........................................................384
13.6.5. Otimizao de consulta paramtrica.....................................................................................................385
13.7. Resumo................................................................................................................................................................385
Termos de reviso.................................................................................................................................................386
Exerccios prticos................................................................................................................................................386
Exerccios.............................................................................................................................................................388
Notas bibliogrficas..............................................................................................................................................388
PARTE 4
GERENCIAMENTO DE TRANSAO
Captulo 14 Transaes................................................................................................................................. 393
14.1. Conceito de transao..........................................................................................................................................393
14.2. Um modelo de transao simples.........................................................................................................................394
14.3. Estrutura de armazenamento................................................................................................................................396
14.4. Atomicidade e durabilidade da transao.............................................................................................................396
14.5. Isolamento da transao.......................................................................................................................................398
14.6. Serializabilidade...................................................................................................................................................402
14.7. Isolamento e atomicidade da transao.................................................................................................................407
14.7.1. Schedules recuperveis..........................................................................................................................407
14.7.2. Schedules no em cascata......................................................................................................................407
14.8. Nveis de isolamento da transao........................................................................................................................408
14.9. Implementao de nveis de isolamento................................................................................................................409
14.9.1. Bloqueio (Locking)................................................................................................................................410
14.9.2. Timestamps..........................................................................................................................................410
14.9.3. Verses mltiplas e isolamento de instantneo (snapshot).....................................................................410
14.10. Transaes como instrues SQL..........................................................................................................................411
14.11. Resumo................................................................................................................................................................412
Termos de reviso.................................................................................................................................................413
Exerccios prticos................................................................................................................................................413
Exerccios.............................................................................................................................................................414
Notas bibliogrficas..............................................................................................................................................415
Captulo 15 Controle de concorrncia......................................................................................................... 417
15.1. Protocolos baseados em bloqueio.........................................................................................................................417
15.1.1. Bloqueios (Locks).................................................................................................................................417
15.1.2. Concesso de bloqueios (granting of locks)............................................................................................420
15.1.3. O protocolo de bloqueio em duas fases................................................................................................421
15.1.4. Implementao do bloqueio.................................................................................................................423
15.1.5. Protocolos baseados em grafo...............................................................................................................424
15.2. Tratamento de impasse (Deadlock)........................................................................................................................426
15.2.1. Preveno de impasse..........................................................................................................................426
15.2.2. Deteco e recuperao de impasse......................................................................................................427
15.2.2.1. Deteco de impasse............................................................................................................427
15.2.2.2. Recuperao de impasse......................................................................................................428
15.3. Granularidade mltipla........................................................................................................................................429
15.4. Protocolos baseados em timestamp........................................................................................................................431
15.4.1. Timestamps...........................................................................................................................................431
15.4.2. O protocolo de ordenao por timestamp.............................................................................................431
Sist_Banco_Dados_Livro.indb 27
01/08/2012 17:39:22
ELSEVIER
Sist_Banco_Dados_Livro.indb 28
01/08/2012 17:39:22
Sumrioxxix
16.8.2.2. Passada de redo...................................................................................................................473
16.8.2.3. Passada de undo e rollback da transao.............................................................................473
16.8.3. Outros recursos....................................................................................................................................474
16.9. Sistemas de backup remoto..................................................................................................................................475
16.10. Resumo................................................................................................................................................................476
Termos de reviso.................................................................................................................................................478
Exerccios prticos................................................................................................................................................478
Exerccios.............................................................................................................................................................480
Notas bibliogrficas..............................................................................................................................................480
PARTE 5
ARQUITETURA DO SISTEMA
Captulo 17 Arquiteturas de sistema de banco de dados........................................................................... 485
17.1. Arquiteturas centralizadas e cliente-servidor............................................................................................485
17.1.1. Sistemas centralizados..........................................................................................................................485
17.1.2. Sistemas cliente-servidor......................................................................................................................486
17.2. Arquiteturas de sistema servidor...........................................................................................................................487
17.2.1. Servidores de transao........................................................................................................................488
17.2.2. Servidores de dados.............................................................................................................................489
17.2.3. Servidores baseados em nuvem............................................................................................................490
17.3. Sistemas paralelos.................................................................................................................................................491
17.3.1. Ganho de velocidade e ganho de escala................................................................................................491
17.3.2. Redes de interconexo..........................................................................................................................493
17.3.3. Arquiteturas paralelas de banco de dados.............................................................................................493
17.3.3.1. Memria compartilhada......................................................................................................494
17.3.3.2. Disco compartilhado...........................................................................................................494
17.3.3.3. Nada compartilhado............................................................................................................495
17.3.3.4. Hierrquico.........................................................................................................................495
17.4. Sistemas distribudos............................................................................................................................................495
17.4.1. Exemplo de banco de dados distribudo..............................................................................................496
17.4.2. Questes de implementao.................................................................................................................497
17.5. Tipos de redes......................................................................................................................................................497
17.5.1. Redes locais.........................................................................................................................................498
17.5.2. Redes remotas......................................................................................................................................499
17.6. Resumo................................................................................................................................................................499
Termos de reviso.................................................................................................................................................500
Exerccios prticos................................................................................................................................................500
Exerccios.............................................................................................................................................................501
Notas bibliogrficas..............................................................................................................................................502
Captulo 18 Bancos de dados paralelos....................................................................................................... 503
18.1. Introduo............................................................................................................................................................503
18.2. Paralelismo de E/S................................................................................................................................................503
18.2.1. Tcnicas de particionamento................................................................................................................504
18.2.2. Comparao de tcnicas de particionamento........................................................................................504
18.2.3. Tratamento de distoro (skew)............................................................................................................505
18.3. Paralelismo interconsulta......................................................................................................................................506
18.4. Paralelismo intraconsulta......................................................................................................................................507
18.5. Paralelismo intraoperao.....................................................................................................................................507
18.5.1. Classificao paralela............................................................................................................................508
18.5.1.1. Classificao por particionamento de intervalo....................................................................508
18.5.1.2. Sort-Merge externo paralelo.................................................................................................508
Sist_Banco_Dados_Livro.indb 29
01/08/2012 17:39:22
ELSEVIER
18.5.2.
Juno paralela.....................................................................................................................................509
18.5.2.1. Juno particionada.............................................................................................................509
18.5.2.2. Juno fragmentar e replicar................................................................................................510
18.5.2.3. Juno de hash paralelo particionado...................................................................................511
18.5.2.4. Juno paralela de loop aninhado.........................................................................................511
18.5.3. Outras operaes relacionais................................................................................................................511
18.5.4. Custo da avaliao paralela das operaes............................................................................................512
18.6. Paralelismo interoperao.....................................................................................................................................513
18.6.1. Paralelismo canalizado (pipelined parallelism).......................................................................................513
18.6.2. Paralelismo independente....................................................................................................................513
18.7. Otimizao de consulta........................................................................................................................................513
18.8. Projeto de sistemas paralelos................................................................................................................................514
18.9. Paralelismo em processadores multicore...............................................................................................................515
18.9.1. Paralelismo versus velocidade bruta......................................................................................................515
18.9.2. Memria em cache e multithreading......................................................................................................515
18.9.3. Adaptando o projeto do sistema de banco de dados s arquiteturas modernas.....................................516
18.10. Resumo................................................................................................................................................................516
Termos de reviso.................................................................................................................................................517
Exerccios prticos................................................................................................................................................517
Exerccios.............................................................................................................................................................518
Notas bibliogrficas..............................................................................................................................................519
Captulo 19 Bancos de dados distribudos.................................................................................................. 521
19.1. Bancos de dados homogneos e heterogneos......................................................................................................521
19.2. Armazenamento de dados distribudo..................................................................................................................522
19.2.1. Replicao de dados.............................................................................................................................522
19.2.2. Fragmentao de dados........................................................................................................................522
19.2.3. Transparncia.......................................................................................................................................523
19.3. Transaes distribudas.........................................................................................................................................524
19.3.1. Estrutura do sistema............................................................................................................................524
19.3.2. Modos de falha do sistema...................................................................................................................525
19.4. Protocolos commit..................................................................................................................................................525
19.4.1. Commit de duas fases...........................................................................................................................525
19.4.1.1. O protocolo commit.............................................................................................................525
19.4.1.2. Tratamento de falhas...........................................................................................................526
19.4.1.3. Controle de recuperao e concorrncia..............................................................................527
19.4.2. Commit de trs fases.............................................................................................................................527
19.4.3. Modelos alternativos de processamento de transao...........................................................................527
19.5. Controle de concorrncia em bancos de dados distribudos..................................................................................529
19.5.1. Protocolos de bloqueio.........................................................................................................................529
19.5.1.1. Tcnica de gerenciador de bloqueio nico...........................................................................529
19.5.1.2. Gerenciador de bloqueio distribudo...................................................................................530
19.5.1.3. Cpia primria....................................................................................................................530
19.5.1.4. Protocolo da maioria...........................................................................................................530
19.5.1.5. Protocolo tendencioso.........................................................................................................530
19.5.1.6. Protocolo de consenso de qurum........................................................................................531
19.5.2. Timestamp............................................................................................................................................531
19.5.3. Replicao com graus de consistncia fracos........................................................................................532
19.5.4. Tratamento de impasse (deadlock)........................................................................................................532
19.6. Disponibilidade....................................................................................................................................................534
19.6.1. Tcnica baseada na maioria..................................................................................................................535
19.6.2. Tcnica ler em um, escrever em todos os disponveis...........................................................................536
19.6.3. Reintegrao do stio............................................................................................................................536
Sist_Banco_Dados_Livro.indb 30
01/08/2012 17:39:22
Sumrioxxxi
19.6.4. Comparao com o backup remoto......................................................................................................536
19.6.5. Seleo do coordenador.......................................................................................................................536
19.6.6. Trocando consistncia por disponibilidade...........................................................................................537
19.7. Processamento de consulta distribudo.................................................................................................................538
19.7.1. Transformao de consulta...................................................................................................................538
19.7.2. Processamento de juno simples.........................................................................................................539
19.7.3. Estratgia de semijuno......................................................................................................................539
19.7.4. Estratgias de juno que exploram o paralelismo................................................................................540
19.8. Bancos de dados distribudos heterogneos..........................................................................................................540
19.8.1. Viso unificada dos dados....................................................................................................................540
19.8.2. Processamento de consulta...................................................................................................................541
19.8.3. Gerenciamento de transao em multibancos de dados........................................................................542
19.9. Bancos de dados baseados em nuvem...................................................................................................................543
19.9.1. Sistemas de armazenamento de dados em nuvem................................................................................543
19.9.1.1. Representao de dados.......................................................................................................543
19.9.1.2. Particionando e recuperando dados.....................................................................................545
19.9.1.3. Transaes e replicao........................................................................................................546
19.9.2. Bancos de dados tradicionais em nuvem..............................................................................................547
19.9.3. Desafios com bancos de dados baseados em nuvem.............................................................................547
19.10. Sistemas de diretrio............................................................................................................................................548
19.10.1. Protocolos de acesso ao diretrio.........................................................................................................549
19.10.2. LDAP: Lightweight Directory Access Protocol...........................................................................................549
19.10.2.1. Modelo de dados LDAP.......................................................................................................549
19.10.2.2. Manipulao de dados.........................................................................................................550
19.10.2.3. rvores de diretrio distribudas.........................................................................................551
19.11. Resumo................................................................................................................................................................552
Termos de reviso.................................................................................................................................................553
Exerccios prticos................................................................................................................................................554
Exerccios.............................................................................................................................................................555
Notas bibliogrficas..............................................................................................................................................556
PARTE 6
DEPSITO DE DADOS, MINERAO DE DADOS E RECUPERAO DE INFORMAES
Captulo 20 Depsito e minerao de dados.............................................................................................. 559
20.1. Sistemas de apoio deciso..................................................................................................................................559
20.2. Depsito de dados (data warehousing)...................................................................................................................560
20.2.1. Componentes de um depsito de dados...............................................................................................560
20.2.2. Esquemas de depsito..........................................................................................................................562
20.2.3. Armazenamento orientado coluna.....................................................................................................563
20.3. Minerao de dados..............................................................................................................................................563
20.4. Classificao.........................................................................................................................................................564
20.4.1. Classificadores de rvore de deciso.....................................................................................................564
20.4.1.1. Criando classificadores de rvore de deciso.......................................................................565
20.4.1.2. Melhores divises................................................................................................................565
20.4.1.3. Encontrando as melhores divises.......................................................................................566
20.4.1.4. Algoritmo de construo da rvore de deciso.....................................................................566
20.4.2. Outros tipos de classificadores.............................................................................................................567
20.4.3. Regresso.............................................................................................................................................569
20.4.4. Validando um classificador...................................................................................................................569
20.5. Regras de associao.............................................................................................................................................570
20.6. Outros tipos de associaes..................................................................................................................................571
20.7. Agrupamento (clustering)......................................................................................................................................572
Sist_Banco_Dados_Livro.indb 31
01/08/2012 17:39:23
ELSEVIER
Sist_Banco_Dados_Livro.indb 32
01/08/2012 17:39:23
Sumrioxxxiii
22.8.1. Persistncia de objetos.........................................................................................................................608
22.8.2. Identidade de objeto e ponteiros..........................................................................................................609
22.8.3. Armazenamento e acesso dos objetos persistentes................................................................................609
22.8.4. Sistemas C++ persistentes....................................................................................................................610
22.8.5. Sistemas Java persistentes.....................................................................................................................611
22.9. Mapeamento objeto-relacional..............................................................................................................................613
22.10. Modelo orientado a objeto versus modelo objeto-relacional..................................................................................613
22.11. Resumo................................................................................................................................................................614
Termos de reviso.................................................................................................................................................614
Exerccios prticos................................................................................................................................................615
Exerccios.............................................................................................................................................................616
Ferramentas.........................................................................................................................................................616
Notas bibliogrficas..............................................................................................................................................617
Captulo 23 XML............................................................................................................................................ 619
23.1. Motivao.............................................................................................................................................................619
23.2. Estrutura de dados XML.......................................................................................................................................622
23.3. Esquema do documento XML..............................................................................................................................625
23.3.1. Document Type Definition......................................................................................................................625
23.3.2. XML Schema.........................................................................................................................................628
23.4. Consulta e transformao.....................................................................................................................................630
23.4.1. O modelo de rvore da XML................................................................................................................630
23.4.2. XPath...................................................................................................................................................631
23.4.3. XQuery................................................................................................................................................632
23.4.3.1. Expresses FLWOR.............................................................................................................632
23.4.3.2. Junes...............................................................................................................................633
23.4.3.3. Consultas aninhadas............................................................................................................634
23.4.3.4. Classificao dos resultados.................................................................................................634
23.4.3.5. Funes e tipos...................................................................................................................635
23.4.3.6. Outros recursos...................................................................................................................635
23.5. Interfaces de programa aplicativo para XML.........................................................................................................636
23.6. Armazenamento de dados XML............................................................................................................................637
23.6.1. Depsitos de dados no relacionais......................................................................................................637
23.6.2. Bancos de dados relacionais.................................................................................................................637
23.6.2.1. Armazenar como string........................................................................................................637
23.6.2.2. Representao de rvore......................................................................................................638
23.6.2.3. Mapa de relaes.................................................................................................................638
23.6.2.4. Publicando e fragmentando dados XML..............................................................................639
23.6.2.5. Armazenamento nativo dentro de um banco de dados relacional.........................................639
23.6.3. SQL/XML.............................................................................................................................................639
23.7. Aplicaes XML....................................................................................................................................................641
23.7.1. Armazenando dados com estrutura complexa......................................................................................641
23.7.2. Formatos padronizados para troca de dados.........................................................................................641
23.7.3. Web Services.........................................................................................................................................641
23.7.4. Mediao de dados...............................................................................................................................642
23.8. Resumo................................................................................................................................................................643
Termos de reviso.................................................................................................................................................643
Exerccios prticos................................................................................................................................................644
Exerccios.............................................................................................................................................................645
Ferramentas.........................................................................................................................................................645
Notas bibliogrficas..............................................................................................................................................646
Sist_Banco_Dados_Livro.indb 33
01/08/2012 17:39:23
ELSEVIER
PARTE 8
TPICOS AVANADOS
Captulo 24 Desenvolvimento avanado de aplicaes............................................................................. 649
24.1. Ajuste de desempenho..........................................................................................................................................649
24.1.1. Melhorando a orientao de conjuntos.................................................................................................649
24.1.2. Ajuste de carregamentos e atualizaes em massa................................................................................651
24.1.3. Localizao dos gargalos......................................................................................................................652
24.1.4. Parmetros ajustveis...........................................................................................................................653
24.1.5. Ajuste do hardware..............................................................................................................................653
24.1.6. Ajustando o esquema...........................................................................................................................654
24.1.7. Ajuste de ndices..................................................................................................................................655
24.1.8. Usando views materializadas.................................................................................................................655
24.1.9. Ajuste automatizado do projeto fsico..................................................................................................656
24.1.10. Ajuste de transaes concorrentes........................................................................................................657
24.1.11. Simulao de desempenho...................................................................................................................658
24.2. Benchmarks de desempenho..................................................................................................................................659
24.2.1. Pacotes de tarefas.................................................................................................................................659
24.2.2. Classes de aplicao do banco de dados...............................................................................................659
24.2.3. Os benchmarks TPC..............................................................................................................................660
24.3. Outras questes no desenvolvimento da aplicao................................................................................................661
24.3.1. Teste de aplicaes...............................................................................................................................661
24.3.2. Migrao de aplicaes.........................................................................................................................662
24.4. Padronizao........................................................................................................................................................662
24.4.1. Padres SQL........................................................................................................................................663
24.4.2. Padres de conectividade de banco de dados.......................................................................................664
24.4.3. Padres de banco de dados de objeto...................................................................................................664
24.4.4. Padres baseados em XML...................................................................................................................665
24.5. Resumo................................................................................................................................................................665
Termos de reviso.................................................................................................................................................666
Exerccios prticos................................................................................................................................................666
Exerccios.............................................................................................................................................................667
Notas bibliogrficas..............................................................................................................................................667
Captulo 25 Dados espaciais e temporais e mobilidade............................................................................. 669
25.1. Motivao.............................................................................................................................................................669
25.2. Tempo nos bancos de dados.................................................................................................................................670
25.2.1. Especificao de tempo em SQL...........................................................................................................670
25.2.2. Linguagens de consulta temporal.........................................................................................................671
25.3. Dados espaciais e geogrficos...............................................................................................................................671
25.3.1. Representao de informaes geomtricas..........................................................................................671
25.3.2. Design Databases.................................................................................................................................673
25.3.3. Dados geogrficos................................................................................................................................673
25.3.3.1. Aplicaes de dados geogrficos..........................................................................................673
25.3.3.2. Representao de dados geogrficos....................................................................................674
25.3.4. Consultas espaciais..............................................................................................................................675
25.3.5. Indexao de dados espaciais...............................................................................................................676
25.3.5.1. rvores k-d.........................................................................................................................676
25.3.5.2. rvores quadrticas (quadtrees)............................................................................................677
25.3.5.3. rvores R............................................................................................................................677
25.4. Bancos de dados de multimdia............................................................................................................................679
25.4.1. Formatos de dados de multimdia........................................................................................................680
25.4.2. Dados de mdia contnua.....................................................................................................................680
Sist_Banco_Dados_Livro.indb 34
01/08/2012 17:39:23
Sumrioxxxv
25.4.3. Recuperao baseada na semelhana....................................................................................................681
25.5. Mobilidade e bancos de dados pessoais................................................................................................................681
25.5.1. Um modelo de computao mvel.......................................................................................................682
25.5.2. Roteamento e processamento de consulta............................................................................................682
25.5.3. Dados de broadcast...............................................................................................................................683
25.5.4. Desconectividade e consistncia...........................................................................................................683
25.6. Resumo................................................................................................................................................................685
Termos de reviso.................................................................................................................................................685
Exerccios prticos................................................................................................................................................686
Exerccios.............................................................................................................................................................686
Notas bibliogrficas..............................................................................................................................................687
Captulo 26 Processamento avanado de transaes................................................................................. 689
26.1. Monitores de processamento de transao............................................................................................................689
26.1.1. Arquiteturas de monitor de PT.............................................................................................................689
26.1.2. Coordenao de aplicaes usando monitores de PT............................................................................692
26.2. Fluxos de trabalho transacionais...........................................................................................................................692
26.2.1. Especificao de fluxo de trabalho.......................................................................................................694
26.2.2. Requisitos de atomicidade de falha de um fluxo de trabalho................................................................694
26.2.3. Execuo de fluxos de trabalho............................................................................................................695
26.2.4. Recuperao de um fluxo de trabalho..................................................................................................696
26.2.5. Sistemas de gerenciamento de fluxo de trabalho..................................................................................696
26.3. E-Commerce..........................................................................................................................................................696
26.3.1. E-Catalogs............................................................................................................................................697
26.3.2. Mercados.............................................................................................................................................697
26.3.3. Estabelecimento de pedido..................................................................................................................698
26.4. Bancos de dados na memria principal.................................................................................................................698
26.5. Sistemas de transao em tempo real....................................................................................................................700
26.6. Transaes de longa durao................................................................................................................................701
26.6.1. Execues no serializveis..................................................................................................................701
26.6.2. Controle da concorrncia.....................................................................................................................702
26.6.3. Transaes aninhadas e multinvel.......................................................................................................702
26.6.4. Transaes de compensao.................................................................................................................703
26.6.5. Questes de implementao.................................................................................................................704
26.7. Resumo................................................................................................................................................................704
Termos de reviso.................................................................................................................................................705
Exerccios prticos................................................................................................................................................706
Exerccios.............................................................................................................................................................706
Notas bibliogrficas..............................................................................................................................................707
PARTE 9
ESTUDOS DE CASO
Captulo 27 PostgreSQL................................................................................................................................ 711
27.1. Introduo............................................................................................................................................................711
27.2. Interfaces com o usurio.......................................................................................................................................712
27.2.1. Interfaces de terminal interativo...........................................................................................................712
27.2.2. Interfaces grficas.................................................................................................................................712
27.2.3. Interfaces de linguagem de programao..............................................................................................713
27.3. Variaes e extenses da SQL...............................................................................................................................713
27.3.1. Tipos de PostgreSQL............................................................................................................................713
27.3.1.1. O sistema de tipos do PostgreSQL.......................................................................................714
27.3.1.2. Tipos fora do padro...........................................................................................................715
Sist_Banco_Dados_Livro.indb 35
01/08/2012 17:39:23
27.4.
27.5.
27.6.
27.7.
ELSEVIER
Sist_Banco_Dados_Livro.indb 36
01/08/2012 17:39:23
Sumrioxxxvii
28.4.
28.5.
28.6.
28.7.
28.8.
28.9.
28.3.9. Particionamento...................................................................................................................................740
28.3.9.1. Particionamento de intervalo...............................................................................................741
28.3.9.2. Particionamento por hash......................................................................................................741
28.3.9.3. Particionamento por lista.....................................................................................................741
28.3.9.4. Particionamento composto..................................................................................................741
28.3.9.5. Particionamento por referncia............................................................................................741
28.3.10. Views materializadas.............................................................................................................................741
Processamento e otimizao de consulta...............................................................................................................742
28.4.1. Mtodos de execuo...........................................................................................................................742
28.4.2. Otimizao...........................................................................................................................................743
28.4.2.1. Transformaes de consulta.................................................................................................743
28.4.2.2. Seleo de caminho de acesso..............................................................................................743
28.4.2.3. Poda de partio..................................................................................................................744
28.4.2.4. SQL Tuning Advisor..............................................................................................................744
28.4.2.5. SQL Plan Management..........................................................................................................745
28.4.3. Execuo paralela.................................................................................................................................745
28.4.3.1. Estrutura de processos.........................................................................................................746
28.4.4. Caching de resultados...........................................................................................................................746
Controle de concorrncia e recuperao...............................................................................................................747
28.5.1. Controle de concorrncia.....................................................................................................................747
28.5.2. Estruturas bsicas para recuperao.....................................................................................................748
28.5.3. Oracle Data Guard................................................................................................................................748
Arquitetura do sistema.........................................................................................................................................749
28.6.1. Servidor dedicado: estruturas de memria...........................................................................................749
28.6.2. Servidor dedicado: estruturas de processo............................................................................................750
28.6.3. Servidor compartilhado.......................................................................................................................750
28.6.4. Oracle Real Application Clusters.............................................................................................................750
28.6.5. Automatic Storage Manager....................................................................................................................751
28.6.6. Oracle Exadata.....................................................................................................................................751
Replicao, distribuio e dados externos.............................................................................................................751
28.7.1. Replicao............................................................................................................................................751
28.7.2. Bancos de dados distribudos...............................................................................................................752
28.7.3. Fontes de dados externas.....................................................................................................................752
28.7.3.1. SQL*Loader........................................................................................................................752
28.7.3.2. Tabelas externas..................................................................................................................752
28.7.3.3. Exportao e importao com Data Pump...........................................................................752
Ferramentas de administrao de banco de dados................................................................................................752
28.8.1. Oracle Enterprise Manager.....................................................................................................................753
28.8.2. Repositrio automtico de carga de trabalho........................................................................................753
28.8.3. Gerenciamento de recursos de banco de dados....................................................................................753
Minerao de dados..............................................................................................................................................753
Notas bibliogrficas..............................................................................................................................................754
Sist_Banco_Dados_Livro.indb 37
01/08/2012 17:39:23
ELSEVIER
Sist_Banco_Dados_Livro.indb 38
01/08/2012 17:39:23
Sumrioxxxix
30.3.7. Varreduras e leitura antecipada............................................................................................................783
30.3.8. Compactao.......................................................................................................................................783
30.4. Processamento e otimizao de consulta...............................................................................................................783
30.4.1. Viso geral do processo de compilao.................................................................................................783
30.4.2. Simplificao de consulta.....................................................................................................................784
30.4.3. Reordenao e otimizao baseada em custo........................................................................................784
30.4.4. Planos de atualizao...........................................................................................................................785
30.4.5. Anlise de dados em tempo de otimizao...........................................................................................785
30.4.6. Pesquisa parcial e heurstica.................................................................................................................785
30.4.7. Execuo de consulta...........................................................................................................................786
30.5. Concorrncia e recuperao.................................................................................................................................786
30.5.1. Transaes............................................................................................................................................786
30.5.2. Bloqueio..............................................................................................................................................787
30.5.2.1. Bloqueio dinmico..............................................................................................................787
30.5.2.2. Deteco de impasse............................................................................................................788
30.5.2.3. Criao de verses de linha para isolamento de instantneo................................................788
30.5.3. Recuperao e disponibilidade.............................................................................................................788
30.5.3.1 Recuperao aps falha..........................................................................................................788
30.5.3.2. Recuperao de mdia.........................................................................................................789
30.5.3.3. Espelhamento de banco de dados........................................................................................789
30.6. Arquitetura do sistema.........................................................................................................................................789
30.6.1. Pool de threads no servidor...................................................................................................................789
30.6.2. Gerenciamento de memria.................................................................................................................790
30.6.3. Segurana............................................................................................................................................790
30.7. Acesso a dados.....................................................................................................................................................791
30.8. Processamento de consulta heterogneo distribudo.............................................................................................792
30.9. Duplicao...........................................................................................................................................................792
30.9.1. Modelo de duplicao..........................................................................................................................793
30.9.2. Opes de duplicao..........................................................................................................................793
30.10. Programao do servidor na .NET........................................................................................................................794
30.10.1. Conceitos bsicos da .NET...................................................................................................................794
30.10.2. Hospedagem CLR SQL.........................................................................................................................794
30.10.3. Contratos de extensibilidade................................................................................................................795
30.10.3.1. Rotinas..............................................................................................................................796
30.10.3.2. Funes de tabela.............................................................................................................796
30.10.3.3. Tipos.................................................................................................................................796
30.10.3.4. Agregados.........................................................................................................................796
30.11. Suporte a XML.....................................................................................................................................................797
30.11.1. Armazenando e organizando XML nativamente ...................................................................................797
30.11.2. Consultando e atualizando o tipo de dado XML...................................................................................797
30.11.3. Execuo de expresses XQuery..........................................................................................................798
30.12. O Service Broker do SQL Server...........................................................................................................................799
30.13. Inteligncia empresarial........................................................................................................................................800
30.13.1. SQL Server Integration Services..............................................................................................................801
30.13.2. SQL Server Analysis Services..................................................................................................................802
30.13.2.1. SQL Server Analysis Services: OLAP....................................................................................802
30.13.2.2. SQL Server Analysis Services: minerao de dados..............................................................802
30.13.3. SQL Server Reporting Services................................................................................................................803
Notas bibliogrficas..............................................................................................................................................803
Sist_Banco_Dados_Livro.indb 39
01/08/2012 17:39:23
xl
ELSEVIER
Sist_Banco_Dados_Livro.indb 40
01/08/2012 17:39:23