• Nenhum resultado encontrado

SISTEMAS DE BANCO DE DADOS

N/A
N/A
Protected

Academic year: 2019

Share "SISTEMAS DE BANCO DE DADOS"

Copied!
798
0
0

Texto

(1)
(2)

SISTEMAS DE

BANCO DE DADOS

•EDIÇÃO

Pearson Education

(3)
(4)

3

SISTEMAS DE

BANCO DE DADOS

•EDIÇÃO

Ramez Elmasri

Shamkant B. Navathe

Tradução

Marília Guimarães Pinheiro

Cláudio César Canhette, Glenda Cristina Valim Melo, Claudia Vicei Amadeu e Rinaldo Macedo de Morais

Revisão Técnica

Luis Ricardo de Figueiredo

Mestre em ciências da computação e doutorando pela USP-Ribeirão Preto

, •«•""»*lo.

PEARSON

Addison

Wesley

«sói '••:.'.<:• BI I£;ÜIÍ<v; o-e --•.'.•

EDITORA AFILIADA

São Paulo

(5)

4

© 2005 Pearson Education do Brasil Ltda. © 2004 Pearson Education, Inc.

Tradução autorizada a partir da edição original em inglês, Fundamentais of Database Systems 4th ed., Elmasri, Ramez; Navathe, Shamkant B., publicada pela Pearson Education, sob o selo

Addison Wesley.

Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação, sem prévia autorização,

por escrito, da Pearson Education do Brasil.

Gerente Editorial: Roger Trimer Editora de Desenvolvimento: Renatha Prado

Gerente de Produção: Heber Lisboa Editora de Texto: Tereza Gouveia

Preparação: Maria Alice da Costa, Margô Negro e Nelson Luis Barbosa Revisão: Alessandra Miranda, Alexandra Costa e Thelma Babaoka Capa: Marcelo Françozo, sobre o projeto original de Beth Anderson

Imagem da Capa © 2003 Digital Vision

Editoração Eletrônica: ERJ Composição Editorial e Artes Gráficas Ltda. A Figura 12.14 é uma definição de um diagrama do modelo lógico de dados em Rational Rose®. A Figura 12.15 é um projeto de banco de dados em Rational Rose®. A Figura 12.17 é um diagrama

de classe para o banco de dados empresa gerado pela Rational Rose®.

Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil)

Elmasri, Ramez

Sistemas de banco de dados / Ramez Elmasri e Shamkant B. Navathe; revisor técnico Luis Ricardo de Figueiredo. -- São Paulo : Pearson Addison Wesley, 2005

Título original: Fundamentals of database systems Vários tradutores.

Bibliografia. ISBN 85-88639-17-3

1. Banco de dados I. Navathe, Shamkant B. II. Título.

04-6763 CDD-005.75

índices para catálogo sistemático

1. Banco de dados : Sistemas : Processamento de dados 005.75

2.Banco de dados : Fundamentos : Processamento de dados 005.75

2006 1a reimpressão

Direitos exclusivos para a língua portuguesa cedidos à Pearson Education do Brasil,

uma empresa do grupo Pearson Education Av. Ermano Marchetti, 1435 CEP: 05038-001 - Lapa - São Paulo - SP Tel: (11) 2178-8686 Fax: (11) 3611-0444

(6)

5

A Amalia com amor R.E.

A minha mãe, Vijaya, e minha esposa, Aruna, pelo amor e apoio

(7)
(8)

2

Prefácio

Este livro introduz os conceitos fundamentais necessários para projetar, usar e implementar os sistemas de banco de dados e suas aplicações. Nossas apresentações abordam com profundidade os fundamentos da modelagem e projeto de bancos de dados, suas linguagens e as funcionalidades dos sistemas de gerenciamento de bancos de dados e as técnicas de implementação desses sistemas. O livro foi projetado para ser usado como um livro-texto para os cursos de um ou dois semestres em sistemas de banco de dados nos níveis introdutório, avançado, de graduação ou de pós-graduação, e como um livro de referência. Pressupomos que os leitores estejam familiarizados com a programação elementar e com os conceitos de estruturação de dados, e que tenham tido algum contato com a organização básica de computadores.

Iniciamos na Parte 1 com uma introdução e uma apresentação dos conceitos básicos e sua terminologia, além dos princípios de modelagem conceitual de banco de dados. E concluímos o livro nas partes 7 e 8 com uma introdução sobre as tecnologias emergentes, como data mining (garimpagem de dados), XML, segurança e banco de dados para Web. Nas partes intermediárias — 2 a 6 — tratamos com profundidade os aspectos mais importantes dos fundamentos de banco de dados.

As características fundamentais incluídas nesta edição são:

• O livro possui uma organização auto-ajustável e flexível para que possa ser adaptada a necessidades individuais.

• A abordagem para a modelagem de dados agora inclui o modelo ER e a UML.

• Um novo capítulo de SQL avançado com material sobre as técnicas de programação em SQL, como JDBC e SQL/CLI.

• Dois exemplos utilizados ao longo do livro — chamados EMPRESA e UNIVERSIDADE — permitem ao leitor comparar as diferentes abordagens que usam a mesma aplicação.

• A cobertura de assuntos como segurança, bancos de dados móveis, GIS e gerenciamento de dados Genoma foi atualizada.

• Um novo capítulo em XML e bancos de dados para a Internet.

• Um capítulo novo em data mining.

• Uma significativa revisão dos suplementos para incluir um conjunto robusto de materiais para professores e estudantes e um estudo de caso on-line.

Principais Diferenças em Relação à Terceira Edição

Existem várias mudanças organizacionais na quarta edição, além de alguns capítulos novos muito importantes. As mudanças principais são:

• Os capítulos sobre organização de arquivos e indexação (capítulos 5 e 6 na terceira edição) foram movidos para a Parte 4 da atual edição e correspondem agora aos capítulos 13 e 14. Essa parte inclui também os capítulos 15 e 16 sobre processamento de pesquisas (query) e sua otimização e o projeto do banco de dados físico e sintonia (tuning) (que se referia ao Capítulo 18 e seções 16.3-16.4 da edição anterior).

• A cobertura do modelo relacional foi reorganizada e atualizada na Parte 2 desta edição. O Capítulo 5 cobre os conceitos do modelo relacional e as restrições. O material sobre álgebra relacional e cálculo foi incorporado ao Capítulo 6. O projeto de banco de dados relacional usando os mapeamentos do ER-para-relacional e do EER-para-relacional encontra-se no Capítulo 7. A SQL está nos capítulos 8 e 9, bem como o material novo sobre técnicas de programação em SQL nas seções 9.3 a 9.6.

• A Parte 3 cobre a teoria e a metodologia de projeto de banco de dados. Os capítulos 10 e 11 sobre a teoria da normalização correspondem aos capítulos 14 e 15 da edição anterior. O Capítulo 12, referente ao projeto de banco de dados, foi, na prática, atualizado para incluir mais cobertura sobre a UML.

• Os capítulos sobre transações, controle de concorrência e recuperação (19, 20 e 21 na terceira edição) estão agora nos capítulos 17, 18 e 19 na Parte 5 desta edição.

(9)

3

VIII Prefácio

• Os capítulos 10 e 17 da terceira edição foram retirados. O material sobre arquitetura cliente-servidor foi incluído nos capítulos 2 e 25 da nova edição.

• Os capítulos sobre segurança, modelos estendidos (ativo, temporal, espacial, multimídia) e bancos de dados distribuídos (capítulos 22, 23 e 24 na edição anterior) correspondem agora aos capítulos 23, 24 e 25 na Parte 7.0 capítulo sobre segurança foi atualizado. O Capítulo 25 da terceira edição relativo a bancos de dados dedutivos foi incorporado ao Capítulo 24 desta edição e faz parte da Seção 24-4.

• O Capítulo 26 é novo, se refere a XML (eXtended Markup Language) e está relacionado ao acesso a bancos de dados relacionais pela Internet.

• O material sobre data mining e data warehousing (Capítulo 26 na edição anterior) foi dividido em dois capítulos. O Capítulo 27 sobre data mining foi ampliado e atualizado.

Conteúdo Desta Edição

A Parte 1 descreve os conceitos básicos necessários para um bom entendimento do projeto de banco de dados e sua implementação, bem como as técnicas de modelagem conceituais usadas nos sistemas de banco de dados. Os capítulos 1 e 2 introduzem os bancos de dados, seus usuários típicos e os conceitos de SGBDs, sua terminologia e arquitetura. No Capítulo 3, os conceitos do modelo Entidade-Relacionamento (ER) e os diagramas ER são apresentados e utilizados para ilustrar o projeto de banco de dados conceitual. O Capítulo 4 está concentrado na abstração de dados e nos conceitos de modelagem de dados semânticos, e estende o modelo ER para incorporar essas idéias, direcionando para o modelo de dados ER-Estendido (EER) e diagramas EER. Os conceitos apresentados incluem subclasses, especialização, generalização e tipos de união (categorias). A notação para os diagramas de classe da UML também foi introduzida nos capítulos 3 e

