Você está na página 1de 29

Banco de Dados - Modelagem de Dados

Instrutor.: Luciano Ribeiro de Castro


Curso.: Tcnico em Processamento de Dados

Banco de Dados
Todos ns sabemos existirem gigantescas bases de dados gerenciando nossas vidas. De fato sabemos que nossa conta
bancria faz parte de uma coleo imensa de contas bancrias de nosso banco. Nosso Ttulo Eleitoral ou nosso Cadastro
de Pessoa Fsica, certamente esto armazenados em Bancos de Dados colossais. Sabemos tambm que quando sacamos
dinheiro no Caixa Eletrnico de nosso banco, nosso saldo e as movimentaes existentes em nossa conta bancria j
esto nossa disposio.

Nestas situaes sabemos que existe uma necessidade em se realizar o armazenamento de uma srie de informaes que
no se encontram efetivamente isoladas umas das outras, ou seja, existe uma ampla gama de dados que se referem a
relacionamentos existentes entre as informaes a serem manipuladas.

Estes Bancos de Dados, alm de manterem todo este volume de dados organizado, tambm devem permitir atualizaes,
incluses e excluses do volume de dados, sem nunca perder a consistncia. E no podemos esquecer que na maioria
das vezes estaremos lidando com acessos concorrentes a vrias tabelas de nosso banco de dados, algumas vezes com
mais de um acesso ao mesmo registro de uma mesma tabela!

O fato de montarmos uma Mala Direta em um micro PC com um drive j faz de ns um autor de um Banco de Dados?

Claro que no! Um Banco de Dados antes de mais nada uma coleo logicamente coerente de dados com determinada
significao intrnseca. Em outras palavras um arquivo contendo uma srie de dados de um cliente, um arquivo com
dados aleatoriamente gerados e dois arquivos padro DBF (dBase) que tem uma relao definida entre ambos, no pode
ser considerada uma Base de Dados Real.

Um Banco de Dados contm os dados dispostos numa ordem pr-determinada em funo de um projeto de sistema,
sempre para um propsito muito bem definido.

Um Banco de Dados representar sempre aspectos do Mundo Real. Assim sendo uma Base de Dados (ou Banco de
Dados, ou ainda BD) uma fonte de onde poderemos extrair uma vasta gama de informaes derivadas, que possui um
nvel de interao com eventos como o Mundo Real que representa. A forma mais comum de interao Usurio e Banco
de Dados, d-se atravs de sistemas especficos que por sua vez acessam o volume de informaes geralmente atravs
da linguagem SQL.

Os Administradores de Banco de Dados (DBA) so responsveis pelo controle ao acesso aos dados e pela coordenao
da utilizao do BD. J os projetistas de Banco de Dados (DBP) so analistas que identificam os dados a serem
armazenados em um Banco de Dados e pela forma como estes sero representados.

Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os dados da forma necessria ao
Usurio Final, que aquele que interage diretamente com o Banco de Dados.
Consideraes Sobre os Enfoques de Desenvolvimento de Aplicaes

A anlise de um sistema de processamento de dados pode ser feita a partir de dois diferentes enfoques: o dos dados que
so processados e os das funes que tratam estes dados. Estes dois enfoques so complementares e, usados em
conjunto, fornecem uma viso mais completa do problema em anlise.

A anlise de dados uma tcnica que tem como objetivo construir um modelo que representa a realidade, relacionada
com o sistema de informao, sob o ponto de vista dos dados que a descrevem, por isto ao observarmos a grande
maioria das aplicaes existentes no universo de processamento de dados, conclumos que existem trs tipos de
abordagens de desenvolvimento de sistemas, quanto aos enfoques citados acima, ou seja:

- ABORDAGEM TRADICIONAL.
- ABORDAGEM DIRIGIDA A SISTEMAS INTEGRADOS.
- ABORDAGEM COM BANCO DE DADOS.

Neste texto ento iremos enfocar a abordagem dirigida a banco de dados, para melhor compreendermos o porque de sua
utilizao e quais suas vantagens, olhando os objetos, nos quais se guardam dados e o relacionamento entre eles.
Vamos, inicialmente, analisar os fatores das outras abordagens que nos levam a optar por sistemas com banco de dados.

Abordagem Tradicional

Sob esta orientao desenvolvem-se sistemas e aplicaes com arquivos de propriedade da aplicao e de seus
programas, no importando-se com a repetio dos dados em outros sistemas.

Como consequncia, de fcil visualizao a ocorrncia de informaes redundantes entre os sistemas, provocando
uma total incoerncia dos dados.

A B C D E F

DADOS DADOS
REPETIDOS REPETIDOS

A X T M E S

DADOS
REPETIDOS

Q W C K L M
Os programas de processamento so elaborados levando-se em conta a distribuio fsica dos arquivos, criando-se desta
forma uma dependncia dos programas aos arquivos.

Disto decorre que qualquer alterao na base de dados implica em adaptao de grande quantidade de programas, com
utilizao de grande esforo de programao.

Quando temos um grande nmero de sistemas desenvolvidos sob esta forma, caracteriza-se sempre uma ineficincia do
trabalho do Centro de Processamento de Dados.

DESCRIO
DE DADOS
PROGRAMAS
DO
SIST EM A
BASE DE DESCRIO QUE
UT ILIZAM
DADOS DE DADOS A BASE
DE DADOS

DESCRIO
DE DADOS

Caractersticas Principais

- Cada aplicao tem seus prprios arquivos

- Dados so repetitivos

- Inconsistncia acentuada

- Subordinao de programas arquivos

- Manuteno difcil e cara

- Analista "Dono" do sistema

- Falta de integridade

- Segurana inexistente
TABE LA DE FILMES TABE LA DE CINEMAS
No. TTULO MIN. No. NOM E FIL.

067 G HO ST 98 23 CENT ER I 003

003 RAMBO I 90 14 SCAL A 067

012 DA NA C OM LOB OS 120 08 ASTO R 105

009 J. F. K. 90 30 RITZ 009

105 ROCKY I 90 12 VITRIA 012

COLUNAS COMUNS

ATU ALIZA ATU ALIZA


DADO
SISTEMA SISTEMA
X
PR INC IPA L 2
PROCESSO
COM ERRO

ATU ALIZA DADO


DAD O SISTEMA
X X
3

DADO
INCONSISTENTE

ATU ALIZA
DADO
SISTEMA
X
4

Abordagem Dirigida a Sistemas Integrados

Tendo em vista as deficincias da abordagem anterior, criou-se ento a viso de sistemas integrados, que pretendia ento
resolver as questes de redundncia acentuada e integridade de informaes.

Consiste este abordagem na percepo que existem conjuntos de arquivos de dados, de interesse comum a vrias reas
de uma organizao. A integrao entre os sistemas mantm um grau acentuado de unicidade da informao dentro dos
sistemas da organizao.

Mas, com o crescimento das aplicaes, esta filosofia torna-se ineficiente, pois qualquer espcie de alterao na base de
dados, afeta ainda um maior nmero de sistemas e programas. Assim, em funo das dificuldades criadas de volume de
alteraes, as aplicaes acabam por tornar-se, praticamente estticas, levando o CPD a uma estagnao com
ineficincia completa.
Caractersticas Principais

- Pouco malevel
- Alteraes comprometem vrios sistemas
- Aplicaes estticas com o tempo
- Problemas em um sistema, paralisam atividades de outros
- Programas ainda subordinados a arquivos
- Viso de usurio inexistente
- Integridade e segurana ainda fracas

A B C D E G H I J K L M

O P Q R S

SISTEMA X SISTEMA Y SISTEMA Z

MUNDO REAL
PONTOS DE
INTE RES SE
P ARA A
E MPRES A

ESQUEMA
DA
ORGANI ZA O

BANCO DE DADOS REL ACIONAL

ESTRUTU RA
LGI CA
DE DAD OS
BASE NO VA
DE BASE
DADOS DE
DADOS
ALT ERA

PROCESS AME NTO


COM
PROGRAMA S PROGRAMA S
ERROS

A LTE RA O

Programas
n o alterad os

