Vous êtes sur la page 1sur 32

Modelo de Dados

Prof. Msc Denival A. dos Santos

Banco de dados

Banco de dados uma coleo de dados referentes a um assunto ou


propsito especfico, com o objetivo de organizar os dados de modo a
tornar a vida dos usurios do negcio em questo mais prtica, precisa,
rpida e confivel.

Com a centralizao dos dados, torna-se muito mais rpida a consulta e


manuteno deles, pois permanecem todos em um mesmo lugar,
tornando o acesso mais rpido.
Um dos benefcios dos bancos de dados a confiabilidade.
Supondo que os dados sejam verdadeiros, possvel saber a qualquer
momento diversas informaes sobre a empresa, tais como andamento de
vendas, listas de fornecedores, produtos em falta no estoque, entre outros
fatores.

Pgina 2

Modelo de Dados
Um modelo de banco de dados uma descrio dos tipos de informaes
que esto armazenados em um banco de dados (HEUSER, 2004).
Todo bom sistema de banco de dados deve apresentar um projeto, que
visa organizao das informaes e utilizao de tcnicas para que o
futuro sistema obtenha boa performance e tambm facilite
infinitamente as manutenes que venham a acontecer.
O projeto de banco de dados tem o objetivo de transformar as
necessidades de informaes no negcio em um banco de dados.

O projeto ocorre em trs fases: Modelagem conceitual, Modelo lgico e


Modelo fsico.

Pgina 3

Modelo de Dados

Modelo Conceitual - uma descrio do banco de dados de forma


independente de implementao em um SGBD. O modelo conceitual
registra que dados podem aparecer no banco de dados, mas no registra
como estes dados esto armazenados a nvel de SGBD.
Pode conter relacionamentos n para m (desejvel).
A abordagem entidade-relacionamento (ER) a tcnica mais difundida
de modelagem conceitual e representado atravs de um Diagrama
entidade-relacionamento (DER).

Pgina 4

Modelo de Dados
Modelo Lgico uma descrio de um banco de dados no nvel de abstrao
visto pelo usurio do SGBD. Assim, o modelo lgico dependente do tipo
particular de SGBD que est sendo usado.
Em um SGBD relacional, os dados esto organizados na forma de tabelas e
relaes.
Representao textual (esquema)

TipoDeProduto (CodTipoProd, DescrTipoProd)


Produto(CodProd, DescrProd, PrecoProd, QuantProd, CodTipoProd)

Pgina 5

Bancos de dados relacionais

Um banco de dado pode ou no ser relacional. Esse termo indica que o


banco possui relacionamentos entre seus dados (tabelas, entidades). De
certa forma, esse recurso gera como consequncia um melhor controle
na consistncia das informaes do banco de dados, impedindo que
sejam cadastrados dados no coerentes no sistema.
Uma das vantagens dos bancos de dados relacionais que as consultas
termo que representa uma solicitao de dados ao banco aos dados e
informaes do banco podem unir diversas tabelas para a gerao do
resultado, devido aos relacionamentos existentes entre estas, tornando
muito mais amplo o seu uso.
Todos os bancos de dados relacionais possuem algumas semelhanas
entre si no que diz respeito s suas arquiteturas. Suas formas de
armazenamento, componentes para a criao de relacionamentos,
estruturas para indexao de seus dados, organizao interna, entre
outras caractersticas.

Pgina 6

Tabela
Todos os dados de um banco conceitualmente so organizados no formato de
tabelas, onde cada coluna ser um campo e cada linha ser um registro.
Os limites de linhas e colunas possveis de serem alocados para uma tabela
pode variar em cada banco de dados.
Se pode ordenar uma tabela baseando-se em qualquer campo (ou campos) que
a forma; alm disso, cada consulta ao banco pode necessitar de uma ordenao
diferente.
Normalmente os bancos de dados armazenam suas tabelas pela ordem de
chegada dos dados, sendo responsabilidade das consultas ordenar os resultados.
Exemplo de tabela:

