Banco de Dados
Apostila Adaptada
Autora
Sandra de Albuquerque Siebra
Doutora em Cincia da Computao, pelo Centro de Informtica da UFPE
Professora da Universidade Federal Rural de Pernambuco (UFRPE).
Sumrio
Captulo 1 Banco de Dados...............................................................................................................4
Alguns Conceitos Bsicos...............................................................................................................4
Como era antes de surgirem os bancos de dados?...........................................................................6
Resumo da Origem dos Bancos de Dados..................................................................................7
O Sistema Gerenciador de Banco de Dados (SGBD)......................................................................9
Estrutura Geral de um SGBD........................................................................................................11
Classes de Usurios de um Sistema de Banco de Dados...............................................................12
Alguns Exemplos de SGBDs.........................................................................................................12
Captulo 2 Evoluo e Arquitetura dos Bancos de Dados...............................................................14
Evoluo do armazenamento de dados..........................................................................................14
Primeira Gerao dos Bancos de Dados........................................................................................14
Modelo de Dados Hierrquico..................................................................................................14
Modelo de Dados em Redes......................................................................................................16
Segunda Gerao dos Bancos de Dados........................................................................................17
Modelo de Dados Relacional....................................................................................................17
Terceira Gerao dos Bancos de Dados.........................................................................................18
Modelo de Dados Orientado a Objetos.....................................................................................18
Modelo de Dados Objeto-Relacional........................................................................................19
Arquiteturas de Sistemas de Banco de Dados...............................................................................19
Arquiteturas Centralizadas........................................................................................................20
Arquitetura Cliente-Servidor.....................................................................................................20
Arquitetura Distribuda.............................................................................................................22
Arquitetura Paralela..................................................................................................................23
Arquitetura Mono-Usurio........................................................................................................24
Abstrao de Dados.......................................................................................................................24
parte do mundo real que relevante para a implementao da livraria (vide Figura 1) e dever conter informaes que
caracterizem o domnio do negcio.
Um banco de dados pode ser criado e mantido por um conjunto de aplicaes desenvolvidas especialmente para esta
tarefa (por exemplo, no caso da livraria, poderia existir um Sistema Controle de Livraria para gerenciar o acesso ao
Banco de Dados) ou por um Sistema Gerenciador de Bancos de Dados (SGBDs ou DBMS Database Management
System). Um SGBD um pacote de software designado para guardar e gerenciar um banco de dados. ele que realiza
a manipulao dos dados armazenados em um BD. O SGBD tem uma gama de funes pr-implementadas que
gerenciam as operaes de insero, remoo, atualizao e consulta dos dados armazenados.
O conjunto formado por um banco de dados mais as aplicaes que o manipulam (o SGBD) chamado de Sistema de
Banco de Dados (SBD). Pode-se definir esse sistema como um ambiente cujo objetivo global registrar e manter
informao. A Figura 2 representa o ambiente de um sistema de banco de dados, que interage com os programadores
(as pessoas que o desenvolveram) e com os usurios finais (as pessoas que o utilizaro). Num primeiro nvel as pessoas
interagem com os programas de aplicao (programas desenvolvidos em uma linguagem de aplicao), que foram
criados para os usurios finais utilizando-se uma linguagem de consulta (linguagem prpria para acesso ao banco de
dados). Esta aplicao interage com o SGBD, que possui programas responsveis por processar as consultas e acessar
os dados armazenados, dentre outras funes. Por fim, num nvel mais interno, encontra-se a base de dados, separada
em dois arquivos distintos, um contendo a definio dos dados e outro contendo os dados propriamente ditos, ou
seja, os dados armazenados.
A separao da base de dados em dois arquivos distintos deve-se ao fato de que para um conjunto de dados definida
apenas uma estrutura, que por suas caractersticas prprias altera-se pouco. Por exemplo, define-se que o endereo
do estudante deve ser um campo alfanumrico com capacidade para armazenar 80 caracteres. J os dados
armazenados mudam muito uma vez que a cada nova insero, alterao ou remoo de dados, os dados so
modificados. Por exemplo, o endereo da estudante Ana Maria Rua das Flores, 320. Mas a qualquer instante esse
dado pode ser modificado. Por exemplo, ela pode passar a morar na Av. Abdias de Carvalho, 52. Sendo assim, uma
vantagem manter separados estes dois arquivos com caractersticas distintas. O arquivo contendo a definio dos
dados o que podemos chamar de metadados, ou dados sobre os dados. Ou seja, so dados cujo significado reflete
caractersticas dos prprios dados, como por exemplo: de que tipo so estes dados? Qual ser o tamanho deles? Ele
pode ficar em branco ou no? Etc.
A consequncia que essa redundncia poderia acarretar inconsistncia dos dados, uma vez que a mesma informao
poderia estar duplicada em diversos arquivos (no exemplo, os dados do produto). Vamos dar um exemplo. Vamos
supor que nos arquivos de Vendas, eu atualizei o nome do produto 01 de Mesa para Cadeira. Se eu desejasse manter a
consistncia, eu teria de entrar nos arquivos de Produo e de Engenharia e fazer a mesma atualizao. Se no fizesse,
os dados do produto na fbrica ficariam inconsistentes, pois dependendo do sistema acessado o produto 01 poderia
ser Mesa ou Cadeira. Ficou claro?
Alm disso, a duplicao de dados em diversos sistemas de arquivos leva a um maior custo de armazenamento
(lembre, voc est armazenando diversas vezes os mesmos dados) e a necessidade de redigitao de dados (e esse
trabalho repetitivo pode levar a erros, que tambm geram inconsistncias entre os dados). Adicionalmente, o uso de
sistemas de arquivos possui outros problemas tais como:
Dificuldade do acesso a dados a gerao de informao pode surgir, durante o tempo em que o sistema
est em produo, sob diferentes aspectos. Cada requisio de informao diferente, no sistema de arquivos, vai gerar
a necessidade da criao de um programa aplicativo, de uma nova consulta ou de um novo relatrio. Dessa forma, a
recuperao de informao no atendida de modo eficiente. Haveria dificuldade em apagar informaes dos
sistemas. Poderia novamente ocorrer casos de inconsistncia, onde um produto poderia ser deletado dos arquivos de
Vendas, mas no dos outros dois arquivos (Engenharia e Produo).
Isolamento dos dados os dados esto armazenados em arquivos distintos, que no possuem qualquer
tipo de relacionamento direto, e ainda, podem conter diferentes formatos para o mesmo dado. Por exemplo, o cdigo
do produto nos arquivos de venda poderia ser representado s por nmeros e nos arquivos de Produo por letras e
nmeros.
Problemas de integridade fica difcil manter restries de integridade automaticamente. E o que so
essas restries de integridade? Seriam checagens de determinadas condies a serem feitas pelo sistema sobre os
dados armazenados (por exemplo, a quantidade de produtos em estoque no pode ser inferior a um valor X). Essas
restries teriam de ser mantidas pelo sistema, implicando em implementao do cdigo apropriado para fazer esse
tipo de checagem em CADA UM dos sistemas afetados. O problema seria que a cada incluso de uma nova restrio de
integridade, um novo cdigo deveria ser escrito EM CADA SISTEMA para poder mant-la, j que cada sistema trabalha
com um diferente sistema de arquivos.
Problemas de segurana Nem todos os usurios do sistema devem estar autorizados a ver/acessar todos
os dados armazenados. Porm, uma vez que os programas de aplicao so inseridos no sistema como um todo, de
forma aleatria ( medida que a necessidade surge, lembra?) difcil implementar e garantir a efetividade de regras de
segurana.
Anomalias no acesso concorrente a melhora de desempenho em um sistema pode ocorrer pela execuo
simultnea de diversas operaes. Geralmente, nos sistemas de arquivos, esta melhoria seria difcil de implementar
sem levar a danos na consistncia dos dados. Ou seja, seria difcil permitir que mltiplos usurios possam ter acesso
aos dados ao MESMO TEMPO. Vamos dar um exemplo. Considere um sistema bancrio (com a existncia de contas
correntes, agncias, transaes bancrias, etc) e a seguinte situao: suponha que o saldo de uma conta bancria C1
seja 500 reais. Se dois clientes retiram fundos desta conta C1 AO MESMO TEMPO (acesso concorrente conta C1), um
estado inconsistente pode ocorrer se na execuo das duas instncias do programa de dbito, ambos os clientes lerem
o saldo inicial original e retirarem, cada um, seu valor correspondente, e seja ento armazenado o valor restante.
Instanciando o problema:
1. Ambos leem o valor do saldo 500;
2. Um retira 50 reais (resultando 450 reais) e o outro 100 reais (resultado 400 reais) lembre que ambos
esto realizando a operao em cima dos 500 reais iniciais que foi lido;
3. Dependendo de qual execuo do programa de dbito registre o saldo restante primeiro, o valor do saldo
da conta ser 450 ou 400 reais, quando, na verdade, deveria ser 350 reais.
Outros problemas existentes so:
A definio das estruturas dos arquivos est inserida no prprio cdigo dos programas, sistemas ou
aplicativos, dificultando a manuteno;
Compartilhamento de um arquivo por vrios programas fica comprometido. H a necessidade de duplicar a
definio das estruturas dos arquivos nos programas;
Podem existir arquivos e programas de um mesmo sistema desenvolvidos, de forma isolada, por diferentes
programadores de forma diferentes e, at mesmo, em linguagens de programao diferentes.
Justamente a necessidade de resolver diversos desses problemas motivou a criao dos bancos de dados e
dos sistemas gerenciadores de banco de dados. Com eles, os dados s necessitam ser armazenados uma nica vez e
passam a ser acessados por todos os sistemas (vide Figura 4)
No incio da computao, os programas tinham o nico objetivo de armazenar e manipular dados. Esses programas
gravavam seus dados em arquivos em disco, segundo estruturas de dados prprias (vide Figura 5). Programas que no
conhecessem a estrutura dos dados no podiam utilizar os dados.
Se vrios programas precisassem compartilhar os dados de um mesmo arquivo, eles todos teriam que conhecer e
manipular as mesmas estruturas de dados (vide Figura 6). Ou seja, toda a definio dos dados deveria estar dentro dos
programas que os manipulariam.
Se um programa precisasse realizar alguma mudana na estrutura de dados, todos os programas que acessam os
dados tinham que ser alterados, mesmo que a alterao ocorresse em dados no manipulados pelos outros
programas. Isso gerava um grande problema: Como garantir a unicidade das estruturas de dados entre os diversos
programas devido existncia de redundncias? Para evitar esse problema, colocou-se um sistema intermedirio que
deveria conhecer a estrutura de dados do arquivo manipulado; que deveria fornecer apenas os dados que cada
programa necessitasse e deveria armazenar adequadamente os dados de cada programa (vide Figura 7).
Construo do banco de dados o processo de consistir e gravar inicialmente dados no banco de dados.
Manipulao de um banco de dados inclui funes como consulta por dados especficos e atualizao para
refletir as alteraes no mundo real.
10
necessrio que o SGBD possua um competente sistema de segurana, para que se estabelea a privacidade de
dados, atravs de mecanismos de restrio de acesso.
Tratamento de Concorrncia para que seja possvel um compartilhamento simultneo dos dados
armazenados no banco de dados, o SGBD implementa o tratamento de concorrncia. Ou seja, o SGBD deve possuir
mecanismos para a identificao e tratamento dos acessos concorrentes, para garantir a consistncia das informaes
do BD no sentido de sua veracidade. Os sistemas de bloqueio (LOCK) e desbloqueio (UNLOCK) so os mecanismos
utilizados para evitar que uma informao que est sendo manipulada por um determinado usurio U1, seja alterada
por outro usurio U2. Enquanto o primeiro usurio U1 estiver acessando um dado no BD, o segundo usurio U2 no
ter acesso ao mesmo ou o ter apenas para leitura e receber um aviso do SGBD de que a informao est sendo
acessada por outro usurio e pode estar sendo modificada.
Privacidade dos Dados um SGBD deve fornecer um subsistema de autorizao e segurana (por exemplo,
atravs de senhas e sistemas de LOG e AUDIT, o qual utilizado pelo DBA para criar contas e especificar as restries
destas contas; o controle de restries se aplica tanto ao acesso aos dados quanto ao uso de softwares inerentes ao
SGBD. Dessa forma, torna-se possvel definir, para cada usurio, o nvel de acesso a ele concedido (leitura, leitura e
gravao ou sem acesso) a tabela e/ou campo. Este recurso impede que pessoas no autorizadas utilizem ou atualizem
uma determinada tabela ou campo, bem como que utilizem softwares inadequados ao seu perfil.
Segurana dos Dados o SGBD deve oferecer meios que resguardem a base de dados nos casos de falha de
programa, equipamento ou acidentes. Tambm deve ser possvel que alteraes indevidas feitas pelos usurios
durante a operao dos aplicativos sejam desfeitas sem prejuzo da coerncia dos dados. A segurana fsica dos dados
poder ser obtida a partir de utilitrios e aplicativos que os fabricantes colocam em seus produtos, visando facilitar o
trabalho de proteo aos dados contra danos fsicos, que podem ser causados por falhas de hardware ou queda da
rede. Nessa linha destacam-se as rotinas de backup (cpias de segurana dos dados armazenados) e a gravao com
espelhamento (voc ter duas mquinas diferentes com o banco de dados instalado e periodicamente ele ser replicado
de uma mquina para outra, para se uma sair do ar, a outra j assumir).
Padronizao dos Dados Permite que os campos armazenados na base de dados sejam padronizados
segundo um determinado formato. Por exemplo, para o campo sexo poderia ser definido e apenas permitido usar os
caracteres M ou F. Padronizar os dados pode facilitar a comunicao e a cooperao entre vrios departamentos,
projetos e usurios. Padres podem ser definidos para formatos de nomes, elementos de dados, telas, relatrios,
terminologias, etc. O DBA pode obrigar a padronizao em um ambiente de base de dados centralizado, muito mais
facilmente que em um ambiente onde cada usurio ou grupo tem o controle de seus prprios arquivos e software;
Controle de Transaes Uma Transao um conjunto de operaes sobre o BD que devem ser
executadas integralmente e sem falhas ou interrupes. Caso contrrio, devem ser desfeitas. Todo SGBD deve realizar
o controle das Transaes.
Integridade dos Dados A integridade de dados refere-se a mecanismos que esto disponveis nos SGBD,
que garantem a consistncia dos dados armazenados no SGBD, segundo parmetros de validao, especificados no
momento de criao do BD, em conjunto com as estruturas de dados. Ou seja, esses mecanismos garantem que o
contedo dos dados armazenados no Banco de Dados possua valores coerentes ao objetivo do campo, no permitindo
que valores absurdos sejam cadastrados. Por exemplo: No permite que uma data final seja menor do que uma data
inicial.
Representao de Relacionamento Complexo entre Dados uma base de dados pode possuir uma
variedade de dados que esto inter-relacionados de muitas maneiras. Um SGBD deve ter a capacidade de representar
uma variedade de relacionamentos complexos entre dados, bem como recuperar e modificar dados relacionados de
maneira fcil e eficiente
Possibilidade de Mltiplas Interfaces Vrios usurios representam tambm necessidades diversas no que
se refere aos tipos de interfaces fornecidas pelo SGBD. Interfaces para consultas de dados, programao, e interfaces
baseadas em menus ou em linguagem natural so exemplos de alguns tipos que podem estar disponveis.
11
12
13
(para Macintosh, Windows, Linux, FreeBSD, Unix) e para computadores de grande porte. Foi um dos primeiros a fazer
parte do mercado Web. Nele a linguagem padro a SQL, mas possui tambm uma linguagem prpria para
desenvolvimento de aplicaes, a PL/SQL4. A participao do Oracle no mercado de Banco de Dados bastante
acentuada, principalmente em grandes empresas e em conjunto com sistemas de mdio e grande porte. um SGBD
robusto e seguro, quando bem administrado. Alm da base de dados, a Oracle desenvolve uma sute de
desenvolvimento chamada de Oracle Developer Suite, utilizada na construo de programas de computador que
interagem com a sua base de dados. Site Oficial em http://www.oracle.com/us/products/database/index.htm
Microsoft SQL Server o banco de dados comercial da Microsoft. Ele um dos principais concorrentes do
Oracle. Tem como uma das vantagens o fato de, por ser um produto Microsoft, se integrar nativamente com produtos
e linguagens da Microsoft (talvez seja esse o fator que o popularizou!). As verses atuais so independentes e operam
exclusivamente sobre Windows. um software proprietrio e pago, como a maioria dos produtos Microsoft. Algumas
empresas que usam o MS SQL Server. Site Oficial em http://www.microsoft.com/sqlserver/2008/en/us/
IBM DB2 o Sistema Gerenciador de Banco de Dados Relacionais (SGDBR) produzido pela IBM. Existem
diferentes verses do DB2 que rodam desde num simples PDA (computador de mo), at em potentes mainframes e
funcionam em servidores baseados em sistemas Unix, Windows ou Linux. DB2 vendido em diversos tipos de edies
ou licenas. Pela escolha de uma verso com menos recursos, a IBM evita que os consumidores paguem por coisas que
no iriam usar. Informaes em http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp
Interbase um sistema gerenciador de banco de dados relacionais da Borland. Foi includo, pela Borland,
nas suas ferramentas de desenvolvimento (Delphi, C++ Builder e JBuider). Ele pode ser instalado em sistemas
operacionais Microsoft Windows, Linux, Mac OS X e Sun Solaris. Alm de no ser pesado relativamente rpido e
suporta bancos de dados de grande tamanho (maiores que 2 Gigabytes).Em 2000 a Borland liberou o cdigo da verso
6.0, mas as posteriores voltaram a ter licena proprietria. Desta verso 6.0 foi criado o Banco de Dados Open source
Firebird. Site Oficial: http://www.embarcadero.com/products/interbase-smp
Firebird Nascido de uma iniciativa da Borland em abrir o cdigo do InterBase 6.0, este sistema open
source e esbanja versatilidade e robustez. O Firebird (algumas vezes chamado de FirebirdSQL) roda em Linux,
Windows, Mac OS e uma variedade de plataformas Unix. A Fundao FirebirdSQL coordena a manuteno e
desenvolvimento do Firebird, sendo que os cdigos fonte so disponibilizados sob o CVS da SourceForge. O produto
bastante seguro e confivel, suportando sistemas com centenas de usurios simultneos e bases de dados com
dezenas/centenas de gigabytes. H suporte gratuito na Internet atravs de vrios sites. O Firebird amplamente
utilizado em todo o mundo, com a maior base de usurios no Brasil, Rssia e Europa. Site Oficial em
http://www.firebirdsql.org/
MySQL , atualmente, um dos bancos de dados mais populares, com mais de 10 milhes de instalaes
pelo mundo. Ele possui verses para Windows, Solaris, Unix, FreeBSD, Linux e gratuito para uso no-comercial.
Algumas das empresas mais famosas que fazem uso deste banco esto: NASA, Banco Bradesco, Dataprev, HP, Nokia,
Sony e Lufthansa. O MySQL usado principalmente para desenvolvimento WEB como servidor de dados para
comrcio eletrnico. Passou a ser considerado um SGBD de verdade (com conceito de transao) a partir da verso 5.
Site Oficial em http://www.mysql.com/
PostgreSQL um sistema gerenciador de banco de dados objeto relacional (SGBDOR), desenvolvido como
projeto de cdigo aberto. Ele um dos SGBDs (Sistema Gerenciador de Bancos de Dados) de cdigo aberto mais
avanados, grautito e tem uma boa aceitao no mercado. Originalmente concebido para rodar em Linux, ele possui
verses para Windows. usando, principalmente, para comrcio eletrnico juntamente com linguagem PHP. O
PostgreSQL um projeto open source coordenado pelo PostgreSQL Global Development Group. Site Oficial em
http://www.postgresql.org/
Dos SGBDs listados acima vale ressaltar que o SQL Server e o Oracle tem verses gratuitas, porm limitadas. O Firebird
e o PostgreSQL so open source, o DB2 pago e o MySQL gratuito para desenvolvimento, mas pago para produo.
A escolha de qual SGBD usar depende muito do projeto sendo desenvolvido e do quanto a empresa est disposta a
investir para armazenamento dos seus dados. Um SGBD gratuito e muito popular nos dias de hoje o PostgreSQL e
vrios sistemas de instituies pblicas vm adotando o mesmo. J no mundo corporativo o Oracle tem sido um dos
14
15
16
Os dados organizados, segundo este modelo, podem ser acessados segundo uma sequncia hierrquica com uma
navegao do topo (raiz) para as folhas (ns sem filhos) e da esquerda para a direita dentro de cada n ou registro. Um
mesmo registro pode estar associado a vrios registros diferentes, desde que seja replicado. Porm, a replicao
possui duas grandes desvantagens: pode causar inconsistncia de dados quando houver atualizao e causar
desperdcio de espao.
Vamos dar um exemplo. Suponha que o conjunto de todos os registros de clientes e de contas de um banco est
organizado na forma de uma rvore com raiz (vide Figura 12), em que a raiz da rvore um registro falso (sem
contedo, serve apenas para iniciar a rvore). Teramos ns que representariam os clientes (com valores para o nome
do cliente, a rua onde ele mora e a cidade) como, por exemplo, o n com valor Rui, Rua XV e S. Carlos e ns que
representariam as contas (com valores para o nmero da conta e o saldo) como, por exemplo, o n com valor 7556,
3.000 (vide Figura 13). Neste modelo, a necessidade de representar contas conjuntas levaria duplicao de registros,
devido representao em rvore. Por exemplo, suponhamos que Silvia e Rui possuem a conta conjunta de nmero
7556 (vide Figura 12, os ns com o nmero da conta em negrito), para representar esse fato, o n da conta corrente
teve de ser duplicado para obedecer a regra que cada filho s pode ter um nico pai.
Alm de poder causar inconsistncia de dados quando houver atualizao e causar desperdcio de espao, outros
problemas encontrados no modelo hierrquico so:
17
As restries impostas pelo Modelo de Redes podem ser descritas como de ordem de Entrada e de Existncia. Em
relao s restries de entrada citamos a obrigatoriedade de cada novo registro estar conectado ao conjunto
indicado. Em relao a restries de Existncia podemos dizer que um componente de um tipo de registro pode existir
de forma independente de outros desde que esteja conectado a algum outro registro fazendo parte de algum
conjunto, ou sendo base de um novo conjunto. A identificao de um conjunto pode ser verificada atravs do esquema
de ligao entre o registro pai e o registro filho, assim sendo, cada instncia de conjunto apresenta um elemento de
distino, o tal registro pai, e os registros filhos devidamente ordenados e, portanto, passveis de serem acessados
pelos seus elementos.
Alguns problemas do modelo em redes so:
O modelo de rede fortemente dependente da implementao.
18
As consultas so complicadas: o programador forado a pensar em termos de links e, em como percorr-los para
obter as informaes de que necessita. Essa manipulao de dados chamada navegacional.
No Modelo em Rede o sistema comercial mais divulgado o CAIDMS da Computer Associates. Alm dele, h o
DBMS10, o IDS II, o DMS II e o IMAGE
Para trabalhar com tabelas, algumas restries precisaram ser impostas para evitar aspectos indesejveis, como:
19
Repetio de informao, incapacidade de representar parte da informao e perda de informao. Essas restries
so: integridade referencial, chaves e integridade de junes de relaes. Veremos em detalhes isso tudo no volume II
da disciplina. O modelo relacional faz uso da linguagem SQL para definio e manipulao de dados (discutiremos
sobre a linguagem SQL, em detalhes, no volume III da disciplina).
Alguns exemplos de banco de dados que fazem uso desse modelo so: PostGreSQL, Oracle, SQLServer, MySql, entre
outros.
20
Alguns problemas do modelo orientado a objetos so: ele no tem base terica (formalismo) como os modelos
anteriores e no existe linguagem padronizada para acesso e manipulao dos dados (tal qual o SQL). Isso fez com que
esse paradigma no fosse aceito no mercado. Como soluo surgiu o paradigma objeto-relacional.
21
22
Como consequncia do emprego desses aspectos, temos as arquiteturas centralizadas, cliente-servidor, distribuda e
paralela que ser descrito a seguir.
Arquiteturas Centralizadas
As primeiras arquiteturas usavam mainframes6 para executar o processamento principal e de todas as funes do
sistema, incluindo os programas aplicativos, programas de interface com o usurio, bem como a funcionalidade dos
SGBDs. Esta a razo pela qual a maioria dos usurios fazia acesso aos sistemas via terminais que no possuam poder
de processamento, apenas a capacidade de visualizao (esses terminais eram muitas vezes chamados de terminaisburros, justamente por no terem poder de processamento). Ou seja, todos os processamentos eram feitos
remotamente, apenas as informaes a serem visualizadas e os controles eram enviados do mainframe para os
terminais de visualizao (tambm chamados de ns), conectados a ele por uma rede de comunicao (vide Figura
17).
Como os preos do hardware foram decrescendo, muitos usurios trocaram seus terminais por computadores pessoais
(PCs) e estaes de trabalho (tais como as estaes unix). No comeo os SGBDs usavam esses computadores da
mesma maneira que usavam os terminais, ou seja, o SGBD era centralizado e toda sua funcionalidade, execuo de
programas aplicativos e processamento da interface do usurio eram executados em apenas uma mquina (a que
centralizava tudo). A arquitetura centralizada tem como principais vantagens: permitir que muitos usurios manipulem
grande volume de dados e que, com os dados totalmente isolados, se ganha consideravelmente em segurana, visto
que o acesso aos dados feito somente em um nico local. E a sua principal desvantagem a total dependncia de
um nico sistema, podendo ocasionar uma elevada indisponibilidade em caso de falhas deste.
Com o desenvolvimento de computadores pessoais com maior capacidade de processamento, parte do controle da
aplicao e interface junto ao usurio, que antes era de total responsabilidade do sistema centralizado, passou a ser
realizado pelos computadores pessoais, cabendo ao sistema centralizado apenas satisfazer s solicitaes geradas
pelos sistemas clientes. Assim, gradualmente, os SGBDs comearam a explorar a disponibilidade do poder de
processamento no lado do usurio, o que levou arquitetura cliente-servidor, que veremos a seguir.
Arquitetura Cliente-Servidor
A arquitetura cliente-servidor foi desenvolvida para dividir ambientes de computao onde um grande nmero de PCs,
estaes de trabalho, servidores de arquivos, impressoras, servidores de banco de dados e outros equipamentos so
conectados juntos por uma rede.
A ideia definir servidores especializados, tais como servidor de arquivos (que mantm os arquivos de mquinas
clientes) ou servidores de impresso (que podem estar conectados a vrias impressoras), assim, quando se desejar
imprimir algo, todas as requisies de impresso so enviadas a este servidor. As mquinas clientes disponibilizam
para o usurio as interfaces apropriadas para utilizar esses servidores, bem como poder de processamento para
executar aplicaes locais. Esta arquitetura se tornou muito popular por algumas razes.
Primeiro, a facilidade de implementao dada clara separao das funcionalidades e dos servidores;
23
Segundo, um servidor inteligentemente utilizado porque as tarefas mais simples so delegadas s mquinas
clientes, que so mais baratas;
Terceiro, o usurio pode executar uma interface grfica que lhe familiar, ao invs de usar a interface do servidor.
Diferentes tcnicas foram propostas para implementar essa arquitetura, sendo que a mais adotada pelos SGBDs
relacionais comerciais a incluso da funcionalidade de um SGBD centralizado no lado do servidor. A realizao de
consultas e a funcionalidade transacional (voc lembra do que uma transao?) permanecem no servidor, sendo que
este chamado de servidor de consulta ou servidor de transao. assim que um servidor SQL fornecido aos
clientes. Cada cliente tem que formular suas consultas (usando a linguagem SQL), prover a interface para o usurio e
as funes da interface usando uma linguagem de programao. Comumente, o servidor SQL tambm chamado de
back-end machine e a mquina cliente de front-end machine.
Resumindo com outras palavras, na arquitetura Cliente-Servidor, o cliente (front_ end machine) executa as tarefas do
aplicativo, ou seja, fornece a interface do usurio (tela e processamento de entrada e sada), ferramentas de relatrio,
gerao de formulrios, anlise e minerao de dados. J o servidor (back_end machine) executa as consultas no SGBD
e retorna os resultados ao cliente, ficando responsvel por tarefas como o controle de acesso, otimizao de consultas,
controle de concorrncia, recuperao, etc. Como SQL prov uma linguagem padro para os SGBDs Relacionais, esta
criou o ponto de diviso lgica entre o cliente e o servidor. Dessa forma, a comunicao entre a front-end machine e o
back-end machine realizada por meio da linguagem SQL e por meio de uma API7 que possibilita a conexo e a
comunicao entre as mquinas cliente e servidora. Exemplos de APIs so os padres ODBC8, JDBC9 que vo
justamente servir para a comunicao de programas escritos em uma linguagem de programao com os SGBDs.
Quando um programa escrito em uma linguagem de programao faz uso de uma API (tudo isso no lado do cliente)
para acesso a um banco de dados que est em uma mquina servidora (vide Figura 18), dizemos que se est usando
uma arquitetura clienteservidor de 2 camadas. Ou seja, a comunicao direta do cliente para o servidor. J a
arquitetura cliente-servidor em trs camadas, conta com a mquina cliente na qual um navegador web, atua como
front-end junto ao usurio para acessar um servidor de aplicao (tambm conhecido como servidor Web). Esse
servidor de aplicao atua em uma camada intermediria (a segunda camada), processando as solicitaes dos
usurios e fornecendo respostas obtidas atravs do acesso ao servidor de banco de dados (que a terceira camada),
que continua sendo o responsvel pela realizao de consultas e transaes no SGBD. Sistemas que lidam com grande
quantidade de usurios adotam essa arquitetura em trs camadas.
24
A principal vantagem da arquitetura cliente-servidor a diviso do processamento entre dois ou mais sistemas, o que
reduz o trfego de dados na rede.
Arquitetura Distribuda
A tecnologia de Banco de Dados Distribudos (BDDs) surgiu como uma intercalao de duas tecnologias: tecnologia de
banco de dados e tecnologia de comunicao de dados e de rede. Com as novas tecnologias de comunicao de
dados, atendendo necessidade da descentralizao, possvel se trabalhar com bancos de dados no mais
centralizados em um servidor, mas sim distribudos em vrios servidores. Podendo esses servidores estar na mesma
rede, assim como podem estar em pases diferentes, compartilhando informaes de uma maneira transparente para
os usurios. Assim, em um sistema de banco de dados distribudos, o banco de dados armazenado em diversos
computadores, que se comunicam uns com os outros atravs de vrios meios de comunicao, tais como redes de alta
velocidade ou linhas de telefone, em que cada qual pode participar na execuo de transaes que acessam dados em
um ou diversos ns (vide Figura 20).
Nesta arquitetura, cada servidor atua como no sistema cliente-servidor, porm as consultas oriundas dos aplicativos
so feitas para qualquer servidor indistintamente. Caso a informao solicitada seja mantida por outro servidor ou
servidores, o sistema encarrega-se de obter a informao necessria, de maneira transparente para o aplicativo, que
passa a atuar consultando a rede, independente de conhecer seus servidores. Exemplos tpicos so as bases de dados
corporativas, em que o volume de informao muito grande e, por isso, deve ser distribudo em diversos servidores.
De forma simplificada, pode-se dizer que a principal diferena entre sistemas de bancos de dados centralizados e
distribudos que no primeiro os dados esto localizados em um nico lugar, enquanto no ltimo os dados residem
em diversos locais. Um dos motivos para distribuir um banco de dados que um banco de dados distribudo alm de
ser mais confivel, tem a capacidade de resolver da melhor maneira os problemas grandes e complexos com os quais
nos defrontamos hoje, usando uma variao da regra de dividir e conquistar. Ou seja, problemas complicados podem
ser resolvidos simplesmente dividindo-os em fragmentos menores e atribuindo-os a grupos de software distintos, que
funcionem em computadores diferentes, produzindo um sistema que atue sobre vrios elementos de processamento.
Esses grupos de software devem colaborar de forma eficaz para a execuo de uma tarefa em comum. Outros motivos
para distribuir so:
Disponibilidade pois se um site sai do ar, os demais sites podem continuar em operao. Isso devido ao fato
que, como os dados so replicados em vrios ns, uma transao que necessita de um particular item de dado pode
encontr-lo em qualquer outro n. Com isso, a falha de um n no necessariamente implica na parada de
funcionamento de um sistema, aumentando a confiabilidade e disponibilidade do sistema.
Desempenho otimizado o desempenho otimizado dos SGBDs distribudos se baseia em dois pontos: Um SGBD
distribudo fragmenta o banco de dados, permitindo que os dados fiquem armazenados prximos a seus pontos de
utilizao, reduzindo o atraso de acesso remoto, alm disso, cada site manipula apenas uma parte do banco de dados,
25
tornando a administrao deste mais simples. O paralelismo inerente de sistemas distribudos pode ser explorado para
se obter paralelismo entre consultas e intraconsulta, assim possvel executar vrias consultas ao mesmo tempo e o
paralelismo intraconsulta alcanado desmembrando uma nica consulta em vrias subconsultas que sero
executadas em locais diferentes.
Facilidade de Expanso um sistema distribudo pode crescer mais facilmente que um sistema centralizado. Se for
necessrio expandir o sistema porque o volume de dados cresceu ou o volume de processamento aumentou, mais
fcil acrescentar um novo n rede de computadores, desde que os ns sejam autnomos, do que substituir um
sistema centralizado j existente por outro maior.
Porm, tudo na vida tem pontos positivos e negativos. Dessa forma, nos sistemas distribudos h um acrscimo de
complexidade para assegurar a coordenao entre os sites e h um custo para desenvolver os softwares de aplicao e
gerenciamento do sistema como um todo.
Arquitetura Paralela
Sistemas gerenciadores de bancos de dados paralelos so compostos por diversos processadores, memrias e discos,
utilizados em aplicaes crticas, que necessitam lidar com quantidades muito grandes de dados e oferecer baixos
tempos de resposta. A arquitetura paralela adequada aos seguintes casos:
Quando necessrio consultar bancos de dados extremamente grandes (na ordem de terabytes);
Quando necessrio processar um nmero muito grande de transaes por segundo (na ordem de milhares de
transaes por segundo).
Existem vrios modelos de arquitetura paralela. So eles:
Memria compartilhada Em um modelo de memria compartilhada, diversos processadores acessam uma nica
memria, por meio de barramento ou rede de interconexo (vide Figura 21). Esse modelo tem como vantagem o fato
de que os processadores podem trocar rapidamente mensagens entre si atravs da memria comum. E possui como
desvantagem o fato que o modelo no pode ser expandido a um nmero superior a 32 ou 64 processadores, visto que
o barramento ou a rede de interconexo entre processadores e memria se tornaria um gargalo e os processadores
passariam mais tempo aguardando pela sua vez para acessar memria do que realizando o processamento.
Disco compartilhado No modelo de disco compartilhado (vide Figura 22), todos os processadores acessam todos
os discos diretamente por meio de uma rede de interconexo, contudo, cada processador possui sua prpria memria
privada e exclusiva. Esse modelo tem como vantagens o fato de que, como cada processador possui sua prpria
memria, no h problemas de gargalo de acesso memria e pode-se maximizar o nmero de processadores
utilizados. Alm disso, h uma boa tolerncia a falhas, visto que caso um processador falhe, todos os demais
continuaro trabalhando normalmente e acessando os dados nos discos compartilhados de forma natural. Como
desvantagem, temos que, em relao ao modelo de memria compartilhada, a troca de mensagens entre os
processadores muito mais lenta, uma vez que necessrio que as mensagens trafeguem pela rede de interconexo
(tanto para acessar o disco, como para haver a comunicao entre os processadores).
26
Nenhum compartilhamento Neste modelo (vide Figura 23), cada n possui seus prprios discos, processador e
memria, comunicando-se com os demais ns por meio de uma rede de interconexo de alta velocidade. Aqui, cada
n assume o papel de servidor em relao aos demais ns, oferecendo como servio o acesso aos dados que esto em
seus discos. A vantagem que esse modelo altamente escalvel, podendo admitir facilmente uma grande
quantidade de processadores. A desvantagem que o custo para comunicao e acesso aos dados em discos no
locais muito maior que nos modelos de memria e discos compartilhados, visto que, alm de ser necessria a
transmisso por rede, tambm h a interao entre os softwares, em ambas as extremidades.
Hierrquico este modelo combina caractersticas do modelo de memria compartilhada, disco compartilhado e
com nenhum compartilhamento. Em um nvel superior, pode-se ter ns que no compartilham memria ou discos
entre si, trabalhando em um modelo sem nenhum compartilhamento, porm, cada n poderia ser um sistema de
memria compartilhada entre dois ou mais processadores. Ou seja, no nvel mais alto os ns so conectados por uma
rede, sem compartilhar recursos. E, no nvel mais baixo, cada n constitudo de sistemas de compartilhamento (vide
Figura 24).
Arquitetura Mono-Usurio
Aqui, o banco de dados encontra-se no mesmo computador em que so executadas as aplicaes e no h mltiplos
usurios. Geralmente utilizada com computadores pessoais, no comeo esse processamento era bastante limitado,
27
porm, com a evoluo do hardware, tem-se hoje PCs com grande capacidade de processamento. Eles utilizam o
padro Xbase e quando se trata de SGBDs, funcionam como hospedeiros e terminais. Desta maneira, possuem um
nico aplicativo a ser executado na mquina. A principal vantagem desta arquitetura a simplicidade.
Abstrao de Dados
Abstrair dados significa omitir a complexidade do sistema de modo a facilitar a interao dos usurios com ele. Como
um dos principais objetivos de um SGBD simplificar a interao do usurio com o sistema, ele deve prover uma viso
abstrata dos dados, ou seja, omitir detalhes de como os dados so armazenados e mantidos. Na verdade, uma das
caractersticas fundamentais da abordagem de banco de dados que ela fornece algum nvel de abstrao de dados,
pela omisso de detalhes de armazenamento de dados que no so necessrios para a maioria dos usurios. O
modelo de dados a principal ferramenta que fornece esta abstrao.
Um Modelo de Dados um conjunto de conceitos que podem ser usados para descrever a estrutura do banco de
dados. Por estrutura do banco de dados entendem-se os tipos de dados, relacionamentos e restries pertinentes aos
dados. Muitos modelos de dados tambm definem um conjunto de operaes para especificar como recuperar e
modificar a base de dados.
Em qualquer modelo de dados importante distinguir entre a descrio do banco de dados e o banco de dados
propriamente dito. A descrio de um banco de dados chamada Esquema do Banco de Dados. Um esquema de
banco de dados especificado durante o projeto deste banco, sendo que a expectativa de mudanas no grande. A
forma de visualizao de um esquema chamada Diagrama do Esquema. Muitos modelos de dados tm certas
convenes para, diagramaticamente, mostrar esquemas especificados no modelo.
Os dados existentes em um banco de dados podem mudar com relativa frequncia. Os dados contidos em um banco
de dados em um momento especfico do tempo so chamados Instncias do Banco de Dados (ou Ocorrncias ou
Estados). A base-esquema algumas vezes chamada de Base-Intencional e uma instncia chamada de BaseExtensional do esquema.
Para prover abstrao um SGBD prov a definio de esquemas em trs nveis (vide Figura 25): o nvel de viso, o nvel
conceitual e o nvel fsico. Estes nveis facilitam a manuteno do sistema e a interao dos usurios com os sistemas.
Vamos detalhar mais cada um deles a seguir.
O nvel fsico tambm chamado nvel interno, possui um esquema interno que descreve como os dados esto de
fato armazenados no(s) disco(s) rgido(s) (ex: formato dos registros, ordem em que aparecem, etc). Ou seja, descreve a
estrutura de armazenamento fsico dos dados do BD, fornecendo um modelo fsico dos dados que inclui detalhes
sobre os caminhos de acesso aos dados internamente. Os desenvolvedores de Banco de Dados devem ter noo desse
28
nvel.
O nvel conceitual tambm chamado nvel lgico, um nvel mdio de abstrao e possui um esquema conceitual
que descreve quais dados esto armazenados no banco de dados e quais so os interrelacionamentos entre eles. Ou
seja, descreve a estrutura de todo o BD para uma determinada comunidade de usurios, ocultando detalhes sobre a
organizao fsica dos dados e apresentando a descrio lgica dos dados e das ligaes existentes entre eles. Esse
esquema se concentra na descrio de entidades, tipos de dados, relacionamentos e restries. a viso dos
administradores de banco de dados e dos programadores.
O nvel de viso tambm chamado nvel externo, possui esquemas externos ou vises dos usurios. Ele o mais
alto nvel de abstrao. Cada esquema externo descreve a viso do banco de dados de um grupo de usurios deste
banco. Cada viso descreve, tipicamente, a parte do banco de dados que um grupo particular de usurios est
interessado e esconde deste o restante do banco de dados. Ou seja, vai existir uma viso diferente para cada grupo de
usurios finais. Ele descreve apenas parte do BD, pois os usurios normalmente no precisam conhecer todo o banco,
eles acabam utilizando apenas parte dele.
Essa diviso em nveis conhecida como arquitetura Three-Schema (tambm conhecida como arquitetura
ANSI/SPARC) e foi proposta por Tsichritzis & Klug em 1978. A meta desta arquitetura separar as aplicaes de
usurios do banco de dados fsico (meio que deixar cada macaco no seu galho)
Como os trs nveis apresentam descries diferentes para os mesmos dados, torna-se necessrio converter uma
representao em outra, ou seja, definir mapeamentos de dados entre os nveis.
Esses mapeamentos so mantidos pelo DBA.
Muitos SGBDs no separam os trs nveis completamente. Pode acontecer que alguns SGBDs incluam detalhes do nvel
interno no esquema conceitual. Em muitos SGBDs que permitem vises, os esquemas externos so especificados com
o mesmo modelo de dados usado no nvel conceitual.
Estes trs nveis podem ser utilizados para explicar conceitos de independncia de dados. Mas o que independncia
de dados? Independncia de dados se refere imunidade de aplicativos dos usurios a mudanas na definio e na
organizao de dados, e vice-versa. Em outras palavras, ela pode ser definida como a capacidade de alterar o esquema
de um nvel de abstrao sem ter que alterar o esquema do prximo nvel superior. Voc s vai ter ideia da
importncia disso quando comear realmente a manipular um banco de dados!
Pode-se dividir a independncia de dados em dois tipos: a independncia de dados lgica e a independncia de dados
fsica.
A independncia de dados lgica a capacidade de alterar o esquema conceitual sem ter que mudar os esquemas
externos (nvel de viso) ou programas de aplicao que fazem uso do banco de dados. Pode-se mudar o esquema
conceitual para expandir o banco de dados, com a adio de novos tipos de registros (ou itens de dados), ou reduzir o
banco de dados removendo um tipo de registro. Neste ltimo caso, esquemas externos que se referem apenas aos
dados remanescentes (que no foram alterados) no devem ser afetados. Assim possvel modificar a organizao
conceitual com impacto mnimo nas aplicaes (construdas sobre os esquemas externos ou vises).
A independncia de dados fsica a capacidade de alterar o esquema interno (nvel fsico) sem ter que alterar o
esquema conceitual (nvel lgico). Mudanas no esquema interno podem ser necessrias devido a alguma
reorganizao de arquivos fsicos para melhorar o desempenho nas recuperaes e/ou modificaes. Aps a
reorganizao, se nenhum dado foi adicionado ou perdido, no haver necessidade de modificar o esquema
conceitual. Em outras palavras, a independncia de dados fsica lida com a ocultao dos detalhes da estrutura de
armazenamento em relao aos aplicativos do usurio, ou seja, quando um aplicativo escrito, ele no deve se
preocupar com os detalhes da organizao fsica dos dados. Assim, possvel modificar as estruturas de
armazenamento sem impactar nas aplicaes que fazem uso do BD.
29