4-A Parte 2 descreve o modelo de dados relacional e os SGBDs relacionais. O Capítulo 5 descreve o modelo relacional básico, suas restrições de integridade e operações de atualização. O Capítulo 6 traz as operações da álgebra relacional e introduz o cálculo relacional. O Capítulo 7 discute o projeto de banco de dados relacional utilizando os mapeamentos do ER e do EER-para-relacional. O Capítulo 8 dá uma visão detalhada da linguagem SQL, cobrindo o padrão SQL, que é implementado na maioria dos sistemas relacionais. O Capítulo 9 trata dos tópicos de programação SQL, como SQLJ, JDBC e SQL/CLI.

A Parte 3 cobre vários tópicos relacionados ao projeto de banco de dados. Os capítulos 10 e 11 tratam do formalismo, teorias e algoritmos desenvolvidos para o projeto de banco de dados relacional por meio da normalização. Esse material inclui os tipos de dependências funcionais e outros tipos, e a forma normal de relações. Passo a passo, a normalização intuitiva é apresentada no Capítulo 10, e o projeto de algoritmos relacionais é discutido no Capítulo 11, que também define outros tipos de dependências, como a multivalorada e a junção. O Capítulo 12 apresenta uma visão geral das diferentes fases do projeto de banco de dados para as aplicações de tamanhos médios e grandes, usando UML.

A Parte 4 começa com uma descrição das estruturas de arquivo físicas e dos métodos de acesso usados em sistemas de banco de dados. O Capítulo 13 aborda os métodos primários de organizar os arquivos de registros em disco, incluindo o hash estático e o dinâmico. O Capítulo 14 refere-se a técnicas de indexação de arquivos, incluindo as estruturas de dados árvore-B e árvore-B+, bem como arquivos grid. O Capítulo 15 introduz os fundamentos do processamento e otimização de pesquisas, e o Capítulo 16 discute o projeto de banco de dados físico e sua sintonização.

A Parte 5 analisa o processamento de transações, controle de concorrência e técnicas de recuperação, incluindo as discussões de como esses conceitos são efetivados na SQL.

A Parte 6 é uma introdução ampla aos sistemas de bancos de dados orientados a objeto e objeto-relacional. O Capítulo 20 insere os conceitos de orientação a objetos. O Capítulo 21 dá uma visão detalhada do modelo de objetos ODMG e suas linguagens associadas ao ODL e OQL. O Capítulo 22 descreve como estão sendo estendidos os bancos de dados relacionais para incluir os conceitos orientados a objeto e apresenta as características do sistema objeto-relacional, além da avaliação de algumas características do padrão SQL3 e o modelo de dados relacional aninhado.

As partes 7 e 8 cobrem vários tópicos avançados. O Capítulo 23 fornece uma visão geral de segurança e autorização em banco de dados, inclusive dos comandos privilegiados da SQL, GRANT (CONCEDER) e REVOKE (REVOGAR), e amplia os conceitos de segurança incluindo a criptografia, os papéis e o controle de fluxo. O Capítulo 24 introduz vários modelos de banco de dados estendidos para aplicações avançadas. Inclui banco de dados ativo e gatilhos (triggers), temporal, espacial, multimídia e bancos de dados dedutivos. O Capítulo 25 possui uma introdução a bancos de dados distribuídos e à arquitetura cliente-servidor de três camadas. O Capítulo 26 é novo e trata do modelo XML (eXtended Markup Language). Primeiramente, discute as diferenças entre os modelos estruturado, semi-estruturado e não-estruturado; a seguir, apresenta os conceitos de XML; e, finalmente, compara o modelo XML com os modelos de banco de dados tradicionais. O Capítulo 27 sobre data mining foi ampliado e atualizado. O Capítulo 28 introduz os conceitos de

(10)

4

Prefácio IX

introdução aos tópicos de bancos de dados móveis, bancos de dados multimídia, GIS (Sistemas de Informações Geográficas) e gerenciamento de dados Genoma em bioinformática.

O Apêndice A contém várias alternativas de notações diagramáticas para exibir um esquema conceitual de ER ou EER. Elas podem ser substituídas pelas notações que empregamos, se o professor assim o desejar. O Apêndice C traz os mais importantes parâmetros físicos para os discos. Os apêndices B, E e F estão no site. O Apêndice B é um estudo de caso que acompanha o projeto e a implementação do banco de dados de uma livraria. Os apêndices E e F cobrem os sistemas de bancos de dados legados, baseados nos modelos de bancos de dados de rede e hierárquicos. Foram usados por mais de 30 anos como base para muitas aplicações de bancos de dados comerciais existentes e sistemas de processamento de transações, e serão necessárias várias décadas para substituí-los completamente. Consideramos importante apresentar aos estudantes de administração de banco de dados essas abordagens existentes há muito tempo. Os capítulos completos da segunda edição podem ser encontrados no site como uma referência a esta edição.

Orientações Para o Uso Deste Livro

Existem diferentes formas de apresentação de um curso de banco de dados. Os capítulos das partes 1 a 5 podem ser usados em um curso introdutório de sistemas de banco de dados na ordem em que estão ou na ordem escolhida pelo professor. O professor pode omitir capítulos e seções e incluir outros do restante do livro, dependendo da ênfase do curso. Ao término de cada seção de apresentação do capítulo são apresentadas as seções que podem ser omitidas se for aconselhável uma discussão menos detalhada do tópico abordado no capítulo. Sugerimos o uso até o Capítulo 14 em um curso de banco de dados introdutório e a inclusão de outras partes selecionadas dos demais capítulos, dependendo do conhecimento dos estudantes e da profundidade desejada. Para uma ênfase em técnicas de implementação de sistemas, os capítulos das partes 4 e 5 devem ser incluídos.

Os capítulos 3 e 4, que tratam da modelagem conceitual usando-se os modelos ER e EER, são importantes para uma boa compreensão conceitual sobre os bancos de dados. Porém, podem ser estudados parcialmente, estudados em outro curso ou até mesmo ser omitidos, se a ênfase for a implementação do SGBD.

Os capítulos 13 e 14, referentes à organização de arquivos e indexação, também podem ser estudados posteriormente ou ainda ser omitidos, caso a ênfase seja nos modelos de banco de dados e linguagens. Para os estudantes que já participaram

27 28 ^X Data Mining, j

(11)

5

X Prefácio

de um curso em organização de arquivos, partes desses capítulos poderiam ser utilizadas como material de leitura, ou alguns exercícios podem ser definidos como revisão dos conceitos.

Um ciclo de vida completo de projeto e implementação de um banco de dados engloba o projeto conceitual (capítulos 3 e 4), o mapeamento do modelo (Capítulo 7), a normalização (Capítulo 10) e a implementação em SQL (Capítulo 9). A documentação adicional em SGBDRS também deve ser providenciada.

O livro foi escrito de forma a abranger todos esses tópicos, embora sua ordem de leitura possa ser alterada. A figura da página anterior mostra as principais interdependências entre os capítulos. Como a figura ilustra, é possível começar com diferentes tópicos após os dois capítulos introdutórios. Embora a figura possa parecer complexa, é importante observar que, se os capítulos forem lidos na ordem proposta, as interdependências não serão perdidas. A figura pode ser consultada por professores que desejam utilizar uma ordem alternativa de apresentação.

Para o curso de um único semestre baseado neste livro, alguns capítulos podem ser definidos como material de leitura, como as partes 4, 7 e 8. O livro pode ser usado, também, para um caso de dois semestres. O primeiro curso, "Introdução ao projeto de sistemas de bancos de dados", nos níveis introdutório, principiante ou avançado, deve cobrir os capítulos 1 a 14. O segundo, "Técnicas de projeto e implementação de bancos de dados", para níveis mais avançados, deve abordar os capítulos 15 a 28. Os capítulos das partes 7 e 8 podem ser utilizados seletivamente em cada semestre, e outras bibliografias descrevendo os SGBDs, disponíveis para os estudantes em bibliotecas, podem ser empregadas para complementar o material do livro.

Material de apoio (no Companion Website)

No site www.aw.com/elmasri_br professores e estudantes encontram material de apoio exclusivo, incluindo:

• "Estudos de caso" sobre o projeto e a implementação do banco de dados de uma livraria.

