Buscar

Semana 04 - Aula 06

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Exemplo de uma relação 1 para 1
Funcionario(cod, nome, email, cpf, siglaDG)
Departamento(sigla,nome)
Funcionario(cod, nome, email, cpf)
Departamento(sigla,nome, codFunG)
Quando existe uma relação de 1 para 1, o que define qual chave estrangeira será utilizada será a 
cardinalidade mínima.
No exemplo
Para acelerar a consulta de uma informação é possível utilizar um recurso denominado índice, assim 
como uma lista telefônica. Quando se cria um índice que pode ter valores nulos, o comportamento 
do índice pode assumir funções não esperadas, já que aquele índice pode ter um valor nulo para 
uma instância.
Portanto, quando for possível evitar uma tabela que possua valor nulo, é melhor evitar.
Quando se cria uma chave estrangeira numa tabela, cria-se uma restrição de integridade 
referencial. Significa que este atributo só pode ter valores do atributo que ele referencia. Ou seja, 
não é recomendável manter uma chave estrangeira para ambas as tabelas.
É possível em alguns casos criar uma tabela de relacionamento somente para referenciar o 
relacionamento entre duas entidades.
Semana 04 - Aula 06
quarta-feira, 27 de agosto de 2014 19:10
 Página 1 de COM230 - Banco de Dados I 
Funcionario(cod,nome,email,cpf)
Departamento(sigla,nome,codFunG)
Trabalha (cod, sigla)
cod referencia Funcionario(cod)
sigla referencia Departamento(sigla)
Para um atributo de um relacionamento, ele pode ser inserido na tabela que referencia o 
relacionamento
Funcionario(cod,nome,email,cpf)
Departamento(sigla,nome,codFunG)
Trabalha (cod, sigla,hora)
cod referencia Funcionario(cod)
sigla referencia Departamento(sigla)
Supondo ainda que um atributo de um relacionamento possa ser utilizado por outra entidade (1 
funcionário que possa trabalhar departamentos, desde que a data iniciais diferentes (dataI). Neste 
caso o atributo do relacionamento deve ser uma chave primária composta.
Funcionario(cod,nome,email,cpf)
Departamento(sigla,nome,codFunG)
Trabalha (cod, sigla,dataI)
cod referencia Funcionario(cod)
sigla referencia Departamento(sigla)
Toda vez que se implementa uma entidade fraca, esta entidade tem que possuir uma chave 
estrangeira da entidade forte
 Página 2 de COM230 - Banco de Dados I 
Funcionario(cod,nome,email,cpf)
Departamento(sigla,nome,codFunG)
Dependene (codF, nome,tel)
A fraca depende da forte;○
Não possui identificador universal;○
Características da entidade fraca:•
Remoção e atualização em cascata ocorre quando a chave estrangeira alterada também é 
propagada para a tabela que contém esta chave.
Se não houver a implementação da propagação em cascata, a entidade fraca vai impedir que a 
entidade forte seja alterada ou removida.
Se uma entidade possui um autorelacionamento:
Funcionario(cod,nome,cpf,email,codSupervisionado)
Funcionario(cod,nome,cpf,email,codSupervisor)
codSupervisor referencia Funcionario(cod)
Para relacionamentos ternários:
Trabalha(codCargo,codF,siglaD)
codCargo referencia Cargo(cod)
codF referencia Funcionario(cod)
sigla referencia Departamento(sigla)
Para especialização:
 Página 3 de COM230 - Banco de Dados I 
1ª estratégia
Pessoa(cod,nome,cpf,cnpj)
Se existirem muitas tuplas que sejam só pessoas (sem pertencer às entidades herdadas, 
generalização parcial), existirão diversas tuplas com atributos nulos.
Para que não se precise fazer a validação comparando com o nulo, pode-se acrescentar um atributo 
que defina o tipo.
2ª estratégia
Fisica(cod,nome,cpf)
Juridica(cod,nome,cnpj)
Criar uma tabela só para entidades específicas. Os atributos da entidade genérica seriam replicadas 
nestas tabelas.
E se a herança for parcial?
Não se pode usar esta estratégia. Não seria possível criar uma tabela para entidade genérica, neste 
cenário estudado.
E se a herança for compartilhada?
Os atributos estariam duplicados nas duas tabelas. Com a alteração de um atributo, ele estará 
coerente com a outra tabela. Portanto, esta estratégia não é recomendada (inconsistência de dados 
e inaelfformações redundante).
Portanto esta segunda estratégia é recomendada para quando houver uma 
especialização/generalização total e disjunta.
3ª estratégia
Pessoa(cod,nome)
Fisica(cod,cpf)
Juridica(cod,cnpj)
Criar uma tabela para as entidades específicas e tabelas para entidades genéricas. No entanto, esta 
estratégia aumenta a localização das tabelas do banco de dados, mas é cara para o SGBT em termos 
de custo de processamento.
 Página 4 de COM230 - Banco de Dados I

Outros materiais