Unidade 3: O Modelo Lógico
Conteúdo
Modelo Relacional
Convertendo ER em Tabelas Relacionais
1:1, 1:N, N:N
Generalizações
Agregações
Relacionamentos recursivos
Relacionamentos N-ários
Exercício
Modelo Relacional
Fundamentado na teoria de conjuntos, combinado com a idéia que não é relevante
para o usuário saber onde os dados estão nem como os dados estão armazenados.
O usuário, para lidar com estes objetos, conta com um conjunto de operadores e
funções de alto nível, constantes na álgebra relacional.
Definição Matemática de Relação
Sejam conjuntos, não necessariamente disjuntos D1, D2, ..., Dn de valores atômicos
R é uma relação sobre estes conjuntos (domínios de R), se e somente se R é um
conjunto de n-uplas (tuplas) ordenadas <d1, d2, ... , dn>, tal que para i=1,2,...,n di
pertence a Di
Exemplo:
A = {1, 2, 3, 4, 5}
B = {2, 3, 4, 6, 7}
R = B é o dobro de A
R = {(2,1), (4,2), (6,3)}
Modelo Relacional
Relação = Tabela bi-dimensional, composta de linhas e colunas de dados.
Relação recursiva = relaciona o objeto a si mesmo.
Atributo = Coluna
Grau de uma relação = Número de atributos
Tupla = Cada linha da relação
Domínio de um atributo = Conjunto ao qual pertence os valores de um
atributo
Valor nulo de um atributo de uma tupla = Atributo inaplicável ou com valor
desconhecido
Esquema de Banco de Dados Relacional = Nomes das relações seguidos
pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves
Modelo Relacional
estrangeiras identificadas.
Banco de Dados
Relacional
Atributo Identificador:
O atributo ou conjunto de atributos que será utilizado para identificar instâncias
de uma entidade. Faz parte do modelo conceitual.
Chave:
designa o conceito de item de busca, isto é, um atributo ou conjunto de
atributos que será utilizado nas consultas à base de dados.
É um conceito lógico da aplicação.
Índice:
É um recurso físico que visa otimizar a recuperação de uma informação, via
um método de acesso. Seu objetivo principal está relacionado com a
performance de uma aplicação.
Uma chave pode ser utilizada como índice, mas um índice não é, necessariamente, uma
chave
Modelo Relacional
Chave Candidata
– Deve ser única, ou seja, nenhuma tupla de uma mesma relação pode ter o mesmo valor
para o atributo escolhido como chave candidata
– Deve ser irredutível, nenhum subconjunto da chave candidata pode ter sozinho a
propriedade de ser único. – Pode ser :
Simples : quando é composta por apenas um atributo
Composta : quanto possui mais de um atributo para formar a chave
Chave primária
– É um caso especial da chave candidata. É a escolhida entre as candidatas para identificar
unicamente uma tupla.
Modelo Relacional
Chave estrangeira
– É quando um atributo de uma relação é chave primária em outra.
– Constitui um conceito de vital importância no modelo relacional: é o elo de ligação
lógica entre as tabelas (relacionamentos)
– Através das operações com as chaves estrangeiras que se garante a INTEGRIDADE
REFERENCIAL do banco de dados:
Modelo Relacional
Regras de Integridade Regras que devem ser obedecidas em todos os estados
válidos da base de dados (podem envolver uma ou mais linhas de uma ou mais tabelas)
Integridade da Entidade
O valor da chave não pode ser vazio
A chave primária serve como representante na base de dados de uma entidade – se a
chave primária for vazia, alinha não corresponde a nenhuma entidade
Integridade de Chave Primária
O chave primária tem que ser única
Integridade Referencial
As chaves estrangeiras tem que ser respeitadas, ou seja, se existe um determinado
valor para o atributo na tabela onde ele é chave estrangeira este valor deve existir na
tabela onde ele é chave primária
Restrições de Integridades Semânticas
Todas as demais regras que devem ser obedecidas por todos os estados válidos da
base de dados
Convertendo o Diagrama ER para Tabelas
Relacionais
Para cardinalidade 1:1
Incluir todos os atributos numa tabela simples. O nome da tabela relacional pode ser
o nome de uma das entidades que participam do relacionamento, um nome
composto formado pela combinação dos nomes das duas entidades ou um novo
nome que represente o significado dos dados na tabela.
Para cardinalidade 1:N
Incluir o “identificador”do lado “um” como um atributo no lado “muitos”. O
identificador colocado do lado “muitos” é chamado de chave estrangeira.
Para cardinalidade N:M
Criar uma nova tabela e colocar as chaves primárias de cada uma das entidades
como atributos na nova tabela. A nova tabela é chamada de tabela associativa. O
identificador da tabela é uma chave composta formada pelas chaves primárias das
duas tabelas que participam do relacionamento. Cada identificador colocado na nova
tabela é uma chave estrangeira.
Convertendo o Diagrama ER para Tabelas
Relacionais
Sobrenome NumMatr
Nome 1:1 1:1 Endereço
Aluno Tem residencial
CPF
Street Rua Cidade Estado
Colocando Atributos
Convertendo o Diagrama ER para Tabelas
Relacionais
Estado
Cidade
NumMatr
Rua
1:N 1:1 Especiali-
Aluno Frequenta Descrição
Sobrenome zação
Nome
CPF Colocando chave Cd-ident
estrangeira
Aluno (NumMatr, CPF, Nome, Sobrenome, Rua, Cidade , Estado) Aluno
(NumMatr,CPF, Cd-ident, Nome, Sobrenome, Rua, Cidade, Estado)
Convertendo o Diagrama ER para Tabelas
Relacionais
Especialização (Cd-ident, Descrição)
Convertendo o Diagrama ER para Tabelas
Relacionais
Estado Cidade
Creditos CPF
Rua
Sobrenome
NomeCurso Curso 1:7 0:N Aluno
matricula
Nome
NumMatr
Cd_id
Colocando chaves
estrangeiras Aluno (NumMatr,CPF, Nome, Sobrenome,
Rua, Cidade, Estado)
Curso (Cd-id, NomeCurso, Creditos)
Matricula (Cd_id, NumMatr)
Convertendo o Diagrama ER para Tabelas
Relacionais - Generalizações
Aluno (NumMatr,Nome,Sobrenome, Sexo, Dt_nasc)
Convertendo o Diagrama ER para Tabelas
Relacionais – Relacionamentos
Recursivos
Sobre
Nome
nome
Sexo
NumMatr
Aluno
Dt_nasc
1:1
Graduação (NumMatr,Media_final,dt_tese)
é-um
0:1 0:1
Pós-
Graduação
Pós_graduação (NumMatr, alojamento, Graduação
Media Aloja
final Dt_nasc Clube
mento
Colocando chaves
estrangeiras
Convertendo o Diagrama ER para Tabelas
clube)
Relacionais - Agregações
Medico(CRM, Nome_Med)
Paciente (ID,Nome_Pac, End)
Consulta(CRM, ID, Data_Cons)
Convertendo o Diagrama ER para Tabelas
Relacionais – Relacionamentos
Recursivos
Exame (Cod_Ex, Descricao)
Solicita (CRM, ID, Cod_Ex, Dt_Realiz)
Convertendo o Diagrama ER para Tabelas
Limite de
cardinalidade
superior é
temporariamente
Sobrenome rotulado como N
Nome para relaciomentos
N Opcionais.
0:1
Empregado N Casado com
0:1
Matr
Colocando chaves
estrangeiras
Empregado (Matr,Nome,Sobrenome) Casado com (Matr_esp, Matr_mar)
Nova Tabela de Associação
Convertendo o Diagrama ER para Tabelas
Relacionais – Relacionamentos
Recursivos
Sobrenome
Nome
1:1
Empregado Supervisiona
0:N
Empregado (Matr, Matr_Supervisor,Nome,Sobrenome)
Matr
Colocando chaves
estrangeiras
Convertendo o Diagrama ER para
Tabelas
Qtde_disp
0:N
Desc_peça Qtde_neces
Peça Compõe
0:M
Colocando chaves
Num_peça
estrangeiras
Peça (Num_peça, Desc_peça,Qtde_disp) Composição (Num_peça, Num_peça_comp, Qtde_neces)
Nova tabela de
associação
Convertendo o Diagrama ER para Tabelas
Relacionais – Relacionamentos
Recursivos
Relacionais – Relacionamentos n-
ários
Convertendo o Diagrama ER para
Tabelas
Item (Id_item, Desc)
Id_item Item Desc
0:N
End Localiz
0:N 0:N
Cliente Pedido Depósito
Colocando chaves
Cd_cli estrangeiras Cd_dep
Depósito (Cd_dep, Localiz)
Cliente (Cd_cli, End)
Pedido (Cd_cli, Cd_dep, Id_item)
Nova tabela de associação
Exercício
Converter o modelo conceitual abaixo em tabelas do modelo lógico
relacional.
Pn
PRODUTO
Pnome
N
Vn N N Tipo
VENDEDOR compra CONTRATO
Vnome Valor
N
PU
Qtde
tem
Cn
CLIENTE
Status
é-um
CLIENTE_PJ CLIENTE_PF
Rsocial CNPJ Cnome CPF