• Capítulos 10 e 11 da terceira edição.

• Apêndices E e F (em inglês).

• Conjunto de "Notas de aula" em PowerPoint.

• Manual de soluções (em inglês) exclusivo para professores que lecionam a disciplina.

• Exercício de múltipla escolha.

Agradecimentos

É um grande prazer agradecermos a assistência e contribuição de um grande número de pessoas que nos auxiliaram neste esforço. Primeiro, gostaríamos de agradecer a nossos editores, Maite Suarez-Rivas, Katherine Harutunian, Daniel Rausch e Ju-liet Silveri. Em particular, agradecemos os esforços e a ajuda de Katherine Harutunian, nosso primeiro contato para a quarta edição. Gostaríamos de expressar nosso reconhecimento a todos que tenham contribuído para esta quarta edição. Agradecemos a contribuição dos seguintes revisores: Phil Berhnard, Florida Tech; Zhengxin Chen, University of Nebraska em Omaha; Jan Chomicki, University of Buffalo; Hakan Ferhatosmagnoglu, Ohio State University; Len Fisk, Califórnia State University, Chico; William Hankley, Kansas State University; Ali R. Hurson, Penn State University; Vijay Kumar, University of Missouri-Kansas City; Peretz Shoval, Ben-Guirion University, Israel; Jason T. L. Wan, New Jersey Institute of Technology; e Ed Omiecinski da Geórgia Tech, que contribuiu com o Capítulo 27.

Ramez Elmasri agradece a seus alunos Hyoil Han, Babak Hojabri, Jack Fu, Charley Li, Ande Swathi, e Steven Wu, que contribuíram com material para o Capítulo 26. É grato também ao apoio oferecido pela University of Texas, Arlington.

Sham Navathe agradece a Dan Forsythe e aos seguintes alunos da Geórgia Tech: Weimin Feng, Angshuman Guin, Abrar Ul-Haque, Bin Liu, Ying Liu, Wanxia Xie e Waigen Yee.

(12)

6

P r e f á c i o

XI

Forsyth, Farshad Fõtouhi, Michael Franklin, Sreejith Gopinath, Goetz Craefe, Richard HuU, Sushil Jajodia, Ramesh K. Kar-ne, Harish Kotbagi, Vijay Kumar, Tarcisio Lima, Ramon A. Mata-Toledo, Jack McCaw, Dennis McLeod, Rokia Missaoui, Magdi Morsi, M.

Narayanaswamy, Carlos Ordonez, Joan Peckham, Betty Salzberg, Ming-Chien Shan, Junping Sun, Rajs-hekhar Sunderraman, Aravindan Veerasamy e Emilia E. Villareal.

Por último, mas nem por isso menos importante, somos muito gratos ao apoio, ao encorajamento e à paciência de nossos familiares.

E E

S . B .

(13)

Sumário

PARTE 1 INTRODUÇÃO À MODELAGEM CONCEITUAL1

1. Banco de dados e os usuários de banco de dados...3

1.1 Introdução ... 4

1.2 Um exemplo ... 5

1.3 Características do emprego de bancos de dados ... 7

1.4 Atores no palco...10

1.5 Trabalhadores dos bastidores...11

1.6 Vantagens da utilização da abordagem SGBD...'...11

1.7 Uma breve história das aplicações de um banco de dados ...15

1.8 Quando não usar o SGBD...17

1.9 Resumo...17

2. Sistemas de bancos de dados: conceitos e arquitetura... 19

2.1 Modelos de dados, esquemas e instâncias ...19

2.2 Arquitetura de três-esquemas e a independência de dados...22

2.3 Linguagem de banco de dados e interfaces...24

2.4 O ambiente de sistemas de banco de dados ...26

2.5 Arquiteturas centralizadas e cliente/servidor para os SGBDs ...28

2.6 Classificação dos sistemas gerenciadores de banco de dados ... 31

2.7 Resumo ... 33

3. Modelagem de dados usando o modelo entidade-relacionamento... 35

3.1 Usando modelos de dados de alto nível conceitual para o projeto de um banco de dados ...36

3.2 Uma aplicação exemplo de banco de dados... 37

3.3 Tipos entidade, conjuntos de entidade e atributos-chave ...39

3.4 Tipos relacionamento, conjuntos de relacionamentos, papéis e restrições estruturais...43

3.5 Tipo entidade fraca...48

3.6 Refinando o projeto ER para o banco de dados EMPRESA...49

3.7 Diagramas ER, convenções de nomenclatura e decisões de projeto ... 50

3.8 Notação para diagramas de classe UML...52

3.9 Resumo ...54

4. Modelagem com entidade-relacionamento estendido e UML...60

4.1 Subclasses, superclasses e herança ... 61

4.2 Especialização e generalização...62

4.3 Características e restrições da especialização e generalização ...64

4.4 Modelagem de tipos união usando as categorias ...69

4.5 Um exemplo — UNIVERSIDADE — de esquema EER e definições formais para o modelo EER...71

4.6 Representação da especialização/generalização e herança em diagramas de classe UML...73

4.7 Tipos relacionamento com grau maior que dois ...74

4.8 Abstração de dados, representação do conhecimento e conceitos de ontologia ...77

4.9 Resumo...81

PARTE 2 MODELO RELACIONAL: CONCEITOS, RESTRIÇÕES, LINGUAGENS, DESIGN E PROGRAMAÇÃO . . 87

(14)

2

2

XIV Sumario

5.1 Conceitos do modelo relacional...90

5.2 Restrições do modelo relacional e esquemas de um banco de dados relacional... 94

5.3 Operações de atualização e tratamento de violações de restrição ... 100

5.4 Resumo... 102

6. A álgebra relacional e o cálculo relacional...106

6.1 Operações relacionais unárias: SELEÇÃO (SELECT) e PROJEÇÃO (PROJECT) ... 107

6.2 Operações da álgebra relacional a partir da teoria dos conjuntos... 110

6.3 Operações relacionais binárias: JUNÇÃO (JOIN) e DIVISÃO (DIVISION) ... 113

6.4 Outras operações relacionais ... 118

6.5 Exemplos de consultas (queries) na álgebra relacional... 122

6.6 O cálculo relacional de tupla ... 124

6.7 O cálculo relacional de domínio ... 130

6.8 Resumo... 132

7. Projeto de banco de dados relacional pelo mapeamento dos modelos entidade-relacionamento e entidade-relacionamento estendido... 137

7.1 Projeto de um banco de dados relacional usando o mapeamento do ER para o relacional... 137

7.2 Mapeamento dos construtores do modelo EER para as relações... 142

7.3 Resumo...146

8. SQL-99: Definição de esquema, restrições básicas e consultas (queries)... 148

8.1 Definição de dados e tipos de dados SQL... 149

8.2 Especificando as restrições básicas em SQL... 153

8.3 Comandos para as alterações de esquemas SQL... 155

8.4 Consultas SQL básicas ... 156

8.5 Consultas SQL mais complexas ... 164

8.6 Comandos INSERT (inserção), DELETE (exclusão) e UPDATE (atualização) em SQL... 176

8.7 Outras funcionalidades da SQL ... 178

8.8 Resumo... 179

9. Mais SQL: asserções (assertions), visões (views) e técnicas de programação...182

9.1 Especificando as restrições genéricas por asserções ... 183

9.2 Visões (views — tabelas virtuais) em SQL ... 183

9.3 Programação com o banco de dados: escolhas e técnicas ... 186

9.4 SQL embutida, SQL dinâmica e SQLJ ... 188

9.5 Programação em um banco de dados por meio de funções (functions calls): SQL/CLI e JDBC ...196

9.6 Procedimentos armazenados em banco de dados (stored procedures) e o SQL/PSM ... 202

9.7 Resumo ... 205

PARTE 3 TEORIA E METODOLOGIA DE PROJETO DE UM BANCO DE DADOS ... 207

10. Dependência funcional e normalização em um banco de dados relacional...209

10.1 Orientações para projetos informais de esquemas relacionais... 210

10.2 Dependências funcionais... 217

10.3 Formas normais baseadas em chaves primárias ... 222

10.4 Definições gerais da segunda e da terceira formas normal... 228

10.5 Forma normal de Boyce-Codd ... 231

10.6 Resumo ... 233

11. Algoritmos para projeto de banco de dados relacional e demais dependências... 237

11.1 Propriedades das decomposições relacionais ... 238

11.2 Algoritmos para o projeto do esquema de banco de dados relacional ... 242

11.3 Dependências multivaloradas e a quarta forma normal... 247

(15)

3

3

Sumario XV

11.5 Dependências de inclusão...252

