Documente Academic
Documente Profesional
Documente Cultură
Banco de Dados
Volume 1
Recife, 2010
Universidade Federal Rural de Pernambuco
Apresentação.................................................................................................................. 4
E houve a evolução.........................................................................................................27
Abstração de Dados........................................................................................................41
Considerações Finais..................................................................................................... 59
Conheça a Autora......................................................................................................... 61
Apresentação
Caro(a) Cursista,
Seja bem-vindo(a) ao primeiro módulo do curso Banco de Dados. Neste primeiro módulo, vamos estudar
os fundamentos necessários para compreender o assunto que será visto durante toda a disciplina. Além disso, o
conteúdo deste primeiro módulo lhe ajudará a ter uma visão geral da disciplina como um todo e da importância da
mesma no contexto do curso.
Espero que goste e se empolgue com o assunto. Até porque, neste módulo, você vai perceber o quanto
Banco de Dados é uma área que está muito presente na sua vida.
Bons estudos!
Sandra de Albuquerque Siebra
Professora Autora
4
Banco de Dados
Conhecendo o Volume 1
Neste primeiro volume, você irá encontrar o Módulo 1 da disciplina de Banco de
Dados. Para facilitar seus estudos, veja a organização deste primeiro módulo.
» Conceitos Básicos
» Sistemas de Banco de Dados
» Evolução dos Bancos de Dados
» Arquitetura dos Bancos de Dados
» Classificação dos Bancos de Dados
» Novas Tendências e Perspectivas
5
Banco de Dados
Capítulo 1
Metas
6
Banco de Dados
“Você sabe o que é um banco de dados? Você saberia mensurar o quanto essa área
está presente na sua vida? Sabia que pode ser muito mais do que você imagina? Afinal, você
tem o seu cadastro aqui na UFRPE que está em um banco de dados. Você foi estudante de
outras instituições e deve estar no banco de dados delas. Se você tem uma conta bancária,
você está no banco de dados do banco ao qual sua conta pertence. Você está no banco
de dados da receita federal como contribuinte ou como isento, mas, se você é maior de
18 anos, você deve estar lá! Isso só para começo de conversa... porque deve haver muitos
outros bancos de dados dos quais você faz parte. Logo, só por ser uma área tão presente na
sua vida, a área de Banco de Dados já merece ser estudada, não acha? Fora isso, qualquer
sistema que você pensar em desenvolver na sua vida, deverá fazer uso de um banco de
dados e mesmo se você não desenvolver sistemas, mas utilizá-los no seu dia-a-dia, você
será, com certeza, um usuário de Banco de Dados. Então, que tal conhecer esses tais Bancos
de Dados mais a fundo? Começaremos a fazer isso nesse capítulo.”
7
Banco de Dados
8
Banco de Dados
desenvolvidos em uma linguagem de programação como Java, C#, PHP, etc.), que foram
criados para os usuários finais e que, para acesso ao BD, fazem uso de uma linguagem de
consulta (linguagem própria para acesso ao banco de dados). Esta aplicação interage com
o SGBD, que possui programas responsáveis por processar as consultas e acessar os dados
armazenados, dentre outras funções. Por fim, num nível mais interno, encontra-se a base de
dados, separada em dois arquivos distintos:
Observe que os dados armazenados devem seguir a definição (tipo, tamanho, etc.)
especificada no arquivo de definição de dados. Observe também que, pela natureza dos
dados armazenados, eles tendem a ter vários valores para a mesma definição (ex: cada
estudante cadastrado obedece a mesma definição feita para um estudante) e eles são mais
variáveis que a definição dos dados, visto que, por exemplo, um estudante pode mudar de
endereço (ex: o endereço da estudante Ana Maria poderia ser modificado para Av. Abdias
de Carvalho, 52), mas a definição do endereço continuaria a mesma (um campo do tipo
alfanumérico de tamanho 50 e com preenchimento opcional). Dessa forma, por terem
naturezas distintas, é interessante manter estes dois arquivos separados.
11
Banco de Dados
reais) – lembre que ambos estão realizando a operação em cima dos 500 reais
iniciais que foi lido;
3. Dependendo de qual execução do programa de débito 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 são:
» A definição das estruturas dos arquivos está inserida no próprio código dos
programas, sistemas ou aplicativos, dificultando a manutenção;
» Compartilhamento de um arquivo por vários programas fica comprometido. Há a
necessidade de duplicar a definição 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 programação diferentes.
Justamente a necessidade de resolver diversos desses problemas motivou a criação
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)
Que tal recapitular com outras palavras, de forma resumida, o que foi
apresentado?
No início da computação, os programas tinham o único objetivo de armazenar e
manipular dados. Esses programas gravavam seus dados em arquivos em disco, segundo
estruturas de dados próprias (vide Figura 5). Programas que não conhecessem a estrutura
dos dados não podiam utilizar os dados.
12
Banco de Dados
13
Banco de Dados
Que tal? Ficou mais claro? Espero que sim! Vamos detalhar agora os SGBDs...
dos dados poderá ser obtida a partir de utilitários e aplicativos que os fabricantes
colocam em seus produtos, visando facilitar o trabalho de proteção aos dados
contra danos físicos, que podem ser causados por falhas de hardware ou queda
da rede. Nessa linha, destacam-se as rotinas de backup (cópias de segurança dos
dados armazenados) e a gravação com espelhamento (você ter duas máquinas
diferentes com o banco de dados instalado e periodicamente ele ser replicado de
uma máquina para outra, para se uma sair do ar, a outra já assumir).
» Padronização 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 comunicação e a cooperação entre vários
departamentos, projetos e usuários. Padrões podem ser definidos para formatos
de nomes, elementos de dados, telas, relatórios, terminologias, etc. O DBA pode
obrigar a padronização em um ambiente de base de dados centralizado, muito mais
facilmente que em um ambiente onde cada usuário ou grupo tem o controle de
seus próprios arquivos e software;
» Controle de Transações: Uma Transação é um conjunto de operações sobre o
BD que devem ser executadas integralmente e sem falhas ou interrupções. Caso
contrário, devem ser desfeitas. Todo SGBD deve realizar o controle das Transações.
TRANSAÇÃO – é uma coleção de operações que desempenha uma função lógica única dentro de
uma aplicação do sistema de banco de dados. Uma transação deve ter as seguintes propriedades
que formam a sigla ACID:
C – Consistência: ao final da execução da transação a consistência dos dados no banco deve ter sido
mantida. Assegurá-la é tarefa do programador.
I – Isolamento: uma transação deve ter sua execução realizada de forma isolada em relação à
execução de outras transações.
D – Durabilidade: depois que uma transação é executada com sucesso, as modificações por ela
realizadas devem ser mantidas no sistema, mesmo na ocorrência de falhas. Assegurá-la é tarefa
do SGBD.
cadastrados. Por exemplo: Não permite que uma data final seja menor do que uma
data inicial.
» Representação de Relacionamento Complexo entre Dados: uma base de dados
pode possuir uma variedade de dados que estão interrelacionados 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 fácil e eficiente
» Possibilidade de Múltiplas Interfaces: Vários usuários representam também
necessidades diversas no que se refere aos tipos de interfaces fornecidas pelo
SGBD. Interfaces para consultas de dados, programação, e interfaces baseadas em
menus ou em linguagem natural são exemplos de alguns tipos que podem estar
disponíveis.
Saiba Mais
2
Comandos DML
(Data Manipulation
Language) incluem
comandos para inserir,
atualizar, consultar e
excluir dados do banco
de dados.
Saiba Mais
Pré-compilador da DML - converte comandos da DML2 embutidos em um aplicativo
para chamadas de procedimentos normais na linguagem hospedeira do BD. O pré- 3
DDL (Data Definition
compilador precisa interagir com o processador de consultas para gerar o código apropriado. Language) ou
linguagem de definição
Compilador DDL3 - converte comandos da DDL em um conjunto de tabelas de dados inclui
contendo metadados (“dados sobre dados”), que são armazenados no Dicionário de Dados. comandos para a
criação e manutenção
Processador de consultas - traduz os comandos em uma linguagem de consulta da estrutura da base
para instruções de baixo nível que o gerenciador do banco de dados pode interpretar. Além de dados.
disso, o processador de consultas tenta transformar uma requisição do usuário em uma
17
Banco de Dados
forma compatível e mais eficiente com respeito ao banco de dados, encontrando uma boa
estratégia para executar a consulta.
Gerenciador do banco de dados - fornece a interface entre os dados de baixo
nível armazenados no disco e o Código Objeto de Aplicativos e as consultas submetidas ao
sistema (após passarem pelo Processador de Consultas).
Gerenciador de arquivos - gerencia a alocação do espaço na armazenagem do disco
e as estruturas de dados usadas para representar a informação armazenada no disco. É o
gerenciador de memória quem traduz os diversos comandos DML em comandos de baixo
nível para atuar sobre os dados armazenados na base de dados.
Adicionalmente, diversas estruturas de dados são requeridas como parte da
implementação do sistema físico, incluindo:
Arquivos de dados - armazenam o banco de dados propriamente dito.
Dicionário de dados - armazena informações sobre a estrutura do banco de dados.
Também chamado de catálogo de dados, contém os metadados, isto é, as informações a
respeito dos componentes do banco de dados: tabelas, índices, procedimentos, restrições
e outros.
18
Banco de Dados
Dos SGBDs listados acima vale ressaltar que o SQL Server e o Oracle tem versões
gratuitas, porém limitadas. O Firebird e o PostgreSQL são open source, o DB2 e o MS Access
são pagos (sendo que o Access já vem em algumas versões do pacote Microsoft Office) e o
MySQL é gratuito para desenvolvimento, mas pago para produção.
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 vários sistemas de instituições
públicas vêm adotando o mesmo. Já no mundo corporativo o Oracle tem sido um dos mais
adotados, por ser um dos mais robustos. Dos SGBDs citados, você já usou algum?
Considerações Finais
Conheça Mais
Neste capítulo, vimos apenas alguns conceitos básicos. Para obter mais informações
ou materiais diversificados para o que foi visto aqui, você pode proceder a uma pesquisa
usando o Google (www.google.com.br) com as palavras chaves “Banco de Dados” +
“Introdução”. Você vai ver que irá vir muito material. Entre eles: apostilas, notas de aula,
reportagens, etc.
Adicionalmente, gostaríamos de indicar o texto “Introdução a Banco de Dados”
dos professores Osvaldo Kotaro Takai, Isabel Cristina Italiano e João Eduardo Ferreira
(DCC-IME-USP), produzida em fevereiro de 2005. Eles elaboraram este texto para apoiar a
aprendizagem dos alunos nas disciplinas de introdução a Sistemas Banco de Dados do IME-
USP e ela pode servir para apoiar os seus estudos também. Ela está disponível em: http://
www.ime.usp.br/~jef/apostila.pdf
21
Banco de Dados
Para quem tem curiosidade, uma comparação entre alguns SGBDs dos mais
utilizados pode ser encontrada em: http://www.microsoft.com/sqlserver/2008/en/us/compare.
aspx (apenas em inglês).
Você Sabia?
O maior banco de dados do mundo se encontra no World Data Centre for Climate que é operado
pelo Max Planck Institute for Meteorology e o German Climate Computing Centre. Ele possui
cerca de 220 terabytes de dados acessíveis via Web (incluindo informações sobre pesquisas
climáticas e previsões do tempo) e 110 terabytes de dados sobre simulações climáticas. Além
disso, ainda há 6 pentabytes de dados adicionais armazenados em fitas magnéticas. Já imaginou
quanto dado é tudo isso?
Fonte: http://www.docstoc.com/docs/5628186/Top-Largest-Databases-in-the-World-We-all-collected
Aprenda Praticando
A seguir apresento algumas questões sobre banco de dados que fizeram parte das
provas de concursos diversos. Que tal praticar com elas?
22
Banco de Dados
a) Atomicidade;
b) Distributividade;
c) Isolamento;
d) Durabilidade;
e) Consistência.
Gabarito e Comentários
23
Banco de Dados
Agora vamos exercitar o que foi estudado até agora. Assim sendo, faça as atividades
sugeridas a seguir. Lembre que exercitar vai lhe ajudar a fixar melhor o conteúdo estudado.
Mãos à obra!
Atividades Práticas
Discuta com seus colegas, com o professor e o tutor sobre seu conhecimento sobre
Banco de Dados. Tenha como guia as seguintes questões:
1. Você já conhecia alguma coisa sobre o tema Banco de Dados? Se sim, o quê? E
como ficou sabendo (fez curso, leu sozinho, etc)?
2. Você já fez uso de algum banco de dados na prática? Se sim, qual(ais)? Em que
situação fez uso?
Participe, discuta, pergunte! Assim você pode aprender ainda mais!
Você saberia dizer em quantos bancos de dados você está cadastrado? Você
saberia mensurar a importância de ter seus dados íntegros, seguros, de forma a não serem
modificados por pessoas indevidas? Você saberia mensurar as consequências de ter seus
dados modificados ou apagados de alguns bancos de dados sem sua ciência? Essas e outras
questões são abordadas e levam a pensar no filme chamado “A Rede” (The Net) que tem
como atriz principal Sandra Bullock. Esse é um filme um pouco antigo, porém, mostra bem
como os dados armazenados em um BD podem ser importantes.
24
Banco de Dados
Dica de Cinema
A Rede
Sinopse: Após receber um disquete com dados confidenciais, uma analista de sistemas passa a
viver um verdadeiro pesadelo, com seus dados sendo alterados nos computadores do governo
para que ela seja considerada uma criminosa.
Diretor: Irwin Winkler
Ano de Produção: 1995
Atores Principais: Sandra Bullock e Jeremy Northam.
Vamos Revisar?
25
Banco de Dados
Capítulo 2
Metas
26
Banco de Dados
Neste capítulo, vamos estudar a evolução dos SGBDs no tempo, que deram origem
a gerações diferentes de banco de dados, além de estudar a forma como os bancos de dados
estão organizados internamente, ou seja, a sua arquitetura. Vamos lá?
E houve a evolução...
Como vimos no capítulo anterior, no começo, não existiam bancos de dados, mas
apenas os sistemas de arquivos. Ou seja, cada aplicação ou programa desenvolvido para
uma organização tinha seu próprio conjunto de dados e a descrição desses dados ficava
dentro das próprias aplicações. Dessa forma, não havia compartilhamento de dados entre
as mesmas. Devido a isso, diversos problemas surgiam, tais como redundância de dados,
inconsistências, falta de padronização, falta de segurança no acesso aos dados, limitações
no compartilhamento dos dados, entre outros. Os bancos de dados surgiram como forma de
tentar resolver esses problemas (o que você pode observar pela definição de BD e vantagens
anteriormente apresentadas). Mas os bancos de dados foram sempre os mesmos? Ou eles
evoluíram com o tempo? Os bancos de dados não foram sempre os mesmos. Podemos
inclusive subdividir sua evolução em três gerações bem definidas (vide Figura 10), cada uma
com características próprias. Na primeira geração, que surgiu no final dos anos 60, estão os
bancos de dados hierárquicos e em rede. Na segunda geração que nasceu no final dos anos
70 está o banco de dados relacional. E, por fim, a geração mais atual que data de desde o
final dos anos 80 está o banco de dados orientado a objetos e objeto-relacional. A seguir,
detalharemos cada uma dessas gerações.
27
Banco de Dados
Os dados organizados, segundo este modelo, podem ser acessados segundo uma
sequência hierárquica com uma navegação do topo (raiz) para as folhas (nós sem filhos) e
da esquerda para a direita dentro de cada nó ou registro. Um mesmo registro pode estar
associado a vários registros diferentes, desde que seja replicado. Porém, a replicação
possui duas grandes desvantagens: pode causar inconsistência de dados quando houver
atualização e causar desperdício de espaço.
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 conteúdo, serve apenas para iniciar a
árvore). Teríamos nós 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 nós que representariam as contas (com valores para o número 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 à duplicação de registros, devido à representação
em árvore. Por exemplo, suponhamos que Silvia e Rui possuem a conta conjunta de número
7556 (vide Figura 12, os nós com o número da conta em negrito), para representar esse fato,
o nó da conta corrente teve de ser duplicado para obedecer à regra que “cada filho só pode
ter um único pai”.
29
Banco de Dados
30
Banco de Dados
As restrições impostas pelo Modelo de Redes podem ser descritas como de ordem
de Entrada e de Existência. Em relação às restrições de entrada, citamos a obrigatoriedade
de cada novo registro estar conectado ao conjunto indicado. Em relação a restrições de
Existência, 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 identificação de um conjunto
pode ser verificada através do esquema de ligação entre o registro pai e o registro filho,
assim sendo, cada instância de conjunto apresenta um elemento de distinção, o tal registro
pai, e os registros filhos devidamente ordenados e, portanto, passíveis de serem acessados
pelos seus elementos.
Alguns problemas do modelo em redes são:
31
Banco de Dados
(por exemplo, não podem existir dois estados de Pernambuco, no conjunto de estados
brasileiros) e a ordem de entrada de dados no Banco de Dados não deverá ter qualquer
importância para as relações, no que concerne ao seu tratamento.
Diferentemente dos modelos que o precederam o modelo relacional não tem
caminhos pré-definidos para se fazer acesso aos dados. Os relacionamentos entre as tabelas
são feitos através do uso de valores de atributos. Por exemplo, na Figura 15, a Tabela de
Empregados precisa usar valores que estão, originalmente, na tabela de Departamentos (o
atributo ou campo chamado Cod_Depto). Isso causa a necessidade de um relacionamento
entre as tabelas.
Para trabalhar com tabelas, algumas restrições precisaram ser impostas para evitar
aspectos indesejáveis, como: Repetição de informação, incapacidade de representar parte
da informação e perda de informação. Essas restrições são: integridade referencial, chaves
e integridade de junções de relações. Veremos em detalhes isso tudo no volume II da
disciplina. O modelo relacional faz uso da linguagem SQL para definição e manipulação 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 são: PostGreSQL,
Oracle, SQLServer, MySql, entre outros.
Alguns problemas do modelo orientado a objetos são: ele não tem base teórica
(formalismo) como os modelos anteriores e não existe linguagem padronizada para acesso
e manipulação dos dados (tal qual o SQL). Isso fez com que esse paradigma não fosse bem
aceito no mercado. Como solução surgiu o paradigma objeto-relacional.
6
Mainframes são
computadores
Arquiteturas de Sistemas de Banco de Dados
de grande porte,
dedicados, A arquitetura dos sistemas de banco de dados é influenciada pela arquitetura dos
normalmente, ao
processamento de
sistemas computacionais, levando em consideração aspectos como:
um volume grande de
» Redes de computadores, cujo surgimento colaborou para a divisão de tarefas entre
informações.
máquinas remotas, em que uma assume papel de cliente e outra de servidor,
Os mainframes
são capazes de levando a uma arquitetura cliente-servidor;
oferecer serviços de » Paralelismo, que consiste na possibilidade de executar atividades simultaneamente,
processamento a
milhares de usuários obtendo melhores tempos de resposta e executando uma maior quantidade de
através de milhares de transações por segundo;
terminais conectados
diretamente ou » Distribuição, em que os dados residem na localidade em que são gerados ou
através de uma rede. em que serão mais úteis, por meio de diversas cópias do banco de dados. Uma
Embora venham
arquitetura distribuída possibilita uma maior disponibilidade dos dados, que
perdendo espaço
para os servidores podem ser acessados ainda que uma determinada localidade enfrente problemas e
de arquitetura PC e se torne indisponível.
servidores Unix, de
custo bem menor, Como consequência do emprego desses aspectos, temos as arquiteturas
ainda são muito centralizadas, cliente-servidor, distribuída e paralela que iremos descrever a seguir.
usados em ambientes
comerciais e em
grandes empresas, Arquiteturas Centralizadas
tais como: bancos,
empresas de aviação e As primeiras arquiteturas usavam mainframes6 para executar o processamento
universidades. principal e de todas as funções do sistema, incluindo os programas aplicativos, programas
de interface com o usuário, bem como a funcionalidade dos SGBDs. Esta é a razão pela qual
34
Banco de Dados
a maioria dos usuários fazia acesso aos sistemas via terminais que não possuíam poder de
processamento, apenas a capacidade de visualização (esses terminais eram muitas vezes
chamados de terminais-burros, justamente por não terem poder de processamento). Ou
seja, todos os processamentos eram feitos remotamente, apenas as informações a serem
visualizadas e os controles eram enviados do mainframe para os terminais de visualização
(também chamados de nós), conectados a ele por uma rede de comunicação (vide Figura
17).
Como os preços do hardware foram decrescendo, muitos usuários trocaram seus
terminais por computadores pessoais (PCs) e estações de trabalho (tais como as estações
unix). No começo os SGBDs usavam esses computadores da mesma maneira que usavam
os terminais, ou seja, o SGBD era centralizado e toda sua funcionalidade, execução de
programas aplicativos e processamento da interface do usuário eram executados em apenas
uma máquina (a que centralizava tudo). A arquitetura centralizada tem como principais
vantagens: permitir que muitos usuários manipulem grande volume de dados e que, com
os dados totalmente isolados, se ganha consideravelmente em segurança, visto que o
acesso aos dados é feito somente em um único local. E a sua principal desvantagem é a total
dependência de um único sistema, podendo ocasionar uma elevada indisponibilidade em
caso de falhas deste.
Arquitetura Cliente-Servidor
36
Banco de Dados
Arquitetura Distribuída
utilização, reduzindo o atraso de acesso remoto, além disso, cada site manipula
apenas uma parte do banco de dados, tornando a administração deste mais
simples. O paralelismo inerente de sistemas distribuídos pode ser explorado para
se obter paralelismo entre consultas e intraconsulta, assim é possível executar
várias consultas ao mesmo tempo e o paralelismo intraconsulta é alcançado
desmembrando uma única consulta em várias subconsultas que serão executadas
em locais diferentes. Segundo Moura [1985], a possibilidade de autonomia local é
frequentemente a maior vantagem de bancos de dados distribuídos.
» Facilidade de Expansão - um sistema distribuído pode crescer mais facilmente que
um sistema centralizado. Se for necessário expandir o sistema porque o volume de
dados cresceu ou o volume de processamento aumentou, é mais fácil acrescentar
um novo nó à rede de computadores, desde que os nós sejam autônomos, do que
substituir um sistema centralizado já existente por outro maior.
Porém, tudo na vida tem pontos positivos e negativos. Dessa forma, nos sistemas
distribuídos há um acréscimo de complexidade para assegurar a coordenação entre os sites
e há um custo para desenvolver os softwares de aplicação e gerenciamento do sistema
como um todo.
Arquitetura Paralela
» Nenhum compartilhamento – Neste modelo (vide Figura 23), cada nó possui seus
próprios discos, processador e memória, comunicando-se com os demais nós por
meio de uma rede de interconexão de alta velocidade. Aqui, cada nó assume o
papel de servidor em relação aos demais nós, oferecendo como serviço o acesso
aos dados que estão em seus discos. A vantagem é que esse modelo é altamente
escalável, podendo admitir facilmente uma grande quantidade de processadores. A
desvantagem é que o custo para comunicação e acesso aos dados em discos não-
locais é muito maior que nos modelos de memória e discos compartilhados, visto
que, além de ser necessária a transmissão por rede, também há a interação entre
os softwares, em ambas as extremidades.
Arquitetura Mono-Usuário
Abstração de Dados
Abstrair dados significa omitir a complexidade do sistema de modo a facilitar a
interação dos usuários com ele. Como um dos principais objetivos de um SGBD é simplificar
a interação do usuário com o sistema, ele deve prover uma visão abstrata dos dados, ou
seja, omitir detalhes de como os dados são armazenados e mantidos. Na verdade, uma das
características fundamentais da abordagem de banco de dados é que ela fornece algum
nível de abstração de dados, pela omissão de detalhes de armazenamento de dados que não
são necessários para a maioria dos usuários. O modelo de dados é a principal ferramenta
que fornece esta abstração.
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 restrições pertinentes aos dados. Muitos modelos
de dados também definem um conjunto de operações para especificar como recuperar e
modificar a base de dados.
41
Banco de Dados
Os dados existentes em um banco de dados podem mudar com relativa frequência. Os dados
contidos em um banco de dados em um momento específico do tempo são chamados Instâncias
do Banco de Dados (ou Ocorrências ou Estados). A base-esquema é algumas vezes chamada de
Base-Intencional e uma instância é chamada de Base-Extensional do esquema.
» O nível físico – também chamado nível interno, possui um esquema interno que
descreve como os dados estão de fato armazenados no(s) disco(s) rígido(s) (ex:
formato dos registros, ordem em que aparecem, etc). Ou seja, descreve a estrutura
de armazenamento físico dos dados do BD, fornecendo um modelo físico dos dados
que inclui detalhes sobre os caminhos de acesso aos dados internamente. Os
desenvolvedores de Banco de Dados devem ter noção desse nível.
» O nível conceitual – também chamado nível lógico, é um nível médio de abstração
e possui um esquema conceitual que descreve quais dados estão armazenados no
banco de dados e quais são os interrelacionamentos entre eles. Ou seja, descreve a
estrutura de todo o BD para uma determinada comunidade de usuários, ocultando
detalhes sobre a organização física dos dados e apresentando a descrição lógica
dos dados e das ligações existentes entre eles. Esse esquema se concentra na
descrição de entidades, tipos de dados, relacionamentos e restrições. É a visão dos
administradores de banco de dados e dos programadores.
42
Banco de Dados
Como os três níveis apresentam descrições diferentes para os mesmos dados, torna-se necessário
converter uma representação em outra, ou seja, definir mapeamentos de dados entre os níveis.
Esses mapeamentos são mantidos pelo DBA.
Muitos SGBDs não separam os três níveis completamente. Pode acontecer que alguns SGBDs
incluam detalhes do nível interno no esquema conceitual. Em muitos SGBDs que permitem visões,
os esquemas externos são especificados com o mesmo modelo de dados usado no nível conceitual..
Estes três níveis podem ser utilizados para explicar conceitos de independência
de dados. Mas o que é independência de dados? Independência de dados se refere à
imunidade de aplicativos dos usuários a mudanças na definição e na organização de dados,
e vice-versa. Em outras palavras, ela pode ser definida como a capacidade de alterar
o esquema de um nível de abstração sem ter que alterar o esquema do próximo nível
superior. Você só vai ter ideia da importância disso quando começar realmente a manipular
um banco de dados!
Pode-se dividir a independência de dados em dois tipos: a independência de dados
lógica e a independência física de dados.
A independência de dados lógica é a capacidade de alterar o esquema conceitual
sem ter que mudar os esquemas externos (nível de visão) ou programas de aplicação
que fazem uso do banco de dados. Pode-se mudar o esquema conceitual para expandir o
banco de dados, com a adição 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 não foram alterados) não devem
ser afetados. Assim é possível modificar a organização conceitual com impacto mínimo nas
aplicações (construídas sobre os esquemas externos ou visões).
A independência de dados física é a capacidade de alterar o esquema interno
(nível físico) sem ter que alterar o esquema conceitual (nível lógico). Mudanças no esquema
interno podem ser necessárias devido a alguma reorganização de arquivos físicos para
melhorar o desempenho nas recuperações e/ou modificações. Após a reorganização, se
nenhum dado foi adicionado ou perdido, não haverá necessidade de modificar o esquema
conceitual. Em outras palavras, a independência de dados física lida com a ocultação dos
detalhes da estrutura de armazenamento em relação aos aplicativos do usuário, ou seja,
quando um aplicativo é escrito, ele não deve se preocupar com os detalhes da organização
física dos dados. Assim, é possível modificar as estruturas de armazenamento sem impactar
nas aplicações que fazem uso do BD.
43
Banco de Dados
Conheça Mais
Para maiores detalhes sobre os assuntos tratados neste capítulo, você pode
recorrer a qualquer livro de banco de dados, como os indicados no capítulo anterior.
Adicionalmente, você pode consultar as seguintes fontes:
CASANOVA, M. A.; MOURA, A. V. Princípios de Sistemas de Gerência de Bancos de
Dados Distribuídos. Rio de Janeiro: Campus, 1985
MATTOSO, Marta. Bancos de Dados Distribuídos. Universidade Federal do Rio de
Janeiro, 1998.
TSICHRITZIS, D. & KLUG, A. (eds.). The ANSI/X3/SPARC DBMS framework report of
the study group on database management systems. Information Systems 3, pp.
173-191, 1978.
DATE, C.J. □Introdução a Sistemas de Banco de Dados. 7ª Edição, Editora Campus,
2000.
Há também um texto bem interessante na internet:
TAKAI, K.; ITALIANO, I.C.; FERREIRA, J. E. □Introdução a Banco de Dados (Apostila).
DCCIME-USP, 2005. Disponível em: http://www.ime.usp.br/~jef/apostila.pdf
Você Sabia?
Existem alguns termos que vamos utilizar, em breve, que é interessante já conhecer. São eles:
Tempo de resposta - Em sistemas gerenciadores de banco de dados, tempo de resposta é o
tempo necessário para que o sistema execute uma única tarefa, a partir do momento em que
esta foi submetida.
Throughtput - Em sistemas de bancos de dados, throughput é o número de tarefas que um
sistema é capaz de completar em um determinado intervalo de tempo.
Agora, você já sabe o significado para quando eles aparecerem tanto nas suas leituras, como nos
nossos textos futuros, ok?
Aprenda Praticando
O sistema de banco de dados deve prover uma visão abstrata de dados para os
usuários, isolando, desta forma, detalhes mais internos do BD. Essa abstração é provida em
três níveis. Faça um esquema gráfico e explique estes níveis de abstração.
Como você responderia essa questão? Como você desenharia o esquema de níveis
de abstração? Bom, quanto ao desenho podemos partir para algo bem simples, veja a seguir.
44
Banco de Dados
Cada nível é representado por um retângulo com o nome dentro. Para reforçar
a ideia de que o nível físico é o que realmente armazena os dados no banco de dados,
podemos desenhar umas bases de dados conectadas ao nível físico. Para dar a ideia de que
no nível de visão, para cada grupo de usuários pode existir uma visão diferente dos dados,
devemos desenhar mais de um retângulo. Você ainda poderia ter colocado bonequinhos
de usuários conectados às caixas do nível de visão. Preferimos simplificar e não colocar os
bonecos. Agora, vamos à descrição dos níveis.
O nível físico é também chamado de “Esquema interno” e é o nível mais baixo de
abstração. Descreve como os dados estão realmente armazenados, englobando estruturas
complexas de baixo nível.
O nível conceitual (ou lógico) é conhecido também como “Esquema Conceitual”. Ele
descreve quais dados estão armazenados e seus relacionamentos.
O nível de visões do usuário é o nível externo. Ele descreve partes do BD que serão
visualizadas pelos usuários de acordo com suas necessidades. Uma visão é um subconjunto
de dados do BD, sem que exista a necessidade de estarem armazenados no BD.
Vamos dar uma olhada novamente em questões de concurso?
TRF4 -FCC-2004
1. Considerando a proposta ANSI/X3/SPARC, o esquema de banco de dados:
a) interno corresponde ao modelo lógico.
b) interno corresponde ao modelo conceitual.
c) externo corresponde ao modelo lógico.
d) externo corresponde ao modelo conceitual.
e) conceitual corresponde ao modelo lógico.
2. Qual(ais) do(s) modelo(s) abaixo é (são) modelo(s) de Banco de Dados?
a) Modelo Relacional
b) Modelo Hierárquico
c) Modelo em Rede
d) Todas as alternativas estão corretas
e) Todas as alternativas estão incorretas
3. A arquitetura de um banco de dados divide-se em três níveis de abstração: físico
(ou interno), conceitual e de visões (ou externo). A respeito do nível de visões,
não é correto afirmar que:
45
Banco de Dados
Respostas
Atividades Práticas
46
Banco de Dados
Vamos Revisar?
47
Banco de Dados
Apêndice A
Metas
48
Banco de Dados
“O mundo atual é complexo e lida, diariamente, com dados cada vez mais complexos.
Sejam eles mapas, imagens, vídeos, genomas, etc. Além disso, surgiu a necessidade de
extrações diferenciadas dos dados, de forma a dar suporte à tomada de decisão e de ter
banco de dados onde a temporalidade do dado ganha uma importância elevada. Isso
tudo trouxe a necessidade de se criarem formas alternativas e não-convencionais de
armazenamento, manutenção e consulta desses novos tipos de dados. É justamente sobre
esses novos tipos de SGBDs que vamos tratar neste apêndice”
a diversidade de novos dados que vão surgindo (mapas, imagens, sons, vídeos, o genoma
humano, etc). Vamos, a seguir, descrever brevemente alguns desses BDNCs.
Datawarehouses
» O datawarehouse é orientado por assunto, o que significa que os dados que farão
parte dele, devem ser orientados e organizados por um tema;
51
Banco de Dados
mundo real estão presentes informações temporais que são relevantes na especificação de
sistemas. Para saber quais informações tiveram, têm ou terão seus valores alterados. Com a
inclusão de uma dimensão tempo é possível identificar quando uma informação foi definida
e por quanto tempo ela é válida. Outro ponto importante é que se o valor de um atributo
for alterado, o valor anterior não é perdido, favorecendo a criação de um histórico.
Como se inclui essa dimensão temporal no BD? Informações temporais são
representadas em BDs através de datas, períodos, intervalos temporais e duração da
validade de informações. A associação entre as informações temporais e os dados, ou
simplesmente a inserção do quesito tempo a um dado, é possível através do acréscimo de
uma dimensão (uma tabela ou um atributo) temporal ao banco de dados. Saiba Mais
Que aplicações fazem uso desse tipo de SGBD? A utilização de um BD temporal se 11
Business Intelligence
faz necessária em tempos onde a riqueza dos dados é fundamental para a análise e obtenção (BI) pode ser traduzido
de informações, ampliando a capacidade de sistemas que fazem o cruzamento de dados/ como “Inteligência de
informações. Exemplos de aplicações que são beneficiadas pelo uso de BD temporal são os negócios”, refere-se
ao processo de coleta,
SIGs (Sistemas de Informações Gerenciais), Dataminer (sistemas de mineração de dados),
organização, análise,
Datawarehouses, Sistemas de Suporte a Decisão tais como as aplicações de BI (Business compartilhamento
Intelligence11), aplicações da área médica (por exemplo, para manter o registro do quadro e monitoramento
clínico ou o acompanhamento do diagnóstico de pacientes), aplicações da área empresarial de informações que
oferecem suporte à
(ex: tomada de decisões e planejamento de orçamentos), dentre outras. gestão de negócios.
Apesar do custo de armazenamento ser alto em BD temporais, os benefícios são
relevantes pelo fato de serem possíveis consultas históricas com alta recuperabilidade
de dados. Atualmente, SGBDs como o PostgreSQL ou a ferramenta Time Series Cartridge Saiba Mais
inserida no Oracle, oferecem recursos para que informações temporais possam ser inseridas
aos dados em banco de dados. 12
Bioinformática
é o campo da
ciência no qual a
Biologia, a Ciência
O que mais há por aí? da Computação
e a Tecnologia da
Informação convergem
E ainda há mais? Há sim. Há vários bancos de dados surgindo tanto pela necessidade em uma única
criada por uma área específica (por exemplo, os bancos de dados biológicos), como também disciplina. Esse campo
surgindo pela própria evolução da tecnologia (tais como os bancos de dados XML e os banco surgiu da necessidade
de formação de um
de dados móveis). Vamos apresentar mais esses exemplos.
profissional que
tivesse conhecimento
Bancos de Dados Biológicos suficiente para
saber quais eram os
A quantidade de bancos de dados em Biologia Molecular vem crescendo problemas biológicos
reais e quais seriam
exponencialmente nos últimos anos, e o aspecto funcional da bioinformática12 é a
as opções viáveis de
representação, o armazenamento e a distribuição de dados. Os objetivos destes bancos desenvolvimento
variam e podem ser utilizados para armazenar e disponibilizar biosequências, funções e abordagem
moleculares, estruturas de proteínas, modelos metabólicos, entre outros, oferecendo em computacional
dos problemas em
alguns casos informações mais amplas. Em alguns casos, as informações biológicas são questão.
obtidas por análise computacional de outros bancos de dados; já em outros, através da
literatura ou informações especificadas (preenchidas no BD) por pesquisadores.
BDs biológicos se tornaram uma importante ferramenta no entendimento da vasta
quantidade de fenômenos biológicos existentes, desde a estrutura das biomoléculas e sua
interação ao metabolismo como um todo e a evolução das espécies. Este entendimento
contribui para facilitar a luta contra doenças, auxilia no desenvolvimento de novos produtos
farmacêuticos e na descoberta de relações entre espécies.
Os BDs biológicos são tanto bancos públicos quanto privados. Há mais de 1000
bancos de dados biológicos comerciais e públicos disponíveis atualmente. O acesso a esses
53
Banco de Dados
54
Banco de Dados
<Profissao>Professora</Profissao>
</InformacaoPessoal>
</ficha>
55
Banco de Dados
Considerações Finais
Conheça Mais
Existem diversos livros de Banco de Dados que, nos capítulos finais, falam um pouco
sobre os bancos de dados não convencionais. Além dos que indicamos no capítulo 1 deste
fascículo, você pode consultar as seguintes referências:
56
Banco de Dados
57
Banco de Dados
Você Sabia?
Que os Banco de Dados Dedutivos (BDD) têm a capacidade de definir regras dedutivas? Ou seja,
eles derivam novos dados a partir das relações básicas existentes no BD, podendo deduzir ou
inferir informações adicional a partir de fatos que já estão armazenados. Pois é...
Discuta com seus colegas, seu tutor e professor sobre o seu conhecimento sobre os
bancos de dados não-convencionais. Tenha como guia as seguintes questões:
1. Você já conhecia, fez uso ou já ouviu falar de algum dos bancos de dados não-
convencionais descritos nesse apêndice? Quais?
2. Entre os especificados nesse capítulo, qual o que você achou mais interessante e
por quê?
3. Há algum outro banco de dados não-convencional que você já ouviu falar que não
foi tratado neste capítulo? Qual(ais)? O que você pode dizer sobre ele(s)?
Você pode aprender muito compartilhando informações com seus colegas!
Vamos Revisar?
58
Banco de Dados
Considerações Finais
Olá, cursista!
Esperamos que você tenha aproveitado este primeiro módulo da disciplina Banco
de Dados.
No próximo módulo, estudaremos como fazer a modelagem dos dados a fim de que
eles possam ser armazenados em um banco de dados. Você vai perceber a importância de
fazer essa modelagem e conhecerá os diversos tipos de modelos e esquemas existentes.
Eu diria que esse é um dos assuntos mais importantes da disciplina, porque uma vez que a
modelagem seja feita de forma errada, o banco de dados será criado de maneira errada e,
consequentemente, você não conseguirá obter dele as informações que gostaria.
Nesse sentido, o final deste módulo já é uma motivação para que você fique
curioso(a) para as próximas reflexões sobre como criar um banco de dados.
Aguardamos sua participação no próximo módulo.
Até lá e bons estudos!
Sandra de Albuquerque Siebra
Professora Autora
59
Banco de Dados
Referências
60
Banco de Dados
Conheça a Autora
61