Sistema de banco de dados Navathe - rclick.com.br · A Parte 4 começa com uma descrição das...

513
1 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 Brasil Argentina Colômbia Costa Rica Chile Espanha Guatemala México Peru Porto Rico Venezuela

Transcript of Sistema de banco de dados Navathe - rclick.com.br · A Parte 4 começa com uma descrição das...

  • 1

    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 ':.'.

  • 2

    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]

  • 3

    A Amalia com amor R.E.

    A minha me, Vijaya, e minha esposa, Aruna, pelo amor e apoio S.B.N.

  • 4

    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.

  • 5

    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

  • 6

    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. .

  • 7

    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

  • 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.

    1 INTRODUO

    MODELAGEM

    CONCEITUAL

  • 2

    2

    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 da-

    dos. 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.)

  • 3

    3

    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.

  • 4

    4

    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, n-

    mero 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

  • 5

    5

    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.

  • 6

    6

    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

  • 7

    7

    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.

    1.3 Caractersticas do Emprego de Bancos de Dados

    1.3.3 Suporte para as Mltiplas Vises dos Dados

  • 8

    8

    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 se os

    dados para as vrias aplicaes esto integrados e mantidos em um nico banco de dados. O SGBD deve incluir um software de controle de concorrncia

    para garantir que muitos usurios, ao tentar atualizar o mesmo dado, o faam de um modo controlado, para assegurar que os resultados das atualizaes

    sejam corretos. Por exemplo, quando muitos atendentes tentam reservar um lugar em um vo, o SGBD deve garantir que cada assento possa ser acessado

    somente por um atendente de cada vez, para fazer a reserva de apenas um passageiro. Esses tipos de aplicaes so, normalmente, denominados aplicaes

    de processamento de transaes on-line online transaction processing (OLTP). Uma regra fundamental do software do SGBD multiusurio garantir que

    as transaes concorrentes operem corretamente. O conceito de transao tornou-se fundamental para muitas aplicaes de banco de dados. Uma transao um programa em execuo ou processo

    que inclui um ou mais acessos ao banco de dados, como a leitura ou a atualizao de registros. Cada transao deve executar um acesso logicamente correto

    ao banco de dados, se executado sem a interferncia de outras transaes. O SGBD deve garantir vrias propriedades da transao. A propriedade de

    isolamento garante que cada transao possa ser efetuada de forma isolada de outras transaes; mesmo centenas de transaes podem ser executadas

    simultaneamente. A propriedade de atomicidade garante que todas as operaes em um banco de dados, em uma transao, sejam executadas ou nenhuma

    delas o seja. Discutiremos as transaes em detalhes na Parte V do livro. As caractersticas precedentes so muito importantes para distinguir um SGBD de um software tradicional de processamento de arquivos. Na Seo

    1.6 abordaremos as funcionalidades adicionais que caracterizam um SGBD. Primeiro, no entanto, categorizaremos os diferentes tipos de pessoas que

    trabalham em um ambiente de sistema de banco de dados.

  • 9

    9

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

    1.4 ATORES NO PALCO Para um pequeno banco de dados pessoal, como a agenda de endereos discutida na Seo 1.1, uma pessoa em geral define, constri e manipula um banco

    de dados no h compartilhamento. No entanto, muitas pessoas esto envolvidas no projeto, uso e manuteno de um grande banco de dados com

    centenas de usurios. Nesta seo, identificaremos as pessoas cujas profisses envolvem o dia-a-dia do uso de um grande banco de dados; ns as

    chamaremos de 'atores no palco'. Na Seo 1.5 consideraremos as pessoas que podem ser nomeadas 'trabalhadores dos bastidores', ou seja, aqueles que

    trabalham para manter o ambiente dos sistemas de banco de dados, mas que no esto interessados no banco de dados de fato.

    1.4.1 Administradores de Banco de Dados Em uma organizao na qual muitas pessoas usam os mesmos recursos, h a necessidade de um administrador-chefe para gerenciar esses recursos. No

    ambiente de banco de dados, o principal recurso o prprio banco de dados e, a seguir, o SGBD e os softwares relacionados. Administrar esses recursos

    responsabilidade do administrador de banco de dados database administrator (DBA). O DBA o responsvel pela autorizao para o acesso ao

    banco, pela coordenao e monitorao de seu uso e por adquirir recursos de software e hardware conforme necessrio. O DBA o responsvel por

    problemas como brechas de segurana ou tempo de resposta ruim do sistema. Em grandes organizaes, o DBA possui suporte de assistentes que o auxiliam

    no desempenho dessas funes.

    1.4.2 Os Projetistas do Banco de Dados Os projetistas do banco de dados so responsveis pela identificao dos dados que sero armazenados no banco e tambm por escolher as estruturas

    apropriadas para representar e armazenar esses dados. Essas tarefas so, em sua maioria, realizadas antes que o banco de dados seja realmente

    implementado e alimentado com os dados. Ainda de responsabilidade desse profissional

    comunicar-se antecipadamente com todos os provveis usurios do banco para conhecer suas necessidades (requisitos) e criar projetos que as atendam. Em

    alguns casos, os projetistas esto na equipe do DBA e podem executar outras tarefas, depois que o projeto do banco de dados estiver completo. Os projetistas de banco de dados normalmente interagem com os potenciais grupos de usurios e desenvolvem vises (views) do banco de dados que

    atendam aos requisitos de dados e ao processamento desses grupos. Cada viso , ento, analisada e integrada s vises de outros grupos de usurios. O

    projeto final do banco de dados deve ser capaz de suportar todos os requisitos de todos os grupos de usurios.

    1.4.3 O Usurio Final Os usurios finais so pessoas cujas profisses requerem o acesso a um banco de dados para consultas, atualizao e relatrios; o banco de dados existe

    prioritariamente para os seus usurios. H vrias categorias de usurios finais:

    Usurios finais casuais: acionam o banco de dados ocasionalmente, mas precisam de informaes diferentes a cada acesso. Eles usam uma

    linguagem de consulta a banco de dados sofisticada para especificar suas solicitaes e normalmente so gerentes de nvel mdio ou elevado ou

    outros profissionais com necessidades ocasionais.

    Iniciantes ou usurios finais parametrizveis: compem uma grande parcela dos usurios finais de banco de dados. Seu trabalho exige

    constante envolvimento com consulta e atualizao de um banco de dados, usando tipos de consulta e atualizaes padronizadas chamadas

    transaes enlatadas que tenham sido cuidadosamente programadas e testadas. As tarefas que esses usurios desempenham so variadas:

    Os caixas de banco checam os saldos das contas e informam as retiradas e os depsitos.

    Os funcionrios responsveis pela reserva de vos, hotis e locao de carros checam a viabilidade para atender s solicitaes de reservas e as

    confirmam.

    Os funcionrios em agncias de correio informam as identificaes de pacotes por cdigos de barra e informaes descritivas para atualizar

    um banco de dados central de pacotes recebidos e em trnsito.

    Usurios finais sofisticados: incluem os engenheiros, cientistas, analistas de negcios e outros que se familiarizam

    com as facilidades do SGBD para implementar aplicaes que atendam s suas solicitaes complexas.

    Em portugus, o termo mais comum so transaes customizadas. (N. de T.).

  • 10

    10

    1.5 Trabalhadores dos Bastidores

    Usurios autnomos (stand-alone): mantm um banco de dados pessoal por meio do uso de pacotes de programas

    prontos que possuem interfaces grficas ou programas baseados em menus fceis de usar. Um exemplo disso o usurio de um pacote para

    clculo de impostos que armazena seus dados financeiros pessoais para o pagamento dos impostos.

    Um SGBD tpico prov mltiplas facilidades de acesso ao banco de dados. Os usurios iniciantes precisam aprender muito pouco sobre as

    facilidades oferecidas pelo SGBD; eles tm de entender somente as interfaces das transaes-padro projetadas e implementadas para seu uso. Os usurios

    casuais aprendem apenas as poucas facilidades que utilizam repetidamente. Os usurios sofisticados tentam aprender a maioria das funcionalidades do

    SGBD com o objetivo de executar suas necessidades complexas. Os autnomos se tornam muito proficientes no uso de pacotes de softwares especficos.

    1.4.4 Analistas de Sistemas e Programadores de Aplicaes (Engenheiros de Software)

    Os analistas de sistemas determinam as solicitaes dos usurios finais, especialmente os usurios finais iniciantes e os parametrizveis, alm de

    desenvolver as especificaes das transaes customizadas que atendam a essas solicitaes. Os programadores de aplicaes implementam essas

    especificaes como programas, ento eles testam, documentam e mantm essas transaes customizadas. Esses analistas e programadores tambm

    conhecidos como engenheiros de software precisam estar familiarizados com toda a gama de capacidades oferecidas pelo SGBD para realizar suas

    tarefas.

    1.5 TRABALHADORES DOS BASTIDORES Em adio quelas pessoas que projetam, usam e administram um banco de dados, outras esto associadas ao projeto, desenvolvimento e operao do

    programa e ambiente do sistema do SGBD. Essas pessoas no tm interesse no banco de dados; so os chamados 'trabalhadores dos bastidores' e incluem as

    seguintes categorias:

    Projetistas e implementadores de sistemas SGBD: so pessoas que projetam e implementam os mdulos e interfaces do SGBD, como um

    pacote. Um SGBD um sistema com programas complexos com muitos componentes ou mdulos, incluindo aqueles para implementar o

    catlogo, processamento de linguagem de consulta (query language), interfaces, acesso e armazenamento temporrio (buffering) dos dados,

    controle de concorrncia, manuseio de recuperao de dados e segurana. O SGBD deve interagir com outros sistemas, tais como o sistema

    operacional e compiladores de diferentes linguagens de programao.

    Desenvolvedores de ferramentas: so pessoas que projetam e implementam as ferramentas os pacotes de programas que facilitam o projeto

    e uso de um sistema de banco de dados e que ajudam a aprimorar seu desempenho. Essas ferramentas esto em um pacote opcional, adquirido

    separadamente. Incluem pacotes para projetos de banco de dados, monitoramento de desempenho, interface grfica ou linguagem natural,

    prottipo, simulao e gerao de dados para teste. Na maioria dos casos, os vendedores de software independentes desenvolvem e negociam

    essas ferramentas.

    Pessoal de manuteno e operadores: so pessoas da administrao do sistema, responsveis pela execuo e manuteno do ambiente de

    hardware e software do sistema de banco de dados.

    Embora esses trabalhadores sejam fundamentais para tornar os sistemas de banco de dados disponveis para os usurios finais, eles normalmente no

    usam o banco de dados para fins pessoais.

    1.6 VANTAGENS DA UTILIZAO DA ABORDAGEM SGBD Nesta seo, discutiremos as vantagens da utilizao e as funcionalidades que um bom SGBD deve possuir. Elas vo alm das quatro caractersticas

    principais abordadas na Seo 1.3. O DBA deve usar essas capacidades para atingir os objetivos relacionados ao projeto, administrao e uso de um grande

    banco de dados multiusurio.

    1.6.1 Controle de Redundncia

    No desenvolvimento tradicional de software utilizando processamento de arquivos, cada usurio mantm seus prprios arquivos para suas aplicaes de

    processamento de dados. Consideremos, por exemplo, o banco de dados UNIVERSIDADE, mencionado na Seo 1.2; aqui, os dois grupos de usurios so

    os da secretaria do curso e os da contabilidade. Na abordagem tradicional, cada grupo mantm seus arquivos de alunos de maneira independente. A

    contabilidade tambm guarda os dados de matrcula e as informaes relacionadas a pagamentos, enquanto a secretaria mantm o controle dos cursos e

    notas dos

  • 11

    11

    Captulo 1 Banco de Dados e os Usurios de Banco de Dados 12 alunos. Muitos dos dados so armazenados duas vezes: uma vez no arquivo de cada grupo. Outros grupos de usurios podem duplicar alguns ou todos os dados novamente em seus prprios arquivos.

    Essa redundncia em armazenar os mesmos dados vrias vezes gera muitos problemas. Primeiro, h a necessidade de desempenhar uma nica

    atualizao lgica como a entrada de dados de novos alunos vrias vezes: uma para cada arquivo no qual o dado do aluno estar armazenado. Isso

    gera uma duplicao de esforos. Segundo, o espao de armazenamento desperdiado quando o mesmo dado armazenado repetidamente; esse problema

    pode ser srio para os bancos de dados grandes. Terceiro, h a possibilidade de os arquivos que representam os mesmos dados se tornarem inconsistentes.

    Isso pode ocorrer porque uma atualizao aplicada somente a alguns arquivos, mas no em outros. At mesmo se uma atualizao como a adio de

    novos alunos fosse aplicada a todos os arquivos apropriados, os dados dos alunos poderiam, ainda, se tornar inconsistentes, porque as atualizaes so

    realizadas independentemente por grupo de usurios. Por exemplo, um grupo de usurios insere a data de nascimento de um aluno incorretamente, como 19-

    JAN-1984, enquanto outro grupo de usurios pode entrar com a informao correta: 29-JAN-1984. Na abordagem de banco de dados, as vises de diferentes grupos de usurios so integradas durante o projeto do banco. Idealmente, devemos ter um

    projeto do banco para armazenar cada item lgico do dado como o nome do aluno ou a data de nascimento em um nico lugar no banco de dados.

    Isso vai garantir a consistncia e economizar espao de armazenamento. Entretanto, na prtica, algumas vezes necessrio o uso de redundncia

    controlada para melhorar a performance das consultas. Por exemplo, podemos armazenar NomedoAluno e o NumerodoCurso, redundantemente, em um

    arquivo de HISTORICOESCOLAR (Figura 1.5a), pois quando consultamos um registro HISTORICO_ESCOLAR, queremos o nome do aluno e o nmero do

    curso, como tambm a nota, o nmero do aluno e o identificador de disciplina. Colocando todos os dados juntos, no temos de pesquisar mltiplos arquivos

    para colet-los. Nesse caso, o SGBD deve ter a capacidade de controlar essas redundncias, impedindo as inconsistncias entre os arquivos. Isso pode ser

    feito automaticamente verificando se os valores de NomeDoAluno-NumeroDoAluno para qualquer registro HISTORICO_ESCOLAR na Figura 1.5a possuem

    correspondentes para Nome-Numero DoAluno nos registros ALUNO (Figura 1.2). De maneira similar, os valores IdentificadorDisciplinas-NumeroDoCurso

    em historico_escolar podem ser checados com os registros DISCIPLINA.

    HISTORICCOESCOLAR NumerodoAluno NomedoAluno IdentificadordeDisciplina NumerodoCurso Nota

    17 Smith 112 MAT2410 B 17 Smith 119 CC1310 C

    8 Brown 85 MAT2410 A 8 Brown 92 CC1310 A 8 Brown 102 CC3320 B 8 Brown 135 CC3320 A

    HISTORICO_ESCOLAR NumerodoAluno NomedoAluno IdentificadordeDisciplina NumerodoCurso Nota

    17 Brown 112 MAT2410 B

    FIGURA 1.5 Armazenamento redundante do NomedoAluno e NumerodoCurso no HISTRICO ISCOLAR. (a) Dados consistentes, (b) Registro inconsistente.

    Alguns desses testes podem ser especificados para o SGBD durante o projeto do banco de dados e automaticamente forados pelo SGBD, sempre que o

    arquivo RELATORIO_DE_NOTAS for atualizado. A Figura 1.5b mostra o registro de RELATORIO_DE_NOTAS

    inconsistente com o arquivo ALUNO da Figura 1.2, que pode ter sido inserido erroneamente se a redundncia no for controlada.

    1.6.2 Restringindo Acesso No Autorizado Quando vrios usurios utilizam um grande banco de dados, provvel que a maioria desses usurios no seja autorizada a acessar todas as informaes

    disponveis no banco de dados. Por exemplo, os dados financeiros so geralmente considerados confidenciais e, por essa razo, somente pessoas com

    permisso podero ter acesso a eles. Alm disso, a alguns usurios permitido, apenas, consultar; outros podem consultar e atualizar os dados. Em

    conseqncia disso, o tipo de operao de acesso consulta ou atualizao tambm deve ser controlado. O mais comum fornecer aos usurios ou

    grupo de usurios contas protegidas por senhas, utilizadas para acessar o banco de dados. O SGBD deve garantir a segurana e um subsistema de au-

    torizao usado pelo DBA para criar contas

    e definir as restries de cada uma. O SGBD deve, ento, garantir essas restries automaticamente. Como se pode ver, podemos

    aplicar os controles semelhantes para o prprio SGBD. Por exemplo, apenas ao

  • 13

    13

    1.6 Vantagens da Utilizao da Abordagem SGBD 13

    assistente de DBA permitido o uso de certos softwares privilegiados, como o utilizado para criar novas contas. Da mesma forma, os usurios

    parametrizveis podem ter permisso para acessar o banco de dados somente por meio de transaes especficas, desenvolvidas para seu uso.

    1.6.3 Garantindo o Armazenamento Persistente para Objetos Programas Os bancos de dados podem ser usados para oferecer um armazenamento persistente aos objetos programas e estruturas de dados. Essa uma das

    principais justificativas para os sistemas de banco de dados orientados a objeto. As linguagens de programao tm uma estrutura de dados complexa,

    como os tipos de registro em Pascal ou as definies de classe em C++ ou Java. Os valores das variveis dos programas so descartados, uma vez que o

    programa termina sua execuo, a no ser que o programador os armazene, explicitamente, em arquivos permanentes, os quais, normalmente, envolvem a

    converso de estruturas complexas em um formato adequado para o armazenamento em arquivos. Quando surge a necessidade de ler os dados mais uma

    vez, o programador deve convert-los do formato de arquivo para uma estrutura varivel do programa. Os sistemas de banco de dados orientado a objeto

    so compatveis com as linguagens de programao como C++ e Java, e o software SGBD, automaticamente, executa qualquer converso necessria.

    Conseqentemente, um objeto complexo em C++ pode ser armazenado permanentemente em um SGBD orientado a objeto. Esse objeto conhecido como

    persistente, desde que exista aps o trmino de execuo dos programas e possa, depois, ser acessado por outro programa em C+ + . O armazenamento persistente de programas e as estruturas de dados so uma importante funo do sistema de banco de dados. Os sistemas

    tradicionais de banco de dados geralmente possuem o chamado problema de separao por impedncia, quando as estruturas de dados fornecidas pelo

    SGBD so incompatveis com as estruturas de dados da linguagem de programao. Os sistemas de banco de dados orientados a objeto oferecem estruturas

    de dados compatveis com uma ou mais linguagens de programao orientadas a objeto.

    1.6.4 Garantindo o Armazenamento de Estruturas para o Processamento Eficiente de Consultas

    Os sistemas de banco de dados devem fornecer funcionalidades para a execuo de atualizaes e consultas eficientemente. Pelo fato de o banco de dados

    ser armazenado, tipicamente, em disco, o SGBD deve possuir estruturas de dados especializadas para aumentar a velocidade de pesquisa no disco dos

    registros desejados. Os arquivos auxiliares, chamados indexes (indexados), so utilizados com esse objetivo. Os indexes so baseados em estruturas de

    dados rvores (tree) ou estruturas de dados hash, adequadamente adaptados para a pesquisa em disco. Com o intuito de processar os registros necessrios do

    banco de dados para uma consulta particular, aqueles registros devem ser copiados do disco para a memria. Conseqentemente, os SGBD em geral tm um

    mdulo de armazenamento temporrio (buffering) que mantm partes do banco de dados armazenado na memria principal. Em outros casos, o SGBD

    pode utilizar o sistema operacional para fazer o armazenamento temporrio dos dados no disco. O mdulo do SGBD para o processamento de consulta e otimizao responsvel pela escolha eficiente do plano de execuo da consulta (query)

    baseado nas estruturas de armazenamento existentes. A opo de qual index criar e manter parte do projeto fsico do banco de dados e seu ajuste

    (tunning), que de responsabilidade do DBA e sua equipe.

    1.6.5 Garantindo Backup e Restaurao Um SGBD deve prover facilidades para a restaurao de falhas de hardware ou de software. O subsistema de backup e recuperao dos subsistemas do

    SGBD responsvel pela recuperao dessas falhas. Por exemplo, se um sistema de computador falhar no meio de uma transao complexa de atualizao,

    o subsistema de recuperao responsvel por garantir que o banco de dados seja recolocado no mesmo estado em que estava, antes do incio da execuo

    da transao. Alternativamente, o subsistema pode assegurar que a transao seja resumida do ponto em que foi interrompida sendo assim, seu efeito

    completo seria armazenado no banco de dados.

    1.6.6 Fornecendo Mltiplas Interfaces para os Usurios Como diversos tipos de usurios com nveis de conhecimento tcnico diferentes utilizam o banco de dados, o SGBD deve fornecer interfaces diferentes para

    esses usurios. Essas interfaces incluem linguagens de consulta para os usurios casuais; interfaces de linguagens de programao para programadores de

    aplicaes; formulrios e seqncias de comandos para usurios

  • 14

    14

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

    parametrizveis; interfaces de menus, interfaces de linguagem natural para usurios autnomos. Ambas, as interfaces com menus e aquelas com

    formulrios, so comumente conhecidas como interfaces grficas para os usurios Graphical User Interfaces (GUIs). Muitos ambientes e linguagens

    especializadas existem para a especificao de GUIs. As capacidades para gerar interfaces Web GUI para um banco de dados ou capacitando um banco

    de dados para a Web (Web-enabling) tambm so muito comuns.

    1.6.7 Representando Relacionamentos Complexos entre os Dados Um banco de dados pode incluir uma grande variedade de dados que esto inter-relacionados de muitas maneiras. Veja o exemplo mostrado na Figura 1.2.

    O registro de Brown no arquivo ALUNO est relacionado com quatro registros no arquivo HISTORICO_ESCOLAR. De forma similar, cada registro

    Disciplina est relacionado com um registro de cursos e ainda com os registros HISTORICO_ESCOLAR, um para cada aluno que completou uma

    disciplina. O SGBD deve ter a capacidade de representar a variedade de relacionamentos complexos entre os dados, bem como recuperar e atualizar os

    dados relacionados fcil e eficientemente.

    1.6.8 Forando as Restries de Integridade A maioria das aplicaes de um banco de dados tem certas restries de integridade que devem complementar os dados. O SGBD deve prover

    funcionalidades para a definio e a garantia dessas restries. O tipo mais simples de restrio de integridade envolve a especificao de um tipo de dado

    para cada item de dados. Por exemplo, na Figura 1.2, podemos especificar que o valor do item de dados Turma, em cada registro ALUNO, tem de ser um

    inteiro entre 1 e 5, e o valor de Nome deve ser uma string (cadeia de caracteres) menor que 50 caracteres alfabticos. Os tipos mais complexos de restries

    podem ocorrer, com freqncia, envolvendo a definio de que o registro em um arquivo deve estar relacionado aos registros de outros arquivos. Por

    exemplo, na Figura 1.2, podemos especificar que 'todo registro de disciplina deve estar relacionado com um registro de Curso'. Outro tipo de restrio

    especifica a singularidade no valor do item de dado, como 'todo registro de curso deve ter um nico valor para NumerodoCurso'. Essas restries so

    derivadas do significado ou da semntica dos dados e do minimundo que representam. Os projetistas do banco de dados so responsveis por identificar as

    restries de integridade durante o projeto do banco. Algumas restries podem ser especificadas para o SGBD e executadas automaticamente. Outras

    podem ser testadas pelos programas de atualizao ou no momento da entrada dos dados. Um item de dados pode ser inserido incorretamente e ainda assim satisfazer as restries de integridade definidas. Por exemplo, se um aluno recebe

    nota A, mas inserida, no banco de dados, a nota C, o SGBD no pode descobrir esse erro, automaticamente, porque C um valor vlido para os tipos de

    dados de NOTA. Esse erro pode ser descoberto manualmente (quando o aluno receber a nota e reclamar), sendo corrigido, depois, por meio da atualizao

    do banco de dados. Porm, a nota Z pode ser rejeitada automaticamente pelo SGBD, pois ela um valor invlido para os tipos de dados de NOTA.

    1.6.9 Permitindo Inferncias e Aes Usando as Regras Alguns sistemas de banco de dados oferecem capacidades para definir as regras de deduo por inferncia gerando novas informaes de fatos

    armazenados no banco de dados. Esses sistemas so chamados sistemas de banco de dados dedutivos. Por exemplo, podem existir regras complexas no

    minimundo da aplicao para determinar quando um aluno est em recuperao. Isso pode ser especificado declaradamente como uma regra, e quando for

    compilada e mantida pelo SGBD, poder determinar todos os alunos em recuperao. No SGBD tradicional, um cdigo explcito de programa procedural

    teria de ser escrito para dar suporte a essas aplicaes. No entanto, se as regras do minimundo mudarem, geralmente mais conveniente mudar as regras de

    deduo declaradas que reescrever os programas procedurais. Os sistemas de banco de dados ativos oferecem funcionalidades mais potentes, pois

    permitem regras ativas que podem disparar automaticamente aes quando certos eventos e condies ocorrerem.

    1.6.10 Implicaes Adicionais do Uso da Abordagem de um Banco de Dados Esta seo discute algumas implicaes adicionais da utilizao da abordagem do uso de um banco de dados que beneficiam a maioria das organizaes:

    Potencial para Garantir Padres. A abordagem de um banco de dados permite ao DBA definir e forar o uso de padres entre os usurios de um

    banco de dados em uma grande organizao. Isso facilita a comunicao e cooperao entre os vrios departamentos, projetos e os usurios na

    organizao. Os padres podem ser definidos para os nomes e

    1.7 Uma Breve Histria das Aplicaes de um Banco de Dados 15

  • 15

    15

    formato dos elementos de dados, formatos de exibio, estruturas de relatrios, terminologia, dentre outros. O DBA pode forar o uso dos padres

    em um ambiente de banco de dados centralizado mais facilmente do que em um ambiente no qual cada grupo de usurio tenha o controle de seus

    prprios arquivos e softwares. Reduo no Tempo de Desenvolvimento de Aplicaes. O principal argumento de venda para o uso da abordagem de um banco de dados que o

    desenvolvimento de uma nova aplicao como a recuperao de dados de um banco de dados para a impresso de um novo relatrio

    demanda um tempo muito pequeno. Projetar e implementar um novo banco de dados do zero deve levar mais tempo do que escrever uma simples

    aplicao de arquivo especializada. No entanto, uma vez que o banco de dados est ativo e em execuo, certamente menos tempo ser necessrio

    para criar aplicaes usando as facilidades do SGBD. O tempo estimado de desenvolvimento utilizando o SGBD est entre 1/6 e 1/4 do tempo

    gasto com o sistema tradicional de arquivos.

    Flexibilidade. Pode ser necessrio alterar a estrutura do banco de dados quando os requisitos mudam. Por exemplo, um novo grupo de usurios

    pode surgir e precisar de informaes no disponveis no banco de dados. A soluo pode ser adicionar um novo arquivo ao banco ou estender os

    elementos de dados em um arquivo existente. Um SGBD moderno permite certos tipos de alteraes evolutivas que mudam a estrutura do banco

    de dados sem afetar os dados armazenados e os programas de aplicao existentes.

    Disponibilidade para Atualizar as Informaes. Um SGBD disponibiliza o banco de dados para todos os usurios. Imediatamente aps ser feita

    a atualizao de um usurio, todos os outros usurios podero v-la. Essa disponibilidade de atualizao da informao essencial para muitas

    aplicaes de processamento de transaes, como sistemas de reserva ou banco de dados bancrios. possvel faz-la por intermdio do

    subsistema de controle de concorrncia e recuperao do SGBD.

    Economias de Escala. A abordagem do SGBD permite a consolidao dos dados e das aplicaes, reduzindo, dessa forma, a perda por

    superposio entre as atividades de processamento de dados pessoais em diferentes projetos ou departamentos. Isso possibilita que a organizao

    faa investimentos em processadores mais potentes, dispositivos de armazenamento ou equipamentos de comunicao do que cada departamento

    adquirir seu prprio (menos potente) equipamento, o que reduz o custo total da operao e gerenciamento.

    1.7 UMA BREVE HISTRIA DAS APLICAES DE UM BANCO DE DADOS Apresentaremos, agora, uma breve viso histrica das aplicaes que utilizam o SGBD e como elas forneceram a motivao para o surgimento de novos

    tipos de sistemas de banco de dados.

    1.7.1 Primeiras Aplicaes de Bancos de Dados Usando Sistemas Hierrquicos e de Rede

    A maioria das aplicaes pioneiras utilizando um banco de dados mantinha os registros das grandes organizaes, como as corporaes, universidades,

    hospitais e bancos. Em muitas dessas aplicaes existia um grande nmero de registros de estruturas semelhantes. Por exemplo, em uma aplicao para uma

    universidade, as informaes similares seriam mantidas para cada aluno, cada curso, cada registro de nota, e assim por diante. Havia tambm muitos tipos

    de registros e diversos inter-relacionamentos entre eles. Um dos principais problemas com os sistemas de banco de dados pioneiros era a mistura entre os relacionamentos conceituais, o armazenamento

    fsico e a localizao de registros no disco. Por exemplo, o registro de notas de um aluno especfico poderia ser fisicamente armazenado prximo ao registro

    de aluno. Apesar de prover acessos muito eficientes, destinados a consultas originais e transaes, para as quais o banco de dados foi projetado para

    executar, ele no oferecia flexibilidade suficiente e eficiente para os acessos a registros quando novas consultas e transaes fossem necessrias. Em

    especial, as novas consultas que precisavam de uma organizao diferente de armazenamento para a eficincia no processamento eram muito difceis de

    serem implementadas. Tambm era muito complicado reorganizar o banco de dados quando as mudanas eram feitas para atender a novos requisitos da

    aplicao. Outra deficincia desses sistemas era que forneciam somente as interfaces para a linguagem de programao. Isso fez com que o tempo consumido

    fosse significativamente alto para implementar novas consultas e transaes, pois os novos programas tinham de ser escritos, testados e depurados. A

    maioria desses sistemas de banco de dados foi implementada em computadores grandes (mainframes) e caros, comeando em meados de 1960 indo at os

    anos 70 e 80. Os principais tipos desses sistemas iniciais foram baseados em trs paradigmas principais: os sistemas hierrquicos, aqueles baseados em

    modelo de rede, e os de arquivos invertidos.

  • 16

    16

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

    1.7.2 Obtendo Flexibilidade de Aplicao com o Banco de Dados Relacional Os bancos de dados relacionais foram originalmente projetados com o objetivo de separar o armazenamento fsico dos dados da sua representao

    conceitual e prover uma fundamentao matemtica para os bancos de dados. O modelo de dados relacional tambm introduziu as linguagens de consulta de

    alto nvel, que so uma alternativa s interfaces para as linguagens de programao; conseqentemente, ficou mais rpido escrever novas consultas. A

    representao de dados relacionais de algum modo assemelha-se ao exemplo apresentado na Figura 1.2. Os sistemas relacionais foram, a princpio,

    direcionados para as mesmas aplicaes dos sistemas pioneiros, mas foi decisivo o fato de oferecerem flexibilidade para o desenvolvimento rpido de novas

    consultas e para reorganizar o banco de dados quando os requisitos eram alterados. Os primeiros sistemas relacionais experimentais desenvolveram-se no fim dos anos 70 e os SGBDRs (sistemas de gerenciamento de banco de dados

    relacional) introduzidos no incio dos anos 80 eram muito lentos, pois no usavam ponteiros para o armazenamento fsico ou registros de localizao para

    acessar os registros de dados relacionados. Com o desenvolvimento de novas tcnicas de armazenamento e indexao, e com o processamento aprimorado

    de consultas e otimizao, seu desempenho melhorou. Assim, os bancos de dados relacionais tornaram-se os tipos dominantes de sistemas para as

    aplicaes tradicionais de banco de dados. Os bancos de dados relacionais agora existem na maioria dos computadores, desde aqueles de uso pessoal at os

    de grandes servidores.

    1.7.3 Aplicaes Orientadas a Objeto e a Necessidade de Bancos de Dados Mais Complexos

    O aparecimento das linguagens de programao orientadas a objeto nos anos 80 e a necessidade de armazenar e partilhar os objetos complexos estruturados

    conduziram ao desenvolvimento dos bancos de dados orientados a objeto. Inicialmente, foram considerados como competidores dos bancos de dados

    relacionais, pois possuam estruturas de dados mais gerais. Tambm incorporaram muitos paradigmas teis orientados a objeto, como tipos de dados

    abstratos, encapsulamento de operaes, herana e identidade de objeto. No entanto, a complexidade do modelo e a falta de um padro inicial contriburam

    para seu uso limitado. Hoje so usados principalmente em aplicaes especializadas, tais como projetos em engenharia, publicidade multimdia e sistemas

    para a indstria.

    1.7.4 Trocando Dados na Web para o Comrcio Eletrnico (E-commerce) A World Wide Web gerou uma grande rede de computadores interconectados. Os usurios podem criar documentos usando uma linguagem de publicao

    na Web, como a HTML (Hypertext Markup Language), e armazenar esses documentos nos servidores da Web, na qual os outros usurios (clientes) podem

    ter acesso. Os documentos podem ser conectados atravs de hyperlinks, que so ponteiros para os outros documentos. Nos anos 90, o comrcio eletrnico

    (e-commerce) surgiu como a principal aplicao da Web. Tornou-se rapidamente visvel que partes das informaes do comrcio eletrnico nas pginas

    Web eram, muitas vezes, dados extrados dinamicamente dos SGBDs. Vrias tcnicas foram desenvolvidas para permitir o intercmbio de dados na Web.

    Atualmente, a XML (extended Markup Language) considerada o principal padro para o intercmbio de dados entre os vrios tipos de banco de dados e as

    pginas Web. A XML combina os conceitos de modelos empregados nos sistemas de documentos com os conceitos de modelos de bancos de dados.

    1.7.5 Ampliando as Funcionalidades dos Bancos de Dados para as Novas Aplicaes O sucesso dos sistemas de banco de dados em aplicaes tradicionais encorajou os desenvolvedores de outros tipos de aplicaes a se esforarem para us-

    los. Essas aplicaes tradicionalmente usavam seus prprios arquivos especializados e estruturas de dados. A seguir, alguns exemplos dessas aplicaes:

    Aplicaes cientficas, que armazenam uma grande quantidade de dados resultantes de experimentos cientficos em reas como fsica avanada

    ou mapeamento do genoma humano.

    Armazenamento e restaurao de imagens, de notcias escaneadas ou fotografias pessoais a imagens fotografadas por satlite e imagens de

    procedimentos mdicos, como raios X ou ressonncia magntica.

    Armazenamento e recuperao de vdeos, como filmes ou videoclipes de notcias ou de mquinas fotogrficas digitais.

    Aplicaes para data mining (garimpagem de dados), que analisam grandes quantidades de dados pesquisando as ocorrncias de padres

    especficos ou relacionamentos.

  • 17

    17

    1.8 Quando No Usar o SGBD 17

    Aplicaes espaciais, que armazenam as informaes espaciais dos dados, tais como informaes a respeito do tempo ou sobre os mapas usados

    em sistemas de informaes geogrficas.

    Aplicaes referentes a sries temporais, que guardam informaes como os dados econmicos em intervalos regulares de tempo, como, por

    exemplo, vendas dirias ou composio mensal do produto interno bruto.

    Percebeu-se rapidamente que os sistemas relacionais bsicos no eram adequados para muitas dessas aplicaes, por uma ou mais das razes a

    seguir:

    As estruturas de dados mais complexas eram necessrias para a modelagem da aplicao do que uma representao relacional simples.

    Os novos tipos de dados eram imprescindveis, alm dos tipos numricos bsicos e as cadeias de caracteres (strings).

    As novas operaes e construtores de linguagens de consulta eram essenciais para manipular os novos tipos de dados.

    As novas estruturas de armazenamento e indexao eram necessrias.

    Isso direcionou os profissionais envolvidos com o desenvolvimento dos SGBDs a adicionar funcionalidades aos seus sistemas. Algumas delas eram

    de propsito geral, como o conceito de incorporao dos bancos de dados orientados a objeto aos sistemas relacionais. Outras funcionalidades eram

    especficas, na forma de mdulos opcionais que poderiam ser usados para aplicaes especficas. Por exemplo, os usurios poderiam comprar uma srie de

    mdulos temporais para usar com seus SGBDs relacionais nas suas aplicaes com as sries temporais.

    1.8 QUANDO NO USAR O SGBD Apesar das vantagens no uso do SGBD, h algumas situaes em que esse sistema pode envolver custos altos e desnecessrios, que normalmente no

    ocorreriam no processamento tradicional de arquivos. Os altos custos de utilizar o SGBD so devidos a:

    Investimentos iniciais altos em hardware, software e treinamento.

    Generalidade que o SGBD fornece para a definio e processamento dos dados.

    Custos elevados para oferecer segurana, controle de concorrncia, recuperao e funes de integridade.

    Problemas adicionais podem surgir se os projetistas do banco de dados e o DBA no projetarem o banco de dados de maneira adequada ou se a

    aplicao no for implementada apropriadamente. Sendo assim, pode-se indicar o uso de arquivos convencionais nas seguintes circunstncias:

    O banco de dados e suas aplicaes so simples, bem definidas e sem previso de mudanas.

    H requisitos de tempo real (real-time) para alguns programas difceis de serem atendidos por causa da sobrecarga (overhead) do SGBD.

    O acesso de mltiplos usurios aos dados no necessrio.

    1.9 RESUMO Neste captulo, definimos um banco de dados como uma coleo de dados relacionados, na qual os dados significam fatos registrados. Um tpico

    banco de dados representa alguns aspectos da vida do mundo real e utilizado por um ou vrios grupos de usurios para propostas especficas. Um SGBD

    um pacote de software para a implementao e manuteno de bancos de dados computadorizados. O banco de dados e o software, juntos, formam um

    sistema de banco de dados. Identificamos vrias caractersticas que distinguem a abordagem de um banco de dados de uma aplicao tradicional de

    processamento de arquivos. Em seguida, discutimos as categorias principais de usurios do banco de dados ou os 'atores no palco'. Notamos, ainda, que,

    alm dos usurios, h muitas categorias de pessoal de suporte ou os 'trabalhadores dos bastidores', em um ambiente de banco de dados. Depois, apresentamos a lista de capacidades que devem ser oferecidas por um software SGBD para o DBA, projetistas de bancos de dados e os

    usurios para ajud-los a projetar, administrar e usar um banco de dados. A seguir, fizemos um breve histrico da evoluo das aplicaes de bancos de

    dados. Finalmente, discutimos os altos custos do uso do SGBD e algumas situaes nas quais pode no ser vantajoso utilizar o SGBD.

  • 18

    18

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

    Questes de Reviso

    1.1 Defina os seguintes termos: dados, banco de dados, SGBD, sistema de banco de dados, catlogo de banco de dados, independncia programa-

    dados, viso do usurio (-user view), DBA, usurio final, transao enlatada (customizada), sistema de banco de dados dedutivo, objeto persistente,

    metadados e aplicao de processamento de transao.

    1.2 Quais so os trs tipos principais de aes que envolvem um banco de dados? Discuta brevemente cada um deles.

    1.3 Discuta as caractersticas principais da abordagem de um banco de dados e como ela difere dos sistemas tradicionais de arquivos.

    1.4 Quais so as responsabilidades do DBA e dos projetistas de banco de dados?

    1.5 Quais so os diferentes tipos de usurios finais de banco de dados? Discuta as atividades principais de cada um.

    1.6 Discuta as funcionalidades que podem ser fornecidas por um SGBD.

    Exerccios

    1.7 Identifique algumas consultas informais e operaes de atualizaes que voc poderia aplicar ao banco de dados exposto na Figura 1.2.

    1.8 Qual a diferena entre a redundncia controlada e aquela sem controle? Ilustre com exemplos.

    1.9 Nomeie todos os relacionamentos entre os registros do banco de dados apresentados na Figura 1.2.

    1.10 Apresente algumas vises adicionais para o banco de dados visto na Figura 1.2 que podem ser necessrias para outros grupos de usurios.

    1.11 Cite alguns exemplos de restries de integridade que voc poderia ter no banco de dados mostrado na Figura 1.2.

    Bibliografia Selecionada

    Em outubro de 1991, a edio de Communications ofthe ACM e Kim (1995) apresentou vrios artigos descrevendo a prxima gerao dos SGBDs; diversas

    caractersticas de um banco de dados, discutidas na poca, esto totalmente disponveis. A edio de maro de 1976 da AC