11.6 Outras dependências e formas normais...253

11.7 Resumo ...254

12. Metodologia para projeto prático de banco de dados e uso de diagramas UML...257

12.1 O papel dos sistemas de informação nas organizações ...258

12.2 O processo de projeto e implementação de banco de dados...261

12.3 Uso de diagramas UML como apoio para a especificação de projeto de banco de dados ...274

12.4 Rational Rose, uma ferramenta de projeto baseada em UML ...281

12.5 Ferramentas automatizadas para projeto de banco de dados ...285

12.6 Resumo...287

PARTE 4 ARMAZENAMENTO DE DADOS, INDEXAÇÃO, PROCESSAMENTO DE CONSULTAS E PROJETO FÍSICO... 291

13. Armazenamento em disco, estruturas básicas de arquivos e hashing... 293

13.1 Introdução ...293

13.2 Dispositivos de armazenamento secundário ... 296

13.3 Bufferingde blocos... 301

13.4 Disposição de registros de arquivos em disco... 302

13.5 Operações em arquivos... 305

13.6 Arquivos de registros desordenados (heap files) ... 307

13.7 Arquivos de registros ordenados (sorted files)... 308

13.8 Técnicas de hashing... 310

13.9 Outras organizações primárias de arquivo ... 316

13.10 Acesso paralelo em disco usando a tecnologia RAID...317

13.11 Área de armazenamento em rede... 321

13.12 Resumo... 321

14. Estruturas de indexação de arquivos... 326

14.1 Tipos de índices ordenados em nível único... 326

14.2 índices multiníveis... 334

14.3 Índices multiníveis dinâmicos que usam árvores-B (B-trees) e árvores-B+ (B+-trees)... 336

14.4 índices em chaves múltiplas... 347

14.5 Outros tipos de índices... 349

14.6 Resumo... 350

15. Algoritmos para processamento e otimização de consultas... 354

15.1 Traduzindo consultas SQL para a álgebra relacional... 356

15.2 Algoritmos para ordenação externa (external sorting)... 356

15.3 Algoritmos para operações SELECT e JOIN... 358

15.4 Algoritmos para as operações PROJECT e de conjunto ... 365

15.5 Implementação das operações de agregação e outer joins ... 366

15.6 Combinação de operações usando pipelines...367

15.7 Utilização de heurísticas na otimização de consultas...368

15.8 Utilização de seletividade e estimativa de custo na otimização de consultas...376

15.9 Visão geral da otimização de consultas no Oracle ...382

15.10 Otimização semântica de consultas ...383

15.11 Resumo ...383

16. Projeto e sintonização (tuning) de bancos de dados na prática...386

16.1 Projeto físico de bancos de dados em bancos de dados relacionais...386

16.2 Uma visão geral da sintonização de banco de dados em sistemas relacionais...388

(16)

4

4

XVI Sumario

PARTE 5 CONCEITOS DE PROCESSAMENTO DE TRANSAÇÕES ... 395

17. Introdução aos conceitos e teoria do processamento de transações...397

17.1 Introdução ao processamento de transações ...397

17.2 Conceitos de transação e sistema...402

17.3 Propriedades desejáveis das transações ...404

17.4 Definindo plano de execução (schedules) baseado na restaurabilidade (recoverability)...405

17.5 Definindo planos de execução (schedules) baseados em serialidade (serializability)...407

17.6 Suporte de transações em SQL ...415

17.7 Resumo ...416

18. Técnicas de controle de concorrência...419

18.1 Técnicas de bloqueio em duas fases para controle de concorrência...419

18.2 Controle de concorrência baseado em ordenação por timestamp...426

18.3 Técnicas de controle de concorrência de multiversão... 428

18.4 Técnicas de controle de concorrência de validação (otimista) ...430

18.5 Granularidade de itens de dados e bloqueio de granularidade múltipla ...431

18.6 Usando bloqueios para controle de concorrência em índices...433

18.7 Outros tópicos sobre controle de concorrência ...435

18.8 Resumo ...436

19. Técnicas de recuperação de banco de dados...438

19.1 Conceitos de recuperação ...438

19.2 Técnicas de recuperação baseadas na atualização adiada ...443

19.3 Técnicas de recuperação baseadas em atualização imediata ...446

19.4 Paginação shadow (sombra) ...447

19.5 O algoritmo de recuperação ARIES ...448

19.6 Recuperação em sistemas de bancos de dados múltiplos... 451

19.7 Backup de banco de dados e recuperação em falhas catastróficas ...451

19.8 Resumo ... 452

PARTE 6 BANCOS DE DADOS DE OBJETOS E OBJETO-RELACIONAIS... 457

20. Conceitos para bancos de dados de objetos...459

20.1 Visão geral dos conceitos de orientação a objetos ... 460

20.2 Identidade de objeto, estrutura de objeto e construtores de tipos... 462

20.3 Encapsulamento de operações, métodos e persistência... 466

20.4 Hierarquias de classe e tipo, e herança ...469

20.5 Objetos complexos ... 471

20.6 Outros conceitos orientados a objetos ... 473

20.7 Resumo ...475

21. Padrões, linguagens e projeto de banco de dados de objetos... 477

21.1 Visão geral do modelo de objetos ODMG...478

21.2 ODL — a linguagem de definição de objetos...487

21.3 A linguagem de consulta de objetos (OQL) ...492

21.4 Visão geral do binding com a linguagem C++ ...498

21.5 Projeto conceitual de banco de dados de objetos...499

21.6 Resumo ...501

22. Sistemas objeto-relacional e relacional-estendido ...503

22.1 Visão geral da SQL e suas características objeto-relacionais...504

22.2 Evolução e tendências atuais da tecnologia de bancos de dados...509

22.3 O Informix Universal Server ...510

(17)

5

5

Sumário XVII

22.5 Implementação e aspectos relacionados a sistemas de tipos estendidos ... 519

22.6 O modelo relacional aninhado... 520

22.7 Resumo ... 522

PARTE 7 TÓPICOS AVANÇADOS ...525

23. Segurança e autorização em banco de dados...527

23.1 Introdução às questões de segurança em bancos de dados... 527

23.2 Controle de acesso discricionário baseado na concessão e na revogação de privilégios ...530

23.3 Controle de acesso obrigatório e controle de acesso baseado em papéis para segurança multinível... 533

23.4 Introdução à segurança de bancos de dados estatísticos ... 537

23.5 Introdução ao controle de fluxo... 538

23.6 Criptografia e infra-estruturas de chave pública ... 539

23.7 Resumo ... 541

24. Extensões de modelos de dados para aplicações avançadas ... 544

24.1 Conceitos de banco de dados ativos e gatilhos (triggers) ... 545

24.2 Conceitos de banco de dados temporais... 552

24.3 Bancos de dados multimídias... 561

24.4 Introdução aos bancos de dados dedutivos ... 564

24.5 Resumo... 573

25. Bancos de dados distribuídos e arquiteturas cliente-servidor ... 578

25.1 Conceitos de banco de dados distribuídos ... 579

25.2 Fragmentação, replicação e técnicas de alocação de dados para o projeto de bancos de dados distribuídos ... 583

25.3 Tipos de sistemas de banco de dados distribuídos... 587

25.4 Processamento de consultas em bancos de dados distribuídos ... 589

25.5 Visão geral do controle de concorrência e de recuperação em bancos de dados distribuídos ... 593

25.6 Uma visão geral da arquitetura cliente-servidor 3-tier (3 camadas)... 595

25.7 Bancos de dados distribuídos no Oracle ... 597

25.8 Resumo ... 599

PARTE 8 TECNOLOGIAS EMERGENTES ... 603

26. XML e bancos de dados de Internet... 605

26.1 Dados estruturados, semi-estruturados e não estruturados... 605

26.2 O modelo de dados hierárquico (árvore) XML... 608

26.3 Documentos XML, DTDe esquema XML ... 610

26.4 Documentos XML e bancos de dados ... 616

26.5 Consultas XML ...621

26.6 Resumo ...623

27. Conceitos de data mining ... 624

27.1 Visão geral da tecnologia de data mining ...624

27.2 Regras de associação ...627

27.3 Classificação ...634

27-4 Agrupamento (clustering)...637

27.5 Abordagens para outros problemas de data mining ...639

(18)

6

6

27.7 Ferramentas comerciais para data mining...641

(19)

7

7

XVIII sumario

28. Visão geral de data warehousing e OLAP ...646

28.1 Introdução, definições e terminologia ...646

28.2 Características de data warehouses (depósitos de dados) ...647

28.3 Modelagem de dados para data warehouses ... 648