Pgina 7

Registro

As linhas das tabelas so chamadas registros.


Cada registro formado por um conjunto de campos os mesmo
campos que formam a tabela que esto relacionados entre si
nativamente, pois cada linha representa uma resultado da tabela.
A figura abaixo demonstra um registro retirado da tabela de
fornecedores, a qual possui quatro registros.

Pgina 8

Campos
Os campos podem ser reconhecidos pelas colunas de uma tabela.
Cada coluna est representando um campo, o qual tem a
responsabilidade de armazenar as informaes sobre o tipo de dados que
ser armazenado em sua regio.

possvel configurar campos para delimitarem os valores de entrada


possveis de serem armazenados, utilizarem formatao, controle de
valores nulos, entre outras propriedades.
Um integridade referente aos campos, que deve ser observada, o fato
de uma tabela no poder possuir duas colunas (ou campos) com o mesmo
nome.
Exemplos de campos:

Pgina 9

Chaves

O termo chave refere-se coluna da tabela que responsvel pela


identificao dos registros. Em outras palavras, o campo que est
frente dos demais em um conjunto de campos.
O no uso de chaves pode tornar o banco de dados vulnervel a diversos
problemas, como a redundncia de dados e inconsistncias geradas pela
falta de relacionamentos entre as tabelas.
por meio das chaves que so criados os relacionamentos entre as
tabelas, por meio do uso de chaves estrangeiras.

Pgina 10

Chave primria
Uma chave primria (do ingls PK Primary Key) uma coluna ou uma
combinao de colunas cujos valores distinguem uma linha das demais
dentro de uma tabela.
Exemplo de tabela com chave primria:
Funcionrio (CodFuncionario, CPF, Nome_Funcionario)

As chaves primrias compostas ou concatenada possuem caractersticas


semelhantes s das primrias, contudo a diferena que a chave
composta utilizando mais de uma coluna (campo) da tabela para a
composio de seu valor nico.
Em outras palavras, no caso das chaves compostas, poder haver valores
repetidos para cada coluna-chave, porm a unio das colunas dever prover
resultados nicos.
Exemplo de tabela com chave primria composta:
Amigos (nome, telefone)

Pgina 11

Chave estrangeira
Uma chave estrangeira (do ingls Foreign Key) uma coluna ou uma
combinao de colunas, cujos valores aparecem necessariamente na chave
primria de uma tabela. A chave estrangeira o mecanismo que permite a
implementao de relacionamentos em um banco de dados relacional.
Esse termo utilizado para caracterizar as colunas de uma tabela que possam
armazenar somente valores de uma chave primria de outra tabela. essa
chave, com o complemento de uma chave primria, que forma os
relacionamentos entre tabelas.
Supondo-se duas tabelas: a primeira, um cadastro de clientes, e a segunda, um
cadastro de vendas, uma forma prtica de relacionar as vendas aos clientes
como mostrado na figura abaixo.
Tabelas:
Cliente (Codigo (PK), Nome)
Vendas (NotaFiscal (PK), cliente (FK), produto)

Pgina 12

Notaes para diagramas ER


Atualmente existem muitas e variadas formas de construo de um
diagrama ER (Entidade Relacionamento) que utilizam diferentes tipos de
notao.
Algumas das ferramentas de modelagem de esquemas existentes no
mercado permitem-nos escolher qual a notao que queremos utilizar.
As principais encontradas so:
Chen
Crows Foot
IDEF1X
Baseada em sombras (shading)
Baseada em UML

Observao: Para um melhor entendimento dos modelos conceitual e


lgico, utilizaremos a notao de Chen para o modelo
entidade-relacionamento e a Crows Foot para o modelo relacional.
Pgina 13

Notaes Chen

Pgina 14

Notao Crows Foot

Pgina 15

Notao IDEF1X

Pgina 16

Notao de sombras (shading)

Pgina 17

Notao baseada em UML

Pgina 18

