Você está na página 1de 46

Banco de Dados I

3 Modelagem de Dados
Lgico e Fsico
Grinaldo Lopes de Oliveira (grinaldo@gmail.com)
Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas

* Material com crditos de colaborao dos professores Mrcio Soussa, Leandro Coelho e Pablo Florentino

Agenda
Aprendendo
Modelo Relacional
Mapeamento para o Projeto Lgico

Modelo Relacional

Modelo Relacional - Histrico


Sistemas de Processamento de Arquivo
Modelos Hierrquicos, em rede

Sistemas Relacionais
O modelo relacional foi proposto na dcada de 70
por Edgard F. Codd.
Dominam o mercado de Banco de Dados.
Ex.: DB2, Ingres, Informix, Interbase, SQL Server, Sybase,
Oracle, MySQL, Firebird, PostgreSQL

Sistemas Objeto/Relacional
Sistemas de Objetos

Modelo Relacional - Modelos


Hierrquico e Rede:
Os dados so representados por uma coleo
de registros e os relacionamentos por meio de
links

Hierrquico:
representado como uma coleo de
rvores enquanto

Rede
representado
arbitrrios.

por

meio

de

grficos

Modelo Relacional - Fundamentos


Edgard Codd percebeu que seria possvel aplicar
as operaes conhecidas na matemtica para o
manuseio de conjuntos sobre estruturas de dados.
Seleo, projeo, unio, interseo e outras operaes
realizadas sobre os dados poderiam ser comprovadas
atravs da teoria dos conjuntos.

Pde-se ento, estabelecer um mtodo formal e


rigoroso para o tratamento das estruturas de dados,
at ento desestruturados.

Modelo Relacional - Conceitos


Banco de Dados relacional
Banco de dados no qual todos os dados so percebidos como
tabelas

Relao: Termo matemtico usado para definir uma


tabela.
Tabela e relao so usualmente tratadas como sinnimos

O termo relacional nada tem a ver com os


relacionamentos entre as tabelas, mas sim com o uso de
tabelas (Relaes).

Modelo Relacional - Introduo


Divide-se em 3 aspectos importantes:
Aspecto Estrutural
Dados percebidos como tabelas, e nada alm de
tabelas

Aspecto de Integridade
As tabelas satisfazem a certas regras de integridade

Aspecto Manipulativo
Possui operadores para manipulao dos dados,
como: restrio, projeo e juno.

Modelo Relacional Aspecto Estrutural


Glossrio:
Relao:
Tupla:
Atributo:
Cardinalidade:
Grau:
Domnio:

Mesmo que tabela


Uma linha da tabela
Uma coluna da tabela
Nmero de tuplas em uma
tabela (linhas)
Nmero de atributos em
uma tabela (Colunas)
Conjunto de valores que
podem ser armazenados em
um atributo

Modelo Relacional Aspecto Estrutural


Ex: Tabela de Clientes
CODIGO#

NOME

CODIGO
CIDADE

BAIRRO

1010

MARIA DOS
SANTOS

BARRA

1011

CARLOS
SANTANA

MORUMBI

1012

JOSE
HAMILTON

BARRA

1013

MARIA DOS
SANTOS

CABULA

Modelo Relacional Aspecto Estrutural


Terminologias
Termo relacional formal
- relao
- tupla
- cardinalidade
- atributo
- grau
- domnio

Equivalente informal
- tabela
- linha de registro
- nmero de linhas
- coluna ou campo
- nmero de colunas
- Faixa de valores legais

Modelo Relacional Aspecto Estrutural


Glossrio:
Tabela bsica:
Tabela derivada:

Viso:

Tabela original
Tabela originada
partir de tabelas
originais
Poro da uma
tabela original

Modelo Relacional Aspecto Estrutural


Uma viso da Tabela de Clientes
Foi retirada a coluna bairro
CODIGO#

NOME

CIDADE

1010

MARIA DOS
SANTOS

1011

CARLOS
SANTANA

1012

JOSE
HAMILTON

1013

MARTA
ALCNTARA

Modelo Relacional Aspecto Estrutural


Propriedades de uma Relao (Tabela):
No existem tuplas em duplicata
Tuplas no so ordenadas de cima p/ baixo
A ordem pode ser especificada na consulta

Atributos no so ordenados da esq. p/ dir.


A ordem pode ser especificada na consulta

Cada tupla contm um nico valor para cada


atributo (valor atmico - monovalorados)

Modelo Relacional Aspecto Estrutural


O cabealho de uma relao representa um
Predicado: CODIGO NOME
CIDADE BAIRRO
O Cliente de cdigo CODIGO# chama-se NOME,
mora na cidade CIDADE e no bairro BAIRRO.
Cada linha de corpo representa uma proposio
verdadeira baseada no predicado:
Ex: O Cliente 1010, chama-se Maria dos Santos e
mora na cidade de Salvador e no bairro da Barra.

