Pré-visualização parcial do texto
Baixe Banco de Dados - SILBERSCHATZ e outras Notas de estudo em PDF para Língua Portuguesa, somente na Docsity!
' Sistema de | Abraham Silberschatz Henry E. Korth s. Sudarshan Sistema de Banco de Dados Abraham Silberschatz Heny E. Korth s Sudarshan Tradução da 5º edição Revisão Técnica Luiz Fernando Pereira de Souza Mestre em Engenharia de Sistemas pela UFRI Professor e Analista de Sistema do NCE/UFRJ Tradução Daniel Vieira Presidente da Multinet Informática Programador e tradutor especializado em Informática E Em memória de meu pai Joseph Silberschatz, minha mãe Vera Silberschatz e meus avós Stepha e Aaron Rosenblum. Avi Silberschatz Para minha esposa, Joan, meus filhos, Abigail e Joseph emeus pais, Heny e Frances. Hank Korth Para minha esposa, Sta, meu filho, Madlhur, e minha mae, Indira. S. Sudarshan — Bieck, A gerene de projeto oi Peggy Sele. O gerente exe- * eutivo de marketing oi Michael Wetz O gerente de ma je Banco de Dados eting oi Dawn Berclr. ilustração eo projeto da capa fo- ram de JoAnne Schopler O revisor de tetos autônomo foi George Watson. revisora de provas autonoma fo Judy Gantenbeim. O projeto do livro fi de Laurie Jansen. O in- dexador autônomo foi Tobiah Waldron Esta edição é baseada nas quatro edições anteriores, de modo que agradecemos mais uma vez às muitas pessoas. que nos ajudaram om as quatro primeiras edições, inclui: do RB. Abhyankar, Don Batory, Phil Bernhard, Haran Bora, Paul Bourgeos, Phil Bohannon, Robert Brazile Yur Brethat, Michael Carey, Soumen Chakrabart, J Edwards Christo Faloutsos, Homma Faria, Alan Fekete, hash Gadia, Jim Gray, Le Gruenvald, Etan M. Gurar, Rom tt chens, Yannis loannidis, Hyoung joo Kim. Won Kim. Henry Korh (pai de Henry F), Carol Kroll, Gary Lindstrom, Irvin Levinstei, Ling Lt, Dave Mater, Keith Marzulo, Fletcher Mattos, Sharad Mebrotra, Jum Melton Albeno Mendelzon, Hector Garcia-Molina, Ami Morro, Bhagirath Narahar, Ani Nigam, Cyril Or], Meral Ozsovo. Bruce Porter Jim Peterson, KV. Raglavan, Krilhi Ra mamvtham, Mike Reiter, Odinaldo Aarek Rusinkdvice, Suit Sarawagã ad, Shah Shekhar, Amit heh, Nani Speed, Ds Thomas e Marine Winslet. Mar Tumamian e Nandprasad Josh dio de secretariado para a quarta edição, & hem preparou um rascunho inicial do projeto da capa a quarta edição. sm Dupr revisou a terceira edição e Sa Sarandiman edito ra Bali, Arvind Hulgeri KV Rage Havan, Praeck Kapadi, Sara Strandiman, Greg Speegjo é Das Beviner ajudacam a preparar o manual do instrutor pura as edições anteriores. À nova capa é uma evolução das capas ds quatro primeira edições, eia de usar barcos como parte do conceito da capa nos foi sugerida inicial mente por Bruce Stephan. Finalmente, Sudarshan gostaria de agradecer sua espo sa, Sta, por seu amor e apoio, e seu ilho Madhur, por seu amor. Hank gostaria de agradecer sua esposa, Joan, e seus filhos, Abby e Jo, por seu amor e compreensão, Avi gosta ria de agradecer a Valerie por seu amor, paciência e apoio durante a revisão deste livro. As HEK gerenciamento de banco de dados evoluiu de uma aplica cão de computador especializada para um componente central do ambiente de computação moderno e, como re saldo, conhecimento a respeito dos sistemas de banco de dados se tornou uma parte essencial de um curso de cdi de computação. Neste teto, apresentamos os con ceiias fundamentais do gerenciamento de banco de dados. Esses conceitos incluem aspectos de projeto de banco de dados, linguagens de banco de dados « implementação de sistemas de banco de dados Estetexto é voltado para um primeiro curso de banco de dados, em um nível de estudante umivers: não, ou para 0 primeiro ano de pos-graduação. Alem do material básico para um curso mica. o testo contém mate rulevançado que pode ser usado para suplementos de cur 59,0 como material introdutorio para um curso avançado. Consideramos apenas uma familiaridade com as estru- turas de dados básicas, organização de computada linguagem de programação de ao nível. como Java, C ou Faca Apresentamos os conceitos como descrições vas, muto delas bascadas em nosso exemplo comum de uma instuição bancária. Abordamos resultados teoricos importantes mas as provas formais são omitidas. No lugar das provas, figuras e exemplos são usados para sugerir por quem resuliado é verdadeiro, Descrições formais e provas dos esuliados teóricos poderão ser encontradas nos traba- lhos de pesquisa e textos avançados que são ef tas notas bibliográficas. Os conceitos « algoritmos fundamentais abordados no Tio reqentemente são baseados naqueles ulizados nos de banco de dados existentes, tanto comerciais Nosso objetivo é apresentar esses. em um ambiente geral, que não este- jaligado a um sistema de banco de dados em particular. Os. cletalhes dos sistemas de banco de dados em particular são discutidos na Pare 9. Neste livro, a quinta edição do onginal de Sistemas de banco de dados, mantivemos o estilo gs riores, enquanto evoluímos o conteudo e a organização, a al das edições ante fim de refletir as mudanças que estão ocorrendo na form. como os bancos de dados são projetados, gerenciados e uti lizados, Tambem levamos em consideração as tendencias no ensino dos conceitos de banco de dados e fiz os adap. tações para facilitar essas tendências, onde for apropriado. Antes de descrevermos o contendo do livro com detalhes, destacamos algumas das caracteristicas da quinta edição. * Cobertura da SQL mais cedo. Muitos instrutores util im SQL como um componente-chave dos projeto semestre (veja alguns exemplos de projetos em nos site, www db-book com). Para dar aos alunos bastante tempo para os projetos, principalmente para universida- des e colégios em sistema de trimestre, é essencia 1 SQL o mais cedo possível. Com isso em mente, real mos várias mudanças na organização: 1. Adiamos à apresentação do modelo entidade-rela cionamento para a Parte 2. Agilizamos a introdução do modelo relacional, dei, xando à cobertura do calculo relacional para o Ca- pitulo 5, mantendo a cobertura da dlgebra relacio- nal no Capítulo 2. Dedicamos dois capítulos iniciais à SQL. O Capítulo: 3 abrange os recursos básicos da SQL, incluindo de-| finição e manipulação de dados. O Capitulo 4 abor- da recursos mais avançados, incluindo restrições de. = q (capitlo ). O Capítulo 1 oferece uma vi ES dedos Eslicamoncomo concede um em e dados se desenvolve, quas são os recursos do sitemas de Banco de dados que um site Sorde banco de dados az para o usuário e como ea de banco de dados realiza sua interface co Alemas operacionais. Tambem introduzimos uma apl ão de banco de dados de exemplo: uma instituição henera consistindo em varias filas de banco. Esse exemplo é utilizado por todo o livro O capítulo é moti dar, histórico e explicativo por nature: + Pane Bancos de dados relacionais (Catulo de 29,0 Capo 2 introduz o modelo relacional de dados, Inlindo conceitos básicos e tambem a lgebra rela nal O capúo também oferece uma rápida introdução ho restrições de imegridade Os Captulos 3 e 4 focal amami invente das linguagens relacionais onenta asa usuário: SQL. Enquantoo Ca introdução básica à SQL, o Capítulo 4 descrev mis avançados da SQL. incluindo como real fe nre ua linguagem de programação e uma SQL Bl ão benco de dados. O Capínlo 5 aborda ou cb nais incicinco o cesto raso nal. QUE e Datalog Oscapínos desta pare descrevem a manipulação de ds consas, atualizações, inserções e exclusões as BRR q tem projto de esquema fo oereido. As questões de projeto de esquema são deixadas para a Par tez Pare: Projeto de banco de dados (Capútulosde 648) “Opa 6 olrece uma visão geral do processo de de banco de dados, com à enfase principal no o de banco de dados usando o modelo de dados acionamento. O modelo de dados entida. mento oferece uma visto de ali nível das E de projeto de banco de dados e dos problemas. omiramos na capta da semântica de aplicações ulo 3 oferece uma demiro das restrições de um modelo de dados. A o de diagrama de classes da UML também é abor da nesse capítulo, O Capítulo 7 apresenta a teoria do projeto de banco relacional, À teoria das dependências funcio- normalização é abordada, enfatizando a mo onhecimento intuíivo de cada forma normal o começa com uma visão geral do projeto re- Conta com um conhecimento intuitivo da im- Prefácio xi inicial nas Seções de 7.1 a 7.3, sem perda da continuida- de Os instrutores que utilizam o capítulo inteiro se be- neficiarão com os alunos tendo um bom conhecimento dos conceitos de normalização, a fim de motivar alguns dos conceitos desafiadores da teoria da dependência funcional O Capitulo & aborda o projeto e o desenvolvim de aplicações. Esse capítulo enfatiza a construção de aplicações de banco de dados com interfaces bascadas. na Web. Alem disso, o capítulo aborda a segurança da aplicação Parte 3 Bancos de dados bascados em objeto e XML Capítulos e 10). O Capítulo 9 aborda os bancos de da- dos baseados em objeto. O capitulo descreve o modelo de dados objeto-relacional, que estende o modelo de da- dos relacional para dar suporte aos tipos de dados co plexos, herança de tipo e identidade de objeto. O capitu- lo também descreve o acesso ao banco de dados por meio de linguagens de programação orientadasa objeto. O Capitulo 10 aborda padrão XML para representa cão de dados, cujo uso está cada vez mator na troca e ar. namento de dados complexos. O capitulo também descreve as linguagens de consulta para XML Parte 4: Armazenamento e consulta de dados (Captu los de 1 à 14).O Capúulo 1 trata da estrutura de dis- «o, arquivo e do sistema de arquivos. Diversas tecnicas. de acesso aos dados são apresentadas no Capítulo 12, in- cluindo hashinge indices de arvore Be. Os Capítulos 13 € 14 enfatizam algoritmos de avaliação de consulta e oi mização de consulia. Esses capstulos oferecem um co- nhecimento dos detalhes internos dos componentes de armazenamento e recuperação de um banco de dados Parte 5: Gerenciamento de transações (Capítulos de 15 a 17), 0 Capítulo 15 focaliza os fundamentos do sistema. de processamento de transações, incluindo atomícida- de, consistência, isolamento e durabilidade da transa ão, além da noção de seriação. O Capítulo 16 focaliza o controle de concorrência e apresenta diversas técnicas para garantir a seriação, cluindo bloqueio, timestamping e técnicas otimistas (validação). O capítulo também aborda questões de im- passe O Capítulo 17 aborda as principais técnicas para ga- rantir à execução correta da transação, apesar de panes do sistema e falhas de disco. Essas técnicas incluem logs, pontos de verificação e dumps de banco de dados. Parte 6: Data mining € recuperação de informações (Capítulos 18 € 19). O Capítulo 18 apresenta o conceito “de um data warehouse e explica o dat cessamento analítico asQL1909 19 descreve técnicas de recuperação de informações “de Banco de Dados “ paraconsula de dados textuais, incluindo técnicas ba- “ seadas em hiperlink utilizadas nos mecanismos de pes aqui da Web A Parte 6 utiliza os conceitos de modelagem e hngua- gem das Pares 12 ms não depende ds Pres 3.4 5. Portanto, a pode ser laiimente incorporada em um caso que foca SQL e projeto de banco de dados. + Pare 7: Aquitturade siema de banco de dados (Cs tdos de 20 22, O Capo 0 aborda a aut de sistemas de computador e descreve a inuência do “iema de computador bico sobre o tema de banco de dado. Dicuimos sitema cetalzados svemas cliee-servdo, arquiteturas para e duda eu DE a paro, O Coptalo 2, abr bancos de dados pros. ex poa diversas décicas de pardo incluindo pa slelamo de ES, parallamo imerconsula e rc at, e paseao introperçã € ima-opeação. O copío mbémdecreveo projeto desisema paso O Capo 23 borda os temas de ancs de dados diriutdos, retornando às questões de projeto de bom ode dados prenciameno de Lansoçes e avaliação e otimização de consulta, no coteto ds aneis de da dos ibid O capo tambem aborda questtsd - dipomiiade desistem durante falhas e dexrve o sitema de dito LDAP. * Pare: Outros ópco (Captalos de 2325) O Cat tao 23 abordo ben desempenho autede desempenho, padronização e migração deapicações de aims legados O Capino 24 aborda os pos de dados avançados enovasaplicações incluindo dados tempo espaciais e grogratico, dados de multimidia ques tis de gerenciamento de buncos de dados mine pesso Finalmene, o Catulo 25 rt do procecamem avançado de tramações, Os topic abortado no tao incluem montores de processamento detento unos de trabalho tramacionas comer cleo, sistemas de transação de at desempenho asia do transação em tempo ea, transações de longa dar é Eeenciament de rações em sema de nula bancos de dados. E * Pare Estados de as (Capas de 26 29) Niva Pe, apresentamos estudos des de qua pis ipi sistemas de banco de dados. incl Por BESQL, Oral, IBM DE Mico 5 enes por “aptos eboçam os recursos excios de cao as less sistema descrevendo sa estu meo E página Web pras soluço Poníveis apenas ELSEviR ameriores são usadas em sistemas reais. Eles tambem, abordam vários aspectos práticos interessantes no proje to de sistemas res. + Apendices on-line. Embora a maioria das aplicações qe banco de dados utilize o modelo relacional ou o modelo objet-relacional os modelos de dados de rede e hier quico ainda estão em uso em algumas aplicações leg das, Para o benefício dos leitores que desejam aprender Sabre esses modelos de dados, oferecemos apendico. descrevendo os modelos de dados de rede e hierárquio nos Apêndices À e B, respectivamente; os apêndices e, ão disponíveis apenas on-line O Apendice C descreve o projeto avançado de hancu de dados relaciona, incluindo a teoria de dependenc, de multiplos valores, dependências de junção e as for mas normais de junção de projeto e chave de dor Esse apêndice benefícia aqueles individuos que deseam estudar teoria do projeto de banco de dados ela com mais detalhes e mstrutores que queiram fazer io em seus cursos. Esse apêndice tambem está dispontl apenas on-ime A quinta edição A produção desta quinta edição levou em consideração os mos comentarios e sugestões que recebemos com res quam eionavamos na Yale University Leigh Univers nossa analise das direções para ond er de Bombaim. logia de banco de dados esta evoluindo, dimento básico foi reescrever o material ada capitulo atualizar o material mais antigo, acrescen sobre desenvolvimentos recentes na tecnologia disc de banco de dados melhorar as descrições dos topicos qu os alunos acharam difíceis de entender. Assim como 1; “quarta edição, cada caprulo possui uma lísta de termos a rever os principais * ho capítulo. A maioria dos capútul revisão que poderá ajudar os Jeito fambem possui uma seção de lerramentas ao final do cap tulo, que oferece informações sobre ferramentas de sofiu assunto do capitulo. Também acrescen novos exerícios e referências atualizadas, Na quinta edição, dividimos os exercícios em dois con. os práticos e exercicios, As soluções para * exercicios práticos estão disponíveis publicam bo ivo. Os alunos são encorajados a solucio Práticos por conta própria, é depois usar “a página We para comparar com suas pro: 1 soluções dos outros exereícios estão dis Para 0 instrutores (veja em “Nota ao ins. “Seguir as informações sobre como ober as solu e 1 INTRODUÇÃO 1 Aplicações do sistema de banco de dados 1 Finalidade dos sistemas de banco de dados 2 Visão dos dados 4 Linguagens de banco de dados 6 Bancos de dados relacionais 7 Projeto de um banco de dados 9 Bancos de dados semi-estruturados e baseados em objeto Armazenamento e consulta de dados 13 Gerenciamento de transação 14 Análise e mineração de dados 15 Arquitetura do banco de dados 16 Usuários e administradores de banco de dados 16 História dos sistemas de banco de dados 19 Resumo 20 Termos de revisão 21 Exercícios práticos 21 Exercícios 21 Notas bibliográficas 21 Ferramentas 22 Parte 1 Bancos de dados relacionais capirutoZ MODELO RELACIONAL 25 Estrutura dos bancos de dados relacionais 25 Operações fundamentais da álgebra relacional 31 Outras operações de álgebra relacional 37 Operações estendidas de álgebra relacional 41 Valores nulos 45 Modificação do banco de dados 46 Resumo Termos de revisão 48) Exercícios práticos 48 Aspectos de projeto de entidade-relacionamento 146 Conjuntos de entidades fracos 150, Recursos de E-R estendidos 152 a Projeto de banco de dados para instituição bancária. Redução aos esquemas relacionais Outros aspectos do projeto de banco de dados — 166 A Unified Modeling Language (UML)** 168 Resumo 169 Termos de revisão 170 Exercícios práticos 171 Exercícios 173 Notas bibliográficas 174 Ferramentas 174 capiruLo 7 PROJETO DE BANCO DE DADOS RELACIONAL 175 Caracteristicas de um bom projeto relacional 175 Domínios atômicos e primeira forma normal 178 Decomposição usando dependências funcionais 180 Teoria da dependência funcional 185 Decomposição usando dependências funcionais 191 Decomposição usando dependências de valores múltiplos Mais formas normais 198 Processo de projeto de banco de dados 199 Modelando dados temporais 201 Resumo 202 Termos de revisão 203 Exercícios práticos 203 Exercícios 204 Notas bibliográficas 206 capiruLo8 PROJETO DE DESENVOLVIMENTO DE APLICAÇÃO 207 Interfaces de usuário e ferramentas 207 Interfaces Web para bancos de dados — 209 Fundamentos da Web 210 Servietse ISP 214 Montando grandes aplicações Web 217 Triggers 219 Autorização em SQL 223 Segurança da aplicação 229 Resumo 233 Termos de revisão 234 Exercícios práticos 234 Exercícios 235 Sugestões de projeto 236 Notas bibliográficas 238 Ferramentas 238 de dados baseados em objeto e XIVIL 9 BANCOS DE DADOS BASEADOS EM OBJETO 241 Visão geral 241 Tipos de dados complexos 242 Tipos estruturados e herança em SQL 243 detabela 246 tar o pah array e multiconjunto na SQL 247 Sumário 195, RREO... xviil Sistema de Banco de Dados janasaL 250 detida de objeto e tios de rsfrência na 0 Rm prenoor 24 o Vosonven de programação peste a de racional debito 257 Orientação a objeto ver Resumo 258 Termos de revisão 258 Exercícios práticos 259 Exercícios. Notas bibliográficas 260 Ferramentas 261 carmo 1O XML 263 Motivação 263 Estrutura de dados XML 266 Esquema do documento XML 268 Consulta e transformação 272 Interfaces de programa de aplicação pare XML 279 Armazenamento de dados XML 280 Aplicações XML 284 Resumo 266 Termos de revisão 267 Exercícios práticos 268 Exercícios 288 Notas bibliográficas 289 Ferramentas 289 Parte 4 Armazenamento e consulta de dados carítuso 1 ARMAZENAMENTO E ESTRUTURA DE ARQUIVOS 293 Visão geral do meio de armazenamento físico. 293 Discos magnéticos — 295 RAID. 259 Armazenamento tercúário 305 Acesso do armazenamento 306 Organização de arquivo — 309 Organização de registros em arquivos 312 Armazenamento em diconário de dados 315 Resumo 316 ] Termos de revisão 316 | Exercicios práticos 317 Exercicios “318 Notas bibliográficas 318 capínuto 12 INDEXAÇÃO E HASHING 321 Conceitos básicos 321 Índices ordenados 22 Arquios de indice de árvore" 227 Arquivos de indice de ve 8 335 Acesso por nave múliia” 336 Mieshingestáico 7339 Hera dnánico 5a omparção de indexação ordenada e Índices de mapa des Sgt een 347 Definição de indice na SQL “351 ELSEVIER xx Sistema de Banco de Dados Tratamento de impasse 443 Operações de inserção e exclusão 446 Níveis de consistência fracos Concorrência em estruturas de indice** 450 Resumo 452 Termos de revisão 453 Exercícios práticos asa | Exercícios As6 Notas bibliográficas 457) capiruto 17 SISTEMA DE RECUPERAÇÃO 459 Classificação das falhas ass Estrutura de armazenamento 460 Recuperação e atomicidade 462 Recuperação baseada em log 463 Recuperação com transações concorrentes 468 Gerenciamento de buffer 470 Falha com perda de armazenamento não volátil Técnicas de recuperação avançadas* 472 Sistemas de backup remoto 477 Resumo 479 Termos de revisão 480 Exercícios práticos 481 Exercícios 481 Notas bibliográficas 482 am Parte 6 Mineração de dados e recuperação de informações cavtruLo 18 MINERAÇÃO E ANÁLISE DE DADOS 485 Sistemas de apoio à decisão 485 Análise de dados e OLAP 486 Depósito de dados 494 Mineração de dados — 496 Resumo 505 Termos de revisão 505 Exercícios práticos 506 Exercícios 506 Notas bibliográficas — 507 Ferramentas 508 capiruco 19 RECUPERAÇÃO DE INFORMAÇÕES 509 Visão geral 509 clasificação de relevância usando termos 10 Relevância usando hiperlnks 12 Sinônimos, homônimo e ontologias 515 ideação de documents 516 edindo a eficácia da recuperação 516 Mecanismos de burra 517 ecuperação de informações dados estruturados Diretórios 519 E da ri io Resumo 520 Termosderevisão 521 Eerccios práticos. 521 Exercídos 522 Notas bibliográficas 522 Ferramentas” 523 capinuLo 23 Sumário Arquitetura do sistema carítuLo 20 ARQUITETURAS DE SISTEMA DE BANCO DE DADOS s27 Arquiteturas centralizadas e clionte-servidor 527 Arquiteturas de sistema servidor 529 Sistemas paralelos 532 Sistemas distribuídos 537 Tipos de redes 539 Resumo 541 Termos de revisão 542 Exercícios práticos 542 Exercícios 543 Notas bibliográficas 543 BANCOS DE DADOS PARALELOS 545 Introdução sas Paralelismo de EIS 545 Paralelismo interconsulta 548 Paralelismo intraconsulta 549 Paralelismo intra-operação 550 Paralelismo interoperações 555 Projeto de sistemas paralelos 556 Resumo 557 Termos de revisão 558 Exercícios práticos 558] Exercícios 559 Notas bibliográficas 559 BANCOS DE DADOS DISTRIBUÍDOS 561 Bancos de dados homogêneos e heterogêneos — 561 Armazenamento de dados distribuído — 562 Transações distribuídas 564 Protocolos commit 565 Controle de concorrência em bancos de dados distribuídos 569 Disponibilidade 575 Processamento de consulta distribuído 578, Bancos de dados distribuídos heterogêneos 580 Sistemas de diretório 581 Resumo 585 Termos de revisão 586 Exercícios práticos — 587] Exercícios 588 Notas bibliográficas 588 Outros tópicos DESENVOLVIMENTO AVANÇADO DE APLICAÇÕES 593 Ajuste de desempenho 593 Benchmarks de desempenho 600 Padronização Migração de aplicações — 605 Resumo 606 Termos de revisão 606 práticos 607 oi