28.4 Construção de um data warehouse ... 652

28.5 Funcionalidade típica de um data warehouse ...654

28.6 Comparação entre data warehouse e visões...655

28.7 Problemas e questões em aberto em data warehouses ...655

28.8 Resumo ...656

29. Tecnologias e aplicações emergentes de banco de dados...658

29.1 Bancos de dados móveis... 658

29.2 Bancos de dados de multimídia ...664

29.3 Sistemas de informação geográfica ... 668

29.4 Gerenciamento de dados de genoma . ... 673

Apêndice A Notações diagramáticas opcionais para modelos ER... 680

Apêndice C Parâmetros de discos... 682

Apêndice D Visão geral da linguagem QBE... 684

Bibliografia... 690

índice. 715MATERIAL ADICIONAL NO COMPANION WEBSITE

No site www.aw.com/elmasri_br você encontra os seguintes apêndices em inglês:

Apêndice B Database design and application implementation case study

Apêndice E Hierarchical data model

(20)

1

(21)

1

1

I NTRODUÇÃO À

(22)
(23)

3

3

1

Banco de Dados e os Usuár ios

de Banco de Dados

Os bancos de dados e os sist emas de bancos de dados se t or nar am component es essenciais no cot idiano da sociedade moder na. No decor r er do dia, a maior ia de nós se depar a com at ividades que envolvem alguma int er ação com os bancos de dados. Por exemplo, se f or mos ao banco par a ef et uar mos um depósit o ou r et ir ar dinheir o, se f izer mos r eser vas em um hot el ou par a a compr a de passagens aér eas, se acessar mos o cat álogo de uma bibliot eca inf or mat izada par a consult ar uma bibliogr af ia, ou se compr ar mos pr odut os — como livr os, br inquedos ou comput ador es — de um f or necedor por int er médio de sua página Web, muit o pr ovavelment e essas at ividades envolver ão uma pessoa ou um pr ogr ama de comput ador que acessar á um banco de dados. At é mesmo os pr odut os adquir idos em super mer cados, em muit os casos, at ualment e, incluem uma at ualização aut omát ica do banco de dados que mant ém o cont r ole do est oque disponível nesses est abeleciment os.

Essas int er ações são exemplos do que podemos denominar aplicações t radicionais de banco de dados, no qual a maior ia das inf or mações que são ar mazenadas e acessadas apr esent a-se em f or mat os t ext ual ou numér ico. Nos últ imos anos, os avanços t ecnológicos ger ar am aplicações inovador as e int er essant es dos sist emas de banco de dados.

Os bancos de dados de mult imídia podem, agor a, ar mazenar f igur as, videoclipes e mensagens sonor as. Os sist emas de inf ormações geográf icas (geogr aphic inf or mat ion syst ems — GI S) são capazes de ar mazenar e analisar mapas, dados do t empo e imagens de sat élit e. Os dat a warehouses e os online analyt ical pr ocessing (OLAP) — pr ocessament o analít ico on-line — são ut ilizados em muit as empr esas par a ext r air e analisar as inf or mações út eis dos bancos de dados par a a t omada de decisões.

A t ecnologia de bancos de dados at ivos (act ive dat abase t echnology) e real t ime (t empo r eal) são usados no cont r ole de pr ocessos indust r iais e de pr odução (indúst r ia). As t écnicas de pesquisa em banco de dados est ão sendo aplicadas na Wor ld Wide Web par a apr imor ar a r ecuper ação de inf or mações necessár ias pelos usuár ios da I nt er net .

Ent r et ant o, par a ent ender mos os f undament os da t ecnologia de banco de dados, devemos começar pelas aplicações t r adicionais de bancos de dados. Sendo assim, na Seção 1.1 dest e capít ulo, def inimos o que é um banco de dados e conceit uamos alguns t er mos básicos. Na Seção 1.2 apr esent amos um banco de dados como exemplo, uma UNI VERSI DADE,par a ilust r ar nossa discussão. Em seguida, na Seção 1.3, descr evemos algumas car act er íst icas pr incipais dos sist emas de banco de dados, e nas seções 1.4 e 1.5 cat egor izamos os t ipos de pessoas cuj as pr of issões envolvem o uso e a int er ação com os sist emas de banco de dados. Nas seções 1.6, 1.7 e 1.8 discut ir emos as diver sas capacidades de um sist ema de banco de dados e algumas aplicações t ípicas. A Seção 1.9 r esume t odo o capít ulo.

O leit or que opt ar por uma r ápida int r odução aos sist emas de banco de dados pode est udar as seções 1.1 a 1.5, depois, pode salt ar ou f olhear as seções 1.6 at é 1.8 e iniciar o Capít ulo 2.

(24)

4

4

4 Capít ulo 1 Banco de Dados e os Usuár ios de Banco de Dados

1. 1 I nt rodução

Os bancos de dados e a sua t ecnologia est ão pr ovocando um gr ande impact o no cr esciment o do uso de comput ador es. É viável af ir mar que eles r epr esent am um papel cr ít ico em quase t odas as ár eas em que os comput ador es são ut ilizados, incluindo negócios, comér cio elet r ônico, engenhar ia, medicina, dir eit o, educação e as ciências da inf or mação, par a cit ar apenas algumas delas. A palavr a banco de dados é t ão comument e ut ilizada que, pr imeir o, devemos def ini-la. Nossa def inição inicial é bast ant e genér ica.

Um banco de dados é uma coleção de dados r elacionados. Os dados são f at os que podem ser gr avados e que possuem um signif icado implícit o. Por exemplo, consider e nomes, númer os t elef ônicos e ender eços de pessoas que você conhece. Esses dados podem t er sido escr it os em uma agenda de t elef ones ou ar mazenados em um comput ador , por meio de pr ogr amas como o Micr osof t Access ou Excel. Essas inf or mações são uma coleção de dados com um signif icado implícit o, conseqüent ement e, um banco de dados.

A def inição de banco de dados, mencionada ant er ior ment e, é muit o genér ica. Por exemplo, podemos consider ar o conj unt o de palavr as que f or mam est a página como dados r elacionados, por t ant o, const it uindo um banco de dados. No ent ant o, o uso do t er mo

banco de dados é ger alment e mais r est r it o. Possui as seguint es pr opr iedades implícit as:

• Um banco de dados r epr esent a alguns aspect os do mundo r eal, sendo chamado, às vezes, de minimundo ou de universo de discurso (UoD). As mudanças no minimundo são r ef let idas em um banco de dados.

• Um banco de dados é uma coleção lógica e coer ent e de dados com algum signif icado iner ent e. Uma or ganização de dados ao acaso (r andômica) não pode ser cor r et ament e int er pr et ada como um banco de dados.

• Um banco de dados é pr oj et ado, const r uído e povoado por dados, at endendo a uma pr opost a específ ica. Possui um gr upo de usuár ios def inido e algumas aplicações pr econcebidas, de acor do com o int er esse desse gr upo de usuár ios.

Em out r as palavr as, um banco de dados possui algumas f ont es das quais os dados são der ivados, alguns níveis de int er ação com os event os do mundo r eal e um público ef et ivament e int er essado em seus cont eúdos.

Um banco de dados pode ser de qualquer t amanho e de complexidade var iável. Por exemplo, a list a de nomes e ender eços, cit ada ant er ior ment e, pode possuir apenas poucas cent enas de r egist r os, cada um com uma est r ut ur a simples. Por ém, o cat álogo comput ador izado de uma gr ande bibliot eca pode cont er meio milhão de ent r adas or ganizadas em dif er ent es cat egor ias — pelo sobr enome pr incipal do aut or , pelo assunt o, pelo t ít ulo —, sendo cada cat egor ia or ganizada em or dem alf abét ica. Um banco de dados muit o maior e mais complexo é mant ido pelo I nt er nal Revenue Ser vice (I RS), ór gão r esponsável pelo cont r ole dos f or mulár ios de impost os pr eenchidos pelos cont r ibuint es dos Est ados Unidos. Se pr essupomos que exist am cem milhões de cont r ibuint es e cada um deles pr eenche em média cinco f or mulár ios com apr oximadament e 400 car act er es de inf or mações por f or mulár io, t er íamos um banco de dados de 100 x 10° x 400 x 5 car act er es (byt es) de inf or mação. Se o I RS mant iver os últ imos t r ês f or mulár ios par a cada cont r ibuint e t er emos, além do at ual, um banco de dados de 8 x 100 byt es (800 gigabyt es). Essa imensa quant idade de inf or mação deve ser or ganizada e ger enciada par a que os usuár ios possam pesquisar , r ecuper ar e at ualizar os dados necessár ios.