Os Nveis de Viso de um Sistema


Um sistema antes de sua concepo, pode ser enfocado em vrios nveis. Estes nveis possuem 04 patamares de viso
de informaes.

O primeiro, o nvel do mundo real, ou seja, o nvel dos entes e fatos que existem e acontecem no mundo real, ou no
universo do sistema a ser projetado. um nvel de percepo, ainda nebuloso, em que cabe ao projetista delimitar o que
interessa para o tratamento das informaes.

O segundo, o nvel descritivo, ou seja, descrio dos entes e fatos do universo do sistema. A descrio deste universo
deve ser totalmente inteligvel para as pessoas que com ele interagem. No existem regras formais para se desenvolver
este modelo. o nvel das informaes informais. O mundo real e o modelo descritivo no so formais. Isto equivale a
afirmar que no existem regras para se obter estes modelos de informao.

O terceiro nvel o nvel que nos interessa, pois o que dirigido a obteno posterior do modelo computacional. Este
possui o formalismo matemtico, j que o computador s aceita linguagens estritamente formais e uma mquina
matemtica.

Este modelo comumente chamado de modelo conceitual por estar expresso em smbolos, os quais possuem
conceituao rigorosa.

Quando formulamos modelos conceituais aparecem dois aspectos que no nvel descritivo esto misturados - as
estruturas de informaes e a manipulao de informaes. Para melhor visualizarmos, consideraremos que as
informaes so organizadas estruturadamente. Um exemplo seriam as informaes sobre clientes de uma organizao,
uma das informaes o endereo do cliente, que ser estruturado em local, cep, cidade, que por sua vez, local est
estruturado em rua, nmero, complemento, todos referentes ao nome do cliente, seu cgc, etc.
Como informao estrutural vemos tambm que existe uma relao entre os clientes e os produtos da empresa, ou seja,
que o produto comprado/vendido por/para qual cliente.

As estruturas de informao so meta-dados, ou meta-informaes, que descrevem as informaes propriamente ditas.

So manipulaes de informao a atualizao do endereo do cliente, um relatrio dos produtos existentes, etc.

Manipulao de informaes o seu tratamento. Podemos, ento ter quatro tipos de tratamento da informao - a sua
definio ou incluso, sua alterao, sua excluso e sua leitura. Como extenso poderamos dizer que os mesmos
tratamentos podem ser dados s meta-informaes.

O quarto nvel o nvel dos dados, propriamente ditos, ou seja, os smbolos utilizados tanto para definir se os dados
(meta-dados), como para os dados que sero processados pelo sistema e equipamento.

MUNDO REAL
PONTOS D E
IN TE RESSE
PAR A A
ESTRUTURA
EMPRESA
L GICA
DE DADOS
COMO CH EGA R L

BANCO DE DADOS REL ACI ONAL

Banco de Dados

A princpio, todo conjunto de arquivos de dados constitui um banco de dados. A questo conceitual existe em funo de
utilizar-se terminologia Banco de Dados, para referir-se a Sistemas Gerenciadores de Banco de Dados.

Uma forma simples de entender se o conceito Banco de Dados dizer que o conjunto de todos os arquivos de uma
empresa ou organizao.

Para usurios em geral o banco de dados o supridor de informaes necessrias ao desempenho de suas atividades
profissionais. uma coleo de dados que ele utiliza para elaborar planos de negcios e controlar operaes diversas.

Uma definio bastante difundida entre os autores :


Um banco de dados uma coleo de dados organizados e integrados, que constitui uma representao natural de dados,
sem imposio de restries ou modificaes para ser adequada a computadores e que possa ser utilizada por todas as
aplicaes relevantes, sem duplicao de dados.

Abordagem de Banco de Dados

Esta abordagem, por sua prpria definio poderia eliminar os problemas existentes nas duas abordagens anteriores.
Mas a gesto dos arquivos de dados, suas relaes e interligaes, assim como a entrada e sada de dados das bases,
torna-se bastante complexa para estar embutida nos programas de aplicao, principalmente considerando-se que as
linguagens ditas de terceira gerao no possuem nenhuma adequao a este fim.

Torna-se evidente ento a necessidade de afastar os problemas especfico das aplicaes dos fatores de armazenamento
e recuperao de informaes, que so comuns a todo um conjunto de aplicaes.

Surgem neste momento ento os Sistemas Gerenciadores de Bancos de Dados, softwares dirigidos para o gerenciamento
de bases de dados, tirando dos programas a responsabilidade destas tarefas.

Os programas e sistemas aplicativos passam ento a preocupar-se somente com a viso lgica dos dados, inexistindo
ento a preocupao com localizao fsica e implementaes de dados, sendo transparente para a aplicao. Salienta-
se que no existe desta forma subordinao de programas ou sistemas a arquivos.

Vantagens e Exigncias da Abordagem com Banco de Dados

Vantagens

- Flexibiliza o desenvolvimento de sistemas

- Integra dados a nvel empresarial

- Atende s exigncias de informao e todas as aplicaes

- Transparncia dos dados quanto s aplicaes

- Utiliza as vises do usurio

- Viabiliza a integridade dos dados

- Facilita a adoo de procedimentos de segurana

Exigncias

- Requer a instalao de um software Gerenciador de Banco de Dados

- Destaca a necessidade de possuir-se um dicionrio de dados

- Necessita que se realize a centralizao de definio de dados e projeto das bases de dados, criando-se
atividades de administrao de Dados e de Administrao de Banco de Dados.
DA DO DA DO DA DO DA DO DA DO DA DO DA DO
A B C D E F G
DADO
DA DO DA DO DA DO DA DO DA DO DA DO DA DO NOVO
Z I J L O P X

BANCO DE DADOS

ARQUIV OS
INTERRELACIONADOS

SISTEMA SISTEMA SISTEMA


1 2 3

Sistema gerenciador de Banco de Dados (SGBD)

Um sistema gerenciador de banco de dados funciona como qualquer sistema normal, ou seja, um conjunto de
programas orientados para a administrao de uma base de dados.

Este sistema encarrega-se de efetuar a manuteno desta base de dados, de manter o controle sobre as
informaes(dados) que entram (adicionados) nesta base assim como informaes que so delas extradas.

ES TRUTURAS
CONTROL E
E NTRADA
DE
CONTROL E
ENTRADA BASE
DE
DE
DADOS
CONTROL E
PROCESSO S
DE
SADA SADA
ACE SSOS

( S. G. B. D. )

Um SGBD, tambm, utiliza padres e regras rgidas, para o acesso e recuperao das bases e estruturas de dados, assim
como deve ser provido de mecanismos de otimizao para acesso e administrao da base de dados. Segundo a maioria
dos autores um SGBD para considerar-se como tal deve possuir algumas caractersticas primordiais, para que no venha
a ser classificado como um gerenciador de arquivos.
ENTRADA PROCESSO SADA

Independncia de Dados

Defini-se como capacidade que o SGBD possui de permitir que existam evolues na base de dados, com criao de
novas estruturas, ou incluso de dados novos nas estruturas j existentes, sem que os sistemas ou aplicaes tenham que
sofrer alteraes em virtude desta ocorrncia.

Dentro desta tica os programas ento trabalham com a viso lgica dos "arquivos", sendo-lhes transparente a
organizao e disposio fsica dos mesmos.

USURIO USURIO

D ADOS D ADOS D ADOS D ADOS

D ADOS D ADOS D ADOS D ADOS

D ADOS D ADOS D ADOS D ADOS

BANCO
DE
USURIO DADOS USURIO

Compartilhamento de dados

Os dados devem estar disponveis a serem compartilhados simultaneamente por mais de um usurio. Este
compartilhamento mais relevante quanto maior for a base de dados. Equivale a dizer que um sistema somente pode
ser dito como um SGBD se permitir no mnimo, consulta multi-usuria.

Garantia de Integrao dos Dados

Consiste na capacidade do sistema de bloquear operaes de usurios concorrentes, que realizem operaes sobre uma
mesma base de dados. Isto, em sntese, quer dizer que o sistema deve ter recursos para bloquear o acesso a um dado se
este j tiver sido lido por outra aplicao que ir efetuar sua modificao.
Garantia de Segurana dos Dados

