Você está na página 1de 9

Banco de Dados

CAPTULO I Bancos de Dados


Dados e Informaes
Dados so conjuntos de fatos distintos e objetivos, relativos a eventos 1.
O funcionamento das organizaes gera grandes quantidades de dados. Mas, para o processo de tomada
de decises, os dados no apresentam uma importncia direta, pois as pessoas podem no compreender o
significado desses dados, da maneira como eles so apresentados.
Quando compreendemos o significado dos dados, esses se transformam em Informaes, a matria prima
para a tomada de deciso.
Da podemos deduzir algumas coisas importantes. Para a tomada de deciso dentro das organizaes,
necessitamos obter informaes, mas essas dependem fundamentalmente dos dados existentes interna e
externamente a essas organizaes. Alm disso, os dados so a matria prima e o resultado das
transaes que as organizaes realizam no seu dia-a-dia, para realizar os seus negcios.
Portanto, vital para que as organizaes possam funcionar normalmente que dados, que apresentem
importncia para essas organizaes, sejam armazenados de forma organizada e segura.

Banco de Dados
Banco de Dados um aplicativo que armazena dados de uma forma organizada e que permita a
recuperao desses dados.
Os Bancos de Dados podem ser Integrados e Compartilhados. Eles so Integrados, quando representam
a unificao de diferentes arquivos de dados e so Compartilhados quando permitem que mais do que uma
aplicao acesse os dados armazenados nele.
Alm disso, eles devem procurar evitar a Redundncia e a Inconsistncia. A Redundncia, ou seja, o
armazenamento do mesmo dado em diferentes locais, algo til para efeito de segurana (funciona como
um backup dos dados), mas ela pode apresentar um problema inaceitvel para o processo de
armazenamento de dados: a Inconsistncia.
Um tipo de inconsistncia que os Bancos de Dados apresentam quando os mesmos tipos de dados so
armazenados em locais diferentes (por exemplo, o endereo de um cliente), mas apresenta valores
diferentes em cada um dos locais (por exemplo, o cliente atualizou o seu endereo, mas o processo s
ocorreu em um dos locais de armazenamento dos dados).
Dessa forma, podemos deduzir que, nos Bancos de Dados, a redundncia pode ser aceita (apesar de
apresentar outro problema, que o aumento do espao necessrio para armazenar esses dados), mas a
inconsistncia deve ser evitada de qualquer maneira.

DAVENPORT, Thomas H.; PRUSAK, Laurence. Conhecimento Empresarial: Como as organizaes gerenciam o seu
capital intelectual. Rio de Janeiro: Campus, 1998. p. 2.

Banco de Dados
Histrico dos Bancos de Dados
Inicialmente, os dados necessrios ao funcionamento das organizaes eram armazenados em Arquivos,
que so agrupamentos de dados armazenados em algum dispositivo de armazenamento fsico, e para
acessar esses dados e utiliz-los no dia-a-dia, eram criadas Aplicaes (programas de computador).

O problema dessa abordagem que cada tipo de aplicao possua o seu arquivo de dados. Vejamos,
imagine uma empresa de manufatura, onde existem arquivos armazenando dados referentes ao projeto do
produto (Departamento de Engenharia), aos detalhes dos componentes do produto (Departamento de
Compras) e aos detalhes de montagem do produto (Departamento de Produo).
Cada um desses departamentos possui a sua aplicao especfica e, portanto, seu arquivo de dados
especfico. Mas, quando um novo produto criado pelo Departamento de Engenharia necessrio que os
dados dos componentes desse produto sejam enviados para os Departamentos de Compra e de Produo.
Como esse modelo de armazenamento no permite que uma aplicao acesso o arquivo de dados da
outra, os dados eram transferidos na forma de papel impresso para o outro departamento e digitados
novamente, na outra aplicao.
Essa redundncia de dados no existia devido a preocupao com a segurana, mas sim por uma questo
tcnica, o que levava a grandes quantidades de dados idnticos sendo armazenados em diversos arquivos
diferentes. Alm desse problema, pois nesta poca os dispositivos de armazenamento eram muito caros, a
possibilidade de ocorrerem inconsistncia nos dados era enorme.
A soluo apresentada para esse problema foi unificar arquivos que armazenavam os mesmos dados e
permitir um acesso compartilhado a esse arquivo, por parte das aplicaes.

Isso resolveu o problema da redundncia e da inconsistncia, mas apresentou outros. O primeiro deles
que permitindo o acesso de todos ao mesmo arquivo, todas as aplicaes eram obrigadas a tratar dados
que podiam no apresentar importncia para ela e, at mesmo, nem deveriam ser acessados. Observe o
exemplo a seguir.

