Sistemas de Banco de Dados [7 ed.]
 8543025001, 9788543025001

  • Commentary
  • t.me/AnonLivros
  • 1 2 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

SISTEMAS DE BANCO DE DADOS ■ WWÂ / / / í l

7- edição

5> Pearson

/H

W Ak VA\

QUER SEP MAIS LIVRE? Aprenda a Pesquisar e Fazer Ebooks | Armazene arquivos de forma segura

APRENDA A FAZER EBOOKS

HTTPS://ODYSEE.COM

Seja a partir de Livro ou PDF escaneado Construa PDF pesquisável ou Epub Qualidade Profissional

Plataforma descentralizada para Reprodução e Hospedagem de arquivos Garantida por BlockChain

Rápido e Eficiente

Prática como Youtube Descentralizada e resiliente como torrent Facilitadora de transações financeiras como Bitcoin

t.me/AnonLivros

Acervo em Português Mais de 70 mil ebooks no Telegram t.me/PolemicBooks Mais de 2 mil cursos em vídeo t.me/oAcervoCursos

HTTPS://LIBGEN.IS HTTPSy/Z-LIB.ORG Portais de Ebooks e artigos científicos Mais de 2 milhões de documentos

Cursos via streaming no Telegram t.me/LivreSaber

CONTRA A PROPRIEDADE INTELECTUAL A fundamentação Teórica em favor do Conhecimento Livre https://www.mises.org.br/Ebook.aspx?id=29

t.me/AnonLivros

SISTEMAS DE BANCO DE DADOS 7Q ediçõo

SISTEMAS DE BANCO DE DADOS 7Q ediçõo

Ramez Elmasri Departamento de Ciência da Computação e Engenharia

Universidade do Texas em Arlington

Shamkant B. Navathe Faculdade de Computação Georgia Institute of Technology

Tradução

Daniel Vieira Revisão técnica

Enzo Seraphim Thatyana F. Piola Seraphim Professores Doutores Associados do Instituto de

Engenharia de Sistemas e Tecnologias da Informação Universidade Federal de Itajubá

Pearson

© 2016. 20] 1.2007 tn Ramez Elmasri and Shamkant B. Navalhe

©2019 by Pcjimmi Education do Brasil lida. Iodos os direitos rescoados Neuliuiiu parte desta publicação poderá ser reproduzida

ou transmitida de qualquer maxluuu por qualquer outro meio, eletrônico ou mecânico, incluindo fbtocõpra. grasação ou qualquer outro tipo de sistema de armazenamento e transmissão dc

informação. sem prétii inioriz.tçáo por escrito da Pearson Education do Brasil.

VlCE-RESlDENTE DL EDUCAÇÃO GlRLXIE DL PRODClOs

SUPOMSOftA DE PRODCÇÀO LDIIOUAL

COORDLXADOK DE PRODUÇÃO LDtlOUAL EDITORA DETEXIO

ElMtOK.SS ASSISTEX I ES ESIACIÁRK)

PlEPARAÇÃO Revisão

Capa D1ACRAMAÇÃO L PROJEIO CRÁFICO

Juliano Costa Alexandre Mattioli Silvana Afonso Jean Xavier Sabrina Levensteinas Karina Ono e Mariana Rodrigues Rodrigo Orsi Renata Siqueira Campos Maria AiLo Natália Gaio «sobre o projeto original de Micha PasvIrtzki/lènaCorbis? Casa de Idéias

Dados Internacionais de Catalogação na Publicação (CIP) (Câmara BrasHe-ra do Livro. SP. Brasil)

Elmasri. Ran-ez

Sistemas de oanco de dados / Ramez Elmasri, Snamleant B Navatne; tradução Daniel Vieira; revisão têcn ca F-vo Seraphim, TFatyana de Faria Pioa Seraphim. - 7. ed — São Paulo : Pearson

Education do Brasi. 2018.

Título ongral: Fundamentals of database sys’ems

ISBN 978-85-430-2500-1

1 Banco de dados l Navathe, Snamkant B II Seracbirr. Enzo. HI.

* Seraph ”, Thatyana de Faria P>o4a. IV. Título.

CDD-005.75

18-16099

índice para catálogo sistemático:

1. Barco de dados: Sistemas: Processamento de dados 005.75 2. Barco de cados . Fundamentes : Processamento de cacos CO5.75 IoIanda Rodrigues Bode - BiDÜotecâria - CRB-8/10014

2018 Direitos exclusixos cedidos à Pearson Education do Brasil Lida., nina empresa do gnipo Pearson Education

Avenida Santa Marina. 1195 CEP 05056-001 - São Paulo - SP - Brasil Eone: 11 2178-8609 e 11 2178-8655 pea rsonuniversidadesia pearson.com

Para Amalia e para Ramy, Riyad, Katrina e Thomas R.E.

Para minha esposa Aruna por seu amor, apoio e compreensão, e para Rohan, Maya e Ayush, por trazer tanta alegria às nossas vidas S.B.N.

Este livro é uma introdução aos conceitos fundamentais necessários para projetar, usar e implementar sistemas de banco de dados e aplicações de banco de dados. Nossa apresentação enfatiza os fundamentos da modelagem e projeto de banco de dados, as linguagens e modelos fornecidos pelos sistemas de gerenciamento de banco de dados e as técnicas de implementação do sistema de banco de dados. O propósito do livro é que ele seja usado como um livro-texto para um curso de um ou dois semestres sobre sistemas de banco de dados nos níveis técnico, graduação ou pós-graduação, e como um livro de referência. Nosso objetivo é oferecer uma apresentação profunda e atualizada dos aspectos mais importantes dos sistemas c aplicações de banco de dados, bem como das tecnologias relacionadas. Consideramos que os leitores estejam acostumados aos conceitos elementares de programação e estruturação de dados, e que tenham tido algum contato com os fundamentos de organização de computadores.

Novidades nesta edição Os recursos-chave a seguir foram acrescentados na sétima edição:

■ Uma reorganização da ordem dos capítulos (baseada em um estudo feito pelos professores que utilizam o livro); porém, o livro ainda está organizado de modo que o professor individual possa decidir entre seguir a nova ordenação ou escolher uma ordenação diferente (por exemplo, seguir a ordem dos capítulos da sexta edição) ao apresentar o material. ■ Há dois capítulos novos sobre os avanços recentes em sistemas de banco de dados e processamento big data; um capítulo novo (Capítulo 24) aborda uma introdu­ ção à classe mais nova de sistemas de banco de dados, conhecidos como bancos

VIII Sistemas de banco de dados