Consiste em o sistema estar dotado de procedimentos que controlem o acesso, atravs de rotinas de validao de
usurios, assim como possuir rotinas de recuperao total ou parcial do banco atravs de cpias de salvamento do
mesmo, implementao de conceitos tais como jornalizao, etc.

Relacionamento entre os Dados

Deve ser realizado de forma automtica o controle dos relacionamentos entre dados localizados em arquivos deferentes,
de modo que o trabalho de programao no tenha que se preocupar em estabelecer controle destes relacionamentos.

Controle de Redundncia de Dados

Este conceito representado pela existncia de controle centralizado para definio de dados, que sero compartilhados
por diversas aplicaes. Isto realizado atravs da existncia da figura operacional do DICIONRIO DE DADOS.
Isto possibilita que o administrador dos dados estabelea procedimentos de controle e verificao que permitam evitar a
repetio de dados, ou reduzi-la a um mnimo aceitvel, para casos de melhoria de desemprego.

O Suporte de um SGBD

Um SGBD em geral um software muito sofisticado, mais possui estruturas e programao ditas primitivas, com as
quais pode-se manipular o banco de dados em si.

Estes primitivos se classificam em trs grupos principais:

- Primitivas de Manuseio de Arquivos

Estes comandos se destinam a criao e a eliminao de arquivos de dados, de elos e inverses.

- Primitivas de Manuseio de Registros

Estes comandos se destinam a insero, alterao, remoo e seleo de registros.

- Primitivas de Apoio

So as que realizam atividades complementares, tais como colocar um banco de dados disponvel, realizar
cpias do banco, restaur-lo, etc.

GERNCIA DE S ADAS

GERNCIA DE E NTRADAS
CONTROLE
GERNCIA DE ACESSO
DE
SEGURANA
P ROCESSOS

RECUPERAO

EFICINCIA

O suporte de um banco de dados dever permitir no mnimo o seu uso corrente para operaes de seleo de dados.
O suporte de um banco de dados realizado ento atravs da utilizao de uma linguagem de programao que preveja
a utilizao de procedimentos.

Este conjunto de operaes primitivas ento codificadas caracterizam o que denominamos de Linguagem de
Manipulao de Dados (LMD). Outrossim uma linguagem de programao deve permitir a declarao de dados, reas,
etc. Tais facilidades constituem-se na Linguagem de Definio de Dados(LDD).

As linguagens de programao so de certa forma uma extenso da LDD e da LMD. Quando uma linguagem de
programao recebe estas extenses, denominamos de linguagem hospedeira.

Hoje, j existem SGBDs que possuem linguagens de programao de quarta gerao, que incorporam os conceitos de
LDD e LDM, interagindo, com um suporte de banco de dados, onde esto as informaes sobre o banco de dados em s,
ou seja, os meta-dados.

CLIENTES FUNCIONRIOS
CDIGO-CLIENTE CDIGO-FUNCINRIO
NOME -CLIENTE NOME-FUNCIONRIO
ENDEREO- CLIENTE SALRIO-FUNCIONRIO
............. .............

MATERIAIS
CDIGO-MATERIAL
NOME-MATERIAL
.............

SGBD x GA
Um SGBD - Sistema de Gerenciamento de Banco de Dados, como j foi dito, uma coleo de programas que
permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades.

Um conceito que dever ficar bastante claro inicialmente o que envolve a separao clara entre os Gerenciadores de
Base de Dados dos Gerenciadores de Arquivo.

Sistemas baseados em "Banco de Dados" baseados em Btrieve e dBase (Fox e Clipper), podem no mximo simular as
caractersticas tpicas de um ambiente de Banco de Dados. As linguagens Delphi (utiliza opcionalmente o padro dBase)
e o VB (que utiliza o Access), recomendam a utilizao de Banco de Dados reais, porm utilizam queles "Banco de
Dados" que possuem algumas caractersticas de Bancos de Dados, mas possuem caractersticas tpicas de Gerenciadores
de Arquivo.

Vamos definir algumas regras bsicas e claras para um sistema de manipulao de dados ser considerado um SGBD.
Fica implcito que se ao menos uma das caractersticas abaixo no estiver presente no nosso "candidato" a SGBD, este
poder ser um GA (Gerenciador de Arquivo) de altssima qualidade, "quase" um SGBD, mas no um SGBD.

Regra 1: Auto-Conteno- Um SGBD no contm apenas os dados em si, mas armazena completamente toda a
descrio dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra chamada de Meta-Base de
Dados. Em um GA, em algum momento ao menos, os programas aplicativos declaram estruturas (algo que ocorre
tipicamente em C, COBOL e BASIC), ou geram os relacionamentos entre os arquivos (tpicos do ambiente xBase).

Por exemplo, quando voc obrigado a definir a forma do registro em seu programa, voc no est lidando com um
SGBD.
Regra 2: Independncia dos Dados- Quando as aplicaes estiverem realmente imunes a mudanas na estrutura de
armazenamento ou na estratgia de acesso aos dados, podemos dizer que esta regra foi atingida. Portanto, nenhuma
definio dos dados dever estar contida nos programas da aplicao. Quando voc resolve criar uma nova forma de
acesso, um novo ndice, se precisar alterar o cdigo de seu aplicativo, voc no est lidando com um SGBD.

Regra 3: Abstrao dos Dados- Em um SGBD real fornecida ao usurio somente uma representao conceitual dos
dados, o que no inclui maiores detalhes sobre sua forma de armazenamento real. O chamado Modelo de Dados um
tipo de abstrao utilizada para fornecer esta representao conceitual. Neste modelo, um esquema das tabelas, seus
relacionamentos e suas chaves de acesso so exibidas ao usurio, porm nada afirmado sobre a criao dos ndices, ou
como sero mantidos, ou qual a relao existente entre as tabelas que dever ser mantida ntegra. Assim se voc desejar
inserir um pedido em um cliente inexistente e esta entrada no for automaticamente rejeitada, voc no est lidando com
um SGBD.

Regra 4: Vises- Um SGBD deve permitir que cada usurio visualize os dados de forma diferente daquela existente
previamente no Banco de Dados. Uma viso consiste de um subconjunto de dados do Banco de Dados, necessariamente
derivados dos existentes no Banco de Dados, porm estes no devero estar
explicitamente armazenados. Portanto, toda vez que voc obrigado a replicar uma estrutura, para fins de acesso de
forma diferenciada por outros aplicativos, voc no est lidando com um SGBD.

Regra 5: Transaes- Um SGBD deve gerenciar completamente a integridade referencial definida em seu esquema,
sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao
menos uma instruo que permita a gravao de uma srie modificaes simultneas e uma instruo capaz de cancelar
um srie modificaes. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje
reservar 5 itens de nosso estoque, que esto disponveis e portanto so reservados, porm existe um bloqueio financeiro
(duplicatas em atraso) que impede a venda. A transao dever ser desfeita com apenas uma instruo ao Banco de
Dados, sem qualquer modificaes suplementares nos dados. Caso voc se obrigue a corrigir as reservas, atravs de
acessos complementares, voc no est lidando com um SGBD.

Regra 6: Acesso Automtico- Em um GA uma situao tpica o chamado Dead-Lock, o abrao mortal. Esta situao
indesejvel pode ocorrer toda vez que um usurio travou um registro em uma tabela e seu prximo passo ser travar um
registro em uma tabela relacionada primeira, porm se este registro estiver previamente travado por outro usurio, o
primeiro usurio ficar paralisado, pois, estar esperando o segundo usurio liberar o registro em uso, para que ento
possa trav-lo e prosseguir sua tarefa. Se por hiptese o segundo usurio necessitar travar o registro travado pelo
primeiro usurio (!), afirmamos que ocorreu um abrao mortal, pois cada usurio travou um registro e precisa travar um
outro, justamente o registro anteriormente travado pelo outro! Imaginemos um caso onde o responsvel pelos pedidos
acabou de travar o Registro Item de Pedido, e, necessita travar um registro no Cadastro de Produtos, para indicar uma
nova reserva. Se concomitantemente estiver sendo realizada uma tarefa de atualizao de pendncias na Tabela de
Itens, e para tanto, previamente este segundo usurio travou a Tabela de Produtos, temos a ocorrncia do abrao mortal.
Se a responsabilidade de evitar esta ocorrncia for responsabilidade da aplicao, voc no est lidando com um SGBD.

