Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Base de Dados - Conversão E-A para Esquema Relacional

18 visualizaciones

Publicado el

Base de Dados - Conversão E-A para Esquema Relacional

Publicado en: Educación
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Base de Dados - Conversão E-A para Esquema Relacional

  1. 1. Base de Dados Conversão E-A para Esquema Relacional 2018/2019
  2. 2. TPC2 • Considere o seguinte modelo relacional: • Cliente (ccidadao, nif, nome, rua cidade) • Produto (idproduto, nome, descricao, preco) • Encomenda (ccidadao, idproduto, quantia) a) Quais as superchaves, chaves candidatas e uma possível chave primaria para cada relação? b) Escreva as instruções SQL para criar o esquema das relações acima indicadas escolhendo os domínios de cada atributo que lhe pareçam mais indicados
  3. 3. TPC2 (cont) c) Escreva as instruções que permitem inserir os dados a. Cliente Pedro Santos CC-12345678, NIF 123123123, habitante na Rua do Congo em Lisboa, efetuou uma encomenda de 3 maçãs (preço unitário 0,10€) e 2 frangos (p unitário 5,48€) b. Cliente Joana Martins CC-87654321, NIF 456456456, habitante na Rua da Madalena em Lisboa efetuou uma encomenda de 1 garrada de vinho tinto (preço unit 4€) e um pacote de fraldas (p.u. 20€) d) Escreva as seguintes querys: a. Obter a lista de todos os produtos b. Obter a lista de todas as encomendas diferentes e respetivo valor total c. Obter a lista de produtos encomendados pelo cliente Pedro Santos
  4. 4. Revisão • Diagramas E-A • Modelo Relacional • Introdução ao SQL
  5. 5. Sumário • Conversão de E-A para Esquema Relacional • Entidades • Associações • Obrigatoriedade • Especialização • Agregação
  6. 6. Conversão de E-A para Esquema Relacional • Uma BD definida num diagrama EA pode ser representada por uma coleção de esquemas relacionais • Para cada entidade e relação existe um esquema ao qual se atribui o nome da entidade ou associação correspondente • Cada esquema tem um número de colunas (geralmente correspondente aos atributos) com nomes únicos
  7. 7. Representação de entidades fortes • Uma entidade forte é representada por esquema com os mesmos atributos empregado(cc, nome) departamento(did, nome, orçamento) Empregado Departamentotrabalha cc did nome N 1 nome orçamento desde
  8. 8. Representação de entidades fracas • Uma entidade fraca representa-se por uma tabela que inclui uma coluna com a chave primária da entidade forte correspondente turma(tcodigo, dcodigo, numero, ano) dcodigo: FK(disciplina) turma disciplinapertence código código nome N 1 numero ano
  9. 9. Representação de associações M:N • Representado por um esquema constituido por atributos para as chaves primárias das duas entidades participantes, acrescido dos restantes atributos descritivos trabalha(cc, did, desde) cc: FK(empregado) did: FK(departamento) • Relações complexas? Empregado Departamentotrabalha cc did nome M N nome orçamento desde
  10. 10. Representação associações 1:N/N:1/1:1 • Representa-se utilizando como chave primária o atributo chave primária do lado “muitos” (N) trabalha(cc, did, desde) cc: FK(empregado) did: FK(departamento) • Em associações um para um (1:1) pode-se escolher qualquer um dos lados Empregado Departamentotrabalha cc did nome N 1 nome orçamento desde
  11. 11. Associações 1:N com obrigatoriedade • Associações 1:N/N:1 com obrigatoriedade de participação do lado N representa-se adicionando um atributo extra ao lado N com a chave primária do lado 1 empregado(cc, nome, did) did: FK(departamento) Empregado Departamentotrabalha cc did nome N 1 nome orçamento desde
  12. 12. Associações M:N com obrigatoriedade • Não é possivel representar: necessário usar uma restrição de integridade genérica empregado(cc, nome) IC-1: todo o cc em empregado tem de estar presente em trabalha trabalha(cc, did, desde) cc: FK(empregado) did: FK(departamento) Empregado Departamentotrabalha cc did nome M N nome orçamento desde
  13. 13. Especialização Empregado(cc, nome) Freelancer(cc, horas_trabalho, tarifa_horario) cc: FK(empregado) Contratado(cc, salario_mensal) cc: FK(empregado) empregado CC nome IS-A freelancer tarifa_horária horas_trabalho contratado salário_mensal Inconveniente: obter informação sobre um empregado implica aceder a duas relações
  14. 14. Especialização (alternativa) Empregado(cc, nome) Freelancer(cc, nome, horas_trabalho, tarifa_horario) cc: FK(empregado) Contratado(cc, nome, salario_mensal) cc: FK(empregado) empregado CC nome IS-A freelancer tarifa_horária horas_trabalho contratado salário_mensal Inconveniente: redundancia de dados (problemas discutidos mais tarde)
  15. 15. Especialização com obrigatoriedade Empregado(cc, nome) IC-1: todos os cc devem aparecer em pelo menos num de freelancer e contratado empregado CC nome IS-A freelancer tarifa_horária horas_trabalho contratado salário_mensal
  16. 16. Especialização com obrigatoriedade (alternativa) Freelancer(cc, nome, horas_trabalho, tarifa_horario) Contratado(cc, nome, salario_mensal) • Possivel porque todas as entidades em empregado estão em freelancer ou contratado empregado CC nome IS-A freelancer tarifa_horária horas_trabalho contratado salário_mensal
  17. 17. Especialização disjunta empregado(cc, nome) IC-1: cc pode aparecer em freelancer ou contratado mas não em ambas empregado CC nome IS-A freelancer tarifa_horária horas_trabalho contratado salário_mensal disjoint
  18. 18. Agregação • Criar um esquema com: chave primária da associação agregada, chave primária das entidades associadas e atributos descritivos Monitoriza(cc, pid, did, desde, ate) cc: FK(empregado) pid, did: FK(executa) Empregado CC nome até monitoriza Projeto Departamento desde pid inicio did nome executa
  19. 19. Perguntas?
  20. 20. Trabalho Prático – Folha 3

×