Banco de Dados
Imagine um arquivo armazenando os dados de um empregado. Nesse arquivo esto armazenados todos os
dados necessrios sobre as pessoas que trabalham na organizao. Agora imagine que existem dois
aplicativos acessando esse arquivo, o aplicativo do Departamento de Recursos Humanos e o aplicativo do
Departamento de Operaes, que cria uma escala de trabalho para os empregados.
Como todos os aplicativos tm acesso a todos os dados armazenados no arquivo, o Departamento de
Operaes ter acesso a dados que no tem nenhuma importncia para ele, como por exemplo, o nmero
de um determinado documento do empregado, como tambm ter acesso a dados que so sigilosos e que
nem deveriam ser acessados, como por exemplo, o salrio do empregado.
O segundo problema que, qualquer alterao na estrutura do arquivo (estrutura do armazenamento dos
dados), que seja feita para adequar o arquivo a uma determinada aplicao, implica na modificao de
todas as outras aplicaes para se adequarem a essa mudana tambm.
2

Para resolver isso, surgiu o conceito do Sistema Gerenciador de Bancos de Dados (SGBD) , que
consiste em uma aplicao que administra o acesso aos dados dos arquivos de dados. O SGBD funciona
como um intermedirio entre as aplicaes e os arquivos de dados (o Banco de Dados), mantendo a
unificao dos arquivos e o compartilhamento do acesso, alm de evitar a inconsistncia dos dados, mas
controlando o acesso a esses dados.

Esse controle permite que a aplicao acesse somente os dados que sejam importantes para o seu
funcionamento (mesmo que existam mais dados armazenados) e inibe o acesso queles dados que
deveriam ser sigilosos para aquela aplicao.
Alm disso, ele resolve outro problema existente nos dois modelos anteriores. Antes do surgimento dos
SGBD, as aplicaes eram responsveis por determinar o armazenamento fsico dos dados, ou seja, se
preocupar em como armazenar os dados nos dispositivos de armazenamento. Essa tarefa foi passada para
os SGBDs, o que facilita em muito a vida dos programadores de aplicaes.

Modelos de Bancos de Dados


Como vimos, com o surgimento dos SGBDs, para a criao de uma aplicao que acesse Banco de Dados
no mais necessrio se preocupar com o armazenamento fsico desses dados, dessa forma era
necessrio que esses dados fossem modelados (mostrados) de uma forma compreensvel para o
desenvolvedor.

Em ingls DBMS (Database Management System)

Banco de Dados
Existem diversas formas de mostrar esses dados, esses so os Modelos de Bancos de Dados.
Lembrando que um modelo apenas a forma como os dados so mostrados e no como eles so
fisicamente armazenados (preocupao do SGBD e no do desenvolvedor).
Modelo Hierrquico
Um dos primeiros modelos a surgir foi o Modelo Hierrquico. Esse modelo mostrava os dados na forma de
uma rvore invertida, conforme figura abaixo.

Nele os dados eram ligados na forma de dados pai (mais acima na estrutura) e dados filhos (mais abaixo na
estrutura). Isso gerava uma estrutura muito grande e com muitos dados sendo apresentados de forma
repetida, o que poderia gerar dificuldade de compreenso. Observe na figura acima o Fornecedor W, ele
aparece duas vezes, porque ele fornecedor das peas C e E.
Modelo em Rede
Para resolver o problema de representao apresentado pelo Modelo Hierrquico, surgiu o Modelo de
Rede. Esse modelo muito semelhante ao anterior, mas com a diferena que cada dado apresentado
somente uma vez.

Por exemplo, observe novamente o Fornecedor W, ele agora aparece somente uma vez, mas com duas
ligaes (uma para cada pea que ele fornece). O problema desse modelo que ele pode se tornar
bastante confuso, quando as linhas que ligam os diferentes nveis comeam a se cruzar.
Esses dois modelos apresentavam os dados de uma forma mais prxima ao armazenamento fsico dos
arquivos. Com o surgimento dos SGBDs, era necessrio mostrar os dados de outra forma.

Banco de Dados
Modelo Relacional
O Modelo Relacional foi criado para permitir que os dados fossem apresentados de uma forma mais
prxima da realidade e mais adequada para o uso dos SGBDs. Os dados so apresentados na forma de
Tabelas, sendo que cada linha da tabela um relacionamento entre um conjunto de valores.
Alguns conceitos relacionados a esse modelo so apresentados a seguir.
Domnios
Domnios so conjuntos de valores possveis para uma entidade3 e seus atributos. Abaixo exemplos de
domnios da tabela Roupa (para os atributos Cdigo, Nome, Local e Cor).
Cdigo