Concluso: Um SGBD deve obedecer INTEGRALMENTE as seis regras acima. Em caso contrrio estaremos diante de
um GA ou de um "quase" SGBD.

Consideraes Finais
Atualmente, existe uma tendncia de mercado em se dizer que qualquer problema ser resolvido, caso a empresa adquira
um Banco de Dados. Naturalmente, em um ambiente com acesso constante ao Banco de Dados (acesso concorrente,
obviamente), onde a segurana seja de vital importncia e que o desempenho da aplicao escrita estiver
comprometendo a empresa, considerando-se logicamente uma aplicao bem escrita, sem dvida a aquisio de um
Banco de Dados poder ser o primeiro passo na soluo do problema.

Analogamente ao que ocorreu com o aparecimento das primeiras linguagens de programao voltadas ao Windows,
onde estas foram apresentadas como capazes de alavancar os negcios da empresa, e no geral causaram mais frustrao
do que soluo, a aquisio do Banco de Dados, pode gerar o mesmo tipo de problema.
fundamental que a empresa candidata a utilizar um Banco de Dados, normatize-se totalmente, pois solues quebra-
galho, tpicas do ambiente que dispe de um Gerenciador de Arquivo, tendem a ser impossveis em um ambiente
estruturado sobre o Banco de Dados. Portanto, sob pena de se realizar um grande investimento, e no se colher fruto
algum, muito conveniente, que a empresa antes de adquirir um Banco de Dados, passe por um processo de adaptao,
preferencialmente contando com pessoal especializado, geralmente consultores, que no tenham qualquer ligao com
fabricantes de Bancos de Dados.

Caractersticas Gerais de um SGBD

Os SGBD tem sete caractersticas operacionais elementares sempre observadas, que passaremos a listarr:

Caracterstica 1: Controle de Redundncias- A redundncia consiste no armazenamento de uma mesma informao


em locais diferentes, provocando inconsistncias. Em um Banco de Dados as informaes s se encontram armazenadas
em um nico local, no existindo duplicao descontrolada dos dados. Quando existem replicaes dos dados, estas so
decorrentes do processo de armazenagem tpica do ambiente Cliente/Servidor, totalmente sob controle do Banco de
Dados.

Caracterstica 2: Compartilhamento dos Dados- O SGBD deve incluir software de controle de concorrncia ao
acesso dos dados, garantindo em qualquer tipo de situao a escrita/leitura de dados sem erros.

Caracterstica 3: Controle de Acesso- O SGDB deve dispor de recursos que possibilitem selecionar a autoridade de
cada usurio. Assim um usurio poder realizar qualquer tipo de acesso, outros podero ler alguns dados e atualizar
outros e outros ainda podero somente acessar um conjunto restrito de dados para escrita e leitura.

Caracterstica 4: Interfaceamento- Um Banco de Dados dever disponibilizar formas de acesso grfico, em


linguagem natural, em SQL ou ainda via menus de acesso, no sendo uma "caixa preta" somente sendo passvel de ser
acessada por aplicaes.

Caracterstica 5: Esquematizao- Um Banco de Dados dever fornecer mecanismos que possibilitem a compreenso
do relacionamento existentes entre as tabelas e de sua eventual manuteno.

Caracterstica 6: Controle de Integridade-Um Banco de Dados dever impedir que aplicaes ou acessos pelas
interfaces possam comprometer a integridade dos dados.

Caracterstica 7: Backups- O SGBD dever apresentar facilidade para recuperar falhas de hardware e software, atravs
da existncia de arquivos de "pr-imagem" ou de outros recursos automticos, exigindo minimamente a interveno de
pessoal tcnico.

Existe a possibilidade de encontramos Bancos de Dados que no satisfaam completamente todas as caractersticas
acima, o que no o invlida como Banco de Dados. Na prtica podemos encontrar situaes onde a primeira
caracterstica no seja importante, pois podemos ter o Banco de Dados baseado totalmente em um nico servidor, e as
redundncias podem ser aceitas em algumas situaes sob controle da aplicao (algo no muito recomendado, mas
passvel de aceitao, em situaes onde a existncia do nome do cliente em um arquivo contendo duplicatas emitidas,
possibilita o acesso a apenas uma tabela sem relacionamentos, e sabe-se de antemo que uma duplicata depois de
emitida, no pode ter seu cliente alterado).

A segunda caracterstica (Compartilhamento dos Dados) pode ser desconsiderada principalmente em ambiente de
desenvolvimento, ou ainda em aplicaes remotas.
O Controle de Acesso pode ser descartado em pequenas empresas, sendo que o aplicativo em questo, mais o software
de rede, podem facilmente se incumbir desta caracterstica, no caso de pequenas empresas, com reduzido nmero de
pessoas na rea operacional.

O Interfaceamento e a Esquematizao, so caractersticas sempre disponveis, o que varia neste caso qualidade destes
componentes, que vai desde o sofrvel at o estado da arte. muito conveniente que esta caracterstica seja muito boa
em um Banco de Dados, onde estiverem em atuao mais de um Administrador de Banco de Dados e tivermos um
nmero relativamente alto de sistemas desenvolvidos ou em desenvolvimento neste ambiente.

De fato, quanto maior o nmero de pessoas envolvidas no desenvolvimento de aplicaes e gerenciamento do Banco de
Dados, mais importante tornam-se estas duas caractersticas, pois cada novo sistema desenvolvido precisar sempre
estar adequado ao Banco de Dados da Empresa e aderente aos padres de acesso utilizados nos sistemas concorrentes.

As interfaces ISQL e WinSQL devem deixar muito claro ao estudante como uma interface pobre (no caso a existente no
ISQL) perde muito, quando comparada a uma interface mais recursiva. A esquematizao existente no Banco de Dados
muito melhor do que aquela mantida em alguma pasta, em algum arquivo do CPD, que sempre est um pouquinho
desatualizada.

O Controle de Integridade, outra caracterstica sempre presente nos Bancos de Dados, mas existem diferenas quando
da implementao desta caracterstica. Assim, comum encontrarmos Bancos de Dados que suportam determinado
acesso, enquanto outros no dispe de recurso equivalente.

O Backup em tempo de execuo, outra caracterstica sempre disponvel, porm temos aplicaes que invariavelmente
so comprometidas por falhas de hardware, e outras, que o mesmo tipo de falha no causa perda alguma de dados ou de
integridade. Novamente, cada Banco de Dados tem esta caracterstica melhor ou pior implementada, cabendo ao
Administrador de Banco de Dados escolher aquele que lhe oferecer mais segurana.

Devemos ressaltar ainda, que podemos ter um Banco de Dados Modelo A, que respeite integralmente as regras bsicas e
disponha de todas as caractersticas apresentadas, enquanto um Modelo B que apesar de respeitar as regras bsicas, no
suporte uma ou outra caracterstica desejvel, mas tenha um desempenho excelente, enquanto o Modelo A seja apenas
razovel no quesito desempenho, nos levar seguramente a escolher o Modelo B como sendo o ganhador para nossa
instalao!

Isto ocorre pois, na prtica, todo usurio deseja um tempo de resposta muito pequeno. O chamado prazo de entrega
muito comum em Bancos de Dados operando nos limites de sua capacidade, ou nos casos onde o hardware est muito
desatualizado, fonte de inmeros problemas para o pessoal de informtica. Neste caso melhor abrirmos mo de uma
Interface Amigvel, de um Gerenciamento Automtico de Backups ou ainda de outras caractersticas que no julgarmos
fundamentais, para nos livrarmos do problema tpico de ambiente extremamente comprometido, por m performance do
Banco de Dados.