Relacionamentos
O conceito de relacionamento depende muitas vezes da existncia de
chaves (primrias e estrangeiras) em um banco de dados. Na verdade,
o uso das funcionalidades de chaves primria e estrangeira que forma os
relacionamentos.
Um relacionamento pode ser definido pelos elos (ou ligaes) existentes
entre tabelas. Quando se liga um (ou mais) campo(s) de uma tabela com
um (ou mais) campo(s) de outra tabela, forma-se um relacionamento,
sendo normalmente o campo da primeira tabela uma chave primria e o
campo da segunda tabela uma chave estrangeira (pois repetem os
valores da primeira tabela).
Um dos objetivos dos relacionamentos auxiliar nas consistncias dos
dados armazenados no banco.
H trs tipos bsicos de relacionamentos entre tabelas, que so:
1:1
1:N
N:M
Pgina 19

Relacionamento 1:1

O relacionamento 1 para 1 diz respeito s ligaes entre tabelas onde


para cada registro da primeira tabela possa existir um registro na
segunda tabela.
Um exemplo para este tipo de relacionamento a ligao entre o RG e o
CPF de uma pessoa. Cada cidado brasileiro possui um nico nmero de
RG, que, por sua vez, pode estar vinculado a um nico CPF ativo, assim
como cada CPF ativo obrigatoriamente esta ligado a um nmero de RG.

Pgina 20

Relacionamento 1:N
Os relacionamentos 1 para N (um para muitos) permitem que cada tupla
de uma tabela pode-se relacionar com N tuplas da outra tabela. Porm,
cada tupla da segunda tabela s se relaciona com um nico tupla da
primeira.
Neste relacionamento, um exemplo que pode ser citado a ligao
entre cliente e compras realizadas em uma loja. Informalmente, um
cliente pode realizar uma ou mais (N) compras em uma loja, contudo,
cada compra da loja (ou seja, cada nota fiscal emitida) estar em nome
de exclusivamente um cliente.

Pgina 21

Relacionamento N:M
De todos os tipos de relacionamento, o tipo N para M (muitos para
muitos) , sem dvida, o mais amplo de todos. Pode-se dizer que este
relacionamento a combinao do tipo 1 para N (1:N|N:1) nos dois
sentidos do relacionamento (da primeira para segunda tabela e viceversa). Neste caso, pode haver um ou mais registros na segunda tabela
ligados a um registro da primeira, assim como pode haver um ou mais
registros na primeira tabela para cada registro da segunda.
Um exemplo para este caso o controle de matrcula de alunos nos
cursos de treinamento oferecidos por uma escola qualquer. No h
restries de que o alunos no possa assistir a mais de um curso,
portanto, um aluno pode estar matriculado e um ou mais cursos da
escola. Do outro lado da ligao, um curso pode ser frequentado por um
ou mais alunos.

Pgina 22

Restries de integridade - RI

Condio que especificada sobre um esquema de relao e deve ser


satisfeita para qualquer instncia do BD.
RIs so especificadas na definio do esquema;
RIs so checadas pelo SGBD quando o BD modificado.

Objetivos
Evitar que o BD entre em um estado inconsistente

RIs podem ser especificadas e foradas em diferentes nveis.


Durante a criao de um esquema de relao
Exemplo: o domnio de um atributo.

Durante a execuo de uma aplicao o SGBD impede operaes que violem


as RIs.

Pgina 23

Restries de integridade - RI
Um dos objetivos primordiais de um SGBD a integridade de dados. Dizer que
os dados de um banco de dados esto ntegros significa dizer que eles refletem
corretamente a realidade representada pelo banco de dados e que so
consistentes entre si. O controle de integridade de dados embutido nos SGDBs
garante que todos os dados inclusos ou alterados no banco estaro de acordo com
regras criadas para estes. No abordagem relacional, costuma-se classificar as
restries de integridade nas seguintes categorias:
Integridade de domnio - restries deste tipo especificam que o valor de um
campo deve obedecer a definio de valores admitidos para a coluna (o
domnio da coluna);
Integridade de chave - no podem existir duas tuplas de uma relao com
valores iguais na chave primria;
Integridade de vazio (entidade) a chave primria no pode conter um valor
nulo (NULL). O NULL no o valor 0 (zero) nem o caractere branco,
simplesmente a no existncia de contedo neste campo;