Nome

Local

Cor

001

Camisa

So Paulo

Branco

002

Cala

Campinas

Preto

003

Saia

Rio de Janeiro

Vermelho

004

Bermuda

Vitria

Verde

005

Camiseta

Manaus

Azul

Perube

Amarelo

Bauru

Rosa

Uma representao dos dados usando o Modelo Relacional ficaria da seguinte forma (tabela Roupa).
Cdigo

Nome

Local

Cor

001

Camisa

So Paulo

Branco

002

Cala

Perube

Rosa

003

Camisa

So Paulo

Amarelo

004

Bermuda

Vitria

Verde

005

Camiseta

Manaus

Verde

Observe que nem todos os valores dos domnios foram utilizados, apenas aqueles que tem relao com os
objetos lgicos representados (lembre que essa tabela uma representao lgica dos dados referentes
aos objetos fsicos).
Nesse modelo as tabelas apresentam as seguintes propriedades:
1)

As linhas so distintas.

2)

Os nomes das colunas so nicos.

3)

A ordem das linhas irrelevante.

4)

A ordem das colunas irrelevante.

Cada coluna de uma tabela do Modelo Relacional, que correspondem aos atributos, chamada de Campo
4

e cada linha de uma tabela chamada de Registro (tambm conhecida como Tupla).

Conjunto de objetos da realidade modelada sobre os quais se deseja manter informaes no banco de dados.
Na literatura, quando fazemos o projeto lgico do banco de dados utilizamos as denominaes Atributo e Tupla, e
quando fazemos o projeto fsico utilizamos Campo e Registro. Na verdade so a mesma coisa.
4

Banco de Dados
Chaves
Chave o campo (atributo) que identifica de maneira unvoca o registro (tupla), ou seja, para que no
existem duas linhas com os dados iguais em todas as colunas. Na tabela exemplo, o campo Cdigo
usado para essa identificao. Esse campo conhecido como Chave Primria (PK Primary Key) da
tabela Roupa.
Existem casos onde preciso utilizar mais do que um campo como Chave. Esses campos unidos que
representam a chave primria so conhecidos como Chave Primria Composta (observe o exemplo
abaixo da tabela Produto).
Nota Fiscal

Cdigo

Quantidade

N1

P1

100

N1

P2

200

N1

P3

300

N2

P4

400

N2

P1

100

N3

P2

200

N3

P3

300

Obs: como o campo Chave Primria identifica o registro, ele no pode apresentar valor nulo (nulo no
significa zero, mas sim sem nenhum valor armazenado).
Chave Estrangeira
Observe as tabelas Roupa e Fornecedor abaixo:
Roupa
PK

Fornecedor
FK

PK

Cdigo

Nome

Cor

Cd_Forn

Local

Cdigo

Nome

Cidade

R1

Camisa

Preto

F2

So Paulo

F1

ABC

So Paulo

R2

Saia

Preto

F1

Bauru

F2

XYZ

Salvador

R3

Cala

Branco

F1

So Paulo

F3

WWW

So Paulo

R4

Camisa

Verde

F3

So Paulo

R5

Bermuda

Branco

F2

Campinas

No campo Cd_Forn da tabela Roupa so encontrados valores correspondentes aos valores encontrados
no campo Cdigo da tabela Fornecedor, ou seja, existe um relacionamento entre esses dois campos. S
possvel acrescentar valores em Cd_Forn que tenham correspondncia em Cdigo (tabela Fornecedor).
O campo Cd_Forn conhecido como Chave Estrangeira (FK - Foreign Key), ou seja, um campo que
no chave em uma tabela (tabela Roupa) que se relaciona com um campo chave em outra tabela (tabela
Fornecedor).
As chaves primrias e as chaves estrangeiras fornecem os meios para representar os Relacionamentos
entre tabelas no Modelo Relacional.

Banco de Dados
Viso
Viso uma tabela que derivada de outras tabelas (uma ou mais) e no existe por si s. As vises so
instantneos dos dados armazenados nas tabelas, portanto no existem fisicamente.
As vises so obtidas por meio de Consultas e estas so realizadas por meio de Linguagens de
Consulta, sendo a mais famosa o SQL (Structured Query Language).
No exemplo abaixo apresentada a tabela Pessoa_Brasil que uma viso da tabela Pessoa, na qual so
selecionados os registros onde o campo Pas igual ao valor Brasil.
Pessoa

Pessoa_Brasil

Cod

Nome

Cidade

Pas

