A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SCC Bancos de Dados e Suas Aplicações

Apresentações semelhantes


Apresentação em tema: "SCC Bancos de Dados e Suas Aplicações"— Transcrição da apresentação:

1 SCC0141 - Bancos de Dados e Suas Aplicações
Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Mapeamento entre Esquemas Parte 1

2 Mapeamento entre Esquemas – Mapeamento MER  MRel
MER - modelo conceitual usado para especificar conceitualmente a estrutura dos dados de uma aplicação Projeto Conceitual – descrição carregada de semântica Modelo Relacional - modelo de implementação usado para suportar a implementação de aplicações Projeto Lógico SGBDR  SGBD que se apóia no modelo relacional

3 Passo 1 Como mapear Conjuntos de Entidades? Aluno Disciplina Sigla
Nome No. Créditos Sigla Aluno Nome NUSP CPF RG USP – ICMC – GBDI

4 Atributo Composto Pessoa
Rua Número CEP Cidade Pessoa Nome NUSP Endereço Pessoa = {Nome, NUSP, Rua, Número, CEP, Cidade} Poderia, por exemplo, colocar um endereço como uma única linha. Faço isso apenas se eu não for usar os componentes de um endereço para consultas. Pode-se usar aindar operações sobre as strings, mas estas são muito caras.

5 Passo 2 Como mapear Conjuntos de Entidades Fracas? N 1 Disciplina
Corresponde 1 Disciplina Nome No. Créditos Sigla Turma Número Horário Sala USP – ICMC – GBDI

6 Entidades fracas N 1 Disciplina Turma 1
Número Sigla Horário Nome Sala No. Créditos N 1 Turma Disciplina Corresponde 1 Tem Disciplina = {Sigla, Nome, NroCreditos} N Aula Prática Turma = {Número, Sigla, Horário, Sala} Código Leitura da participação total no relacionamento: - Uma disciplina tem correspondência a N turmas - Uma turma, necessariamente (duplo traço), corresponde a uma disciplina Este modelo E/R usa dois exemplos de entidades fracas: Turma, cuja chave é composta pela chave de outra relação, no caso Disciplina; e Aula Prática, cuja chave é composta pela chave de outra relação, no caso Turma. Este modelo poderia ser feito sem o uso de entidades fracas. A vantagem do uso deste tipo de entidade está no fato de que as chaves compostas podem ser usadas para se descobrir informações sem a necessidade de junções. Por exemplo: a chave de qualquer registro de Aula Prática, indica também a qual turma e a qual disciplina se refere a aula. Caso não tivéssemos entidades fracas, e Turma e Aula Prática tivessem suas próprias chaves, então só poderíamos saber a qual Disciplina se refere cada Aula Prática a aula por meio de uma junção Aula Prática, Turma, Disciplina, sobre as respectivas chaves. Horário Laboratório Aula_Prática = {Código, Horário, Laboratório, Número, Sigla}

7 Passo 3 Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade 1:1? Conferência organiza Comissão 1 1 Cod Nome Data Instalação NroMembros USP – ICMC – GBDI

8 Relacionamentos Binários
Cardinalidade 1:1 Conferência organiza Comissão 1 1 Cod Nome Data Instalação NroMembros O atributo conferência deve ser UNIQUE para garantir o 1 do outro lado do relacionamento – unique aceita a repetição do valor null, o que permite participação parcial da entidade cuja referência é UNIQUE. Para que uma chave UNIQUE não aceite valores NULL, ela deverá ser também NOT NULL. Conferência = {Nome} Comissão = {Cod, NroMembros, Conferência, DtaInst}

9 Relacionamentos Binários
Cardinalidade 1:1 Conferência organiza Comissão 1 1 Cod Nome Data Instalação NroMembros Conferência = {Nome, CodComissão, DtaInst} Aqui, o atributo CodComissão deve ser UNIQUE para garantir a cardinalidade 1. Comissão = {Cod, NroMembros}

10 Relacionamentos Binários
Cardinalidade 1:1 Gerente participa Projeto 1 1 (obrigatoriamente!) Cod Nome Gerente = {Nome, Projeto}  Restrição de null: na relação Gerente o atributo Projeto deve ser definido como não nulo. UNIQUE e NOT NULL Leitura da participação total no relacionamento: - Um projeto tem participação de 1 gerente - Um gerente, necessariamente (duplo traço), participa de 1 projeto Projeto = {Cod}