Modelo Relacional Integridade


necessrio incluir algumas regras de
integridade
ao
banco
de
dados,
informando restries do mundo real
(Regras de Negcio)
Os bancos de dados esto sujeitos a um
nmero grande de regras de integridade
necessrio que o banco de dados seja
consistente, isto , tenha integridade

Modelo Relacional Integridade


No podem existir dois elementos iguais em uma
relao, isto , no temos linhas iguais ou
duplicadas.
O que caracteriza um elemento de uma relao a
instanciao de todos os seus domnios.
possvel ento eleger colunas como Candidatas
a serem chave (Chaves Candidatas).

Modelo Relacional Integridade


Restrio de Domnio

Restrio de Chaves
Restrio de Integridade Referencial
Restrio de Integridade Semntica

Modelo Relacional Domnio


Nada mais que um tipo de dado.
Conjunto de valores possveis
determinados atributos ou nulo.
Definido pelo sistema.

Ex. int, smallint, char, varchar.


Definido pelo usurio.
Ex. Idade, Categoria, UF.

para

Modelo Relacional Integridade / Nulo


Valor nulo em um atributo pode significar:
O atributo no se aplica quela tupla.
O valor existe, mas desconhecido.
O valor conhecido, mas est ausente.
uma forma de tratar a falta de informao do
mundo real.
Um valor Nulo no igual a zero (0) ou (branco ou
espao). No igual a nada, visto que simplesmente
no existe.
Possui implicaes para o Banco de Dados.

Modelo Relacional Integridade / Nulo


Um dado atributo pode ter ou no
permisso para conter nulos
Nenhum componente de chave primria
pode aceitar nulo
Chaves estrangeiras podem ou no
aceitar nulos

Modelo Relacional Integridade / Chaves


Chave Primria (PK Primary Key)
Identificador nico para uma relao. Quando uma
relao tem mais que uma chave candidata,
escolhida uma como chave primria. As demais,
denominam-se chaves alternativas
Como as relaes no contm tuplas duplicadas
podemos dizer que toda relao tem pelo menos
uma chave candidata.

Modelo Relacional Integridade / Chaves


Chave Primria (PK Primary Key)
Uma chave primria pode ser composta por apenas
um atributo ou por mais de um atributo (chave
composta)
Otimiza a busca de um elemento especfico na
relao
Obs.: A localizao de registros pode ser feita atravs
de colunas identificadas como chave primria ou no.

Modelo Relacional Integridade Referencial


Chave Estrangeira (FK Foreign Key)
Serve para que possamos implementar
relacionamentos vistos na modelagem

os

Ela uma chave e, portanto, identifica de modo


nico uma tupla
Ela no est em seu local de origem, mas sim em
um local para onde foi migrada.
Ela tem um local de origem e l possui
caractersticas originais.

Modelo Relacional Integridade Referencial


Chave Estrangeira (FK Foreign Key)
Uma chave estrangeira nada mais do que uma
chave primria de uma tabela que aparece repetida
em outra.
o mtodo usado para o estabelecimento de
relacionamento entre duas tabelas.
Quando a chave primria de uma tabela movida
para outra tabela, temos uma chave estrangeira

Modelo Relacional Integridade Referencial


Um banco de dados no pode conter valores de
chaves estrangeiras no associados
Todo o banco de dados que no obedea s
regras de integridade dito inconsistente
Impe restries que devem ser garantidas em
operaes no BD.
Incluso, Atualizao
Deleo

Modelo Relacional Integridade Referencial


Como o SGBD se comporta quando h uma
tentativa de deleo ou atualizao de uma
chave primria referenciada em uma chave
estrangeira ?
Restrita: A operao no executada se houver
registros associados em outras tabelas
Cascata: A operao deleta ou atualiza em cascata
todos os registros associadas existentes em outras
tabelas

Modelo Relacional Integridade Referencial


Tabela de Cidades
CODIGO#

DESCRIO

UF

SO PAULO

SP

RIO DE
JANEIRO

RJ

SALVADOR

BA

RECIFE

PE

Modelo Relacional Integridade Semntica


Implementa Regras de Negcios do
mundo real
Ex: O aluno que tiver mais de duas disciplinas em
dependncia no pode passar para o prximo
semestre
Ex: Aps trs meses em atraso, o cliente passa para
o cadastro de inadimplentes

Geralmente implementado
gatilhos (Triggers)

atravs

de

Modelo Relacional Aspecto Manipulativo


Ex.: Operadores: Responsveis
manipulao dos dados
Consulta
Restrio: extrai linhas especficas
Projeo: extrai colunas especficas
Juno: Une duas tabelas

