Sistema de banco de dados Navathe - rclick.com.br · A Parte 4 começa com uma descrição das...
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