de dados NOSQL, e o outro capítulo novo (Capítulo 25) aborda as tecnologias para processamento de big data, incluindo MapReduce e Hadoop. ■ O capítulo sobre processamento e otimização de consulta foi expandido e reor­ ganizado em dois capítulos; o Capítulo 18 é focado nas estratégias e algoritmos para processamento de consulta, enquanto o Capítulo 19 aborda as técnicas de otimização de consulta. ■ Um segundo exemplo do banco de dados UNIVERSIDADE foi acrescentado aos primeiros capítulos (capítulos 3 a 8), além do nosso exemplo de banco de dados EMPRESA, das edições anteriores. ■ Muitos dos capítulos individuais foram atualizados de várias formas, para incluir técnicas e métodos mais recentes; em vez de discutir essas melhorias aqui, vamos descrevê-las mais adiante neste prefácio, quando discutirmos sobre a organização da sétima edição.

A seguir, estão os principais recursos do livro: ■ Uma organização autocontida e flexível, que pode ser ajustada às necessidades individuais; em particular, os capítulos podem ser usados em diferentes ordens, dependendo da preferência do professor. ■ Um diagrama de dependência (mostrado mais adiante neste prefácio) para indicar quais capítulos dependem de capítulos anteriores; isso poderá orientar o professor que queira ajustar a ordem de apresentação dos capítulos. ■ A Sala Virtual inclui uma coleção de suplementos, incluindo um rico conjunto de materiais para professores e alunos, como slides do PowerPoint, figuras do texto e um guia do professor com soluções.

Organização e conteúdo da sétima edição Há algumas mudanças organizacionais na sétima edição, bem como melhorias nos capítulos individuais. O livro agora é dividido em doze partes, da seguinte forma:

■ /\ Parte 1 (capítulos 1 e 2) descreve os conceitos introdutórios básicos, necessá­ rios para uma boa compreensão dos modelos, sistemas e linguagens de banco de dados. Os capítulos 1 e 2 apresentam bancos de dados, usuários típicos e conceitos de SGBD, terminologia e arquitetura, bem como uma discussão do progresso das tecnologias de banco de dados com o passar do tempo e uma breve história dos modelos de dados. Esses capítulos têm sido usados para introduzir algumas das novas tecnologias, como sistemas NOSQL. ■

Parte 2 (capítulos 3 e 4) inclui a apresentação sobre modelagem de entidade-relacionamento e projeto de banco de dados; contudo, é importante observar que os professores podem utilizar os capítulos sobre o modelo relacionai (capítulos 5 a 8) antes dos capítulos 3 e 4 se esta for sua ordem de apresentação preferida para o material do curso. No Capítulo 3, apresentamos os conceitos do modelo Entidade-Rclacionamento (ER) e dos diagramas ER, usando-os para ilustrar o projeto conceituai do banco de dados. O Capítulo 4 mostra como o modelo ER básico pode ser estendido a fim de incorporar outros conceitos de modelagem, como subclasses, especialização, generalização, tipos (categorias) de união e herança, levando ao modelo de dados Enhanced-ER (EER) e aos diagramas EER. A notação para os diagramas de classe da UML também é apresentada nos Capítulos 7 e 8 como um modelo alternativo e notação diagramática para os diagramas ER/EER.

■ A Parte 3 (capítulos 5 a 9) inclui uma apresentação detalhada sobre os bancos de dados relacionais e SQL, com material novo nos capítulos sobre SQL, abordando algumas construções SQL que não estavam na edição anterior. O Capítulo 5 descreve

Prefácio

o modelo relacionai básico, suas restrições de integridade e operações de atualização. O Capítulo 6 descreve algumas das partes básicas do padrão SQL para bancos de dados relacionais, incluindo definição de dados, operações de modificação de dados e consultas SQL simples. O Capítulo 7 apresenta consultas SQL mais complexas, bem como os conceitos SQL de gatilhos, asserções, visões e modificação de esquema. O Capítulo 8 descreve as operações formais da álgebra relacionai e introduz o cálculo relacionai. O material sobre SQL (capítulos 6 e 7) é apresentado antes da nossa apresentação sobre álgebra relacionai e cálculo, no Capítulo 8, para permitir que os professores iniciem projetos SQL mais no começo do curso, se desejarem (é possível abordar o Capítulo 8 antes dos capítulos 6 e 7 se o professor preferir essa ordem). O capítulo final da Parte 3, Capítulo 9, aborda o mapeamento ER e EER-relacional, algoritmos que podem ser usados para projetar um esquema de banco de dados relacionai a partir de um esquema conceituai ER/EER. ■ A Parte 4 (capítulos 10 e 11) são os capítulos referentes às técnicas de progra­ mação de banco de dados; esses capítulos podem ser designados como materiais de leitura e aumentados com materiais na linguagem de programação específica usada no curso para projetos de programação (grande parte dessa documentação pode ser facilmente encontrada na web). O Capítulo 10 aborda tópicos tradicio­ nais de programação SQL, como SQL embutida, SQL dinâmica, ODBC, SQLJ, JDBC e SQL/CLI. O Capítulo 11 apresenta a programação de banco de dados na web, usando a linguagem de script PHP em nossos exemplos, e inclui material novo que discute tecnologias Java para a programação de banco de dados da web. ■ A Parte 5 (capítulos 12 e 13) aborda o material atualizado sobre bancos de dados objeto-relacional e orientados a objeto (Capítulo 12) e XML (Capítulo 13); ambos os capítulos agora incluem uma apresentação explicando como o padrão SQL incorpora conceitos de objeto e de XML nas versões mais recentes do padrão SQL. O Capítulo 12 primeiro introduz os conceitos para bancos de dados de objeto e depois mostra como eles foram incorporados no padrão SQL para adicionar recursos de objeto a sistemas de banco de dados relacionais. Em seguida, ele aborda o padrão de modelo de objeto ODMG e sua definição de objeto e linguagens de consulta. O Capítulo 13 aborda o modelo e as linguagens XML (extensible Markup Language) e discute como a XML está relacionada aos sistemas de banco de dados. Ele apresenta conceitos c linguagens XML e compara o modelo XML com os modelos tradicionais de banco de dados. Mostramos também como os dados podem ser convertidos entre a XML e representações relacionais, e os comandos SQL para extrair documentos XML de tabelas relacionais. ■ A Parte 6 (capítulos 14 e 15) são os capítulos de normalização e teoria do projeto relacionai (passamos todos os aspectos formais dos algoritmos de normalização para o Capítulo 15). O Capítulo 14 define as dependências funcionais e as formas normais baseadas em dependências funcionais. O Capítulo 14 também desenvolve uma abordagem de normalização intuitiva passo a passo e inclui as definições de dependências multivaloradas e dependências de junção. O Capítulo 15 aborda a teoria da normalização e os formalismos, teorias e algoritmos desenvolvidos para o projeto de banco de dados relacionai por meio da normalização, incluindo os algoritmos de decomposição relacionais e os algoritmos de síntese relacionai. ■ A Parte 7 (capítulos 16 e 17) contém os capítulos sobre organizações de arquivo em disco (Capítulo 16) e indexação de arquivos de banco de dados (Capítulo 17). O Capítulo 16 descreve os principais métodos de organização de arquivos de registros em disco, incluindo arquivos ordenados (classificados), desordenados (heap) e de hash; nele, são abordadas as técnicas de hashing estático e dinâmico. O Capítulo 16 foi atualizado para incluir material sobre estratégias de gerencia­ mento de buffer para SGBDs, além de uma visão geral dos novos dispositivos de

