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# 1010 1011 1012 1013 NOME MARIA DOS SANTOS CARLOS SANTANA JOSE HAMILTON MARIA DOS SANTOS CODIGO CIDADE 7 4 7 7 BAIRRO BARRA MORUMBI BARRA 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: Tabela original Tabela originada partir de tabelas originais Poro da uma tabela original

Viso:

Modelo Relacional Aspecto Estrutural


Uma viso da Tabela de Clientes
Foi retirada a coluna bairro
CODIGO# 1010 1011 1012 1013 NOME MARIA DOS SANTOS CARLOS SANTANA JOSE HAMILTON MARTA ALCNTARA CIDADE 7 4 7 7

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.

para

Ex. int, smallint, char, varchar. Definido pelo usurio. Ex. Idade, Categoria, UF.

Modelo Relacional Integridade !ulo


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 !ulo


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 C"a#es


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 C"a#es


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 Re$erencial


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 Re$erencial


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 Re$erencial


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 Re$erencial


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 Re$erencial


Tabela de Cidades
CODIGO# 4 5 7 8 DESCRIO SO PAULO RIO DE JANEIRO SALVADOR RECIFE UF SP RJ BA PE

Modelo Relacional Integridade %em&ntica


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 Manipulati#o


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

pela

Atualizao, deleo e insero

Modelo Relacional Aspecto Manipulati#o


Restrio: Clientes que moram em Salvador
CODIGO# 1010 1012 1013 NOME MARIA DOS SANTOS JOSE HAMILTON MARIA DOS SANTOS CIDADE 7 7 7 BAIRRO BARRA BARRA CABULA

Modelo Relacional Aspecto Manipulati#o


Projeo: Cdigo e Nome dos clientes
CODIGO# 1010 1011 1012 1013 NOME MARIA DOS SANTOS CARLOS SANTANA JOSE HAMILTON MARTA ALCNTARA

Modelo Relacional Aspecto Manipulati#o


Juno: Une Clientes e cidades
CODIGO# 1010 1011 1012 1013 NOME MARIA DOS SANTOS CARLOS SANTANA JOSE HAMILTON MARIA DOS SANTOS CIDAD E 7 4 7 7 DESCRICAO CIDADE SALVADOR SO PAULO SALVADOR SALVADOR BAIRRO BARRA MORUMBI BARRA CABULA

Mapeamento para o Projeto Lgico

'ro(eto )gico Regras de Deri#ao


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.

'ro(eto )gico Regras de Deri#ao


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

'ro(eto )gico Deri#ao de Relacionamentos


1:1 1:N 1:N M:N M:N sem atributos sem atributos com atributos sem atributos com atributos

Ternrios

'ro(eto )gico *+* sem atri,utos


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

'ro(eto )gico *+! sem atri,utos


A 1 R N B

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

'ro(eto )gico *+! com atri,utos


A 1 R N B

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

'ro(eto )gico M+! com ou sem atri,utos

A M

R 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

'ro(eto )gico Deri#ao 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

'ro(eto )gico Agregao

A M

R N M

R 1 C

Como derivar uma agregao ?

'ro(eto )gico -enerali.ao

Especiali.ao

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