A escolha do Banco de Dados da empresa, portanto uma deciso muito delicada, na medida em que est ir acarretar
troca de aplicativos e troca de hardware. Os investimentos diretamente aplicados no Banco de Dados, costumam ser
infinitamente menores do que aqueles a serem aplicados na empresa, visando sua perfeita adequao ao novo SGBD.
Esta deciso, sempre que possvel, deve ser tomada por especialistas em Banco de Dados, com profundos
conhecimentos de Anlise de Sistemas, de Banco de Dados e de Software de Gerenciamento de Bases de Dados, de
forma a evitar que a empresa escolha um Banco de Dados inadequado aos seus propsitos, e que pouco tempo depois,
seja obrigada a perder todos investimento realizado em Software e Hardware.
Arquitetura de um SGBD

Estrutura
Podemos dizer que o Banco de Dados tem um Nvel Interno, onde descrita a estrutura de armazenamento fsico dos
dados, um Nvel Intermedirio, onde temos a descrio lgica dos dados e um Nvel Externo onde so descritas as
vises para grupos de usurios.

No podemos deixar de lembrar ainda que o Banco de Dados garante a Independncia Lgica e Fsica dos Dados,
portanto podemos alterar o esquema conceitual dos dados, sem alterar as vises dos usurios ou mesmo alterar o
esquema interno, sem contudo alterar seu esquema conceitual.

Modelos de Dados
O Modelo de Dados basicamente um conjunto de conceitos utilizados para descrever um Banco de Dados. No existe
uma nica forma de representao deste modelo, porm qualquer forma que permita a correta compreenso das
estruturas de dados compreendidas no Banco de Dados, pode ser considerada adequada. Vamos descrever sucintamente
este modelo, pois estes sero objetos de outras disciplinas:

Modelo Orientado ao Registro: So modelos que representam esquematicamente as estruturas das tabelas de forma
bastante prxima a existente fisicamente. Basicamente so apresentados os registros de cada tabela (inclusive seus
campos) e seus relacionamentos elementares. O Modelo Relacional, o Modelo de Rede e o Hierrquico so exemplos
deste tipo de representao.

Modelo Semntico: So modelos onde existe uma representao explcita das entidades e relacionamentos. O Modelo
Entidade-Relacionamento e o Funcional, so exemplos deste tipo de abordagem.

Modelo Orientado ao Objeto: So modelos que procuram representar as informaes atravs dos conceitos tpicos da
Programao Orientada ao Objeto, utilizando o conceito de Classes que iro conter os objetos. Citamos os Modelos O2
e o de Representao de Objetos como exemplos tpicos desta abordagem.

O conceito de instncia, sempre muito presente, poderia ser definido como sendo o conjunto de dados que definem
claramente um Banco de Dados em determinado instante. Devemos entender ento o Banco de Dados como sendo no
apenas um conjunto de dados digitados, mas tambm todo o esquema e regras armazenada e
controladas pelo SGBD.

Em outras palavras, podemos dizer que os SGBD, vieram para eliminar todo o trabalho que anteriormente um
programador de aplicao realizava controlando o acesso, integridade e redundncia dos dados.

Componentes de um Banco de Dados


Um Banco de Dados composto pelas seguintes partes:

Gerenciador de Acesso ao Disco: O SGBD utiliza o Sistema Operacional para acessar os dados armazenados em disco,
controlando o acesso concorrente s tabelas do Banco de Dados. O Gerenciador controla todas as pesquisas queries)
solicitadas pelos usurios no modo interativo, os acessos do compilador DML, os acessos feitos pelo Processador do
Banco de Dados ao Dicionrio de Dados e tambm aos prprios dados.

O Compilador DDL (Data Definition Language) processa as definies do esquema do Banco de Dados, acessando
quando necessrio o Dicionrio de Dados do Banco de Dados.
O Dicionrio de Dados contm o esquema do Banco de Dados, suas tabelas, ndices, forma de acesso e
relacionamentos existentes.

O Processador do Banco de Dados manipula requisies prpria Base de Dados em tempo de execuo. o
responsvel pelas atualizaes e integridade da Base de Dados.

O Processador de Pesquisas (queries) dos usurios, analisa as solicitaes, e se estas forem consistentes, aciona o
Processador do Banco de Dados para acesso efetivo aos dados.

As aplicaes fazem seus acessos ao pr-compilador DML da linguagem hospedeira, que os envia ao Compilador
DML (Data Manipulation Language) onde so gerados os cdigos de acesso ao Banco de Dados.

Tipos de SGBD

Introduo
Podemos citar como tipos principais os Bancos de Dados Relacionais, os Hierrquicos, os de Rede, os Semnticos, os
Orientados a Objetos e os Universais.

Os Bancos de Dados alvo de nosso estudo sero os Relacionais, sendo que os demais tipos sero apenas citados
superficialmente, por no serem parte integrante de nosso curso.

Esquema de Organizao dos Dados