IX

X

Sistemas de banco de dados

armazenamento e padrões para arquivos e arquiteturas de armazenamento moder­ nas. O Capítulo 17 descreve as técnicas de indexação para arquivos, incluindo estruturas de dados em B-trees e B’-trees e arquivos de grade, e foi atualizado com novos exemplos e uma discussão avançada sobre indexação, incluindo como escolher índices apropriados e a criação de índices durante o projeto físico. ■ A Parte 8 (capítulos 18 e 19) inclui os capítulos sobre algoritmos de processa­ mento de consulta (Capítulo 18) e técnicas de otimização (Capítulo 19); esses dois capítulos foram atualizados e reorganizados a partir de um único capítulo, nas edições anteriores, que incluía os dois tópicos; eles também incluem algumas técnicas mais recentes utilizadas em SGBDs comerciais. O Capítulo 18 apresenta algoritmos para a pesquisa de registros em arquivos de disco e para a junção de registros a partir de dois arquivos (tabelas), além de outras operações relacionais. O Capítulo 18 também possui material novo, incluindo uma discussão sobre operações de semijunção (semi-join) e antijunção (anti-join), com exemplos de como elas são usadas no processamento de consultas, bem como uma discussão das técnicas para estimativa de seletividade. O Capítulo 19 aborda as técnicas para otimização de consulta usando a estimativa de custo e regras heurísticas; ele inclui material novo sobre otimização de subconsulta aninhada, uso de histogramas, otimização física e métodos de ordenação de junção e otimização de consultas típicas em data warehouses. ■ A Parte 9 (capítulos 20,21 e 22) aborda os conceitos de processamento de tran­ sação; controle de concorrência; e recuperação do banco de dados contra falhas. Esses capítulos foram atualizados para incluir algumas das técnicas mais recentes utilizadas em alguns SGBDs comerciais e open source. O Capítulo 20 apresenta as técnicas necessárias para os sistemas de processamento de transação e define os conceitos de facilidade de recuperação e serialização de escalonamentos; ele contém uma nova seção sobre políticas de substituição de buffer para SGBDs e uma nova discussão sobre o conceito de isolamento de snapshot. O Capítulo 21 oferece uma visão geral de diversos tipos de protocolos de controle de concor­ rência, com foco no bloqueio em duas fases. Também discutimos as técnicas de ordenação de timestamp e controle de concorrência otimista, além do bloqueio de detalhamento múltiplo. O Capítulo 21 inclui uma nova apresentação dos métodos de controle de concorrência baseados no conceito de isolamento de snapshot. Por fim, o Capítulo 22 focaliza os protocolos de recuperação de banco de dados e oferece uma visão geral dos conceitos e técnicas usados na recuperação. ■ A Parte 10 (capítulos 23,24 e 25) inclui o capítulo sobre bancos de dados distri­ buídos (Capítulo 23) e mais dois capítulos novos sobre sistemas de armazenamento NOSQL para big data (Capítulo 24) e tecnologias big data baseadas em Hadoop e .MapReduce (Capítulo 25). O Capítulo 23 oferece uma introdução aos concei­ tos de bancos de dados distribuídos, incluindo disponibilidade e escalabilidade, replicação e fragmentação de dados, manutenção de consistência de dados entre as réplicas e muitos outros conceitos e técnicas relacionadas. No Capítulo 24, os sistemas NOSQL são divididos em quatro categorias gerais, com um sistema de exemplo utilizado em cada categoria; também discutimos e comparamos modelos de dados, operações e estratégias de replicação/distribuição/escalabilidade de cada tipo de sistema NOSQL. No Capítulo 25, introduzimos o modelo de programação MapReduce para o processamento distribuído de big data,e depois apresentamos o sistema Hadoop e o HDFS (Hadoop Distributed File System), além das interfaces de alto nível Pig e Hive e da arquitetura YARN. ■ A Parte 11 (capítulos de 26 a 29) é intitulada “Modelos, sistemas e aplicações de bancos de dados avançados”, e inclui o seguinte material: o Capítulo 26 introduz vários modelos de dados avançados, incluindo bancos de dados ativos

Prefácio XI e triggers (Seção 26.1), bancos de dados temporais (Seção 26.2), bancos de dados espaciais (Seção 26.3), bancos de dados multimídia (Seção 26.4) e bancos de dados dedutivos (Seção 26.5). O Capítulo 27 discute técnicas de recuperação de informações (RI) e pesquisa na web, incluindo tópicos como RI e pesquisa baseada em palavra-chave, comparação de BD com RI, modelos de recuperação, avaliação de busca e algoritmos de ranqueamento (ranking). O Capítulo 28 é uma introdução à mineração de dados (data mining), que inclui uma visão geral dc diversos métodos de mineração de dados, como mineração por regra dc asso­ ciação, agrupamento, classificação e descoberta de padrão sequencial. O Capítulo 29 é uma visão geral do data warehousing, incluindo tópicos como modelos e operações de data warehousing e o processo de criação de um data warehouse.

■ A Parte 12 (Capítulo 30) inclui apenas um capítulo sobre segurança de banco de dados, que traz uma discussão sobre comandos SQL para o controle de acesso discricionário (GRANT, REVOKE), além dos níveis de segurança obrigatórios e modelos para a inclusão do controle de acesso obrigatório nos bancos de dados relacionais, com uma discussão sobre ameaças, como os ataques de injeção de SQL e outras técnicas e métodos relacionados à segurança e à privacidade dos dados.

O Apêndice A oferece uma série de notações diagramáticas alternativas para exibir um esquema ER ou EER conceituai. Estas podem ser usadas em substituição à notação que usamos, se o professor preferia O Apêndice B oferece alguns parâmetros físicos importantes dos discos. O Apêndice C contém uma visão geral da linguagem de consulta gráfica QBE.