Integridade referencial - a restrio que define que os valores dos campos


que aparecem em uma chave estrangeira devem aparecer na chave primria
da tabela referenciada.
Pgina 24

Integridade Referencial com opo de excluso

Notao:
onde op a opo de excluso, dentro as seguintes:
Bloqueio (restrict): se alguma tupla referencia a tupla a ser excluda, atravs
de uma chave estrangeira, a excluso no efetuada;

Propagao (cascade): todas as tuplas que referenciam a tupla a ser exclda,


atravs de uma chave estrangeira, so excludas tambm automaticamente;
Substituio por nulos (set null): todas as tuplas que referenciam a tupla a
ser excluda, atravs de uma chave estrangeira, tm os valores dos atributos
da chave estrangeira modificada para nulo (se for permitido nulo) e a
excluso efetuada.

Pgina 25

Operaes de atualizao sobre relaes

Insero (insert) insere novas tuplas em uma relao.


Pode violar qualquer dos quatro tipos de restries discutidas.

Excluso (delete) exclui tuplas de uma relao


Pode violar somente restries de integridade referencial.

Modificao (update ou modify) muda os valores de alguns atribuitos


em tuplas existentes.
Modificar um atributo que no chave primria nem chave estrangeira pode
violar somente a restrio de domnio;
Modificar a chave primria similar a excluir uma tupla e inserir uma outra
no seu lugar; assim, pode violar qualquer das quatro restries discutidas;

Modificar uma atributo de uma chave estrangeira pode violar a restrio de


integridade referencial ou de domnio.
Pgina 26

Diagrama de tabelas relacionais - DTR


O diagrama de tabelas relacionais uma representao grfica deste
modelo, normalmente utilizamos a notao Crows Foot de James
Martin (comumente conhecida como P de Galinha, devido a
simbologia utilizada). A maioria das ferramentas CASE atuais
implementam apenas este diagrama.

Pgina 27

Diagrama de tabelas relacionais - DTR


1:1
1:N

N:N
Observao: Em BD relacionais no possvel implementar uma
relacionamento N:M. Quando acontecer deve ser transformado em
1:N|M:1.

1:N|M:1
Pgina 28

Transformaes entre modelos


A transformao de um modelo mais abstrato (DER) para um modelo que contm
mais detalhes (Relacional) de implementao conhecida como engenharia
direta. J o processo inverso chamado de engenharia reversa de BD relacional.
Neste processo, parte-se de um modelo relacional e obtm-se um diagrama ER,
que representa de forma abstrata os dados armazenados no BD.
Regra bsica da transformao
Engenharia Direta
N:M -> 1:N|M:1 (entidade associativa)
Engenharia Reversa
1:N|M:1 -> N:M

Obs.: Nos demais casos no ocorre nenhuma


mudana.

Pgina 29

Transformaes entre modelos - Exemplo

Engenharia Direta

Pgina 30

Engenharia Reversa

Dicionrio de dados

Aps o modelo relacional ter sido descrito ou diagramado, necessrio


criar um Dicionrio de dados para a base de dados.
O dicionrio de dados tem por objetivo descrever as propriedade de uma
tabela, sua estrutura fsica e as restries que cada atributo possui.
Assim, o desenvolvedor ir implementar o banco de dados saber
exatamente como a base deve ser criada;
No dicionrio de dados cada tabela do modelagem dever ser descrita e
dever conter os seguintes campus: nome do atributo, descrio do
atributo, tamanho, tipo, restries (valor nulo, regra de domnio,
chaves, valor default e unique).

Pgina 31

Dicionrio de dados - exemplo

Pgina 32

Vous aimerez peut-être aussi