Em Linguagem C os estudantes iro tomar contato com os ponteiros de registro, que aqui representaremos como sendo
nmeros de acesso ao registro. Visando diferenciar o nmero do registro fsico do nmero do registro apontado pelo
ponteiro, usaremos o smbolo (#) para indicar o nmero do registro fsico, enquanto o smbolo (*) ser utilizado pelo
para indicar o endereo indicado pelo ponteiro, a semelhana da representao usual dos programadores da Linguagem
C.

Vamos supor o arquivo abaixo ordenado alfabeticamente (fsico):

#1- Amarelo *2
#2- Azul *3
#3- Branco *4
#4- Preto *5
#5- Verde *6
#6- Vermelho --

Supondo desejarmos incluir a cor Laranja, seramos obrigado a re-escrever todo o arquivo de modo a Laranja ocupar o
registro 4. Vamos antes de fazer uma nova ordenao, analisar a soluo abaixo:

#1- Amarelo *2
#2- Azul *3
#3- Branco *7
#4- Preto *5
#5- Verde *6
#6- Vermelho --
#7- Laranja *4
Observe que o registro #3 (Branco) passou a apontar para o registro *7, que contm o novo dados (Laranja). O novo
dado passa a apontar para o registro previamente apontado pelo registro que agora o aponta. Parece, e confuso, mas se
voc analisar o esquema abaixo perceber que apesar do palavreado confuso, facilmente qualquer um de ns percebe a
maneira adequada de inserir novos registros.

Algo --> Apontado


Algo --> Novo --> Apontado
#1 Algo --> *2
#2 Apontado no aponta ( o ltimo fsica e logicamente)
#1 Algo --> *3
#2 Apontado no aponta ( o ltimo logicamente)
#3 Novo --> *2 ( o ltimo fisicamente)

A chamada perda de ponteiros, fenmeno dos mais temidos pelos profissionais de sistema, nada mais que a perda de
referncia lgica entre registros de uma tabela.

Existem diversas tcnicas de acesso como as chamadas Btree+ (Arvore Binria Balanceada), Hashing, Sequencial
Ordenado, Hashing Dinmico, Hashing Extensvel e Hashing Linear, prprios para um curso especfico de Banco de
Dados, que no chegaremos a analisar em nosso curso.

Sabemos que em linguagem C foi (ou ser) apresentada a tcnica de balanceamento de estruturas, que mostrou (ou
mostrar) como um Banco de Dados arranjado internamente.

Banco de Dados Hierrquicos

Seguem o estilo de um organograma empresarial (Diretoria-Diviso-Seo-Setor) ou de biblioteca (Exata-Matemtica-


Algebra Linear-Vetores). Este modelo capaz de representar este tipo de organizao de forma direta, mas apresenta
inconvenientes quando esta situao no aparece claramente com relaes de hierarquia.

O Exemplo a seguir (Folha de Pagamento) deve servir para esclarecer melhor o estilo deste modelo

Fbrica Financeiro Comercial

Injeo Extruso Pagar Receber Contbil Vendas Marketing

Paulo Vincius Vilma Slvia Dagoberto Juracy Richard


Pedro Carlos Ernesto Sandra Paula Pedrinho
Joo

Sabemos que Paulo "filho" da Injeo que por sua vez "filha" da Fbrica.

Banco de Dados em Redes


Neste modelos os dados so dispostos em registros, previamente classificados em classes que descrevem a estrutura de
determinado tipo de registro. Os registros so descritos em relaes de conjuntos onde so estabelecidas as ligaes
lgicas entre eles.

O esquema abaixo representa este tipo de Ligao

Fbrica
#1 Nome Local ... Apontada Aponta_Incio Aponta_Final
Injeo
#7 Nome Mquina ... Apontada (*1) Aponta_I(*15) Aponta_F(*18)
#15 Paulo 28 (Idade) ... (*7) (*17)
#18 Joo 25 ... (*17) (*7)

Um confuso habitualmente verificada, diz respeito a confuso que existe entre o conceito do Modelo de Redes e o
existente na matemtica. No modelo de Redes temos sempre um elemento distintivo, o registro base e a partir dele so
dispostos os demais registros. Temos sempre tipos de conjunto, que dispe de trs elementos, a saber: nome, tipo de
registro pai e tipo de registro filho. Supondo um Registro contido no Arquivo de Disciplinas ministradas na SENAC,
este seria um registro pai, na medida em que conteria a referncia aos seus registros filhos (os alunos cursando aquela
disciplina).

As restries impostas pelo Modelo de Redes podem ser descritas como de ordem de Entrada e de Existncia. Em
relao as restries de entrada citamos a obrigatoriedade de cada novo registro estar conectado (ou apontado, como
preferem os programadores C) 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.

Exemplo: Disciplina Tpicos Avanados e seus Alunos

Registro de Disciplinas

Informtica

lvaro

Maurcio

Cludio

Registro de Alunos

O exemplo anterior representa uma instncia de conjunto, no caso Disciplinas (Tpicos Avanados) e seus alunos (no
caso lvaro, Amorim e Cludio).

Banco de Dados Orientados ao Objeto


Representam os dados como colees que obedecem propriedades. So modelos geralmente conceituais dispondo de
pouqussimas aplicaes reais. Neste Modelo no seria interessante a existncia de uma tabela de funcionrios e dentro
dela alguma referncia para cada registro, de forma a podermos saber onde (em que departamento) o funcionrio est
alocado. Um conjunto de regras disponibilizaria em separado os funcionrios da fbrica, que no entanto estariam
agrupados aos demais, para o sistema de folha de pagamento.

Banco de Dados Universal


Usa fortemente o conceito dos bancos de dados relacionais (ainda a serem vistos), no que concerne ao tratamento da
informao dita caracter e muito do Modelo Orientado ao Objeto, no tocante ao tratamento de Imagens e Sons. um
dos assuntos top do momento, e ser alvo de pesquisas na disciplina Tpicos Avanados - Atualidades, no sendo objeto
imediato de nossa matria.

Banco de Dados Relacional

O Modelo de Dados relacional representa os dados contidos em um Banco de Dados atravs de relaes. Estas relaes
contm informaes sobre as entidades representadas e seus relacionamentos. O Modelo Relacional, claramente
baseado no conceito de matrizes, onde as chamadas linhas (das matrizes) seriam os registros e as colunas (das matrizes)
seriam os campos. Os nomes das tabelas e dos campos so de fundamental importncia para nossa compreenso entre o
que estamos armazenando, onde estamos armazenando e qual a relao existente entre os dados armazenados.

Cada linha de nossa relao ser chamada de TUPLA e cada coluna de nossa relao ser chamada de ATRIBUTO. O
conjunto de valores passveis de serem assumidos por um atributo, ser intitulado de DOMNIO.

Estes tpicos sero estudados cuidadosamente na disciplina Anlise de Sistemas, que se incumbir de apresentar
cuidadosamente regras e normas para elaborao destes modelos.

Em nosso curso, voltado construo prtica dos Bancos de Dados, e no de sua construo tericas, apenas citaremos
os aspectos bsicos da construo terica, de forma a facilitar ao estudante o relacionamento que existe entre Anlise de
Sistemas e Banco de Dados (uma das sub-disciplinas de Tpicos Avanados).

O domnio consiste de um grupo de valores atmicos a partir dos quais um ou mais atributos retiram seus valores reais.
Assim sendo Rio de Janeiro, Paran e Par so estados vlidos para o Brasil, enquanto que Corrientes no um estado
vlido (pertence a Argentina e no ao Brasil).

O esquema de uma relao, nada mais so que os campos (colunas) existentes em uma tabela. J a instncia da relao
consiste no conjunto de valores que cada atributo assume em um determinado instante. Portanto, os dados armazenados
no Banco de Dados, so formados pelas instncias das relaes. As relaes no podem ser duplicadas (no podem
existir dois estados do Par, no conjunto de estados brasileiros, por exemplo), a ordem de entrada de dados no Banco de
Dados no dever ter qualquer importncia para as relaes, no que concerne ao seu tratamento. Os atributos devero
ser atmicos, isto , no so nveis de novas divises.

Chamaremos de Chave Primria ao Atributo que definir um registro, dentre uma coleo de registros. Chave Secundria
(Terciria, etc), sero chaves que possibilitaro pesquisas ou ordenaes alternativas, ou seja, diferentes da ordem
criada a partir da chave primria ou da ordenao natural (fsica) da tabela. Chamaremos de Chave Composta, aquela
chave que contm mais de um atributo (Por exemplo um cadastro ordenado alfabeticamente por Estado, Cidade e Nome
do Cliente, necessitaria de uma chave composta que contivesse estes trs atributos). Chamaremos de Chave Estrangeira,
aquela chave que permitir a ligao lgica entre uma tabela (onde ela se encontra) com outra na qual ele chave
primria.

Exemplo:

Cidade Estado
* CidCodi * EstCodi
CidNome EstNome
EstCodi (E)

CidCodi e EstCodi, so chaves primrias respectivamente das tabelas Cidade e Estado, enquanto EstCodi chave
estrangeira na tabela de cidades. precisamente por este campo (atributo, ou coluna), que ser estabelecida a relao
entre as tabelas Cidade-->Estado.

Forma Normal
A disciplina Anlise de Sistemas abordar detalhadamente esta importante metodologia para definio das tabelas que
iro compor a base de dados, que aqui apenas citaremos.

Primeira Forma Normal: Uma relao se encontra na primeira forma normal se todos os domnios de atributos
possuem apenas valores atmicos (simples e indivisveis), e que os valores de cada atributo na tupla seja um valor
simples. Assim sendo todos os atributos compostos devem ser divididos em atributos atmicos.

Segunda Forma Normal: Uma relao se encontra na segunda forma normal quando estiver na primeira forma normal
e todos os atributos que no participam da chave primria so dependentes desta. Assim devemos verificar se todos os
atributos so dependentes da chave primria e retirar-se da relao todos os atributos de um grupo no dependente que
dar origem a uma nova relao, que conter esse atributo como no chave. Desta maneira, na segunda forma normal
evita inconsistncias devido a duplicidades.

Terceira Forma Normal: Uma relao estar na terceira forma normal, quando estiver na primeira forma norma e
todos os atributos que no participam da chave primria so dependentes desta porm no transitivos. Assim devemos
verificar se existe um atributo que no depende diretamente da chave, retir-lo criando uma nova relao que conter
esse grupo de atributos, e defina com a chave, os atributos dos quais esse grupo depende diretamente.

O processo de normalizao deve ser aplicado em uma relao por vez, pois durante o processo de normalizao vamos
obtendo quebras, e por conseguinte, novas relaes. No momento em que o sistema estiver satisfatrio, do ponto de
vista do analista, este processo iterativo interrompido. De fato existem
literaturas indicando quarta, quinta formas normais, que no nos parece to importante, nem mesmo academicamente.

A normalizao para formas apoiadas em dependncias funcionais evita inconsistncias, usando para isso a prpria
construo da Base. Se a mesma consistncia for passvel de ser garantida pelo aplicativo, a normalizao pode ser
evitada com ganhos reais no desempenho das pesquisas. No caso da
consistncia no ser importante, tambm podemos no normalizar totalmente uma Base de Dados.

Exemplo: Normalizar os seguintes atributos:

N do Pedido, Nome do Cliente, Nome dos Produtos, Quantidades

N do Pedido, Cdigo do Cliente, Nome dos Produtos, Quantidades


Cdigo do Cliente, Nome do Cliente

N do Pedido, Cdigo do Cliente, Cdigo dos Produtos, Quantidades


Cdigo do Cliente, Nome do Cliente
Cdigo do Produto, Nome do Produto

N do Pedido, Cdigo do Cliente


Cdigo do Cliente, Nome do Cliente
Cdigo do Produto, Nome do Produto
N do Pedido, Cdigo do Produto, Quantidade

Cliente Pedido Item Produto

CliCodi PedNume PedNume ProCodi


CliNome CliCodi ProCodi ProNome
IteQtde

O esquema apresentado anteriormente poderia ser inferido diretamente, usando metodologia tipicamente apresentada em
Organizao e Mtodo. Se soubermos, por hiptese, que um profissional habilitado desenhou o pedido da empresa, e
que esta o est utilizando com sucesso, poderamos basear nosso modelo de dados neste formulrio. Devemos notar que
muitos Analistas de Sistemas no adotam estes procedimentos, por preferirem os mtodos convencionais para
elaborao do Modelo de Dados.

Considerando qualquer formulrio de pedidos podemos notar que o Nmero do Pedido geralmente tem destaque e
sempre nico, ou seja encontramos nossa chave primria da Tabela de Pedidos, como sabemos que um cliente pode
fazer mais de uma compra, achamos nossa Tabela de Clientes, que pode ter um Cdigo, portanto achamos sua chave
primria, que por conseguinte ser a chave estrangeira da Tabela de Pedidos.

Um ponto delicado, diz respeito aos itens do pedido, que formam geralmente um espao destacado dentro do formulrio
de pedidos. Geralmente, e este um dos casos, estas reas em separado dos formulrios daro origem a tabelas filhas,
como o caso tpico das duplicatas em notas fiscais, ou dos dependentes na ficha de funcionrios.

Portanto achamos nossa Tabela de Itens que ser ligada Tabela de Pedidos atravs do Nmero do Pedido, que ao
mesmo tempo chave primria e chave estrangeira para a Tabela de Itens.

Finalmente podemos perceber, que da mesma forma como os clientes se repetem em relao a Tabela de Pedidos, os
produtos podem se repetir na tabela de itens (observe que no obstante no termos nenhum pedido com o mesmo item
grafado duas vezes, este item pode ser adquirido em outro pedido). Assim descobrimos nossa quarta tabela, a Tabela de
Produtos e a chave primria Cdigo do Produto.

O Que Contm um Banco de Dados

Um banco de dados contm basicamente dois tipos de informaes: Entidades e Relacionamentos.

Modelo Entidade-relacionamento e Seus Conceitos

Entidades

Uma entidade um conjunto de objetos, concretos ou abstratos, semelhantes entre s, a respeito dos quais guardam-se a
mesma espcie de dados. Uma entidade composta de um nmero finito de objetos, maior que um, cada um deles
possvel de ser individualmente identificado.
Entidade
todo o objeto ou evento s obre o qual armazena-se
uma informao

CLIENTE FILME EMPRESA

PRODUTO COTAO SEO

Entidades ento so as coisas sobre as quais desejamos arquivar informaes.

Em uma viso simplista, entidade similar a um arquivo de um sistema convencional.

natural que se pense em corresponder uma entidade a um arquivo. Ou melhor, um conjunto de ocorrncias de uma
entidade corresponde a um arquivo, sendo que cada ocorrncia da entidade corresponderia a um registro de um arquivo
convencional.

responsabilidade do projetista de sistemas em bancos de dados, selecionar as entidades que so mais adequadas para
os objetivos da empresa.

Dentro do modelo ER, assim como no modelo relacional clssico, a representao de entidades feita por um retngulo
com o nome da mesma em seu interior denominada pelo substantivo que designa cada um dos objetos que a compe,
usado no singular.

Por uma questo de sintaxe correta, devemos estabelecer como regra, utilizar sempre o nome das entidades como
substantivo no singular.

Assim, por exemplo, "Empregado" uma entidade porque representa um conjunto de objetos a respeito do qual se
guardam dados. O conjunto finito, possui mais de um objeto e cada um deles pode ser individualmente identificado.

Relacionamentos

O que um Relacionamento ?

Um relacionamento a representao de um vnculo entre os objetos de duas ou mais entidades. Tambm


relacionamento a associao entre diferentes objetos de uma mesma entidade (auto-relacionamento).

De uma maneira mais precisa, podemos definir relacionamento como um subconjunto do produto cartesiano de duas ou
mais entidades

H trs maneiras, normalmente usadas, para denominar os relacionamentos. O relacionamento pode ser denominado
por um substantivo que expressa o vnculo existente entre as entidades, um verbo que indica a relao entre elas, ou
simplesmente a justaposio dos nomes das entidades relacionadas.
Por exemplo, "Lotao" pode denominado relacionamento entre "rgo" e "Empregado". O mesmo relacionamento
pode ser denominado "Trabalha em" ou, simplesmente "rgo-Empregado".

D-se o nome Instncia de um relacionamento a cada associao entre objetos que compem um relacionamento.

O nmero de ocorrncias de cada entidade associada o que se determina GRAU DE RELACIONAMENTO ou


CARDINALIDADE, como veremos a seguir.

Observando-se ento o exemplo, temos que o funcionrio Jarbas est LOTADO no Departamento de Vendas, ou seja,
existe uma relao estabelecida entre a entidade funcionrio e a entidade Departamento, e a isto denominamos
RELACIONAMENTO.

Um banco de dados contm:

DESCRI O
DAS
ENTIDADES

DESCRIO
DOS
RELACIONAMENTOS

ELO ou INSTNCIA
Ligao entre dois "regist ros" = Relacionamentos

Como Identificar um Relacionamento

A tarefa de identificao do relacionamento entre entidades facilitada pela verificao de existncia de atributos
comuns nos atributos respectivos.

O Modelo ER e a Simplificao do Diagrama de Relacionamentos

Em 1976, Peter Chen elaborou uma extenso do modelo relacional clssico, conhecido como modelo ER (Modelo
Entidade Relacionamento), firmando-se por uma semntica mais completa e por uma diagramao mais simples.

A representao diagramtica de relacionamentos um losango, com um verbo no interior, que contm, ou melhor
expressa o significado do relacionamento no mundo real.
ATUA
FUNCIONRIO
EM

P ROJE TO
PO SSUI EXPRESSA O MUNDO REAL
ATRAVS DE SMBOLOS
COM REGRAS RGIDAS
COM POS TO
DE
DE PE NDENTE

SMBOLOS SMBOLOS

E TAP AS

Os Tipos de Relacionamentos

Relacionamento 1 Para 1:

O relacionamento 1 para 1 ocorre quando, para cada uma ocorrncia na entidade A, temos somente uma ocorrncia na
entidade B. Este tipo de relacionamento pode conter, normalmente, casos em que existam ocorrncias nas entidades
sem relacionamento.

Relacionamento 1 Para Muitos:

Este o relacionamento em que temos "n" ocorrncias de uma entidade associadas a 1 ocorrncia de outra entidade.

Relacionamento Muitos Para Muitos:

Neste tipo de relacionamento no existe restrio na formao das associaes, ou seja, uma ocorrncia de A pode estar
associada a "n" ocorrncias de uma entidade B e vice-versa. Em um fornecedor pode estar associado a vrios produtos
e um produto pode ter ou ser fornecido por vrios fornecedores.

Relacionamento com Campos

Todo relacionamento muitos para muitos se caracteriza por ser um relacionamento com campos, uma extenso do
modelo ER.
Em alguns casos um analista poder enxergar este tipo de relacionamento como sendo uma entidade; mas outro analista
ter a viso dos dados como um relacionamento, no mundo real. Isto ocorre, principalmente, com eventos, j que
objetos so estveis no tempo e eventos ocorrem em determinados perodos de tempo.

Auto-Relacionamento

Em alguns casos, a entidade pode relacionar-se com ocorrncias dela mesma. nestes casos, temos o tipo de
relacionamento chamado de AUTO-RELACIONAMENTO ou RELACIONAMENTO REFLEXIVO.

Peter Chen especifica a existncia de um papel para cada elemento da entidade para os relacionamentos, mas no auto-
relacionamento que isto realmente se torna necessrio.

Esta especificao deve ser ento realizada na definio do relacionamento em s.

Por exemplo, temos os papis que PRODUTO tem no relacionamento COMPOSIO como COMPONENTE_DE e
COMPONENTE_POR.

Um relacionamento reflexivo pode, normalmente, caracterizar-se como um relacionamento com campos.

Relacionamentos Mltiplos

Existem casos em que os relacionamentos se do entre mais de duas entidades.

Relacionamentos Ternrios

Por exemplo, dado um aluno, este pode cursar vrias disciplinas, e uma disciplina possui um professor. Um professor
pode lecionar vrias disciplinas, mas um aluno s pode ter um professor por disciplina.

Relacionamento Total

Entende-se por relacionamento total, quando num conjunto de entidades, for obrigatrio que cada entidade existente
esteja relacionada com outra entidade.

Agregaes

Como o modelo de Peter Chen no prev relacionamentos entre relacionamentos, introduz-se aqui uma extenso deste
modelo.

Existem casos em que um relacionamento comporta-se como uma entidade (principalmente nos casos de
relacionamentos com campos).

Agrega-se os elementos do 1 relacionamento, como se tivssemos a viso de uma entidade, e relaciona-se esta
agregao com a terceira entidade.

Particionamento de Entidades
Quando duas entidades ou conjunto de entidades representa elementos do mundo real, que se subdividem em categorias,
com seus atributos parcialmente distintos, ou mesmo iguais, isso nos conduz a entender que so uma entidade nica.

Mas como estas categorias possuem relacionamentos diferentes com outras entidades, so consideradas ento como se
fossem SUBCONJUNTOS DA ENTIDADE BSICA.

O conceito de sub-entidade til, principalmente, quando:

a) Alm dos atributos da entidade maior, cada sub-entidade possui atributos especficos.