Orientações para o uso deste livro Existem muitas maneiras diferentes de ministrar um curso de banco de dados. Os capítulos das partes 1 a 7 podem ser usados em um curso introdutório sobre sistemas de banco dc dados, na ordem cm que aparecem ou na ordem preferida dc cada professor. Capítulos c seções selecionadas podem ser omitidos, e o professor pode acrescentar outros capítulos do restante do livro, dependendo da ênfase do curso. Ao final da seção inicial de muitos dos capítulos do livro, listamos seções que podem ser omitidas sempre que se desejar uma discussão menos detalhada do assunto. Sugerimos incluir até o Capítulo 15 em um curso introdutório de banco de dados e incluir panes selecionadas de outros capítulos, dependendo da base dos alunos e da cobertura desejada. Para uma ênfase cm técnicas dc implementação de sistemas, os capítulos das partes 7,8 c 9 devem ser usados cm substituição a alguns dos capítulos anteriores. Os capítulos 3 e 4, que abordam a modelagem conceituai usando os modelos ER e EER, são importantes para um bom conhecimento conceituai dos bancos dc dados. Porém, eles podem ser parcialmentc abordados, abordados mais adiante cm um curso ou até mesmo omitidos, se a ênfase for sobre a implementação do SGBD. Os capítulos 16 e 17, sobre organização de arquivos e indexação, também podem ser abordados mais cedo, mais tarde ou ainda omitidos, se a ênfase for sobre modelos de banco de dados e linguagens. Para alunos que concluíram um curso sobre orga­ nização dc arquivos, partes desses capítulos podem ser indicadas como material de leitura ou alguns exercícios podem ser passados como revisão para esses conceitos. Se a ênfase de um curso for no projeto de banco de dados, o professor deverá abordar os capítulos 3 e 4 mais cedo, seguidos pela apresentação dos bancos de dados relacionais. Um curso sobre o ciclo de vida completo do projeto e implemen­ tação dc bancos dc dados incluiría o projeto conceituai (capítulos 3 e 4), bancos dc dados relacionais (capítulos 5, 6 e 7), mapeamento do modelo dc dados (Capítulo

XII Sistemas de banco de dados 9), normalização (Capítulo 14) e implementação de programas de aplicação com SQL (Capítulo 10). O Capítulo 11 também deverá ser incluído se a ênfase for na programação e nas aplicações de banco de dados na web. A documentação adicional sobre linguagens de programação e SGBDRs específicos seria necessária. O livro foi escrito de modo que fosse possível abordar tópicos em várias sequências. O gráfico de dependência dos capítulos, a seguir, mostra as principais dependências entre os capítulos. Conforme o diagrama ilustra, é possível começar com vários tópicos diferentes após os dois capítulos introdutórios. Embora o gráfico possa parecer complexo, é importante observar que, se os capítulos forem usados na ordem, as dependências não serão perdidas. O gráfico pode ser consultado por aqueles que desejam usar uma ordem de apresentação alternativa. Para um curso de um semestre baseado neste livro, capítulos selecionados podem ser atribuídos como material de leitura. O livro também pode ser usado para uma sequência de cursos em dois semestres. O primeiro curso. Introdução ao Projeto e Sistemas de Bancos de Dados., em nível de aluno de segundo ano, técnico ou gradua­ ção, pode abranger a maioria dos capítulos de 1 a 15. O segundo curso. Modelos e Técnicas de Implementação de Bancos de Dados, no nível de aluno de graduação ou pós-graduação, pode abranger a maioria dos capítulos de 16 a 30. A sequência de dois semestres também pode ser elaborada de várias outras maneiras, dependendo da preferência de cada professou

1,2 Introdução 3,4 Modelos ER, EER

5 Mndelo

6,7 SQL

Álgebra relacionai '

9 EReERR para relacionai

Z 16,17 í Organização de Karquivo, indexação

I 20,21,22 Transações, CC. recuperação

14,15 FD, DMV, normalização

23,24, 25 BDD, NOSQL Big Data 18,19 Processamento de consulta, otimização

10,11 Programação de BD e web 28,29 x Mineração de dados. Warehousing

30 Segurança de BD

* Agradecimentos É um grande prazer reconhecer o auxílio e as contribuições dc muitos indivíduos para este projeto. Primeiro, gostaríamos de agradecer ao nosso editor Matt Goldstein, por sua orientação, encorajamento e apoio. Gostaríamos dc agradecer o excelente trabalho de Rose Kernan pela gerência de produção, Patricia Daly por uma revisão completa do livro, Martha McMaster por sua diligência na revisão das páginas, e Scott Disanno, cditor-chcfc da equipe de produção. Também queremos agradecer a Kelsey loanes, da Pearson, por sua ajuda constante no projeto,e aos revisores Michael Doherty, Deborah Dunn, Imad Rahal, Karen Davis, Gilliean Lee, Leo Mark, Monisha Pulimood, Hassan Reza, Susan Vrbsky, Li Da Xu, Weining Zhang e Vincent Oria. Ramez Elmasri gostaria de agradecer a Kulsawasd Jitkajornwanich, Vivek Sharma e Surya Swaminathan por sua ajuda na preparação de parte do material do Capítulo 24. Sham Navathe gostaria de agradecer aos seguintes profissionais, que ajudaram na análise crítica e na revisão de diversos tópicos: Dan Forsythe e Satish Damle, pela discussão sobre sistemas de armazenamento; Rafi Ahmed, pela reorganização detalhada do material sobre processamento c otimização dc consulta; Harish Butani, Balaji Palanisamy e Prajakta Kalmegh, por sua ajuda com o material sobre Hadoop e tecnologia MapReduce; Vic Ghorpadcy c Nenad Jukic, pela revisão do material sobre data warehousing; e, por fim, Frank Rietta, pelas técnicas mais recentes em segurança de banco de dados, Kunal Malhotra, por diversas discussões, e Saurav Sahay, pelos avanços nos sistemas dc recuperação de informação. Gostaríamos de repetir nossos agradecimentos àqueles que revisaram e contribuí­ ram de alguma maneira para as edições anteriores de Sistemas de Banco de Dados.

■ Primeira edição. Alan Apt (editor), Don Batory, Scott Downing, Dennis Heimbinger, Julia Hodges, Yannis loannidis, Jim Larson, Per-Ake Larson, Dennis McLeod, Rahul Patel, Nicholas Roussopoulos, David Stemple, Michael Stonebrakcg Frank Tompa c Kyu-Young Whang. ■ Segunda edição. Dan Joraanstad (editor), Rafi Ahmed, Antonio Albano, David Beech, Jose Blakeley, Panos Chrysanthis, Suzanne Dietrich, Vic Ghorpadey, Goetz Graefe, Eric Hanson, Junguk L. Kim, Roger King, Vram Kouramajian, Vijay * Equipe da 7a edição original, em inglês.