Cod

Nome

Cidade

Pas

01

Joo

So Paulo

Brasil

01

Joo

So Paulo

Brasil

02

Peter

Nova Iorque

Estados Unidos

04

Maria

Porto Alegre

Brasil

03

Brigitte

Paris

Frana

04

Maria

Porto Alegre

Brasil

05

Hans

Berlin

Alemanha

06

Joanna

Los Angeles

Estados Unidos

Bancos de Dados Multidimensionais


Como j vimos anteriormente, os Bancos de Dados so muito importantes para o processo de tomada de
decises nas organizaes, pois eles armazenam os dados das transaes que ocorrem no dia-a-dia delas.
Os sistemas tradicionais armazenam os dados do que aconteceu na organizao, mas determinados dados
vo sendo alterados ao longo do processo (como por exemplo, os dados sobre a quantidade de
determinado produto em estoque de um supermercado ou os dados sobre a cotao de uma determinada
moeda estrangeira). Esses so os Sistemas Transacionais e utilizam um processamento conhecido como
OLTP (On-Line Transaction Processing).
Com o tempo, surgiu a necessidade de dados histricos e consolidados (de diferentes fontes) sobre as
transaes realizadas nas organizaes. Isso ocorreu devido necessidade de dados consolidados para a
tomada de deciso em um nvel mais estratgico da organizao. Surgiu um outro tipo de processamento o
OLAP (On-Line Analytical Processing). A tabela abaixo apresenta uma comparao de algumas
caractersticas dos dois tipos de processamento.
Caractersticas
Exemplos
Atualizaes
Tipo de Informao
Quantidade de Dados
Preciso
Complexidade do Resultado da Pesquisa (para o negcio)
Terminologia

Sistemas Transacionais(OLTP)

Sistemas Analticos(OLAP)

CRM, ERP, Supply Chain

SIG, SAD, SIE

Mais freqentes

Menos freqentes

Detalhes (maior granularidade)

Agrupamento (menor granularidade)

Poucos

Muitos

Dados atuais

Dados histricos

Baixa

Alta

Linhas e Colunas

Dimenses, Medidas e Fatos

Banco de Dados
Para apoiar esse tipo de processamento surgiram os Bancos de Dados Multidimensionais, tambm
conhecidos como Data Warehouses. Um Data Warehouse um conjunto de bancos de dados, geralmente
do modelo relacional, que consolida as informaes empresariais, provenientes das mais distintas fontes de
dados.
A sua principal caracterstica ser a consolidao de dados de diferentes bancos de dados transacionais e
sempre ter que incorporar um componente temporal. Simplificando para facilitar a compreenso, podemos
imaginar diversas tabelas do modelo relacional, agrupadas e sobrepostas, sendo que cada uma dessas
tabelas est relacionada com um perodo de tempo (uma tabela por dia, semana, ms ou ano). possvel
imaginar como se as tabelas fossem pginas que vo sendo colocadas umas sobre as outras,
representando o instantneo dos dados consolidados naquele determinado perodo de tempo.
O processo de construo desse tipo de banco de dados moroso e complexo, principalmente devido
grande quantidade de dados, provenientes de diversas fontes heterogneas de dados, algumas vezes
inconsistentes e envolvendo vrias reas diferentes da organizao.
A dificuldade de consolidao dos dados transacionais decorrente de:


Vrias fontes heterogneas de dados;

Dados de entrada precisam se limpos, ou seja, adequados a um formato padro;

A periodicidade de obteno dos dados (granularidade) deve ser ajustada;

Pode ser preciso resumir os dados; e

Necessidade de um componente temporal, nem sempre presente nas fontes de dados.

Como exemplo, podemos mostrar algumas situaes comuns encontradas nas fontes de dados para a
montagem de bancos de dados multidimensionais. So elas:


Mesmos dados com nomes de campos diferentes;

Dados diferentes com o mesmo nome de campo;

Dados exclusivos de uma determinada aplicao; e

Chaves diferentes para um mesmo tipo de tabela.

To importante quanto saber quais dados armazenar, saber quando e quais dados remover do Data
Warehouse, porque com o tempo esse tipo de banco de dados comea a ficar muito grande. Algumas
estratgias existentes, e que podem ser utilizadas em conjunto, so:


Resumir dados mais antigos; e

Armazenar dos dados antigos em mdias de armazenamento mais baratas (como fitas, por
exemplo);

Um esquema de banco de dados multidimensional pode ser visto na figura abaixo:

Banco de Dados

Obs: Data Marts podem ser compreendidos como sendo Data Warehouses departamentais ou
intermedirios.