b) Quando uma sub-entidade participa de relacionamentos de que a entidade maior no participa.

Uma entidade pode ser dividida simultaneamente atravs de mais de um critrio e uma sub-entidade por sua vez pode
ser particionada em sub-entidades menores.

No exemplo, funcionrios podem ser do tipo motorista ou secretria, ou engenheiro. Cada um destes tipos possui dados
comuns, mas uma secretria no possui carteira de habilitao, por exemplo.

Ento criam-se tipos com diferenciador. Os dados no comuns constituem-se, ento, em subconjuntos da entidade
principal.

O atributo identificador da entidade subconjunto composta pela entidade principal e um atributo especfico e no
repetitivo da mesma.

H dois tipos de particionamentos: GENERALIZAO e ESPECIALIZAO:

Generalizao

o resultado de unio de dois ou mais conjuntos de entidades de nvel mais baixo produzindo um conjunto de entidades
de nvel mais alto.

Especializao

o resultado da separao de um subconjunto de entidades de nvel mais alto, formando um conjunto de entidades de
nvel mais baixo.

Exemplo, CONTA um conjunto de entidades de nvel mais alto e CONTA-POUPANA e CONTA-CORRENTE so


conjuntos de entidades de nvel mais baixo. H somente pequenas diferenas entre generalizao e especializao. Na
generalizao requereria que cada entidade CONTA fosse ou uma entidade CONTA-POUPANA ou uma entidade
CONTA-CORRENTE. A especializao admite a possibilidade de uma entidade CONTA no ser nem uma entidade
CONTA-POUPANA nem uma entidade CONTA-CORRENTE (poderia por exemplo ser uma entidade CONTA-
INVESTIMENTO).