XIV Sistemas de banco de dados Kumar, John Lowther, San jay Manchanda/Foshimi Minoura, Inderpal Mumick, Ed Omiecinski, Girish Pathak, Raghu Ramakrishnan, Ed Robertson, Eugene Sheng, David Stotts, Marianne Winslett e Stan Zdonick. ■ Terceira edição. Maite Suarez-Rivas e Katherine Harutunian (editores); Suzanne Dietrich, Ed Omiecinski, Rafi Ahmed, François Bancilhon, Jose Blakeley, Rick Cartel), Ann Chervenak, David W. Embley, * Henn A. Edinger, Leonidas Fegaras, Dan Forsyth, Farshad Fotouhi, Michael Franklin, Sreejith Gopinath, Goetz Craefe, Richard Hull, Sushil Jajodia, Ramesh K. Kame, Harish Kotbagi, Vijay Kumar,Tarcisio Lima, Ramon A. Mata-Toledo, Jack McCaw, Dennis McLeod, Rokia Missaoui, Magdi Morsi, M. Narayanaswarny, Carlos Ordonez,Joan Peckham, Bern Salzberg, Ming-Chien Shan, J unping Sun, Rajshekhar Sunderraman, Aravindan Veerasamy e Emilia E. Villareal. ■ Quarta edição. Maite Suarez-Rivas, Katherine Harutunian, Daniel Rausch e Juliet Silveri (editores); Phil Bernhard, Zhengxin Chen, Jan Chomicki, Hakan Ferhatosmanoglu, Len Fisk, William Hankley, Ali R. Hurson, Vijay Kumar, Peretz Shoval, Jason T. L. Wang (revisores); Ed Omiecinski (que contribuiu para o Capítulo 27). Os colaboradores da Universidade do Texas em Arlington são Jack Fu, Hyoil Han, Babak Hojabri, Charley Li, Ande Swathi e Steven Wu; os colaboradores da Georgia Tech são Weimin Feng, Dan Forsythe, Angshuman Guin, Abrar Ul-Haque, Bin Liu, Ying Liu, Wanxia Xie e Waigen Yee. ■ Quinta edição. Mart Goldstein e Katherine Harutunian (editores); Michelle Brown, Gillian Hall, Patty Xlahtani, Maite Suarez-Rivas, Bethany Tidd e Joyce Cosentino Wells (da Addison-Wesley); Hani Abu-Salem, Jamal R. Alsabbagh, Ramzi Bualuan, Soon Chung, Sumali Conlon, Hasan Davulcu, James Geller, Le Gruenwald, Larifur Khan, Herman Lam, Byung S. Lee, Donald Sanderson, Jamil Saquer, Costas Tsatsoulis e Jack C. Wileden (revisores); Raj Sunderraman (que contribuiu com os projetos de laboratório); Salman Azar (que contribuiu com alguns exercícios novos); Gaurav Bhatia, Fariborz Farahmand, Ying Liu, Ed Omiecinski, Xalini Polavarapu, Liora Sahar, Saurav Sahay e Wanxia Xie (da Georgia Tech). ■ Sexta edição. Matt Goldstein (editor); Gillian Hall (gerente de produção); Rebecca Greenberg (revisora de texto); Jeff Holcomb, Marilyn Lloyd, Margaret Waples e Chelsea Bell (da Pearson); Rafi Ahmed, Venu Dasigi, Neha Deodhar, Fariborz Farahmand, Hariprasad Kumai; Leo Mark, Ed Omiecinski, Balaji Palanisamy, Nalini Polavarapu, Parimala R. Pranesh, Bharath Rengarajan, Liora Sahar, Saurav Sahay, Narsi Srinivasan c Wanxia Xie.

Por ultimo, mas não menos importante, gostaríamos de agradecer pelo apoio, encorajamento e paciência de nossas famílias. R.E. S.B.N.

Sumário Prefácio............

.VII

Sobre os autores

XXV

PARTE 1 Introdução aos bancos de dados Capítulo 1 Bancos de dados e usuários de banco de dados....................................... 3 1.1 Introdução............................................................................................................................ 4 1.2 Um exemplo......................................................................................................................... 7 1.3 Características da abordagem de banco de dados......................................................................... 9 1.4 Atores em cena.................................................................................................................... 14 1.5 Trabalhadores dos bastidores.................................................................................................. 15 1.6 Vantagens de usar a abordagem de SGBD..................................................................................16 1.7 Uma breve história das aplicações de banco de dados.................................................................. 22 1.8 Quando não usar un SGBD ....................................................................................................25 1.9 Resumo.............................................................................................................................. 26 Perguntas de revisão................................................................................................................... 26 Exercícios.................................................................................................................................. 27 Bibliografia selecionada............................................................................................................... 27 Capítulo 2 Conceitos e arquitetura do sistema de banco de dados........................ 29 2.1 Modelos de dados, esquemas e instâncias................................................................................. 30 2.2 Arquitetura de três esquemas e independência de dados............................................................... 33 2.3 Linguagens e interfaces do banco de dados................................................................................ 36 2.4 O ambiente do sistema de banco de dados ................................................................................ 39 2.5 Arquiteturas centralizadas e diente/servidor para SGBDs ............................................................. 43 2.6 Classificação dos sistemas gerenciadores de banco de dados ........................................................ 47 2.7 Resumo.............................................................................................................................. 50 Perguntas de revisão................................................................................................................... 51

XVI

Sistemas de banco de dados

Exerdcios..................................................................................................................................52 Bibliografia selecionada............................................................................................................... 52