Um banco de dados pode ser ger ado e mant ido manualment e ou pode ser aut omat izado (comput ador izado). Por exemplo, um cat álogo de car t ões bibliot ecár ios é um banco de dados que of er ece a possibilidade de ser cr iado e mant ido manualment e. Um banco de dados comput ador izado pode ser cr iado e mant ido t ant o por um gr upo de aplicat ivos escr it os especialment e par a essa t ar ef a como por um sist ema ger enciador de banco de dados. É clar o que, nest e livr o, o obj et ivo é abor dar os bancos de dados comput ador izados.

Um sist ema gerenciador de banco de dados (SGBD) é uma coleção de pr ogr amas que per mit e aos usuár ios cr iar e mant er um banco de dados. O SGBD é, por t ant o, um sist ema de sof t war e de pr opósit o ger al que f acilit a os pr ocessos de def inição, const r ução, manipulação e compar t ilhament o de bancos de dados ent r e vár ios usuár ios e aplicações. A def inição de um banco de dados implica especif icar os t ipos de dados, as est r ut ur as e as r est r ições par a os dados a ser em ar mazenados em um banco de dados.

A const rução de um banco de dados é o pr ocesso de ar mazenar os dados em alguma mídia apr opr iada cont r olada pelo SGBD. A manipulação inclui algumas f unções, como pesquisas em banco de dados par a r ecuper ar um dado específ ico, at ualização do banco par a r ef let ir as mudanças no minimundo e ger ar os r elat ór ios dos dados. O compart ilhament o per mit e aos múlt iplos usuár ios e pr ogr amas acessar , de f or ma concor r ent e, o banco de dados.

Out r as f unções impor t ant es do SGBD são a pr ot eção e a manut enção do banco de dados por longos per íodos. A prot eção inclui a

pr ot eção do sist ema cont r a o mau f uncionament o ou f alhas (cr ashes) no har dwar e ou sof t war e, e segur ança cont r a acessos

(25)

5

5

1.2 Um Exemplo 5 não aut or izados ou maliciosos. Um banco de dados t ípico pode t er um ciclo de vida de muit os anos, ent ão, os SGBD devem ser capazes de mant er um sist ema de banco de dados que per mit a a evolução dos r equisit os que se alt er am ao longo do t empo.

Não é necessár io usar os sof t war es SGBD t ípicos par a implement ar um banco de dados comput ador izado. Poder íamos escr ever nosso pr ópr io conj unt o de pr ogr amas par a cr iar e mant er um banco de dados cr iando, de f at o, nosso pr ópr io SGBD com uma f inalidade específ ica. Nesses casos — se usar mos um SGBD de pr opósit o ger al ou não —, nor malment e t er emos de desenvolver uma quant idade consider ável de sof t war es complexos. Na ver dade, a maior ia dos SGBD é compost a por sist emas muit o complexos.

Par a complet ar nossa def inição inicial chamar emos o banco de dados e o sof t war e SGBD, j unt os, de sist ema de banco de dados. A Figur a 1.1 ilust r a alguns dos conceit os discut idos.

1.2 U

M

E

XEMPLO

Consider ando um exemplo simples com o qual a maior ia dos leit or es est á muit o f amiliar izada: um banco de dados de uma UNI VERSI DADE, no qual são mant idas as inf or mações do meio acadêmico, como alunos, cur sos e not as. A Figur a 1.2 most r a a est r ut ur a do banco de dados e f or nece uma pequena amost r a dos dados desse banco. O banco é or ganizado em cinco ar quivos, cada um ar mazena os r egist r os de dados do mesmo t ipo. O ar quivo ALUNO conser va os dados de cada est udant e, o CURSO pr eser va os dados sobre cada curso, o arquivo DI SCI PLI NA guarda os dados de cada disciplina do curso. Cont inuando, o arquivo HI STORI CO_ESCOLAR mant ém as not as r ecebidas por aluno nas diver sas disciplinas cur sadas e, f inalment e, o ar quivo PRE_REQUI SI TO ar mazena os pr é-r equisit os de cada cur so.

Par a def inir esse banco de dados devemos especif icar a est r ut ur a de cada r egist r o em cada ar quivo, consider ando-se os dif er ent es t ipos de element os dos dados a ser em ar mazenados em cada r egist r o. Na Figur a 1.2, cada r egist r o ALUNO inclui os dados

que r epr esent am o NomedoEst udant e, Numer odoAluno, Tur ma (calour o ou 1, vet er ano ou 2...) e Cur so Habilit ação (mat emát ica ou mat , ciência da comput ação ou CC...); cada r egist r o CURSO apr esent a dados como NomedoCur so, Numer odoCur so, Cr édit os e Depar t ament o (que of er ece o cur so) et c. Pr ecisamos ainda especif icar os t ipos de dados par a cada element o de dados em um r egist r o. Por exemplo, podemos especif icar que nome em ALUNO é uma st r ing (cadeia) de car act er es alf abét icos, númer o do aluno em ALUNO é um int eir o

(int eger ) e o HI STORI CO_ESCOLAR é um car act er e único do conj unt o {A, B, C, D, F, I }. Podemos Usuários/ Programadores

DE BANCO

] 1

Programas de Aplicações / Consult as {Queries)

SOFTWARE SGBD

\ 1

Programa para Processament o de Consult as/ Programas

1

Sof t ware para Acesso aos Dados Ar mazenados

/ V

Def inição dos Dados Armazenados

(met adados)

Banco de Dados Armazenados

FI GURA 1. 1 Conf igur ação de um sist ema de banco de dados simplif icado.

(26)

6

6

6 Capít ulo 1 Banco de Dados e os Usuár ios de Banco de Dados

usar ainda um esquema de código par a r epr esent ar os valor es de um det er minado dado. Por exemplo, na Figur a 1.2, r epr esent amos a t ur ma do ALUNO por 1 par a os calour os; 2 par a os vet er anos; 3 par a os que cur sam o penúlt imo ano; 4 par a aqueles do últ imo ano; e 5 par a os alunos gr aduados.

Par a const r uir o banco de dados UNI VERSI DADE ar mazenamos os dados que r epr esent em cada aluno, cur so, disciplina, r elat ór io de not as e pr é-r equisit os, bem como cada r egist r o no ar quivo apr opr iado. Pode-se per ceber que os r egist r os de dif er ent es ar quivos podem est ar r elacionados. Por exemplo, o r egist r o par a "Smit h" no ar quivo ALUNO est á r elacionado a dois r egist r os no ar quivo

HI STORI CO_ESCOLAR, cuj a f unção é especif icar as not as de Smit h em duas disciplinas. Por similar idade, cada r egist r o, no ar quivo PRE_REQUI SI TO, est á r elacionado a dois r egist r os em cur so: um r epr esent ando o cur so e o out r o, o pr é-r equisit o. A maior ia dos bancos de dados médios e gr andes inclui muit os t ipos de r egist r os e t em muit os r elacionament os ent r e os r egist r os.

A manipulação do banco de dados envolve uma consult a (quer y) e at ualização. Os exemplos de consult a são: a ' r ecuper ação do hist ór ico escolar — list a de t odos os cur sos e not as — de Smit h' , a ' r elação dos nomes dos alunos que f izer am as disciplinas do cur so de banco de dados of er ecido no segundo semest r e de 1999 e suas not as naquelas disciplinas' e ' quais os pr é-r equisit os do cur so de banco de dados?' Os exemplos de at ualização são: ' mudar a t ur ma de Smit h par a vet er anos' , ' cr iar uma nova disciplina par a o cur so de banco de dados nest e semest r e' e ' colocar a not a A par a Smit h na disciplina banco de dados do últ imo semest r e' . Essas consult as inf or mais e at ualizações devem ser especif icadas, pr ecisament e, na linguagem de consult a (quer y language) do SGBD, ant es de ser em pr ocessadas.

ALUNO Nome Numer o Tur ma Cur so_Hab

Smit h 17 1 CC

Br own 8 2 CC

NomedoCur so Numer odoCur so Cr édit os Depar t ament o

I nt r odução à Ciência da Comput ação CC1310 4 CC

Est r ut ur as de dados CC3320 4 CC

Mat emát ica Discr et a MAT2410 3 MATH

Banco de dados CC3380 3 CC

DI SCI PLI NA I dent if icador deDisciplina Numer odoCur so Semest r e Ano I nst r ut or

85 MAT2410 Segundo Semest r e 98 Kihg

92 CC1310 Segundo Semest r e 98 Ander son

102 CC3320 Pr imeir o Semest r e 99 Knut h

112 MAT2410 Segundo Semest r e 99 Chang

119 CC1310 Segundo Semest r e 99 Ander son

