798

SISTEMAS DE - suporte.hol.essuporte.hol.es/livro/sistemas de banco de dados elmasri navathe... · As características fundamentais incluídas nesta edição são: • O livro possui

Embed Size (px)

Citation preview

  • SISTEMAS DE BANCO DE DADOS

    EDIO

    Pearson Education

    EMPRESA CIDAD

  • 3

    SISTEMAS DE BANCO DE DADOS

    EDIO

    Ramez Elmasri Shamkant B. Navathe

    Traduo Marlia Guimares Pinheiro

    Cludio Csar Canhette, Glenda Cristina Valim Melo, Claudia Vicei Amadeu e Rinaldo Macedo de Morais

    Reviso Tcnica Luis Ricardo de Figueiredo

    Mestre em cincias da computao e doutorando pela USP-Ribeiro Preto

    , ""*lo. PEARSON

    Addison Wesley

    si ':.'.

  • 4

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

    Traduo autorizada a partir da edio original em ingls, 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 publicao poder ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio,

    eletrnico ou mecnico, incluindo fotocpia, gravao ou qualquer outro tipo de sistema de armazenamento e transmisso de informao, sem prvia autorizao,

    por escrito, da Pearson Education do Brasil.

    Gerente Editorial: Roger Trimer Editora de Desenvolvimento: Renatha Prado

    Gerente de Produo: Heber Lisboa Editora de Texto: Tereza Gouveia

    Preparao: Maria Alice da Costa, Marg Negro e Nelson Luis Barbosa Reviso: Alessandra Miranda, Alexandra Costa e Thelma Babaoka Capa: Marcelo Franozo, sobre o projeto original de Beth Anderson

    Imagem da Capa 2003 Digital Vision Editorao Eletrnica: ERJ Composio Editorial e Artes Grficas Ltda.

    A Figura 12.14 uma definio de um diagrama do modelo lgico 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 Catalogao na Publicao (CIP) (Cmara Brasileira do Livro, SP, Brasil)

    Elmasri, Ramez Sistemas de banco de dados / Ramez Elmasri e Shamkant B. Navathe; revisor tcnico Luis Ricardo de Figueiredo. -- So Paulo : Pearson Addison Wesley, 2005

    Ttulo original: Fundamentals of database systems Vrios tradutores. Bibliografia.

    ISBN 85-88639-17-3

    1. Banco de dados I. Navathe, Shamkant B. II. Ttulo.

    04-6763 CDD-005.75

    ndices para catlogo sistemtico 1. Banco de dados : Sistemas : Processamento de dados 005.75 2. Banco de dados : Fundamentos : Processamento de dados 005.75

    2006 1a reimpresso

    Direitos exclusivos para a lngua portuguesa cedidos Pearson Education do Brasil,

    uma empresa do grupo Pearson Education Av. Ermano Marchetti, 1435

    CEP: 05038-001 - Lapa - So Paulo - SP Tel: (11) 2178-8686 Fax: (11) 3611-0444

    e-mail: [email protected]

    mailto:[email protected]

  • 5

    A Amalia com amor R.E.

    A minha me, Vijaya, e minha esposa, Aruna, pelo amor e apoio

    S.B.N.

  • 2

    Prefcio

    Este livro introduz os conceitos fundamentais necessrios para projetar, usar e implementar os sistemas de banco de dados e suas aplicaes. Nossas apresentaes 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 tcnicas de implementao 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 nveis introdutrio, avanado, de graduao ou de ps-graduao, e como um livro de referncia. Pressupomos que os leitores estejam familiarizados com a programao elementar e com os conceitos de estruturao de dados, e que tenham tido algum contato com a organizao bsica de computadores.

    Iniciamos na Parte 1 com uma introduo e uma apresentao dos conceitos bsicos e sua terminologia, alm dos princpios de modelagem conceitual de banco de dados. E conclumos o livro nas partes 7 e 8 com uma introduo sobre as tecnologias emergentes, como data mining (garimpagem de dados), XML, segurana e banco de dados para Web. Nas partes intermedirias 2 a 6 tratamos com profundidade os aspectos mais importantes dos fundamentos de banco de dados.

    As caractersticas fundamentais includas nesta edio so: O livro possui uma organizao auto-ajustvel e flexvel 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 captulo de SQL avanado com material sobre as tcnicas de programao 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 aplicao. A cobertura de assuntos como segurana, bancos de dados mveis, GIS e gerenciamento de dados Genoma foi atualizada. Um novo captulo em XML e bancos de dados para a Internet. Um captulo novo em data mining. Uma significativa reviso dos suplementos para incluir um conjunto robusto de materiais para professores e estudantes e um estudo de caso on-

    line.

    Principais Diferenas em Relao Terceira Edio Existem vrias mudanas organizacionais na quarta edio, alm de alguns captulos novos muito importantes. As mudanas principais so:

    Os captulos sobre organizao de arquivos e indexao (captulos 5 e 6 na terceira edio) foram movidos para a Parte 4 da atual edio e correspondem agora aos captulos 13 e 14. Essa parte inclui tambm os captulos 15 e 16 sobre processamento de pesquisas (query) e sua otimizao e o projeto do banco de dados fsico e sintonia (tuning) (que se referia ao Captulo 18 e sees 16.3-16.4 da edio anterior).

    A cobertura do modelo relacional foi reorganizada e atualizada na Parte 2 desta edio. O Captulo 5 cobre os conceitos do modelo relacional e as restries. O material sobre lgebra relacional e clculo foi incorporado ao Captulo 6. O projeto de banco de dados relacional usando os mapeamentos do ER-para-relacional e do EER-para-relacional encontra-se no Captulo 7. A SQL est nos captulos 8 e 9, bem como o material novo sobre tcnicas de programao em SQL nas sees 9.3 a 9.6.

    A Parte 3 cobre a teoria e a metodologia de projeto de banco de dados. Os captulos 10 e 11 sobre a teoria da normalizao correspondem aos captulos 14 e 15 da edio anterior. O Captulo 12, referente ao projeto de banco de dados, foi, na prtica, atualizado para incluir mais cobertura sobre a UML.

    Os captulos sobre transaes, controle de concorrncia e recuperao (19, 20 e 21 na terceira edio) esto agora nos captulos 17, 18 e 19 na Parte 5 desta edio.

    Os captulos que dizem respeito aos conceitos de orientao a objetos, modelo de objetos ODMG e sistemas objeto-relacional (11, 12 e 13 na edio precedente) fazem parte atualmente dos captulos 20, 21 e 22 na Parte 6. O Captulo 22 foi reorganizado e atualizado.

  • 3

    VIII Prefcio

    Os captulos 10 e 17 da terceira edio foram retirados. O material sobre arquitetura cliente-servidor foi includo nos captulos 2 e 25 da nova edio.

    Os captulos sobre segurana, modelos estendidos (ativo, temporal, espacial, multimdia) e bancos de dados distribudos (captulos 22, 23 e 24 na edio anterior) correspondem agora aos captulos 23, 24 e 25 na Parte 7.0 captulo sobre segurana foi atualizado. O Captulo 25 da terceira edio relativo a bancos de dados dedutivos foi incorporado ao Captulo 24 desta edio e faz parte da Seo 24-4.

    O Captulo 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 (Captulo 26 na edio anterior) foi dividido em dois captulos. O Captulo 27 sobre data

    mining foi ampliado e atualizado.

    Contedo Desta Edio A Parte 1 descreve os conceitos bsicos necessrios para um bom entendimento do projeto de banco de dados e sua implementao, bem como as tcnicas de modelagem conceituais usadas nos sistemas de banco de dados. Os captulos 1 e 2 introduzem os bancos de dados, seus usurios tpicos e os conceitos de SGBDs, sua terminologia e arquitetura. No Captulo 3, os conceitos do modelo Entidade-Relacionamento (ER) e os diagramas ER so apresentados e utilizados para ilustrar o projeto de banco de dados conceitual. O Captulo 4 est concentrado na abstrao de dados e nos conceitos de modelagem de dados semnticos, e estende o modelo ER para incorporar essas idias, direcionando para o modelo de dados ER-Estendido (EER) e diagramas EER. Os conceitos apresentados incluem subclasses, especializao, generalizao e tipos de unio (categorias). A notao para os diagramas de classe da UML tambm foi introduzida nos captulos 3 e 4-

    A Parte 2 descreve o modelo de dados relacional e os SGBDs relacionais. O Captulo 5 descreve o modelo relacional bsico, suas restries de integridade e operaes de atualizao. O Captulo 6 traz as operaes da lgebra relacional e introduz o clculo relacional. O Captulo 7 discute o projeto de banco de dados relacional utilizando os mapeamentos do ER e do EER-para-relacional. O Captulo 8 d uma viso detalhada da linguagem SQL, cobrindo o padro SQL, que implementado na maioria dos sistemas relacionais. O Captulo 9 trata dos tpicos de programao SQL, como SQLJ, JDBC e SQL/CLI.

    A Parte 3 cobre vrios tpicos relacionados ao projeto de banco de dados. Os captulos 10 e 11 tratam do formalismo, teorias e algoritmos desenvolvidos para o projeto de banco de dados relacional por meio da normalizao. Esse material inclui os tipos de dependncias funcionais e outros tipos, e a forma normal de relaes. Passo a passo, a normalizao intuitiva apresentada no Captulo 10, e o projeto de algoritmos relacionais discutido no Captulo 11, que tambm define outros tipos de dependncias, como a multivalorada e a juno. O Captulo 12 apresenta uma viso geral das diferentes fases do projeto de banco de dados para as aplicaes de tamanhos mdios e grandes, usando UML.

    A Parte 4 comea com uma descrio das estruturas de arquivo fsicas e dos mtodos de acesso usados em sistemas de banco de dados. O Captulo 13 aborda os mtodos primrios de organizar os arquivos de registros em disco, incluindo o hash esttico e o dinmico. O Captulo 14 refere-se a tcnicas de indexao de arquivos, incluindo as estruturas de dados rvore-B e rvore-B+, bem como arquivos grid. O Captulo 15 introduz os fundamentos do processamento e otimizao de pesquisas, e o Captulo 16 discute o projeto de banco de dados fsico e sua sintonizao.

    A Parte 5 analisa o processamento de transaes, controle de concorrncia e tcnicas de recuperao, incluindo as discusses de como esses conceitos so efetivados na SQL.

    A Parte 6 uma introduo ampla aos sistemas de bancos de dados orientados a objeto e objeto-relacional. O Captulo 20 insere os conceitos de orientao a objetos. O Captulo 21 d uma viso detalhada do modelo de objetos ODMG e suas linguagens associadas ao ODL e OQL. O Captulo 22 descreve como esto sendo estendidos os bancos de dados relacionais para incluir os conceitos orientados a objeto e apresenta as caractersticas do sistema objeto-relacional, alm da avaliao de algumas caractersticas do padro SQL3 e o modelo de dados relacional aninhado.

    As partes 7 e 8 cobrem vrios tpicos avanados. O Captulo 23 fornece uma viso geral de segurana e autorizao em banco de dados, inclusive dos comandos privilegiados da SQL, GRANT (CONCEDER) e REVOKE (REVOGAR), e amplia os conceitos de segurana incluindo a criptografia, os papis e o controle de fluxo. O Captulo 24 introduz vrios modelos de banco de dados estendidos para aplicaes avanadas. Inclui banco de dados ativo e gatilhos (triggers), temporal, espacial, multimdia e bancos de dados dedutivos. O Captulo 25 possui uma introduo a bancos de dados distribudos e arquitetura cliente-servidor de trs camadas. O Captulo 26 novo e trata do modelo XML (eXtended Markup Language). Primeiramente, discute as diferenas entre os modelos estruturado, semi-estruturado e no-estruturado; a seguir, apresenta os conceitos de XML; e, finalmente, compara o modelo XML com os modelos de banco de dados tradicionais. O Captulo 27 sobre data mining foi ampliado e atualizado. O Captulo 28 introduz os conceitos de data warehousing. Por fim, o Captulo 29 traz uma

  • 4

    Prefcio IX

    introduo aos tpicos de bancos de dados mveis, bancos de dados multimdia, GIS (Sistemas de Informaes Geogrficas) e gerenciamento de dados Genoma em bioinformtica.

    O Apndice A contm vrias alternativas de notaes diagramticas para exibir um esquema conceitual de ER ou EER. Elas podem ser substitudas pelas notaes que empregamos, se o professor assim o desejar. O Apndice C traz os mais importantes parmetros fsicos para os discos. Os apndices B, E e F esto no site. O Apndice B um estudo de caso que acompanha o projeto e a implementao do banco de dados de uma livraria. Os apndices E e F cobrem os sistemas de bancos de dados legados, baseados nos modelos de bancos de dados de rede e hierrquicos. Foram usados por mais de 30 anos como base para muitas aplicaes de bancos de dados comerciais existentes e sistemas de processamento de transaes, e sero necessrias vrias dcadas para substitu-los completamente. Consideramos importante apresentar aos estudantes de administrao de banco de dados essas abordagens existentes h muito tempo. Os captulos completos da segunda edio podem ser encontrados no site como uma referncia a esta edio.

    Orientaes Para o Uso Deste Livro Existem diferentes formas de apresentao de um curso de banco de dados. Os captulos das partes 1 a 5 podem ser usados em um curso introdutrio de sistemas de banco de dados na ordem em que esto ou na ordem escolhida pelo professor. O professor pode omitir captulos e sees e incluir outros do restante do livro, dependendo da nfase do curso. Ao trmino de cada seo de apresentao do captulo so apresentadas as sees que podem ser omitidas se for aconselhvel uma discusso menos detalhada do tpico abordado no captulo. Sugerimos o uso at o Captulo 14 em um curso de banco de dados introdutrio e a incluso de outras partes selecionadas dos demais captulos, dependendo do conhecimento dos estudantes e da profundidade desejada. Para uma nfase em tcnicas de implementao de sistemas, os captulos das partes 4 e 5 devem ser includos.

    Os captulos 3 e 4, que tratam da modelagem conceitual usando-se os modelos ER e EER, so importantes para uma boa compreenso conceitual sobre os bancos de dados. Porm, podem ser estudados parcialmente, estudados em outro curso ou at mesmo ser omitidos, se a nfase for a implementao do SGBD.

    Os captulos 13 e 14, referentes organizao de arquivos e indexao, tambm 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

    t Data Warehousing J

  • 5

    X Prefcio

    de um curso em organizao de arquivos, partes desses captulos poderiam ser utilizadas como material de leitura, ou alguns exerccios podem ser definidos como reviso dos conceitos.

    Um ciclo de vida completo de projeto e implementao de um banco de dados engloba o projeto conceitual (captulos 3 e 4), o mapeamento do modelo (Captulo 7), a normalizao (Captulo 10) e a implementao em SQL (Captulo 9). A documentao adicional em SGBDRS tambm deve ser providenciada.

    O livro foi escrito de forma a abranger todos esses tpicos, embora sua ordem de leitura possa ser alterada. A figura da pgina anterior mostra as principais interdependncias entre os captulos. Como a figura ilustra, possvel comear com diferentes tpicos aps os dois captulos introdutrios. Embora a figura possa parecer complexa, importante observar que, se os captulos forem lidos na ordem proposta, as interdependncias no sero perdidas. A figura pode ser consultada por professores que desejam utilizar uma ordem alternativa de apresentao.

    Para o curso de um nico semestre baseado neste livro, alguns captulos podem ser definidos como material de leitura, como as partes 4, 7 e 8. O livro pode ser usado, tambm, para um caso de dois semestres. O primeiro curso, "Introduo ao projeto de sistemas de bancos de dados", nos nveis introdutrio, principiante ou avanado, deve cobrir os captulos 1 a 14. O segundo, "Tcnicas de projeto e implementao de bancos de dados", para nveis mais avanados, deve abordar os captulos 15 a 28. Os captulos das partes 7 e 8 podem ser utilizados seletivamente em cada semestre, e outras bibliografias descrevendo os SGBDs, disponveis 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 implementao do banco de dados de uma livraria. Captulos 10 e 11 da terceira edio. Apndices E e F (em ingls). Conjunto de "Notas de aula" em PowerPoint. Manual de solues (em ingls) exclusivo para professores que lecionam a disciplina. Exerccio de mltipla escolha.

    Agradecimentos um grande prazer agradecermos a assistncia e contribuio de um grande nmero de pessoas que nos auxiliaram neste esforo. Primeiro, gostaramos de agradecer a nossos editores, Maite Suarez-Rivas, Katherine Harutunian, Daniel Rausch e Ju-liet Silveri. Em particular, agradecemos os esforos e a ajuda de Katherine Harutunian, nosso primeiro contato para a quarta edio. Gostaramos de expressar nosso reconhecimento a todos que tenham contribudo para esta quarta edio. Agradecemos a contribuio 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, Califrnia 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 Gergia Tech, que contribuiu com o Captulo 27.

    Ramez Elmasri agradece a seus alunos Hyoil Han, Babak Hojabri, Jack Fu, Charley Li, Ande Swathi, e Steven Wu, que contriburam com material para o Captulo 26. grato tambm ao apoio oferecido pela University of Texas, Arlington.

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

    Gostaramos de reforar nossos agradecimentos queles que revisaram e contriburam para as edies anteriores de Fundamentos de Sistemas de Banco de Dados. Na primeira edio, somos gratos a: Alan Apt (editor), Don Batory, Scott Downing, Dennis Heimbinger, Julia Hodges, Yannis Ioannidis, Jim Larson, Dennis McLeod, Per-Ake Larson, Rahul Patel, Nicholas Roussopoulos, David Stemple, Michael Stonebraker, Frank Tompa, e Kyu-Young Whang; na segunda edio: Dan Joraans-tad (editor), Rafi Ahmed, Antnio Albano, David Beech, Jos Blakeley, Panos Chrysanthis, Suzanne Dietrich, Vic Ghorpa-dey, Goets Graefe, Eric Hanson, Junguk L. Kim, Roger King, Vram Kouramajian, Vijay Kumar, John Lowther, Sanjay Manchanda, Toshimi Minoura, Inderpal Mumick, Ed Omiecinski, Girish Pathak, Raghu Ramakrishnan, Ed Robertson, Eu-gene Sheng, David Stotts, Marianne Winslett, e Stan Zdonick. Agradecemos s pessoas que contriburam para a terceira edio: nossos editores na Addison-Wesley, Maite Suarez-Rivas, Katherine Harutunian, e Bob Woodbury, e os seguintes colegas que contriburam ou revisaram parcial ou totalmente a terceira edio: Suzanne Dietrich, Ed Omiecinski, Rafi Ahmed, Fran-cois Bancilhon, Jos Blakeley, Rick Cattell, Ann Chervenak, David W. Embley, Henry A. Etlinger, Leonidas Fegaras, Dan

    http://www.aw.com/elmasri_br

  • 6

    Prefcio XI

    Forsyth, Farshad Ftouhi, 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 pacincia de nossos familiares.

    EE S.B.N.

  • Sumrio PARTE 1 INTRODUO MODELAGEM CONCEITUAL1

    1. Banco de dados e os usurios de banco de dados..............................................................................................................................3 1.1 Introduo ................................................................................................................................................................................. 4 1.2 Um exemplo .............................................................................................................................................................................. 5 1.3 Caractersticas do emprego de bancos de dados ........................................................................................................................ 7 1.4 Atores no palco........................................................................................................................................................................10 1.5 Trabalhadores dos bastidores...................................................................................................................................................11 1.6 Vantagens da utilizao da abordagem SGBD.....................................................................'....................................................11 1.7 Uma breve histria das aplicaes de um banco de dados .......................................................................................................15 1.8 Quando no 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 instncias ...............................................................................................................................19 2.2 Arquitetura de trs-esquemas e a independncia 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 Classificao 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 nvel conceitual para o projeto de um banco de dados .......................................................36 3.2 Uma aplicao exemplo de banco de dados.............................................................................................................................37 3.3 Tipos entidade, conjuntos de entidade e atributos-chave .........................................................................................................39 3.4 Tipos relacionamento, conjuntos de relacionamentos, papis e restries 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, convenes de nomenclatura e decises de projeto ........................................................................................50 3.8 Notao para diagramas de classe UML..................................................................................................................................52 3.9 Resumo ...................................................................................................................................................................................54

    4. Modelagem com entidade-relacionamento estendido e UML..........................................................................................................................................60 4.1 Subclasses, superclasses e herana ...........................................................................................................................................61 4.2 Especializao e generalizao.................................................................................................................................................62 4.3 Caractersticas e restries da especializao e generalizao ..................................................................................................64 4.4 Modelagem de tipos unio usando as categorias ......................................................................................................................69 4.5 Um exemplo UNIVERSIDADE de esquema EER e definies formais para o modelo EER..........................................71 4.6 Representao da especializao/generalizao e herana em diagramas de classe UML.......................................................73 4.7 Tipos relacionamento com grau maior que dois .......................................................................................................................74 4.8 Abstrao de dados, representao do conhecimento e conceitos de ontologia ........................................................................77 4.9 Resumo.....................................................................................................................................................................................81

    PARTE 2 MODELO RELACIONAL: CONCEITOS, RESTRIES, LINGUAGENS, DESIGN E PROGRAMAO . . 87 5. O modelo de dados relacional e as restries de um banco de dados relacional .........................................................................89

  • 2

    2

    XIV Sumario

    5.1 Conceitos do modelo relacional...............................................................................................................................................90 5.2 Restries do modelo relacional e esquemas de um banco de dados relacional...................................................................... 94 5.3 Operaes de atualizao e tratamento de violaes de restrio ......................................................................................... 100 5.4 Resumo................................................................................................................................................................................. 102

    6. A lgebra relacional e o clculo relacional.........................................................................................................................................................................106 6.1 Operaes relacionais unrias: SELEO (SELECT) e PROJEO (PROJECT) ............................................................. 107 6.2 Operaes da lgebra relacional a partir da teoria dos conjuntos.......................................................................................... 110 6.3 Operaes relacionais binrias: JUNO (JOIN) e DIVISO (DIVISION) .......................................................................... 113 6.4 Outras operaes relacionais ................................................................................................................................................ 118 6.5 Exemplos de consultas (queries) na lgebra relacional......................................................................................................... 122 6.6 O clculo relacional de tupla ................................................................................................................................................ 124 6.7 O clculo relacional de domnio ........................................................................................................................................... 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 relaes............................................................................................ 142 7.3 Resumo................................................................................................................................................................................... 146

    8. SQL-99: Definio de esquema, restries bsicas e consultas (queries)........................................................................................ 148 8.1 Definio de dados e tipos de dados SQL............................................................................................................................. 149 8.2 Especificando as restries bsicas em SQL......................................................................................................................... 153 8.3 Comandos para as alteraes de esquemas SQL................................................................................................................... 155 8.4 Consultas SQL bsicas ......................................................................................................................................................... 156 8.5 Consultas SQL mais complexas ........................................................................................................................................... 164 8.6 Comandos INSERT (insero), DELETE (excluso) e UPDATE (atualizao) em SQL..................................................... 176 8.7 Outras funcionalidades da SQL............................................................................................................................................ 178 8.8 Resumo................................................................................................................................................................................. 179

    9. Mais SQL: asseres (assertions), vises (views) e tcnicas de programao...........................................................................................................182 9.1 Especificando as restries genricas por asseres ............................................................................................................. 183 9.2 Vises (views tabelas virtuais) em SQL .......................................................................................................................... 183 9.3 Programao com o banco de dados: escolhas e tcnicas ..................................................................................................... 186 9.4 SQL embutida, SQL dinmica e SQLJ................................................................................................................................. 188 9.5 Programao em um banco de dados por meio de funes (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. Dependncia funcional e normalizao em um banco de dados relacional .............................................................................. 209

    10.1 Orientaes para projetos informais de esquemas relacionais............................................................................................ 210 10.2 Dependncias funcionais.................................................................................................................................................... 217 10.3 Formas normais baseadas em chaves primrias ................................................................................................................. 222 10.4 Definies 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 dependncias..................................................................................................... 237 11.1 Propriedades das decomposies relacionais .....................................................................................................................238 11.2 Algoritmos para o projeto do esquema de banco de dados relacional ................................................................................ 242 11.3 Dependncias multivaloradas e a quarta forma normal...................................................................................................... 247 11.4 Dependncias de juno e a quinta forma normal .............................................................................................................. 251

  • 3

    3

    Sumario XV

    11.5 Dependncias de incluso...................................................................................................................................................252 11.6 Outras dependncias e formas normais...............................................................................................................................253 11.7 Resumo ..............................................................................................................................................................................254

    12. Metodologia para projeto prtico de banco de dados e uso de diagramas UML......................................................................................................257 12.1 O papel dos sistemas de informao nas organizaes .......................................................................................................258 12.2 O processo de projeto e implementao de banco de dados................................................................................................261 12.3 Uso de diagramas UML como apoio para a especificao 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, INDEXAO, PROCESSAMENTO DE CONSULTAS E PROJETO FSICO.............................................................................................................................................................................. 291

    13. Armazenamento em disco, estruturas bsicas de arquivos e hashing........................................................................................ 293 13.1 Introduo ..........................................................................................................................................................................293 13.2 Dispositivos de armazenamento secundrio .......................................................................................................................296 13.3 Bufferingde blocos..............................................................................................................................................................301 13.4 Disposio de registros de arquivos em disco.....................................................................................................................302 13.5 Operaes em arquivos.......................................................................................................................................................305 13.6 Arquivos de registros desordenados (heap files) ................................................................................................................307 13.7 Arquivos de registros ordenados (sorted files).................................................................................................................... 308 13.8 Tcnicas de hashing ........................................................................................................................................................... 310 13.9 Outras organizaes primrias 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 indexao de arquivos.................................................................................................................................................................................326 14.1 Tipos de ndices ordenados em nvel nico.......................................................................................................................... 326 14.2 ndices multinveis............................................................................................................................................................... 334 14.3 ndices multinveis dinmicos que usam rvores-B (B-trees) e rvores-B+ (B+-trees)........................................................336 14.4 ndices em chaves mltiplas.................................................................................................................................................347 14.5 Outros tipos de ndices.........................................................................................................................................................349 14.6 Resumo................................................................................................................................................................................350

    15. Algoritmos para processamento e otimizao de consultas........................................................................................................................................... 354 15.1 Traduzindo consultas SQL para a lgebra relacional.......................................................................................................... 356 15.2 Algoritmos para ordenao externa (external sorting)........................................................................................................ 356 15.3 Algoritmos para operaes SELECT e JOIN......................................................................................................................358 15.4 Algoritmos para as operaes PROJECT e de conjunto ..................................................................................................... 365 15.5 Implementao das operaes de agregao e outer joins ..................................................................................................366 15.6 Combinao de operaes usando pipelines .......................................................................................................................367 15.7 Utilizao de heursticas na otimizao de consultas..........................................................................................................368 15.8 Utilizao de seletividade e estimativa de custo na otimizao de consultas......................................................................376 15.9 Viso geral da otimizao de consultas no Oracle..............................................................................................................382 15.10 Otimizao semntica de consultas ....................................................................................................................................383 15.11 Resumo ..............................................................................................................................................................................383

    16. Projeto e sintonizao (tuning) de bancos de dados na prtica....................................................................................................................................386

    16.1 Projeto fsico de bancos de dados em bancos de dados relacionais.....................................................................................386 16.2 Uma viso geral da sintonizao de banco de dados em sistemas relacionais.....................................................................388 16.3 Resumo ..............................................................................................................................................................................393

  • 4

    4

    XVI Sumario

    PARTE 5 CONCEITOS DE PROCESSAMENTO DE TRANSAES ............................................................................................395

    17. Introduo aos conceitos e teoria do processamento de transaes...........................................................................................397 17.1 Introduo ao processamento de transaes .......................................................................................................................397 17.2 Conceitos de transao e sistema........................................................................................................................................402 17.3 Propriedades desejveis das transaes ..............................................................................................................................404 17.4 Definindo plano de execuo (schedules) baseado na restaurabilidade (recoverability).....................................................405 17.5 Definindo planos de execuo (schedules) baseados em serialidade (serializability) .........................................................407 17.6 Suporte de transaes em SQL...........................................................................................................................................415 17.7 Resumo ..............................................................................................................................................................................416

    18. Tcnicas de controle de concorrncia..............................................................................................................................................419 18.1 Tcnicas de bloqueio em duas fases para controle de concorrncia....................................................................................419 18.2 Controle de concorrncia baseado em ordenao por timestamp........................................................................................426 18.3 Tcnicas de controle de concorrncia de multiverso.........................................................................................................428 18.4 Tcnicas de controle de concorrncia de validao (otimista) ............................................................................................430 18.5 Granularidade de itens de dados e bloqueio de granularidade mltipla ..............................................................................431 18.6 Usando bloqueios para controle de concorrncia em ndices..............................................................................................433 18.7 Outros tpicos sobre controle de concorrncia ...................................................................................................................435 18.8 Resumo ..............................................................................................................................................................................436

    19. Tcnicas de recuperao de banco de dados....................................................................................................................................................................438 19.1 Conceitos de recuperao ...................................................................................................................................................438 19.2 Tcnicas de recuperao baseadas na atualizao adiada ...................................................................................................443 19.3 Tcnicas de recuperao baseadas em atualizao imediata ...............................................................................................446 19.4 Paginao shadow (sombra) ...............................................................................................................................................447 19.5 O algoritmo de recuperao ARIES ...................................................................................................................................448 19.6 Recuperao em sistemas de bancos de dados mltiplos....................................................................................................451 19.7 Backup de banco de dados e recuperao em falhas catastrficas ......................................................................................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 Viso geral dos conceitos de orientao a objetos ..............................................................................................................460 20.2 Identidade de objeto, estrutura de objeto e construtores de tipos........................................................................................462 20.3 Encapsulamento de operaes, mtodos e persistncia.......................................................................................................466 20.4 Hierarquias de classe e tipo, e herana ...............................................................................................................................469 20.5 Objetos complexos .............................................................................................................................................................471 20.6 Outros conceitos orientados a objetos ................................................................................................................................473 20.7 Resumo ..............................................................................................................................................................................475

    21. Padres, linguagens e projeto de banco de dados de objetos.......................................................................................................477 21.1 Viso geral do modelo de objetos ODMG...........................................................................................................................478 21.2 ODL a linguagem de definio de objetos......................................................................................................................487 21.3 A linguagem de consulta de objetos (OQL) ........................................................................................................................492 21.4 Viso 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 Viso geral da SQL e suas caractersticas objeto-relacionais..............................................................................................504 22.2 Evoluo e tendncias atuais da tecnologia de bancos de dados.........................................................................................509 22.3 O Informix Universal Server ..............................................................................................................................................510 22.4 Caractersticas objeto-relacionais do Oracle 8....................................................................................................................517

  • 5

    5

    Sumrio XVII

    22.5 Implementao e aspectos relacionados a sistemas de tipos estendidos ............................................................................. 519 22.6 O modelo relacional aninhado............................................................................................................................................ 520 22.7 Resumo .............................................................................................................................................................................. 522

    PARTE 7 TPICOS AVANADOS ..................................................................................................................................................525 23. Segurana e autorizao em banco de dados................................................................................................................................... 527

    23.1 Introduo s questes de segurana em bancos de dados.................................................................................................. 527 23.2 Controle de acesso discricionrio baseado na concesso e na revogao de privilgios .....................................................530 23.3 Controle de acesso obrigatrio e controle de acesso baseado em papis para segurana multinvel................................... 533 23.4 Introduo segurana de bancos de dados estatsticos ..................................................................................................... 537 23.5 Introduo ao controle de fluxo.......................................................................................................................................... 538 23.6 Criptografia e infra-estruturas de chave pblica ................................................................................................................. 539 23.7 Resumo .............................................................................................................................................................................. 541

    24. Extenses de modelos de dados para aplicaes avanadas ............................................................................................................ 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 multimdias............................................................................................................................................... 561 24.4 Introduo aos bancos de dados dedutivos .......................................................................................................................... 564 24.5 Resumo................................................................................................................................................................................ 573

    25. Bancos de dados distribudos e arquiteturas cliente-servidor .......................................................................................................... 578 25.1 Conceitos de banco de dados distribudos .......................................................................................................................... 579 25.2 Fragmentao, replicao e tcnicas de alocao de dados para o projeto de bancos

    de dados distribudos ......................................................................................................................................................... 583 25.3 Tipos de sistemas de banco de dados distribudos.............................................................................................................. 587 25.4 Processamento de consultas em bancos de dados distribudos ........................................................................................... 589 25.5 Viso geral do controle de concorrncia e de recuperao em bancos de dados

    distribudos ........................................................................................................................................................................ 593 25.6 Uma viso geral da arquitetura cliente-servidor 3-tier (3 camadas).................................................................................... 595 25.7 Bancos de dados distribudos 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 no estruturados.................................................................................................. 605 26.2 O modelo de dados hierrquico (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 Viso geral da tecnologia de data mining ...........................................................................................................................624 27.2 Regras de associao..........................................................................................................................................................627 27.3 Classificao ......................................................................................................................................................................634 27-4 Agrupamento (clustering)....................................................................................................................................................637 27.5 Abordagens para outros problemas de data mining ............................................................................................................639 27.6 Aplicaes de data mining .................................................................................................................................................640

  • 6

    6

    27.7 Ferramentas comerciais para data mining...........................................................................................................................641 27.8 Resumo ..............................................................................................................................................................................643

  • 7

    7

    XVIII sumario

    28. Viso geral de data warehousing e OLAP ..............................................................................................................................................646 28.1 Introduo, definies e terminologia ................................................................................................................................646 28.2 Caractersticas de data warehouses (depsitos de dados) ................................................................................................... 647 28.3 Modelagem de dados para data warehouses ....................................................................................................................... 648 28.4 Construo de um data warehouse ..................................................................................................................................... 652 28.5 Funcionalidade tpica de um data warehouse .....................................................................................................................654 28.6 Comparao entre data warehouse e vises........................................................................................................................655 28.7 Problemas e questes em aberto em data warehouses ........................................................................................................655 28.8 Resumo ..............................................................................................................................................................................656

    29. Tecnologias e aplicaes emergentes de banco de dados.......................................................................................................................658 29.1 Bancos de dados mveis..................................................................................................................................................... 658 29.2 Bancos de dados de multimdia..........................................................................................................................................664 29.3 Sistemas de informao geogrfica .................................................................................................................................... 668 29.4 Gerenciamento de dados de genoma . ................................................................................................................................ 673

    Apndice A Notaes diagramticas opcionais para modelos ER..................................................................................................... 680

    Apndice C Parmetros de discos........................................................................................................................................................ 682 Apndice D Viso geral da linguagem QBE........................................................................................................................................ 684 Bibliografia.............................................................................................................................................................................................. 690

    ndice. 715MATERIAL ADICIONAL NO COMPANION WEBSITE No site www.aw.com/elmasri_br voc encontra os seguintes apndices em ingls: Apndice B Database design and application implementation case study

    Apndice E Hierarchical data model

    Apndice F Network data model

    http://www.aw.com/elmasri_br

  • 1

    1

  • 1 1

    INTRODUO MODELAGEM CONCEITUAL

  • 3

    3

    1 Banco de Dados e os Usurios de Banco de Dados

    Os bancos de dados e os sistemas de bancos de dados se tornaram componentes essenciais no cotidiano da sociedade moderna. No decorrer do dia, a maioria de ns se depara com atividades que envolvem alguma interao com os bancos de dados. Por exemplo, se formos ao banco para efetuarmos um depsito ou retirar dinheiro, se fizermos reservas em um hotel ou para a compra de passagens areas, se acessarmos o catlogo de uma biblioteca informatizada para consultar uma bibliografia, ou se comprarmos produtos como livros, brinquedos ou computadores de um fornecedor por intermdio de sua pgina Web, muito provavelmente essas atividades envolvero uma pessoa ou um programa de computador que acessar um banco de dados. At mesmo os produtos adquiridos em supermercados, em muitos casos, atualmente, incluem uma atualizao automtica do banco de dados que mantm o controle do estoque disponvel nesses estabelecimentos.

    Essas interaes so exemplos do que podemos denominar aplicaes tradicionais de banco de dados, no qual a maioria das informaes que so armazenadas e acessadas apresenta-se em formatos textual ou numrico. Nos ltimos anos, os avanos tecnolgicos geraram aplicaes inovadoras e interessantes dos sistemas de banco de dados.

    Os bancos de dados de multimdia podem, agora, armazenar figuras, videoclipes e mensagens sonoras. Os sistemas de informaes geogrficas (geographic information systems GIS) so capazes de armazenar e analisar mapas, dados do tempo e imagens de satlite. Os data warehouses e os online analytical processing (OLAP) processamento analtico on-line so utilizados em muitas empresas para extrair e analisar as informaes teis dos bancos de dados para a tomada de decises.

    A tecnologia de bancos de dados ativos (active database technology) e real time (tempo real) so usados no controle de processos industriais e de produo (indstria). As tcnicas de pesquisa em banco de dados esto sendo aplicadas na World Wide Web para aprimorar a recuperao de informaes necessrias pelos usurios da Internet.

    Entretanto, para entendermos os fundamentos da tecnologia de banco de dados, devemos comear pelas aplicaes tradicionais de bancos de dados. Sendo assim, na Seo 1.1 deste captulo, definimos o que um banco de dados e conceituamos alguns termos bsicos. Na Seo 1.2 apresentamos um banco de dados como exemplo, uma UNIVERSIDADE, para ilustrar nossa discusso. Em seguida, na Seo 1.3, descrevemos algumas caractersticas principais dos sistemas de banco de dados, e nas sees 1.4 e 1.5 categorizamos os tipos de pessoas cujas profisses envolvem o uso e a interao com os sistemas de banco de dados. Nas sees 1.6, 1.7 e 1.8 discutiremos as diversas capacidades de um sistema de banco de dados e algumas aplicaes tpicas. A Seo 1.9 resume todo o captulo.

    O leitor que optar por uma rpida introduo aos sistemas de banco de dados pode estudar as sees 1.1 a 1.5, depois, pode saltar ou folhear as sees 1.6 at 1.8 e iniciar o Captulo 2.

    Nossa opo foi priorizar, sempre, o termo mais comumente utilizado nas reas de ensino e pesquisa de banco de dados. Este termo geralmente empregado em ingls, optamos por essa forma no texto traduzido. Entretanto, muitas vezes traduziremos tambm o termo para melhor compreenso daqueles que no esto familiarizados com tal terminologia. (N. de T.)

  • 4

    4

    4 Captulo 1 Banco de Dados e os Usurios de Banco de Dados

    1.1 Introduo Os bancos de dados e a sua tecnologia esto provocando um grande impacto no crescimento do uso de computadores. vivel afirmar que eles representam um papel crtico em quase todas as reas em que os computadores so utilizados, incluindo negcios, comrcio eletrnico, engenharia, medicina, direito, educao e as cincias da informao, para citar apenas algumas delas. A palavra banco de dados to comumente utilizada que, primeiro, devemos defini-la. Nossa definio inicial bastante genrica.

    Um banco de dados uma coleo de dados relacionados. Os dados so fatos que podem ser gravados e que possuem um significado implcito. Por exemplo, considere nomes, nmeros telefnicos e endereos de pessoas que voc conhece. Esses dados podem ter sido escritos em uma agenda de telefones ou armazenados em um computador, por meio de programas como o Microsoft Access ou Excel. Essas informaes so uma coleo de dados com um significado implcito, conseqentemente, um banco de dados.

    A definio de banco de dados, mencionada anteriormente, muito genrica. Por exemplo, podemos considerar o conjunto de palavras que formam esta pgina como dados relacionados, portanto, constituindo um banco de dados. No entanto, o uso do termo banco de dados geralmente mais restrito. Possui as seguintes propriedades implcitas:

    Um banco de dados representa alguns aspectos do mundo real, sendo chamado, s vezes, de minimundo ou de universo de discurso (UoD). As mudanas no minimundo so refletidas em um banco de dados.

    Um banco de dados uma coleo lgica e coerente de dados com algum significado inerente. Uma organizao de dados ao acaso (randmica) no pode ser corretamente interpretada como um banco de dados.

    Um banco de dados projetado, construdo e povoado por dados, atendendo a uma proposta especfica. Possui um grupo de usurios definido e algumas aplicaes preconcebidas, de acordo com o interesse desse grupo de usurios.

    Em outras palavras, um banco de dados possui algumas fontes das quais os dados so derivados, alguns nveis de interao com os eventos do mundo real e um pblico efetivamente interessado em seus contedos.

    Um banco de dados pode ser de qualquer tamanho e de complexidade varivel. Por exemplo, a lista de nomes e endereos, citada anteriormente, pode possuir apenas poucas centenas de registros, cada um com uma estrutura simples. Porm, o catlogo computadorizado de uma grande biblioteca pode conter meio milho de entradas organizadas em diferentes categorias pelo sobrenome principal do autor, pelo assunto, pelo ttulo , sendo cada categoria organizada em ordem alfabtica. Um banco de dados muito maior e mais complexo mantido pelo Internal Revenue Service (IRS), rgo responsvel pelo controle dos formulrios de impostos preenchidos pelos contribuintes dos Estados Unidos. Se pressupomos que existam cem milhes de contribuintes e cada um deles preenche em mdia cinco formulrios com aproximadamente 400 caracteres de informaes por formulrio, teramos um banco de dados de 100 x 10 x 400 x 5 caracteres (bytes) de informao. Se o IRS mantiver os ltimos trs formulrios para cada contribuinte teremos, alm do atual, um banco de dados de 8 x 100 bytes (800 gigabytes). Essa imensa quantidade de informao deve ser organizada e gerenciada para que os usurios possam pesquisar, recuperar e atualizar os dados necessrios.

    Um banco de dados pode ser gerado e mantido manualmente ou pode ser automatizado (computadorizado). Por exemplo, um catlogo de cartes bibliotecrios um banco de dados que oferece a possibilidade de ser criado e mantido manualmente. Um banco de dados computadorizado pode ser criado e mantido tanto por um grupo de aplicativos escritos especialmente para essa tarefa como por um sistema gerenciador de banco de dados. claro que, neste livro, o objetivo abordar os bancos de dados computadorizados.

    Um sistema gerenciador de banco de dados (SGBD) uma coleo de programas que permite aos usurios criar e manter um banco de dados. O SGBD , portanto, um sistema de software de propsito geral que facilita os processos de definio, construo, manipulao e compartilhamento de bancos de dados entre vrios usurios e aplicaes. A definio de um banco de dados implica especificar os tipos de dados, as estruturas e as restries para os dados a serem armazenados em um banco de dados.

    A construo de um banco de dados o processo de armazenar os dados em alguma mdia apropriada controlada pelo SGBD. A manipulao inclui algumas funes, como pesquisas em banco de dados para recuperar um dado especfico, atualizao do banco para refletir as mudanas no minimundo e gerar os relatrios dos dados. O compartilhamento permite aos mltiplos usurios e programas acessar, de forma concorrente, o banco de dados.

    Outras funes importantes do SGBD so a proteo e a manuteno do banco de dados por longos perodos. A proteo inclui a proteo do sistema contra o mau funcionamento ou falhas (crashes) no hardware ou software, e segurana contra acessos

    1 Usaremos a palavra dados (data, em ingls) tanto para o singular como para o plural, como usual na literatura; o contexto determinar a interpretao. No ingls formal, o termo dados utilizado para o plural, e datum, para o singular.

  • 5

    5

    1.2 Um Exemplo 5

    no autorizados ou maliciosos. Um banco de dados tpico pode ter um ciclo de vida de muitos anos, ento, os SGBD devem ser capazes de manter um sistema de banco de dados que permita a evoluo dos requisitos que se alteram ao longo do tempo.

    No necessrio usar os softwares SGBD tpicos para implementar um banco de dados computadorizado. Poderamos escrever nosso prprio conjunto de programas para criar e manter um banco de dados criando, de fato, nosso prprio SGBD com uma finalidade especfica. Nesses casos se usarmos um SGBD de propsito geral ou no , normalmente teremos de desenvolver uma quantidade considervel de softwares complexos. Na verdade, a maioria dos SGBD composta por sistemas muito complexos.

    Para completar nossa definio inicial chamaremos o banco de dados e o software SGBD, juntos, de sistema de banco de dados. A Figura 1.1 ilustra alguns dos conceitos discutidos.

    1.2 UM EXEMPLO Considerando um exemplo simples com o qual a maioria dos leitores est muito familiarizada: um banco de dados de uma UNIVERSIDADE, no qual so mantidas as informaes do meio acadmico, como alunos, cursos e notas. A Figura 1.2 mostra a estrutura do banco de dados e fornece uma pequena amostra dos dados desse banco. O banco organizado em cinco arquivos, cada um armazena os registros de dados do mesmo tipo. O arquivo ALUNO conserva os dados de cada estudante, o CURSO preserva os dados sobre cada curso, o arquivo DISCIPLINA guarda os dados de cada disciplina do curso. Continuando, o arquivo HISTORICO_ESCOLAR mantm as notas recebidas por aluno nas diversas disciplinas cursadas e, finalmente, o arquivo PRE_REQUISITO armazena os pr-requisitos de cada curso.

    Para definir esse banco de dados devemos especificar a estrutura de cada registro em cada arquivo, considerando-se os diferentes tipos de elementos dos dados a serem armazenados em cada registro. Na Figura 1.2, cada registro ALUNO inclui os dados que representam o NomedoEstudante, NumerodoAluno, Turma (calouro ou 1, veterano ou 2...) e Curso Habilitao (matemtica ou mat, cincia da computao ou CC...); cada registro CURSO apresenta dados como NomedoCurso, NumerodoCurso, Crditos e Departamento (que oferece o curso) etc. Precisamos ainda especificar os tipos de dados para cada elemento de dados em um registro. Por exemplo, podemos especificar que nome em ALUNO uma string (cadeia) de caracteres alfabticos, nmero do aluno em ALUNO um inteiro (integer) e o HISTORICO_ESCOLAR um caractere nico do conjunto {A, B, C, D, F, I}. Podemos

    Usurios/Programadores

    DE BANCO ] 1 Programas de Aplicaes /Consultas {Queries) SOFTWARE SGBD \ 1 Programa para Processamento de Consultas/Programas

    1 Software para Acesso aos Dados Armazenados

    / V Definio dos Dados

    Armazenados (metadados)

    Banco de Dados Armazenados

    FIGURA 1.1 Configurao de um sistema de banco de dados simplificado.

    2 Usamos, aqui, o termo arquivo informalmente. No nvel conceitual, arquivo uma coleo de registros que podem ou no estar ordenados.

    DE DADOS

  • 6

    6

    6 Captulo 1 Banco de Dados e os Usurios de Banco de Dados

    usar ainda um esquema de cdigo para representar os valores de um determinado dado. Por exemplo, na Figura 1.2, representamos a turma do ALUNO por 1 para os calouros; 2 para os veteranos; 3 para os que cursam o penltimo ano; 4 para aqueles do ltimo ano; e 5 para os alunos graduados.

    Para construir o banco de dados UNIVERSIDADE armazenamos os dados que representem cada aluno, curso, disciplina, relatrio de notas e pr-requisitos, bem como cada registro no arquivo apropriado. Pode-se perceber que os registros de diferentes arquivos podem estar relacionados. Por exemplo, o registro para "Smith" no arquivo ALUNO est relacionado a dois registros no arquivo HISTORICO_ESCOLAR, cuja funo especificar as notas de Smith em duas disciplinas. Por similaridade, cada registro, no arquivo PRE_REQUISITO, est relacionado a dois registros em curso: um representando o curso e o outro, o pr-requisito. A maioria dos bancos de dados mdios e grandes inclui muitos tipos de registros e tem muitos relacionamentos entre os registros.

    A manipulao do banco de dados envolve uma consulta (query) e atualizao. Os exemplos de consulta so: a 'recuperao do histrico escolar lista de todos os cursos e notas de Smith', a 'relao dos nomes dos alunos que fizeram as disciplinas do curso de banco de dados oferecido no segundo semestre de 1999 e suas notas naquelas disciplinas' e 'quais os pr-requisitos do curso de banco de dados?' Os exemplos de atualizao so: 'mudar a turma de Smith para veteranos', 'criar uma nova disciplina para o curso de banco de dados neste semestre' e 'colocar a nota A para Smith na disciplina banco de dados do ltimo semestre'. Essas consultas informais e atualizaes devem ser especificadas, precisamente, na linguagem de consulta (query language) do SGBD, antes de serem processadas.

    ALUNO Nome Numero Turma Curso_Hab Smith 17 1 CC Brown 8 2 CC

    NomedoCurso NumerodoCurso Crditos Departamento Introduo Cincia da Computao CC1310 4 CC

    Estruturas de dados CC3320 4 CC Matemtica Discreta MAT2410 3 MATH Banco de dados CC3380 3 CC

    DISCIPLINA IdentificadordeDisciplina NumerodoCurso Semestre Ano Instrutor 85 MAT2410 Segundo Semestre 98 Kihg 92 CC1310 Segundo Semestre 98 Anderson 102 CC3320 Primeiro Semestre 99 Knuth 112 MAT2410 Segundo Semestre 99 Chang 119 CC1310 Segundo Semestre 99 Anderson 135 CC3380 Segundo Semestre 99 Stone

    HISTORICOESCOLAR NumerodoAluno Identificador/Disciplinas Nota 17 112 B 17 119 C 8 85 A 8 92 A 8 102 B 8 135 A

    PRE_REQUISITO NumerodoCurso NumerodoPre_requisito CC3380 CC3320 CC3380 MAT2410 CC3320 CC1310

    FIGURA 1.2 Um banco de dados que armazena as informaes de alunos e cursos.

  • 7

    7

    1.3 Caractersticas do Emprego de Bancos de Dados

    1.3 CARACTERSTICAS DO EMPREGO DE BANCOS DE DADOS Um nmero significativo de caractersticas distingue a abordagem que utiliza o banco de dados daquela tradicional que usa a programao e arquivos. No tradicional processamento de arquivos, cada usurio define e implementa os arquivos necessrios para uma aplicao especfica, como parte da programao da aplicao. Por exemplo, um usurio, a secretaria de notas, pode manter um arquivo para os alunos e suas notas. Os programas para imprimir um histrico do aluno e colocar novas notas no arquivo so implementados como parte da aplicao. Um segundo usurio, o departamento de contabilidade, pode controlar os dados relacionados s mensalidades e pagamentos dos alunos. Apesar de ambos os usurios estarem interessados nos dados sobre os estudantes, cada um mantm suas informaes em arquivos separados e os programas que manipulam esses arquivos porque cada um deles precisa de alguns dados no disponveis nos arquivos do outro. Essas redundncias, na definio e armazenamento dos dados, resultam em um espao de armazenamento desperdiado e em esforos redundantes para manter os dados comuns atualizados.

    Na abordagem utilizando um banco de dados, um nico repositrio de dados definido uma nica vez, mantido e ento acessado por vrios usurios. As principais caractersticas da abordagem de um banco de dados versus a abordagem de processamento de arquivos so as seguintes:

    Natureza autodescritiva do sistema de banco de dados. Isolamento entre os programas e os dados, e a abstrao dos dados. Suporte para as mltiplas vises dos dados. Compartilhamento de dados e processamento de transaes de multiusurios.

    Descreveremos, a seguir, cada caracterstica em sees separadas. As caractersticas adicionais dos sistemas de banco de dados sero discutidas nas sees 1.6 a 1.8.

    1.3.1 Natureza Autodescritiva do Sistema de Banco de Dados Uma caracterstica fundamental da abordagem de um banco de dados que o sistema de banco de dados possui no apenas o banco de dados, mas tambm uma completa definio ou descrio da estrutura desse banco de dados e suas restries. Essa definio est armazenada no catlogo do SGBD, que contm informaes como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada item de dado e vrias restries sobre os dados. A informao armazenada no catlogo chamada metadados e descreve a estrutura do banco de dados primrio (Figura 1.1).

    O catlogo usado tanto pelo software SGBD como pelos usurios do banco de dados que precisam de informaes sobre a estrutura desse banco. Um pacote de software SGBD de propsito geral no est escrito para uma aplicao especfica, portanto, ser necessrio acessar o catlogo para conhecer a estrutura dos arquivos no banco de dados, como o tipo e o formato dos dados que o programa vai acessar. O SGBD precisa trabalhar bem com qualquer nmero de aplicaes por exemplo, um banco de dados de uma universidade, de um banco ou de uma empresa , desde que a definio do banco de dados esteja armazenada no catlogo.

    No processamento tradicional de arquivos, a definio dos dados faz parte dos prprios programas da aplicao. Em conseqncia disso, esses programas so restritos a trabalhar com um nico banco de dados especfico, cuja estrutura esteja declarada no programa da aplicao. Por exemplo, um software de uma aplicao escrito em C++ pode ter a struct ou a declarao de classes, e um programa em COBOL tem comandos na Data Division para definir seus arquivos. Porm, o programa de processamento de arquivos possibilita o acesso a um nico banco de dados especfico, enquanto o SGBD pode acessar diversos bancos de dados, extraindo as definies de banco de dados do catlogo e usando-as depois.

    No exemplo mostrado na Figura 1.2, o catlogo do SGBD armazenar as definies de todos os arquivos mostrados. Elas so especificadas pelo projetista antes de criar o banco de dados real e armazenadas no catlogo. Todas as vezes que um pedido for feito para acessar, digamos, o registro Nome de um ALUNO, o SGBD se referir ao catlogo para determinar a estrutura do arquivo ALUNO e a posio e tamanho do item de dado Nome dentro do registro ALUNO. Em contraste, em uma aplicao tpica de processamento de arquivos, a estrutura do arquivo e a localizao exata, no caso extremo, de Nome dentro do registro ALUNO, j esto codificadas em cada programa que acessa esses itens de dados.

    1.3.2 Isolamento entre os Programas e Dados e Abstrao de Dados No processamento tradicional de arquivos, a estrutura do arquivo de dados est embutida no programa da aplicao, sendo assim, qualquer mudana na estrutura de um arquivo pode exigir alteraes de todos os programas que acessam esse arquivo. Ao

  • 8

    8

    8 Captulo 1 Banco de Dados e os Usurios de Banco de Dados

    contrrio, os programas para acesso ao SGBD no exigem essas alteraes na maioria dos casos. A estrutura dos arquivos de dados armazenada no catlogo do SGDB separadamente do programa de acesso. Denominaremos essa propriedade independncia programa-dados.

    Por exemplo, o programa de acesso a arquivos pode ser escrito de forma que acesse, apenas, os registros ALUNO da estrutura apresentada na Figura 1.3. Se quisermos adicionar outro dado ao registro de cada ALUNO, digamos, sua DatadeNascimento, esse programa no vai trabalhar por muito tempo e precisar ser alterado. Ao contrrio, em um ambiente SGBD, necessitamos alterar apenas a descrio do registro ALUNO no catlogo para refletir a incluso do novo item de dados DatadeNascimento; nenhum programa ser modificado. A prxima vez que um programa SGBD acessar o catlogo, a nova estrutura do registro ALUNO ser acessada e utilizada.

    Nome do Item de Dado Posio Inicial no Registro Tamanho em Caracteres (bytes) Nome 1 30

    NumerodoAluno 31 4 Turma 35 4

    Curso_Hab 39 4

    FIGURA 1.3 Formato de armazenamento interno para um registro ALUNO.

    Em alguns tipos de sistemas de banco de dados, como o orientado a objeto e o objeto-relacional (captulos 20 a 22), os usurios podem estabelecer as operaes sobre os dados como parte das definies de dados. Uma operao (tambm chamada funo ou mtodo) especificada em duas partes. A interface (ou assinatura) de uma operao inclui o nome da operao e os tipos de dados de seus argumentos (ou parmetros). A implementao (ou mtodo) de uma operao definida separadamente e pode ser alterada sem afetar a interface. Os programas de usurios da aplicao podem operar nos dados invocando essas operaes por meio de seus nomes e argumentos, sem considerar como essas operaes so implementadas. Isso pode ser chamado de independncia programa-operao.

    A caracterstica que permite a independncia programa-dados e programa-operao intitulada abstrao de dados. Um SGBD oferece aos usurios uma representao conceitual de dados que no inclui muitos detalhes sobre como o dado armazenado ou como as operaes so implementadas. Informalmente, o modelo de dados um tipo de abstrao de dados usado para prover essa representao conceitual. O modelo de dados utiliza os conceitos lgicos, como objetos, suas propriedades e seus inter-relacionamentos, que podem ser mais fceis para os usurios entenderem os conceitos de armazenamento computacionais. Conseqentemente, o modelo de dados esconde os detalhes de armazenamento e da implementao, desinteressantes para a maioria dos usurios de banco de dados.

    Por exemplo, vamos considerar novamente a Figura 1.2. A implementao interna do arquivo pode ser definida pelo comprimento de seus registros , o nmero de caracteres (bytes) em cada registro , e cada item de dado pode ser especificado pelo seu byte inicial dentro de um registro e seu comprimento em bytes. O registro ALUNO poderia, em razo disso, ser representado como exposto na Figura 1.3. No entanto, um usurio tpico de banco de dados no est preocupado com a localizao de cada item de dados dentro de um registro ou com o seu comprimento; na realidade, sua preocupao que quando for acessado o Nome do ALUNO, O valor correto seja retornado. Uma representao conceitual dos registros ALUNO mostrada na Figura 1.2. Muitos outros detalhes da organizao do armazenamento de dados, como os caminhos de acesso especificados em um arquivo, podem ser escondidos dos usurios de banco de dados pelo SGBD discutiremos os detalhes do armazenamento nos captulos 13 e 14.

    Na abordagem de banco de dados, a estrutura detalhada e a organizao de cada arquivo so armazenadas no catlogo. Os usurios de banco de dados e os programas de aplicao referem-se representao conceitual dos arquivos, e o SGBD extrai os detalhes do armazenamento de arquivos do catlogo, quando so necessrios, pelos mdulos de acesso a arquivos do SGBD. Muitos modelos de dados podem ser utilizados para prover essa abstrao dos dados aos usurios do banco. A maior parte deste livro dedicada apresentao dos vrios modelos de dados e os conceitos que estes utilizam para abstrair a representao dos dados.

    Nos bancos de dados orientados a objeto e a objeto-relacional, o processo de abstrao no inclui apenas a estrutura de dados, mas tambm as operaes sobre os dados. Essas operaes oferecem uma abstrao das atividades do minimundo facilmente entendidas pelos usurios.

    Por exemplo, uma operao de CALCULO_GPA pode ser aplicada ao objeto ALUNO para calcular a mdia de pontos nas notas. Essas operaes podem ser invocadas pela consulta do usurio ou pelos programas de aplicao sem ter de se saber os detalhes de como as operaes so implementadas. Nesse sentido, uma abstrao de uma atividade de um minimundo est disponvel para o usurio como uma operao abstrata.

  • 9

    9

    1.3 Caractersticas do Emprego de Bancos de Dados

    1.3.3 Suporte para as Mltiplas Vises dos Dados Um banco de dados tpico tem muitos usurios, e cada qual pode solicitar diferentes perspectivas ou vises do banco de dados. Uma viso pode ser um subconjunto de um banco de dados ou conter uma viso virtual dos dados, derivados dos arquivos do banco de dados, mas no, explicitamente, armazenados. Alguns usurios podem no saber se os dados a que eles se referem so armazenados ou derivados.

    Um SGBD multiusurios, cujos usurios tm vrias aplicaes distintas, deve proporcionar facilidades para a definio de mltiplas vises. Por exemplo, um usurio do banco de dados da Figura 1.2 pode estar interessado somente em acessar e imprimir o histrico de cada aluno; a viso para esse usurio mostrada na Figura 1.4a. Um segundo usurio, interessado em checar se os alunos cumpriram todos os pr-requisitos de cada curso para o qual se matricularam, pode utilizar a viso apresentada na Figura 1.4b.

    Histrico Escolar do Aluno HISTORICO_ESCOLAR NomedoAluno NumerodoCurso Nota Semestre Ano IdDisciplina

    CC1310 C Outono 99 119

    Smith MAT2410 B Outono 99 112

    MAT2410 A Outono 98 85 CC1310 A Outono 98 92 CC3320 B Primavera 99 102

    Brown

    CC3380 A Outono 99 135

    PRE.REQUISITOS NomedoCurso NumerodoCurso Pre_Requisitos CC3320

    Banco de Dados CC3380 MAT2410

    Estruturas de Dados CC3320 CC1310

    FIGURA 1.4 Duas vises derivadas de um banco de dados da Figura 1.2. (a) Viso do HISTRICO ESCOLAR DO ALUNO, (b) Viso dos PR-REQUISITOS DO CURSO.

    1.3.4 Compartilhamento de Dados e o Processamento de Transao Multiusurios Um SGBD multiusurio, como o nome implica, deve permitir que diversos usurios acessem o banco de dados ao mesmo tempo. Isso essencial