PARTE 2 Modelagem conceituai e projeto de banco de dados Capitulo 3 Modelagem de dados usando o modelo Entidade-Relacionamento (ER)................................................................. 55 3.1 Usando modelos de dados conceituais de alto nível para o projeto do banco de dados ....................... 56 32 Exemplo de aplicação de banco de dados..................................................................................58 3.3 Tipos de entidade, conjuntos de entidades, atributos e chaves........................................................ 59 3.4 Tipos e conjuntos de relacionamentos, papéis e restrições estruturais...............................................66 3.5 Tipos de entidade fraca.......................................................................................................... 72 3.6 Refinando o projeto ER para o banco de dados EMPRESA............................................................. 73 3.7 Diagramas ER, convenções de nomes e questões de projeto .......................................................... 74 3.8 Exemplo de outra notação: diagramas de ciasses UML ................................................................. 79 3.9 Tipos de relacionamento de grau maior que dois......................................................................... 81 3.10 Outro exemplo: um banco de dados UNIVERSIDADE.................................................................. 84 3.11 Resumo............................................................................................................................. 87 Perguntas de revisão................................................................................................................... 88 Exercícios..................................................................................................................................88 Exerácios de laboratório..............................................................................................................94 Bibliografia selecionada............................................................................................................... 95 Capítulo 4 O modelo Entidade-Relacionamento Estendido (EER)............................ 97 4.1 Subclasses, superclasses e herança........................................................................................... 98 42 Especialização e generalização............................................................................................... 100 4.3 Restrições e caracteristicas das hierarquias de especialização e generalização................................... 102 4.4 Modelagem dos tipos UNIAO usando categorias....................................................................... 108 4.5 Um exemplo de esquema UNIVERSIDADE de EER, opções de projeto e definições formais.................. 110 4.6 Exemplo de outra notação: representando especialização e generalização em diagramas de classes em UML.............................................................................................................. 114 4.7 Conceitos de abstração de dados» representação do conhecimento e ontologia................................. 116 4.8 Resumo............................................................................................................................. 121 Perguntas de revisão................................................................................................................. 122 Exerdcios................................................................................................................................ 123 Exerdcios de laboratório............................................................................................................ 129 Bibliografia selecionada.............................................................................................................. 131

PARTE 3 Modelo de dados relacionai e SQL Capitulo 5 O modelo de dados relacionai e as restrições em bancos de dados relacionais............................................................................. 135 5.1 Conceitos do modelo relacionai........................................................................................... 136 52 Restrições em modelo reladonal e esquemas de bancos de dados reladonais................................... 142 5.3 Operações de atualização, transações e tratamento de violações de restrição................................... 150 5.4 Resumo............................................................................................................................. 153 Perguntas de revisão................................................................................................................. 154 Exerdcios................................................................................................................................ 155 Bibliografia selecionada.............................................................................................................. 158 Capitulo 6 SQL básica................................................................................................ 159 6.1 Definições e tipos de dados em SQL........................................................................................ 161 6.2 Especificando restrições em SQL............................................................................................. 166 6.3 Consultas de recuperação básicas em SQL................................................................................ 169 6.4 Instruções INSERT, DELETE e UPDATE em SQL ........................................................................... 180 6.5 Recursos adicionais da SQL .................................................................................................. 183 6.6 Resumo............................................................................................................................. 184

Sumário XVII

Perguntas de revisão................................................................................................................. 184 Exercícios................................................................................................................................ 184 Bibliografia selecionada..............................................................................................................187 Capítulo 7 Mais SQL: consultas complexas, triggers, views e modificação de esquema............................................................................... 189 7.1 Consultas de recuperação SQL mais complexas......................................................................... 189 7.2 Especificando restrições como asserções e ações como gatilho (triggers) ........................................206 7.3 Visões (views) —tabelas virtuais em SQL................................................................................ 209 7.4 Instruções de alteração de esquema em SQL............................................................................ 213 7.5 Resumo............................................................................................................................. 215 Perguntas de revisão................................................................................................................. 216 Exercícios................................................................................................................................ 217 Bibliografia selecionada..............................................................................................................218

Capítulo 8 Álgebra e cálculo relacionai................................................................... 219 8.1 Operações relacionais unárias: SELEÇÃO e PROJEÇÃO................................................................. 221 8.2 Operações de álgebra relacionai com base na teoria dos conjuntas ...............................................226 8.3 Operações relacionais binárias: JUNÇÃO e DIVISÃO.................................................................... 229 8.4 Outras operações relacionais................................................................................................ 238 8.5 Exemplos de consultas na álgebra relacionai............................................................................ 243 8.6 O cálculo relacionai de tupla ................................................................................................ 246 8.7 O cálculo relacionai de domínio............................................................................................. 254 8.8 Resumo............................................................................................................................. 256 Perguntas de revisão................................................................................................................. 257 Exercícios................................................................................................................................ 258 Exercidos de laboratório............................................................................................................ 262 Bibliografia selecionada..............................................................................................................263 Capítulo 9 Projeto de banco de dados relacionai por mapeamento ER e EER para relacionai........................................................................................265 9.1 Projeto de banco de dados relacionai usando o mapeamento ER para relacionai .............................. 266 9.2 Mapeando construções do modelo EER para relações................................................................. 273 9.3 Resumo............................................................................................................................. 278 Pergunta de revisão................................................................................................................... 278 Exercícios................................................................................................................................ 278 Exercícios de laboratório............................................................................................................ 279 Bibliografia selecionada ............................................................................................................ 280

PARTE 4 Técnicas de programação de banco de dados Capítulo 10 Introdução às técnicas de programação SQL.......................................283 10.1 Programação de banco de dados: técnicas e problemas ............................................................ 284 102 SQL embutida, SQL dinâmica e SQU .....................................................................................287 10.3 Programação de banco de dados com chamadas de função e bibliotecas de dasses: SQL/CLI e JDBC .. 299 10.4 Procedimentos armazenados de banco de dados e SQl/PSM ..................................................... 308 10.5 Comparando as três técnicas............................................................................................... 311 10.6 Resumo........................................................................................................................... 311 Perguntas de revisão................................................................................................................. 312 Exercidos................................................................................................................................ 312 Bibliografia seleaonada..............................................................................................................313 Capítulo 11 Programação de banco de dados web usando PHP............................ 315 11.1 Um exemplo simples em PHP............................................................................................... 316 112 Visão geral dos recursos básicos da PHP .............................................................................. 318 11.3 Visão geral da programação de banco de dados em PHP............................................................ 324 11.4 Panorama das tecnologias Java para programação web com banco de dados................................. 328

XVIII Sistemas de banco de dados

11.5 Resumo......................................................................................................................... 329 Perguntas de revisão................................................................................................................. 329 Exerdcios................................................................................................................................ 330 Bibliografia selecionada..............................................................................................................330

PARTE 5 Objeto, objeto-relacional e XML: conceitos, modelos, linguagens e padrões Capítulo 12 Bancos de dados de objeto e objeto-relacional...................................333 12.1 Visão geral dos concertos de banco de dados de objeto...........................................................335 111 Extensões do banco de dados de objeto para SQL.................................................................... 347 12.3 0 modelo de objeto ODMG e a Object Definition Language (ODL) ...............................................353 12.4 Projeto conceituai de banco de dados de objeto ...................................................................... 368 12.5 A linguagem de consulta de objeto (OQL — Object Query Language)........................................... 371 12.6 Visão geral de binding da linguagem C++ no padrão ODMG ..................................................... 378 12.7 Resumo........................................................................................................................... 380 Perguntas de revisão................................................................................................................. 381 Exerdcios................................................................................................................................ 382 Bibliografia selecionada.............................................................................................................. 382 Capítulo 13 XML: extensible Markup Language.......................................................... 385 13.1 Dados estruturados, semiestruturados e não estruturados.......................................................... 386 132 Modelo de dados hierárquico (em árvore) da XML.................................................................... 390 133 Documentos XML, DTD e esquema XML..................................................................................392 13.4 Armazenando e extraindo documentos XML de bancos de dados..................................................399 13.5 Linguagens XML............................................................................................................... 400 13.6 Extraindo documentos XML de bancos de dados relacionais.......................................................404 13.7 XML/SQL funções SQL para a criação de dados XML.................................................................409 13.8 Resumo........................................................................................................................... 411 Perguntas de revisão................................................................................................................. 411 Exerdcios................................................................................................................................ 412 Bibliografia selecionada..............................................................................................................412