135 CC3380 Segundo Semest r e 99 St one

HI STORI CO„ESCOLAR Numer odoAluno I dent if icador / Disciplinas Not a

17 112 B

17 119 C

8 85 A

8 92 A

8 102 B

8 135 A

PRE_REQUI SI TO Numer odoCur so Numer odoPr e_r equisit o

CC3380 CC3320

CC3380 MAT2410

CC3320 CC1310

(27)

7

7

1.3 Car act er íst icas do Empr ego de Bancos de Dados

1.3 C

ARACTERÍ STI CAS DO

E

MPREGO DE

B

ANCOS DE

D

ADOS

Um númer o signif icat ivo de car act er íst icas dist ingue a abor dagem que ut iliza o banco de dados daquela t r adicional que usa a pr ogr amação e ar quivos. No t r adicional processament o de arquivos, cada usuár io def ine e implement a os ar quivos necessár ios par a uma aplicação específ ica, como par t e da pr ogr amação da aplicação. Por exemplo, um usuár io, a secr et ar ia de not as, pode mant er um ar quivo par a os alunos e suas not as. Os pr ogr amas par a impr imir um hist ór ico do aluno e colocar novas not as no ar quivo são implement ados como par t e da aplicação. Um segundo usuár io, o depar t ament o de cont abilidade, pode cont r olar os dados r elacionados às mensalidades e pagament os dos alunos. Apesar de ambos os usuár ios est ar em int er essados nos dados sobr e os est udant es, cada um mant ém suas inf or mações em ar quivos separ ados — e os pr ogr amas que manipulam esses ar quivos — por que cada um deles pr ecisa de alguns dados não disponíveis nos ar quivos do out r o. Essas r edundâncias, na def inição e ar mazenament o dos dados, r esult am em um espaço de ar mazenament o desper diçado e em esf or ços r edundant es par a mant er os dados comuns at ualizados.

Na abor dagem ut ilizando um banco de dados, um único r eposit ór io de dados é def inido uma única vez, mant ido e ent ão acessado por vár ios usuár ios. As pr incipais car act er íst icas da abor dagem de um banco de dados ver sus a abor dagem de pr ocessament o de ar quivos são as seguint es:

• Nat ur eza aut odescr it iva do sist ema de banco de dados.

• I solament o ent r e os pr ogr amas e os dados, e a abst r ação dos dados. • Supor t e par a as múlt iplas visões dos dados.

• Compar t ilhament o de dados e pr ocessament o de t r ansações de mult iusuár ios.

Descr ever emos, a seguir , cada car act er íst ica em seções separ adas. As car act er íst icas adicionais dos sist emas de banco de dados ser ão discut idas nas seções 1.6 a 1.8.

1.3.1 Nat ur eza Aut odescr it iva do Sist ema de Banco de Dados

Uma car act er íst ica f undament al da abor dagem de um banco de dados é que o sist ema de banco de dados possui não apenas o banco de dados, mas t ambém uma complet a def inição ou descr ição da est r ut ur a desse banco de dados e suas r est r ições. Essa def inição est á ar mazenada no cat álogo do SGBD, que cont ém inf or mações como a est r ut ur a de cada ar quivo, o t ipo e o f or mat o de ar mazenament o de cada it em de dado e vár ias r est r ições sobr e os dados. A inf or mação ar mazenada no cat álogo é chamada met adados e descr eve a est r ut ur a do banco de dados pr imár io (Figur a 1.1).

O cat álogo é usado t ant o pelo sof t war e SGBD como pelos usuár ios do banco de dados que pr ecisam de inf or mações sobr e a est r ut ur a desse banco. Um pacot e de sof t war e SGBD de pr opósit o ger al não est á escr it o par a uma aplicação específ ica, por t ant o, ser á necessár io acessar o cat álogo par a conhecer a est r ut ur a dos ar quivos no banco de dados, como o t ipo e o f or mat o dos dados que o pr ogr ama vai acessar . O SGBD pr ecisa t r abalhar bem com qualquer númer o de aplicações — por exemplo, um banco de dados de uma univer sidade, de um banco ou de uma empr esa —, desde que a def inição do banco de dados est ej a ar mazenada no cat álogo.

No pr ocessament o t r adicional de ar quivos, a def inição dos dados f az par t e dos pr ópr ios pr ogr amas da aplicação. Em conseqüência disso, esses pr ogr amas são r est r it os a t r abalhar com um único banco de dados específ ico, cuj a est r ut ur a est ej a declar ada no pr ogr ama da aplicação. Por exemplo, um sof t war e de uma aplicação escr it o em C++ pode t er a st r uct ou a declar ação de classes, e um pr ogr ama em COBOL t em comandos na Dat a Division par a def inir seus ar quivos. Por ém, o pr ogr ama de pr ocessament o de ar quivos possibilit a o acesso a um único banco de dados específ ico, enquant o o SGBD pode acessar diver sos bancos de dados, ext r aindo as def inições de banco de dados do cat álogo e usando-as depois.

No exemplo most r ado na Figur a 1.2, o cat álogo do SGBD ar mazenar á as def inições de t odos os ar quivos most r ados. Elas são especif icadas pelo pr oj et ist a ant es de cr iar o banco de dados r eal e ar mazenadas no cat álogo. Todas as vezes que um pedido f or f eit o par a acessar , digamos, o r egist r o Nome de um ALUNO, o SGBD se r ef er ir á ao cat álogo par a det er minar a est r ut ur a do ar quivo ALUNO

e a posição e t amanho do it em de dado Nome dent r o do r egist r o ALUNO.Em cont r ast e, em uma aplicação t ípica de pr ocessament o de ar quivos, a est r ut ur a do ar quivo e a localização exat a, no caso ext r emo, de Nome dent r o do r egist r o ALUNO, j á est ão codif icadas em cada pr ogr ama que acessa esses it ens de dados.

1.3.2 I solament o ent r e os Pr ogr amas e Dados e Abst r ação de Dados

(28)

8

8

8 Capít ulo 1 Banco de Dados e os Usuár ios de Banco de Dados

cont r ár io, os pr ogr amas par a acesso ao SGBD não exigem essas alt er ações na maior ia dos casos. A est r ut ur a dos ar quivos de dados é ar mazenada no cat álogo do SGDB separ adament e do pr ogr ama de acesso. Denominar emos essa pr opr iedade independência programa-dados.

Por exemplo, o pr ogr ama de acesso a ar quivos pode ser escr it o de f or ma que acesse, apenas, os r egist r os ALUNO da est r ut ur a apr esent ada na Figur a 1.3. Se quiser mos adicionar out r o dado ao r egist r o de cada ALUNO, digamos, sua Dat adeNasciment o, esse pr ogr ama não vai t r abalhar por muit o t empo e pr ecisar á ser alt er ado. Ao cont r ár io, em um ambient e SGBD, necessit amos alt er ar apenas a descr ição do r egist r o ALUNO no cat álogo par a r ef let ir a inclusão do novo it em de dados Dat adeNasciment o; nenhum pr ogr ama

ser á modif icado. A pr óxima vez que um pr ogr ama SGBD acessar o cat álogo, a nova est r ut ur a do r egist r o ALUNO ser á acessada e ut ilizada.

Nome do I t em de Dado Posição I nicial no Regist r o Tamanho em Car act er es (byt es)

Nome 1 30

Numer odoAluno 31 4

Tur ma 35 4

Cur so_Hab 39 4

FI GURA 1. 3 For mat o de ar mazenament o int er no par a um r egist r o ALUNO.

Em alguns t ipos de sist emas de banco de dados, como o or ient ado a obj et o e o obj et o-r elacional (capít ulos 20 a 22), os usuár ios podem est abelecer as oper ações sobr e os dados como par t e das def inições de dados. Uma operação (t ambém chamada f unção ou

mét odo) é especif icada em duas par t es. A int er f ace (ou assinat ur a) de uma oper ação inclui o nome da oper ação e os t ipos de dados de seus ar gument os (ou par âmet r os). A implement ação (ou mét odo) de uma oper ação é def inida separ adament e e pode ser alt er ada sem af et ar a int er f ace. Os pr ogr amas de usuár ios da aplicação podem oper ar nos dados invocando essas oper ações por meio de seus nomes e ar gument os, sem consider ar como essas oper ações são implement adas. I sso pode ser chamado de independência programa-operação.

