Upload
jvneri
View
273
Download
0
Embed Size (px)
DESCRIPTION
Mod02 - Modelo Relacional
Citation preview
1Modelo Lgico de Dados
Modelo Relacional
2Composio de um Banco de Dados Relacional composto de tabelas ou relaes O termo tabela mais comum nos produtos
comerciais e na prtica O termo relao foi utilizada na literatura original
sobre a abordagem relacional (da a denominao relacional) e mais comum na rea acadmica
3Tabelas Tabela um conjunto no ordenado de linhas
(tuplas, na terminologia acadmica) Cada linha composta por uma srie de campos
(valor de atributo na terminologia acadmica) Cada campo identificado por um nome de campo
(nome de atributo, na terminologia acadmica)
4Tabelas O conjunto de campos homnimos de todas as
linhas de uma tabela formam uma coluna
Emp
-D1SoaresE1
C2D1SilvaE2
C5D2SantosE3
C5D1SouzaE5
Categ FuncionalCdigoDeptoNomeCdigoEmp
5Tabelas Observaes:
Cada linha representa uma tupla As linhas de uma tabela no tm ordenao - a ordem
de recuperao arbitrria, a menos que uma ordenao seja especificada na instruo de consulta
No existem linhas duplicadasNo possvel referenciar linhas de uma tabela por
posioOs valores de campo de uma tabela so atmicos e
monovalorados As consultas podem ser feitas por qualquer critrio
envolvendo os campos de uma ou mais linhas
6Chaves Candidatas Coluna ou conjunto de colunas de uma Tabela que
identifica de forma nica cada linha da tabela e mnimo (no caso de conjunto) nessa condioO fato de todas as linhas de uma tabela serem distintas
entre si garante a existncia de ao menos uma chave candidata na tabela
Aluno ( RA, Nome, CPF, Data_Nascimento, RG, Emissor_RG)
Chaves candidatas:RA
CFP
(RG, Emissor_RG) (mnimo, precisa do par de valores)
7Chave Candidata Observaes:
Exige-se que seja mnima (quando todas as suas colunas forem efetivamente necessrias para garantir o requisito de unicidade de valores da chave)
Uma tabela sempre tem ao menos uma chave candidata e pode ter mais do que uma
No existe uma classificao para as chaves candidatas. Todas a mesma relevncia na tabela
8Chave Primria Uma das chaves candidatas da Tabela deve ser
escolhida com sua Chave Primria No existe regra para decidir qual das chaves
candidatas deve ser a escolhida Na escolha deve ser considerada a existncia de
referncias a esta chave primria em outras tabelas (chave estrangeira) Ao definir uma chave primria est se definindo uma
restrio de integridade e no um caminho de acesso (ndice)
9Chave Estrangeira uma coluna ou uma combinao de colunas,
cujos valores aparecem necessariamente na chave primria de uma tabela
Usada para implementar relacionamento em um banco de dados relacional
10
Chave Estrangeira Exemplo:
VendasD3
EngenhariaD2
ComprasD1
NomeDeptoCdigoDepto
543523345D1SoaresE5
125323422D2SilvaE3
123124112D2SantosE2
132123123D1SouzaE1
CICCdigoDeptoNomeCdigoEmp
Depto
Emp
11
Chave Estrangeira Observaes:
No exemplo anterior, a coluna CodigoDepto da tabela Emp uma chave estrangeira em relao chave primria da tabela Dept
Na tabela Emp, os valores do campo CodigoDepto de todas as linhas devem aparecer na coluna CodigoDepto da tabela Dept
A existncia de uma chave estrangeira impe restries que devem ser garantidas ao executar as diversas operaes e alterao do banco de dados
12
Mapeamento do Modelo Conceitual para o Modelo Relacional
Um modelo conceitual construdo utilizando o Modelo Entidade-Relacionamento pode ser mapeado para um modelo lgico Relacional A equivalncia mais direta
cada Entidade = uma Tabelacada Atributo = uma Colunacada Ocorrncia = uma Linha
13
Mapeamento de Entidades Para cada Entidade
deve ser criada uma relao (tabela)
Para cada atributo simples incluir uma coluna na tabela
No caso de atributo composto, incluir somente os atributos simples que o compe (Endereo)
EMPREGADO
nomecdigo
Endereo DataNasc
Empregado(Codigo, Nome, Logradouro, Numero, Bairro, Cidade, Estado,DataNasc)
14
Mapeamento de Atributos Multivalorados Para cada atributo
multivalorado deve ser criada uma tabela formada pela chave primria da Tabela/Entidade e pelo atributo multivalorado
A chave primria da nova tabela ser o par de atributos
Se o atributo multivalorado for composto. Por ex.: Ingrediente formado por Nome do ingrediente e quantidade, todo o grupo vai para a nova tabela
RECEITA
nome
cdigoModo de Preparo
Ingrediente (n)
Receita(Codigo, Nome, Modo_Preparo)Ingrediente_Receita (CodReceita, Ingrediente)
15
Nome das colunas O nome do atributo(modelo conceitual) pode ser diferente
do nome do campo da tabela (coluna) Objetivo
Facilidade de programao como o uso de nomes curtos Evitar nomes iguais. Ex.: Todas entidades com o atributo nome Evitar espaos no nome da coluna, pois so proibidos nos BD
relacionais Dica
Defina um padro para converter o nome dos atributos, principalmente dos nomes compostos que necessitam abreviao.
Ex.: Nome do Responsvel NomeRes
16
Nome para a chave primria boa prtica compor o nome da chave primria
com uma identificao da tabela a qual ela pertence
Como geralmente, elas se tornam chaves estrangeiras de outras tabelas, esta prtica facilita a programao e compreenso dos campos
EMPREGADO
nomecdigo
Endereo Data de Nascimento
Empregado(CodEmp, Nome, Endereco, DataNasc)
17
Mapeamento de Relacionamentos Um relacionamento pode ser transformado em:
Uma tabelaUma coluna de uma das tabelas envolvidas Fuso de duas tabelas
Esta deciso depende da cardinalidade mnima e mxima dos relacionamentos
No caso da fuso devemos considerar tambm outros relacionamentos da entidade
18
Entidades Fracas Criar uma tabela para cada entidade fraca Nessa tabela incluir como chave estrangeira a chave
primria da tabela que representa a entidade possuidora/identificadora
As entidades fracas tm chave primria composta de duas partes: A chave primria da tabela (entidade) possuidora A chave parcial da tabela(entidade) fraca
cdigo
DEPENDENTES(1,1) (0,n)
EMPREGADOS
nome Codigo nome
Empregados(CodEmp, Nome) Dependentes(CodEmp, CodDep, Nome, DataNasc)
Data de Nascimento
Dependencia
19
Implementao de Relacionamentos 1:1
20
Relacionamentos Binrios - Um para Um Ambas entidades tm participao opcional
adio de colunas
21
Relacionamentos Binrios - Um para Um Ambas entidades tm participao opcional
tabela prpria
22
Relacionamentos Binrios - Um para Um Ambas entidades tm participao opcional
fuso de tabelas
23
Relacionamentos Binrios - Um para Um
Ambas entidades tm participao opcional
Soluo por fuso de tabelas invivelChave primria artificial (j que pode no estar completa)
Soluo por adio de colunas: melhorMenor nmero de junes
Menor nmero de chaves
Soluo por tabela prpria: aceitvel
24
Implementao de Relacionamentos 1:1
25
Relacionamentos Binrios - Um para Um Participao opcional/obrigatria
Fuso de tabelas
26
Relacionamentos Binrios - Um para Um Participao opcional/obrigatria
Adio de colunas
27
Relacionamentos Binrios - Um para Um
Adio de colunas versus fuso de tabelas Fuso de tabelas melhor em termos de nmero de
junes e nmero de chaves Adico de colunas melhor em termos de campos
opcionais Fuso de tabelas considerada a melhor e adio de
colunas aceitvel
28
Relacionamentos Binrios - Um para Muitos
29
Relacionamentos Binrios - Um para Muitos
J temos duas tabelas, uma para cada conjunto de entidades que participam do relacionamento
Incluir como chave estrangeira, na tabela do lado muitos (o lado N), a chave primria da tabela do lado um
Incluir tambm colunas com os atributos do relacionamento
30
Relacionamentos Binrios - Um para Muitos
31
Relacionamentos Binrios Muitos para Muitos
32
Relacionamentos Binrios Muitos para Muitos
J temos duas tabelas, uma para cada conjunto de entidades que participa do relacionamento
Criar uma nova tabela contendo, como chaves estrangeiras, as chaves primrias dessas duas tabelas A combinao dessas chaves estrangeiras forma a
chave primria da nova tabela Incluir tambm colunas com os atributos do
relacionamento
33
Relacionamentos Binrios Muitos para Muitos
34
Modelo Lgico de DadosModelo RelacionalParte 2Restries de IntegridadeGeneralizaes / Especializaes
35
Tabela: representada por um retngulo
Relacionamentos somente binrios (entre 2 tabelas) tipo 1:N
Se for obrigatrio, corte transversal:
Diagrama para Modelo Lgico Relacional
36
Exemplos
Departamento
Empregado
Engenheiro
Participa_Proj
Projeto
Departamento (Codigo, Nome)
Empregado (Matricula, Nome, CodDepto)
37
Chave Estrangeira - restries impostas Quando da incluso de uma linha na tabela que
contm a chave estrangeira:deve ser garantido que o valor da chave estrangeira, se informado, exista na coluna da chave primria referenciadaSe o relacionamento no for do tipo obrigatrio, a chave estrangeira pode no ser informada
Exemplo: um novo empregado deve atuar em um departamento j existente no banco de dados (na tabela Departamento)
38
Chave Estrangeira - restries impostas Quando da alterao do valor da chave
estrangeira:deve ser garantido que o novo valor de uma chave estrangeira, se informado, exista na coluna da chave primria referenciada
Exemplo: se um empregado muda de departamento, deve-se garantir que o novo departamento j exista no banco de dados (na tabela Departamento)
39
Chave Estrangeira - restries impostas Quando da excluso de uma linha da tabela que
contm a chave primria referenciada pela chave estrangeira:deve ser garantido que na coluna chave estrangeira no aparea o valor da chave primria que est sendo excluda
Exemplo: um departamento no pode ser excludo, caso exista algum empregado que o referencie
40
Chave Estrangeira - restries impostas Quando da alterao do valor da chave primria
referenciada pela chave estrangeira:deve ser garantido que na coluna chave estrangeira no aparea o antigo valor da chave primria que est sendo alterada
Exemplo: um departamento somente pode ter o seu cdigo alterado se no for referenciado por nenhum empregado
41
Chave Estrangeira Pode acontecer de uma chave estrangeira
referenciar a chave primria da prpria tabela (e no de uma tabela diferente, como no exemplo anterior). Exemplo:
Emp
E1D1SoaresE5
E5D2SilvaE3
E5D2SantosE2
-D1SouzaE1
Cdigo Emp GerenteCdigoDeptoNomeCdigoEmp
Cdigo Emp Gerente uma chave estrangeira que Referencia a chave da prpria tabela (auto-relacionamento)
42
Valores Vazios Normalmente, os SGBDs relacionais exigem que
todas as colunas que compem a chave primria sejam obrigatrias
A mesma exigncia no feita para as demais chaves
Ateno: Vazio diferente de zeros ou brancos
43
Restries de Integridade Banco de dados ntegro: reflete corretamente a
realidade representada pelo banco de dados e os dados so consistentes entre si
Um SGBD deve garantir a integridade dos dados atravs do mecanismo de restrio de integridade
44
Restries de Integridade Restrio de integridade: regra de consistncia
de dados que garantida pelo prprio SGBD Na abordagem relacional as restries de
integridade esto classificadas em: Integridade de domnio Integridade de vazio Integridade de chave Integridade referencial
45
Restries de Integridade Domnio:
um conjunto de valores (alfanumrico, numrico, ...) que um campo de uma tabela pode assumir
chamado de domnio da coluna ou domnio do campo
Integridade de domnio: especifica que o valor de um campo deve obedecer a definio de
valores admitidos para a coluna (o domnio da coluna) Nos SGBDs relacionais possvel usar domnios pr-definidos
(nmero inteiro, nmero real, alfanumrico de tamanho definido, data, ...)
possvel usar um conjunto finito de valores: (Masc , Fem), (Sim , No), (1, 2, , 5, 7, 11, 13)
possvel usar uma frmula: > 0 e < 1000
46
Restries de Integridade Valores vazios:
Deve-se especificar se o contedo de uma coluna pode estar vazio (em ingls null)
Estar vazio significa que o campo no recebeu nenhum valor de seu domnio
As colunas que podem conter valores vazios so as colunas opcionais
As colunas que no podem conter valores vazios so as colunas obrigatrias
Integridade de vazio: Especifica se os campos de uma coluna podem ou no ser vazios
(se a coluna obrigatria ou opcional) Campos que compem a chave primria no podem ser vazios
47
Restries de Integridade Integridade de chave:
Trata-se da restrio que define que os valores da chave primria devem ser nicos
Integridade referencial:Define que os valores dos campos que aparecem em
uma chave estrangeira devem aparecer na chave primria da tabela referenciada
48
Restries de Integridade Declarativas As restries citadas devem ser garantidas
automaticamente por um SGBD relacional a partir da sua declarao na definio das tabelas, no sendo necessrio nenhuma programao para garanti-las explicitamente
So restries de Integridade Declarativa: Chave Primria Unicidade (chaves candidatas) Integridade Referencial (Chave Estrangeira) Integridade de Domnio Integridade de Vazio
49
Restries Semnticas de Integridade Existem restries de integridade que no podem
ser definidas de forma declarativa para um SGBD relacional
So chamadas restries semnticas Necessrio que seja feita programao
procedural na aplicao ou no SGBD Exemplos:
um empregado do departamento Finanas no pode ter a categoria funcional Engenheiro
um empregado no pode ter um salrio maior que seu superior imediato
50
Generalizao/Especializao (1 Tabela)
PrestadoresDe Servios
nomeCPF
Horistas Mensalistas
custoHora HorasTrabalho Salario
Endereco
ObservaesMinimizando a junesMenor nmero de chavesMuitos atributos opcionais
Alternativa (1 tabela):PrestadoresServicos(CPF, Nome, Endereco, CustoHora, HorasTrabalhadas, Salario, Tipo)
RegrasChave primria referente a entidade genricaAdicionar uma coluna TipoUma coluna para cada atributo da entidade genrica e das especializadasPossveis colunas referentes aos relacionamentos envolvendo as entidades
51
Generalizao/Especializao (2 Tabelas)
PrestadoresDe Servios
nomeCPF
Horistas Mensalistas
custoHora HorasTrabalho Salario
Endereco
Alternativa (2 tabelas): Horistas, Mensalistas
Horistas(CPF,Nome,Endereco,CustoHora,HorasTrabalho)Mensalistas(CPF, Nome, Endereco Salario)
Observaes Unicidade da chave primria no pode ser garantida de forma declarativa pelo SGBD, por serem 2 tabelas independentes Necessrio programao procedural
52
Generalizao/Especializao (3 Tabelas)Abordagem geral (3 tabelas):Prestadores_de_Servicos, Horistas, Mensalistas
Prestadores_de_Servicos(CPF, Nome, Endereco, Tipo)Horistas(CPF,CustoHora,HorasTrabalhadas)Mensalistas(CPF,Salario)
Regras Incluir a chave primria da tabela genrica em cada tabela especializada como chave estrangeiraAdicionar o atributo Tipo
Observaes Reduo de atributos opcionais Ocorrncia de uma das 2 tabelas especializadas conforme o valor do atributo Tipo somente pode ser garantida atravs de programao procedural
PrestadoresDe Servios
nomeCPF
Horistas Mensalistas
custoHora HorasTrabalho Salario
Endereco
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52