PARTE 6 Teoria e normalização de projeto de banco de dados Capítulo 14 Fundamentos de dependências funcionais e normalização para bancos de dados relacionais............................................ 415 14.1 Diretrizes de projeto informais para esquemas de relação.......................................................... 417 14.2 Dependências funcionais ................................................................................................. 426 14.3 Formas normais baseadas em chaves primárias....................................................................... 429 14.4 Definições gerais da segunda e da terceira formas normais........................................................ 438 14.5 Forma Normal de Boyce-Codd ............................................................................................. 440 14.6 Dependência multivalorada e quarta forma normal.................................................................. 443 14.7 Dependências de junção e quinta forma normal ...................................................................... 446 14.8 Resumo........................................................................................................................... 447 Perguntas de revisão................................................................................................................. 448 Exerdcios................................................................................................................................ 449 Exerdcio de laboratório..............................................................................................................453 Bibliografia selecionada..............................................................................................................453

Capitulo 15 Algoritmos de projeto de banco de dados relacionai e demais dependências...................................................................455 15.1 Outros tópicos em dependêndas fundonais: regras de inferência, equivalência e cobertura mínima... 456 152 Propriedades de decomposições reladonais............................................................................ 463 15.3 Algoritmos para projeto de esquema de banco de dados relacionai.............................................. 468 15.4 Sobre NULLs, tuplas suspensas e projetosreladonais alternativos................................................. 472

Sumário XIX

15.5 Discussão adicional sobre dependências multivaloradas e 4FN................................................... 477 15.6 Outras dependências e formas normais..................................................................................479 15.7 Resumo........................................................................................................................... 482 Perguntas de revisão................................................................................................................. 483 Exercícios................................................................................................................................ 483 Exercício de laboratório..............................................................................................................484 Bibliografia selecionada..............................................................................................................485

PARTE 7 Estruturas de arquivo, hashing, indexação e projeto físico de banco de dados Capítulo 16 Armazenamento de disco, fundamentos de estruturas de arquivo, hashing e arquiteturas de armazenamento modernas... 489 16.1 Introdução........................................................................................................................490 162 Dispositivos de armazenamento secundários...........................................................................494 16.3 Buffering de blocos............................................................................................................ 503 16.4 Gravando registros de arquivo no disco..................................................................................506 16.5 Operações em arquivos ..................................................................................................... 510 16.6 Arquivos de registros desordenados (arquivos de heap)............................................................. 513 16.7 Arquivos de registros ordenados (arquivos dassificados)............................................................ 514 16.8 Técnicas de hashing .......................................................................................................... 517 16.9 Outras organizações de arquivo primárias.............................................................................. 526 16.10 Paralelizando o acesso de disco usando tecnologia RAID.......................................................... 527 16.11 Arquiteturas de annazenamento modernas...........................................................................531 16.12 Resumo......................................................................................................................... 535 Perguntas de revisão................................................................................................................. 537 Exercidos................................................................................................................................ 538 Bibliografia seledonada..............................................................................................................541

Capítulo 17 Estruturas de indexação para arquivos e projeto físico de banco de dados...........................................................................543 17.1 Tipos de índices ordenados de único nível .............................................................................. 544 172 índices multiniveis............................................................................................................ 554 17.3 índices multiniveis dinâmicos usando B-trees e B’-trees............................................................ 557 17.4 índices em múltiplas chaves................................................................................................ 569 17.5 Outras tipos de índices....................................................................................................... 572 17.6 Algumas questões gerais referentes à indexação...................................................................... 576 17.7 Projeto fisico em bancos de dados relaóonais......................................................................... 581 17.8 Resumo........................................................................................................................... 584 Perguntas de revisão................................................................................................................. 585 Exercícios................................................................................................................................ 585 Bibliografia seledonada..............................................................................................................588

PARTE 8 Processamento e otimização de consulta Capítulo 18 Estratégias para processamento de consulta...................................... 593 18.1 Traduzindo consultas SQL para álgebra relacionai e outros operadores......................................... 595 182 Algoritmos para ordenação externa...................................................................................... 598 18.3 Algoritmos para a operação SELECT...................................................................................... 600 18.4 Implementando a operação JOIN.......................................................................................... 605 18.5 Algoritmos para operações PROJEÇÃO e de conjunto................................................................. 612 18.6 Implementando operações de agregação e diferentes tipos de JOINs............................................. 614 18.7 Combinando operações usando pipelining.............................................................................. 616 18.8 Algoritmos paralelos para processamento de consulta............................................................... 618 18.9 Resumo........................................................................................................................... 622 Perguntas de revisão................................................................................................................. 623

XX Sistemas de banco de dados

Exerdcios................................................................................................................................ 624 Bibliografia selecionada..............................................................................................................624 Capítulo 19 Otimizaçãode consulta.......................................................................... 625 19.1 Árvores de consulta e heuristica para otimização de consulta.......................................................626 19.2 Escolha de planos de execução de consulta............................................................................ 634 19.3 Usando seletividades na otimização baseada em custo............................................................. 642 19.4 Funções de custo para a operação SELEÇÃO............................................................................ 645 19.5 Funções de custo para a operação JUNÇÃO............................................................................ 648 19.6 Exemplo para ilustrar a otimização de consulta baseada em custo................................................ 657 19.7 Outras questões relacionadas ã otimização de consulta............................................................. 659 19.8 Exemplo de otimização de consulta em data warehouses............................................................ 661 19.9 Visão geral da otimização da consulta na Oracle...................................................................... 663 19.10 Otimização de consulta semântica...................................................................................... 667 19.11 Resumo......................................................................................................................... 667 Perguntas de revisão................................................................................................................. 668 Exerdcios................................................................................................................................ 669 Bibliografia selecionada..............................................................................................................669