A car act er íst ica que per mit e a independência pr ogr ama-dados e pr ogr ama-oper ação é int it ulada abst ração de dados. Um SGBD of er ece aos usuár ios uma represent ação conceit ual de dados que não inclui muit os det alhes sobr e como o dado é ar mazenado ou como as oper ações são implement adas. I nf or malment e, o modelo de dados é um t ipo de abst r ação de dados usado par a pr over essa r epr esent ação conceit ual. O modelo de dados ut iliza os conceit os lógicos, como obj et os, suas pr opr iedades e seus int er -r elacionament os, que podem se-r mais f áceis pa-r a os usuá-r ios ent ende-r em os conceit os de a-r mazenament o comput acionais. Conseqüent ement e, o modelo de dados esconde os det alhes de ar mazenament o e da implement ação, desint er essant es par a a maior ia dos usuár ios de banco de dados.

Por exemplo, vamos consider ar novament e a Figur a 1.2. A implement ação int er na do ar quivo pode ser def inida pelo compr iment o de seus r egist r os —, o númer o de car act er es (byt es) em cada r egist r o —, e cada it em de dado pode ser especif icado pelo seu byt e inicial dent r o de um r egist r o e seu compr iment o em byt es. O r egist r o ALUNO poder ia, em r azão disso, ser r epr esent ado como expost o na Figur a 1.3. No ent ant o, um usuár io t ípico de banco de dados não est á pr eocupado com a localização de cada it em de dados dent r o de um r egist r o ou com o seu compr iment o; na r ealidade, sua pr eocupação é que quando f or acessado o Nome do ALUNO, O valor cor r et o sej a r et or nado. Uma r epr esent ação conceit ual dos r egist r os ALUNO é most r ada na Figur a 1.2. Muit os out r os det alhes da or ganização do ar mazenament o de dados, como os caminhos de acesso especif icados em um ar quivo, podem ser escondidos dos usuár ios de banco de dados pelo SGBD — discut ir emos os det alhes do ar mazenament o nos capít ulos 13 e 14.

Na abor dagem de banco de dados, a est r ut ur a det alhada e a or ganização de cada ar quivo são ar mazenadas no cat álogo. Os usuár ios de banco de dados e os pr ogr amas de aplicação r ef er em-se à r epr esent ação conceit ual dos ar quivos, e o SGBD ext r ai os det alhes do ar mazenament o de ar quivos do cat álogo, quando são necessár ios, pelos módulos de acesso a ar quivos do SGBD. Muit os modelos de dados podem ser ut ilizados par a pr over essa abst r ação dos dados aos usuár ios do banco. A maior par t e dest e livr o é dedicada à apr esent ação dos vár ios modelos de dados e os conceit os que est es ut ilizam par a abst r air a r epr esent ação dos dados.

Nos bancos de dados or ient ados a obj et o e a obj et o-r elacional, o pr ocesso de abst r ação não inclui apenas a est r ut ur a de dados, mas t ambém as oper ações sobr e os dados. Essas oper ações of er ecem uma abst r ação das at ividades do minimundo f acilment e ent endidas pelos usuár ios.

(29)

9

9

1.3 Car act er íst icas do Empr ego de Bancos de Dados

1.3.3 Supor t e par a as Múlt iplas Visões dos Dados

Um banco de dados t ípico t em muit os usuár ios, e cada qual pode solicit ar dif er ent es per spect ivas ou visões do banco de dados. Uma visão pode ser um subconj unt o de um banco de dados ou cont er uma visão vir t ual dos dados, der ivados dos ar quivos do banco de dados, mas não, explicit ament e, ar mazenados. Alguns usuár ios podem não saber se os dados a que eles se r ef er em são ar mazenados ou der ivados.

Um SGBD mult iusuár ios, cuj os usuár ios t êm vár ias aplicações dist int as, deve pr opor cionar f acilidades par a a def inição de múlt iplas visões. Por exemplo, um usuár io do banco de dados da Figur a 1.2 pode est ar int er essado soment e em acessar e impr imir o hist ór ico de cada aluno; a visão par a esse usuár io é most r ada na Figur a 1.4a. Um segundo usuár io, int er essado em checar se os alunos cumpr ir am t odos os pr é-r equisit os de cada cur so par a o qual se mat r icular am, pode ut ilizar a visão apr esent ada na Figur a 1.4b.

Hist ór ico Escolar do Aluno

HI STORI CO_ESCOLAR NomedoAluno

Numer odoCur so Not a Semest r e Ano I dDisciplina

CC1310 C Out ono 99 119

Smit h

MAT2410 B Out ono 99 112

MAT2410 A Out ono 98 85

CC1310 A Out ono 98 92

CC3320 B Pr imaver a 99 102

Br own

CC3380 A Out ono 99 135

PRE.REQUI SI TOS NomedoCur so Numer odoCur so Pr e_Requisit os

CC3320

Banco de Dados CC3380

MAT2410

Est r ut ur as de Dados CC3320 CC1310

FI GURA 1.4 Duas visões der ivadas de um banco de dados da Figur a 1.2. (a) Visão do HI STÓRI CO ESCOLAR DO ALUNO,(b) Visão dos PRÉ-REQUI SI TOS DO CURSO.

1.3.4 Compar t ilhament o de Dados e o Pr ocessament o de Tr ansação Mult iusuár ios

Um SGBD mult iusuár io, como o nome implica, deve per mit ir que diver sos usuár ios acessem o banco de dados ao mesmo t empo. I sso é essencial se os dados par a as vár ias aplicações est ão int egr ados e mant idos em um único banco de dados. O SGBD deve incluir um sof t war e de cont r ole de concor r ência par a gar ant ir que muit os usuár ios, ao t ent ar at ualizar o mesmo dado, o f açam de um modo cont r olado, par a assegur ar que os r esult ados das at ualizações sej am cor r et os. Por exemplo, quando muit os at endent es t ent am r eser var um lugar em um vôo, o SGBD deve gar ant ir que cada assent o possa ser acessado soment e por um at endent e de cada vez, par a f azer a r eser va de apenas um passageir o. Esses t ipos de aplicações são, nor malment e, denominados aplicações de pr ocessament o de t r ansações on-line — online t r ansact ion pr ocessing (OLTP). Uma r egr a f undament al do sof t war e do SGBD mult iusuár io é gar ant ir que as t r ansações concor r ent es oper em cor r et ament e.

O conceit o de t r ansação t or nou-se f undament al par a muit as aplicações de banco de dados. Uma t r ansação é um pr ogr ama em execução ou pr ocesso que inclui um ou mais acessos ao banco de dados, como a leit ur a ou a at ualização de r egist r os. Cada t r ansação deve execut ar um acesso logicament e cor r et o ao banco de dados, se execut ado sem a int er f er ência de out r as t r ansações. O SGBD deve gar ant ir vár ias pr opr iedades da t r ansação. A pr opr iedade de isolament o gar ant e que cada t r ansação possa ser ef et uada de f or ma isolada de out r as t r ansações; mesmo cent enas de t r ansações podem ser execut adas simult aneament e. A pr opr iedade de at omicidade gar ant e que t odas as oper ações em um banco de dados, em uma t r ansação, sej am execut adas ou nenhuma delas o sej a. Discut ir emos as t r ansações em det alhes na Par t e V do livr o.

Imagem

Figura  3. 15      Diagr ama ER par a o esquema EMPRESA. As r est r ições est r ut ur ais são especif icadas usando a not ação (min,max).

Referências

Documentos relacionados

Segundo Sant os et al ( 2004) , no âm bit o de sist em as de ciência, t ecnologia e inovação, os exer cícios pr ospect ivos ou de pr ospecção t ecnológica t êm sido

Existe a API padr˜ ao, que realiza todos os c´ alculos usando o modelo de propaga¸c˜ ao Log Distance, e uma API para testes, onde o modelo a ser utilizado pode ser escolhido, bem

co de dados para recuperar dados específicos, atualização do banco de dados para refletir mu- danças no minimundo e geração de relatórios com base nos dados.... Vantagens

Uma federação de Banco de Dados é uma coleção integrada de banco de dados autônomos, a qual os componentes de administração mantém controle total sobre os seus sistemas

Em confiabilidade e em pat ia, os usuár ios m ost r ar am - se insat isfeit os quant o aos t reinam ent os de busca bibliográfica e ao em penho do funcionário da bibliot eca em

Os dados apresent ados t êm com o referência at ividades assist ências dir ecionadas par a pessoas usuár ias de drogas, desenvolvidas por um a unidade de saúde no espaço inst

modelo relacional e os métodos procedurais para consultar os dados  Origem os Bancos de Dados Relacionais... • Os bancos de dados Relacionais não podiam se igualar aos banco de

I Linguagem de Manipulação de Dados (DML) → Utilizada para manipulaccão de dados, tais como inserção, exclusão, modificação e recuperação de dados.. I Alto Nível →