11 Alternativas para o Mapeamento Relacionamentos Binários 1:1
Nome Comissão organiza Conferência Data Instalação 1 NroMembros Cod Mapeamento usual: Conferência = {Nome, CodComissão, DataInstalação} Comissão = {Cod, NroMembros} Neste mapeamento, a chave de ConfCom é Nome, e CodComissão deve ser UNIQUE e NOT NULL para garantir a obrigatoriedade da cardinalidade 1, não mais do que 1 (UNIQUE) e não menos do que 1 (NOT NULL). O uso de uma única relação pode implicar em alterações na estrutura do modelo, fazendo com que o modelo lógico se defira do modelo E/R. Isto se deve ao fato de que uma entidade irá desaparecer, e ela pode esta relacionada com outras entidades. ConfCom = {Nome, CodComissão, NroMembros, DataInstalação} Alternativa - uma só relação:

12 Alternativas para o Mapeamento Relacionamentos Binários 1:1
Pouca Participação Considerações: o CR Namora representa relacionamentos de namoro na USP São Carlos! 1 Homem Namora Mulher 1 Nome tempo Nome Idade Idade Exemplo da USP – pouca probabilidade de casais e, portanto, uma grande quantidade de valores null. Muitos valores null levam a problemas de interpretação de valores nulos e problemas com left e right join. Valores null ocupam o mesmo espaço de armazenamento do que seus alternativos valores not null. Muitos valores nulos!! Mapeamento usual Mulher = {Nome, Idade} Homem = {Nome, Idade, NomeM, tempo}

13 Alternativas para o Mapeamento Relacionamentos Binários 1:1
Mapeamento alternativo Mulher = {Nome, Idade} Homem = {Nome, Idade} Namoro = {NomeH, NomeM, tempo} NomeM: UNIQUE e NOT NULL -O uso de mais tabelas leva à necessidade de junções, as quais são custosas. -Mais tabelas, mais chaves. Chaves nem sempre são dados úteis, servindo apenas como índice para lookup – desperdício de espaço (alguém se preocupa com isso?). -Mais tabelas, mais complexidade para a elaboração de consultas – junções não são necessariamente intuitivas. (Não confundir: mais tabelas – não quer dizer, necessariamente, mais normalização.) Opções de mapeamento: vc perde espaço, desempenho ou semântica. Deve-se pensar nas possibilidades, ao invés de se fixar em regras. Desvantagem????

14 Mais relações e mais junções
Alternativas para o Mapeamento Relacionamentos Binários 1:1 Mapeamento alternativo Mulher = {Nome, Idade} Homem = {Nome, Idade} Namoro = {NomeH, NomeM, tempo} NomeM: UNIQUE e NOT NULL -O uso de mais tabelas leva à necessidade de junções, as quais são custosas. -Mais tabelas, mais chaves. Chaves nem sempre são dados úteis, servindo apenas como índice para lookup – desperdício de espaço (alguém se preocupa com isso?). -Mais tabelas, mais complexidade para a elaboração de consultas – junções não são necessariamente intuitivas. (Não confundir: mais tabelas – não quer dizer, necessariamente, mais normalização.) Opções de mapeamento: vc perde espaço, desempenho ou semântica. Deve-se pensar nas possibilidades, ao invés de se fixar em regras. Desvantagem???? Mais relações e mais junções

15 Papéis dos Relacionamentos
1 Anterior Diretor Sucede 1 Sucessor Nome Relacionamentos podem ser mais bem elucidados usando-se “papéis”, os quais têm implicações sobre o mapeamento relacional. Diretor = {Nome, NomeAntecessor}

16 Passo 4 Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade 1:N? Professor Ministra Disciplina 1 N Sigla Nome Nome Horário No. Créditos USP – ICMC – GBDI

17 Relacionamentos Binários
Cardinalidade 1:N Professor Disciplina Ministra 1 N Sigla Nome Nome Horário No. Créditos Professor = {Nome} Disciplina = {Sigla, Nome, Créditos, Professor, Horário}

18 Alternativas para o Mapeamento Relacionamentos Binários 1:N
Pouca Participação Considerações: poucos alunos monitoram alguma disciplina Disciplina Monitora Aluno 1 N Sigla Horário NUSP NCreditos Muitos valores nulos!! Nome Poucos alunos são monitores  muitos valores nulos. Mapeamento usual: Disciplina = {Sigla, NCréditos} Aluno = {NUSP, Nome, Sigla, Horário}

19 Alternativas para o Mapeamento Relacionamentos Binários 1:N
Mapeamento alternativo: Disciplina = {Sigla, NCréditos} Aluno = {NUSP, Nome} Monitora = {NUSP, Sigla, Horário} Obs.: com o mapeamento com 3 tabelas, não há como definir participação total Sigla deve ser NOT NULL. Três tabelas  alto custo. Critérios para escolha da modelagem lógica: - Semântica: muitos valores nulos? - Tipos e frequencias de consultas Obs: definir restrição de null para o atributo Sigla (em Monitora), para que ele não possa ter valor nulo