Atributos

uma caracterstica inerente a uma entidade.

Um atributo um dado que refere-se a uma entidade, ou seja, um valor ou propriedade descritiva que caracteriza uma
coisa (entidade).
Em comparao aos sistemas tradicionais um atributo corresponde a um campo, ou melhor, a um item de dado de um
arquivo convencional.

Domnio de um Atributo

Chamamos de domnio de um atributo ao conjunto de valores que ele pode assumir, para entidade a qual ele caracteriza.

Atributo Chave ou Identificador

o atributo ou conjunto de atributos capazes de identificar unicamente cada objeto de entidade ou cada instncia de um
relacionamento.

Toda entidade possui pelo menos um atributo prprio que pode ser utilizado como atributo identificador. Algumas
entidades precisam de mais de um atributo para identificar unicamente cada objeto.

Em uma entidade, um atributo chave caracteriza um item de buscam no representando, por ser chave, qualquer forma
de ordenao.

Os relacionamento utilizam como atributo identificador a combinao dos atributos identificadores das entidades que as
formam.

Atributo Multivalorado

o atributo que pode assumir vrios valores.

Exemplo, Telefone.

Cardinalidade ou Grau de Relacionamento

a indicao do nmero mximo de objetos de uma entidade aos quais os objetos de outra(s) entidade(s) podem estar
vinculadas.

Por exemplo, considerando o relacionamento "lotao", que vincula as entidades "rgo" no relacionamento "lotao"
o 1, porque cada empregado s pode ser vinculado a um nico rgo. Da mesma maneira, a cardinalidade de
"empregado" N, por que mais de um empregado pode estar vinculado a cada rgo.

No relacionamento entre duas entidades pode tambm ser estabelecida a cardinalidade mnima do relacionamento que
pode ser 1 ( relacionamento opcional).

Entidade Fraca

Chama-se ENTIDADE FRACA, a entidade na qual cada objeto tem de estar vinculado a outro objeto de outra entidade,
e que tem como um de seus atributos indentificadores, o atributo identificador desta segunda entidade.

Por exemplo, em um sistema de administrao de pessoal, a entidade "Dependente" a entidade fraca da entidade
"Empregado", porque cada dependente s pode existir como objeto para o sistema quando vinculado a um empregado e
porque um dos atributos identificadores de "Dependente" a matrcula do empregado.
Restries

uma condio que precisa ser cumprida para que o modelo seja considerado ntegro. Esta condio pode ser
estabelecida a nvel de um atributo, de uma entidade ou de um relacionamento.

Por exemplo, pode ser estabelecido que o atributo "sexo" s pode assumir os valores "M" ou "F" ou que o atributo
"Data" de opo do FGTS no possa ser menor do que o atributo "Data de Admisso".

As duas condies apresentam restries de integridade.

EXERCCIOS DE MODELAGEM

1. Construa um diagrama ER para uma administradora de condomnios.

Premissas

- Um condomnio formado por diversas unidades habitacionais.


- Cada unidade habitacional pertence a um condomnio, o qual pode ser proprietrio de vrias unidades.
- Cada unidade pode ser alugada.
- Toda pessoa (condmino ou locatrio) possui um cdigo, um nome e um endereo.
- Toda unidade possui um cdigo e um endereo.
- Um condomnio identificado por um cdigo e um endereo.
- Entre os condminos de um condomnio, um sndico.

2. Seja uma seguradora de automveis que possui o seguinte funcionamento:

Existem vrias pessoas cadastradas (clientes) sendo proprietrias de automveis. Neste cadastro consta dados gerais dos
clientes tais como nome, endereo, CPF, etc. Uma pessoa cadastrada pode possuir vrios automveis sendo que cada
automvel possui seguro e somente um dono. Esta seguradora, tambm possui um cadastro completo para os
automveis dos clientes e um registro dos seus respectivos seguros. Para melhor controle da seguradora, ela possui um
registro indicando todas as aplices j pagas, devido a algum acidente ou roubo sofrido para automveis que possuem
(ou possuam) seguros na agncia.

Baseado na descrio dada acima, faa um diagrama ER para a seguradora. Indique os atributos e cardinalidade dos
relacionamentos. Este diagrama deve, pelo menos, descrever o funcionamento descrito acima.

Você também pode gostar