PARTE 9 Processamento de transações, controle de concorrência e recuperação Capítulo 20 Introdução aos conceitos e teoria de processamento de transações..............................................................................................673 20.1 Introdução ao processamento de transações...........................................................................674 202 Conceitos de transação e sistema ........................................................................................ 680 20.3 Propriedades desejáveis das transações................................................................................. 684 20.4 Caracterizando schedules com base na facilidade de recuperação................................................ 685 20.5 Caracterizando schedules com base na facilidade de serialização................................................ 689 20.6 Suporte para transação em SQL........................................................................................... 697 20.7 Resumo........................................................................................................................... 699 Perguntas de revisão................................................................................................................. 700 Exerdcios................................................................................................................................ 701 Bibliografia selecionada.............................................................................................................. 702

Capitulo 21 Técnicas de controle de concorrência................................................... 703 21.1 Técnicas de bloqueio em duas fases para controle de concorrénda...............................................704 212 Controle de concorrência baseado na ordenação de rótulo de tempo (timestamp)............................ 713 21.3 Técnicas de controle de concorrência multiversão .................................................................... 716 21.4 Técnicas de validação (otimista) e controle de concorrénda por isolamento de snapshot.................... 718 21.5 Granularidade dos itens de dados e bloqueio de granularidade múltipla........................................ 721 21.6 Usando bloqueios para controle de concorrência em indices....................................................... 724 21.7 Outras questões de controle de conconência........................................................................... 725 21.8 Resumo........................................................................................................................... 727 Perguntas de revisão................................................................................................................. 728 Exerdcios................................................................................................................................ 729 Bibliografia selecionada.............................................................................................................. 729 Capítulo 22 Técnicas de recuperação de banco de dados....................................... 731 22.1 Conceitos de recuperação.................................................................................................... 732 222 Recuperação NO-UNDO/REDO baseada em atualização adiada................................................... 738 22.3 Técnicas de recuperação baseadas em atualização imediata....................................................... 741 22.4 Paginação de sombra......................................................................................................... 742 22.5 O algoritmo de recuperação ARIES........................................................................................ 743 22.6 Recuperação em sistemas de múltiplos bancos de dados............................................................ 747 22.7 Backup e recuperação de banco de dados contra falhas catastróficas........................................... 748 22.8 Resumo........................................................................................................................... 748

Sumário XXI

Perguntas de revisão................................................................................................................. 749 Exercícios................................................................................................................................ 750 Bibliografia selecionada..............................................................................................................752

PARTE 10 Bancos de dados distribuídos, sistemas NOSQL e Big Data Capítulo 23 Bancos de dados distribuídos............................................................... 757 23.1 Conceitos de banco de dados cistribuído................................................................................ 758 232 Técnicas de fragmentação, replkação e alocação de dados para projeto de banco de dados distribuído........................................................................................................................ 762 23.3 Visão geral do controle de conconência e recuperação em bancos de dados distrbuídos.................. 769 23.4 Visão geral do gerenciamento de transação em bancos de dados distribuídos ............................... 772 23.5 Processamento e otimização de consulta em bancos de dados distribuídos ................................... 774 23.6 Tipos de sistemas de bancos de dados distribuídos .................................................................. 779 23.7 Arquiteturas de banco de dados distribuídas...........................................................................782 23.8 Gerenciamento de catálogo distribuído..................................................................................787 23.9 Resumo........................................................................................................................... 788 Perguntas de revisão................................................................................................................. 789 Exercidos................................................................................................................................ 790 Bibliografia selecionada..............................................................................................................792 Capítulo 24 Bancos de dados NOSQL e sistemas de armazenamento Big Data . . 795 24.1 Introdução aos sistemas NOSQL........................................................................................... 796 242 0 teorema CAP................................................................................................................. 800 24.3 Sistemas NOSQL baseados em documentos e MongoDB............................................................ 801 24.4 Armazenamentos chave-valor em NOSQL .............................................................................. 806 24.5 Sistemas NOSQL baseados em coluna ou em largura de coluna ................................................ 810 24.6 Bancos de dados de grafos NOSQL e Neo4j............................................................................. 814 24.7 Resumo........................................................................................................................... 818 Perguntas de revisão................................................................................................................. 819 Bibliografia selecionada..............................................................................................................820 Capítulo 25 Tecnologias Big Databaseadas em MapReduce e Hadoop................... 821 25.1 0 que é Big Data? ............................................................................................................ 823 252 Introdução a MapReduce e Hadoop...................................................................................... 826 25.3 Hadoop Distributed Rle System (HDfS) ..................................................................................830 25.4 MapReduce: detalhes adicionais .......................................................................................... 835 25.5 Hadoop v2, também chamado YARN .....................................................................................844 25.6 Discussão geral................................................................................................................. 851 25.7 Resumo........................................................................................................................... 859 Perguntas de revisão................................................................................................................. 860 Bibliografia selecionada..............................................................................................................861

PARTE 11 Modelos, sistemas e aplicações de bancos de dados avançados Capitulo 26 Modelos de dados avançados: introdução a bancos de dados ativos, temporais, espaciais, multimídia e dedutivos..... 867 26.1 Conceitos de banco de dados ativo e triggers...........................................................................868 262 Conceitos de banco de dados temporal................................................................................... 878 26.3 Conceitos de banco de dados espacial................................................................................... 890 26.4 Conceitos de banco de dados multimídia................................................................................ 897 26.5 Introdução aos bancos de dados dedutivos.............................................................................. 901 26.6 Resumo........................................................................................................................... 913 Perguntas de revisão................................................................................................................. 914 Exercícios...............................................................................................................................915 Bibliografia selecionada..............................................................................................................918

XXII

Sistemas de banco de dados Capítulo 27 Introdução à recuperação de informações e busca na web.............. 921 27.1 Conceitos de recuperação de informações (Ri)......................................................................... 922 272 Modelos de recuperação..................................................................................................... 930 27.3 Tipos de consdtas em sistemas de RI.....................................................................................934 27.4 Pré-processamento de textos...............................................................................................936 27.5 Indexação invertida............................................................................................................ 939 27.6 Medidas de avaliação de relevância da pesquisa...................................................................... 942 27.7 Pesquisa e análise na web................................................................................................. 945 27.8 Tendêndas na recuperação de informações.............................................................................. 954 27.9 Resumo........................................................................................................................... 960 Perguntas de revisão................................................................................................................. 960 Bibliografia selecionada..............................................................................................................962 Capítulo 28 Conceitos de mineração de dados....................................................... 965 28.1 Visão geral da tecnologia de mineração de dados...................................................................... 966 28.2 Regras de associação......................................................................................................... 969 28.3 Classificação.................................................................................................................... 979 28.4 Agrupamento.................................................................................................................... 982 28.5 Abordagens para outros problemas de mineração de dados.............................................