20 Passo 5 Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade M:N? Aluno Matriculado Disciplina M N Sigla NUSP Nome Nome Nota No. Créditos USP – ICMC – GBDI

21 Relacionamentos Binários –
Cardinalidade M:N Aluno Matriculado Disciplina M N Sigla NUSP Nome Nome Nota No. Créditos Aluno = {NUSP, Nome} Não há como mapear participação total em relacionamentos M para N. Matriculado = {NUSP, Sigla, Nota} Disciplina = {Sigla, Nome, Créditos}

22 Passo 6 Como mapear Conjuntos de Relacionamentos com grau > 2?
Fornecedor Projeto Fornece P N CodF CodP Qtde M Nome Início Peça Nome USP – ICMC – GBDI

23 Relacionamentos Ternários
Fornecedor Projeto Fornece P N CodF CodP Qtde M Nome Início Peça Projeto = {CodP, Início} Nome Fornecedor = {CodF, Nome} De maneira geral: o relacionamento ternário é mapeado para uma relação cuja chaves são as chaves das entidades que participam com cardinalidade múltipla, ao passo que as entidades que não possuem cardinalidade múltipla não participam com chave, apenas com atributos. A participação total só é possível para entidades com participação 1 que são mapeadas para a relação que corresponde ao relacionamento. Peça = {Nome} Fornece= {CodP, Nome, CodF, Qtde}

24 Relacionamentos Ternários
No. Créditos Nome NUSP Disciplina Sigla Monitora Aluno Horário 1 N Professor M Aluno = {NUSP, Nome} Monitora= {NUSP, NomeProf, Sigla, Horário} Disciplina = {Sigla, Nome, No.Créditos} Ok: um aluno pode monitorar várias disciplinas, e cada disciplina tem apenas um aluno como monitor. Questão: posso ter um mesmo aluno como monitor de duas disciplinas diferentes para um mesmo professor? Resposta: sim, assim com a semântica prevê. De maneira geral: o relacionamento ternário deve ser lido aos possíveis pares. Neste caso: 1) Um par professor-disciplina pode se relacionar com um único aluno Ex.: Prof.Caetano-BD  Mônica Prof.Caetano-Alg  Ana 2) Um par aluno-professor pode se relacionar com N diferentes disciplinas Ex.: Mônica-Prof.Caetano  BD Mônica-Prof.Caetano  Lógica 3) Um par aluno-disciplina pode se relacionar com M diferentes professores Ex.: Mônica-BD  Prof.Caetano Mônica-BD  Profa.Agma O mapeamento relacional deve satisfazer às três verificações para estar correto. Lembrando que não se está considerando semântica temporal. Portanto, o aluno monitor se refere ao semestre presente. No próximo esta informação é descartada e um novo registro de monitoria é inserido. Professor = {Nome}

25 Passo 7 Aluno Como mapear atributos multivalorados? NUSP Nro.Ser.Med.
Alergias Nomes dos Pais USP – ICMC – GBDI

26 Atributos Multivalorados
1a Opção de Mapeamento Aluno = {Nome, NSerMed} N.Ser.Med. Alergias Aluno Nome Alergias = {Nome, Alergia}

27 Atributos Multivalorados
2a Opção de Mapeamento Aluno valores possíveis: nome do pai nome da mãe NUSP Nome Nesse caso, eu devo conhecer o máximo de multivaloração, o que determinará o número de atributos. Nomes Pais Aluno = {NUSP, Nome, Pai, Mae}

28 Mapeamento entre Esquemas – Os 7 Passos do Procedimento
Mapear todos os CE Mapear todos os CE Fracas Mapear todos os CR de cardinalidade 1:1 Mapear todos os CR de cardinalidade 1:N Mapear todos os CR de cardinalidade N:N Mapear todos os CR de grau maior ou igual a 3 Mapear todos os atributos multivalorados USP – ICMC – GBDI

29 Exercício – mapear para o Modelo Relacional
CPF nome estado RG nome Atua 1 1 Representante Região 1 Pertence telefones endereço N N 1 nome Contato É Feito Cliente CNPJ 1 data É Feita valor N data N N Produto Pertence Venda nota cod preço qtde


Carregar ppt "SCC Bancos de Dados e Suas Aplicações"

Apresentações semelhantes


Anúncios Google