Atualizao, deleo e insero

pela

Modelo Relacional Aspecto Manipulativo


Restrio: Clientes que moram em Salvador
CODIGO#

NOME

CIDADE

BAIRRO

1010

MARIA DOS
SANTOS

BARRA

1012

JOSE
HAMILTON

BARRA

1013

MARIA DOS
SANTOS

CABULA

Modelo Relacional Aspecto Manipulativo


Projeo: Cdigo e Nome dos clientes
CODIGO#

NOME

1010

MARIA DOS SANTOS

1011

CARLOS SANTANA

1012

JOSE HAMILTON

1013

MARTA ALCNTARA

Modelo Relacional Aspecto Manipulativo


Juno: Une Clientes e cidades
CODIGO#

NOME

CIDAD
E

DESCRICAO
CIDADE

BAIRRO

1010

MARIA DOS
SANTOS

SALVADOR

BARRA

1011

CARLOS
SANTANA

SO PAULO

MORUMBI

1012

JOSE
HAMILTON

SALVADOR

BARRA

1013

MARIA DOS
SANTOS

SALVADOR

CABULA

Mapeamento para o Projeto


Lgico

Projeto Lgico Regras de Derivao


A obteno de um modelo lgico feito a partir
de um modelo conceitual previamente gerado.
As restries tecnolgicas so levadas em
considerao
Para tanto, dispomos de uma srie de regras
de derivao que aplicamos sobre o modelo
conceitual e o transformamos em um modelo
lgico.

Projeto Lgico Regras de Derivao


Trs atividades principais:
Derivao das estruturas Bsicas
Entidades e Atributos
Relacionamentos

Derivao das Estruturas Adicionais


Agregao
Generalizao-Especializao

Normalizao das Estruturas de Dados


1o FN, 2o FN, 3o FN

Projeto Lgico Derivao de Relacionamentos


1:1

sem atributos

1:N
1:N

sem atributos
com atributos

M:N
M:N

sem atributos
com atributos

Ternrios

Projeto Lgico 1:1 sem atributos


Opes:
1- Acrescer a chave primria da tabela A como chave estrangeira
na tabela B
2- Acrescer a chave primria da tabela B como chave estrangeira
na tabela A
Qual das duas opes acima devemos escolher ?
Devemos migrar a chave primria da tabela que nasce primeiro
como chave estrangeira na outra tabela

3- Migrar todos os atributos e relacionamentos da tabela A para a


tabela B, excluindo a tabela A
4- Migrar todos os atributos e relacionamentos da tabela B para a
tabela A, excluindo a tabela B

Projeto Lgico 1:N sem atributos


R

A
1

B
N

Representa a maioria dos relacionamentos


nica regra:
1- Acrescer a chave primria da tabela A como chave
estrangeira na tabela B
Obs.: A chave estrangeira pode aceitar nulo ou no a
depender do grau mnimo da cardinalidade

Projeto Lgico 1:N com atributos


R

A
1

B
N

Opes:
1- Acrescer a chave primria da tabela A como chave
estrangeira na tabela B e migrar os atributos do
relacionamento para a entidade B
2 Criar uma tabela C para manter as associaes entre
A e B e alocar os atributos do relacionamento nessa nova
tabela

Projeto Lgico M:N com ou sem atributos

A
M

B
N

nica regra:
Criar SEMPRE uma tabela C, agregando as chaves
estrangeiras das entidades originais. Caso haja atributos no
relacionamento, estes devero passar a fazer parte da nova
tabela criada

Projeto Lgico Derivao de Auto-Relacionamento

A derivao do relacionamento deve ocorrer da


mesma maneira que ocorre com relacionamentos
binrios, isto , a derivao vai depender
unicamente
da
cardinalidade,
como
nos
relacionamentos binrios

Projeto Lgico Agregao

N
M

R
1
C

Como derivar uma agregao ?

Projeto Lgico Generalizao / Especializao


1- Criar uma tabela para a entidade generalizada e uma
tabela para cada especializada, acrescendo a chave
primria da tabela generalizada em cada tabela
especializada
2- Criar somente uma tabela para a generalizada e
migrar todos os atributos e relacionamentos para essa
tabela
3 Criar somente tabelas para as entidades
especializadas e migrar todos os atributos e
relacionamentos da entidade generalizada para cada
uma das tabelas especializadas

Tarefa Extra-Classe
Recupere os exerccios de
Modelagem Lgica e Fsica e faaos todos.

Banco de Dados I
Aula 3 Modelagem de Dados
Lgico e Fsico
Grinaldo Lopes de Oliveira (grinaldo@gmail.com)
Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas

Você também pode gostar