1 / 36

Projetando uma base de dados

Java Avançado. Projetando uma base de dados. Modelo Relacional. Chave candidata Um conjunto de atributos pode identificar uma única ocorrência em uma tabela, mas, um atributo deve ser identificado como chave primária. Chave Estrangeira

tuan
Download Presentation

Projetando uma base de dados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Projetando uma base de dados

  2. Modelo Relacional • Chave candidata • Um conjunto de atributos pode identificar uma única ocorrência em uma tabela, mas, um atributo deve ser identificado como chave primária. • Chave Estrangeira • Um atributo que corresponde a uma chave primária em uma relação.

  3. Modelo Relacional • Restrições de integridade • Integridade de Domínio: diz respeito ao controle sintático e semântico de um dado e faz referência ao tipo de definição do domínio. • Integridade de Entidade: diz respeito aos valores de chave primária que devem ser únicos e não nulos. • Integridade Referencial: diz respeito aos valores de um atributo chave estrangeira e os valores do atributo chave primária correspondente.

  4. Álgebra Relacional • Operadores clássicos sobre conjuntos • União, interseção e diferença • Operadores relacionais • Seleção, projeção, junção e divisão

  5. Álgebra relacional • Seleção e projeção

  6. Álgebra Relacional Junção

  7. Álgebra Relacional • Divisão

  8. Normalização • As formas normais que serão trabalhadas: • 1 NF • 2 NF • 3 NF • 4 NF

  9. Normalização Esta tabela está mal projetada! • 1) Se Pelé mudar de endereço ? (anomalia de atualização) • 2)Um novo esporte para Pelé ? (anomalia de inclusão) • 3) Retirar Pelé do Banco de Dados (anomalia de remoção)

  10. Normalização • Idealmente: Mas o atributo habilidade não é atômico, o que é possível fazer dentro do modelo relacional?

  11. Normalização • Primeira forma normal: • Uma relação está na primeira forma normal, quando todos os seus atributos são atômicos. Atleta Habilidade

  12. Normalização • Dependência funcional • Um atributo é funcionalmente dependente de outro se um valor do primeiro corresponde a um único valor do segundo. Pcod  Nprod, Vunit CPF, Pcod  Qtd, Tot CPF  Ncli, End, Tel

  13. Normalização • Super Chave Uma super-chave de uma relação R é qualquer subconjunto dos atributos de R cujos valores não se repetem em R. Exemplo: São exemplos de super-chave: (CPF, Id), (CPF, Tel), (CPF, Ncli), (Id,Ncli), (Id, Id, Tel) (CPF), (Id)

  14. Normalização • Chave candidata Uma chave candidata de uma relação R é uma super-chave que possua a menor quantidade possível de atributos. Exemplo: São exemplos de Chaves-Candidatas: (CPF), (Id) Uma das Chaves-Candidatas deve ser “eleita” como PK

  15. Normalização • Segunda forma normal • Uma relação está na Segunda Forma Normal (2NF) se ela está na 1NF e todo atributo não chave é plenamente dependente da chave primária. CPF, Pcod  Ncli, End, Tel, Nprod, Vunit CPF  Ncli, End, Tel Pcod  Nprod, Vunit

  16. Normalização • Dependência funcional Total • A, B, C => D (D é totalmente funcionalmente dependente de {A, B, C}) se para todo valor de {A, B, C} só existe um valor de D, e se D não é funcionalmente dependente de A, ou B, ou C. CPF, Pcod  Qtd, Tot CPF não determina Qtd, Tot Pcod não determina Qtd, Tot

  17. Normalização • Dependência funcional Transitiva • Ocorre quando Y depende de X e Z depende de Y. • Logo, Z também depende de X.

  18. Normalização • Dependência funcional Transitiva A relação Funcionário está na 2FN pois possui somente atributos atômicos e não apresenta dependência parcial da PK. CodCargo  CNome, Salario Mat  CodCargo Há dependência transitiva da PK !!!

  19. Normalização • Terceira forma normal • Uma relação está na Terceira Forma Normal (3NF) se ela está na 2NF e nenhum atributo não-chave é transitivamente dependente da chave primária.

  20. Normalização Exemplo: Relação FUNCIONARIO A relação Funcionario não está na 3FN pois possui dependência transitiva com relação à PK. Pergunta-se: como normalizá-la para a 3FN ? Separando a relação em duas ou mais de forma a eliminar a dependência transitiva: Funcionario(Mat, Nome, End, CodCargo) Cargo(Cod, CNome, Salario)

  21. Normalização • Forma normal de Boyce-Codd • Uma relação está na Forma Normal de Boyce/Codd (BCNF) se está na 3FN e todo determinante é uma chave candidata. Tutor  Disciplina Há dependência transitiva da PK !!! Aluno, Disciplina  Tutor Tutoria(Tutor, Disciplina) Cursa(Tutor, Aluno)

  22. Normalização • Dependência Multivalorada • Dada uma relação R com atributos A, B, C, existe uma dependência multivalorada do atributo A no atributo B (A à B) se um valor de A é associado a uma coleção específica de valores de B, independente de quaisquer valores de C.

  23. Normalização • Dependência Multivalorada Tem-se as dependências multivaloradas Nome | Matéria e Nome | Orientando.

  24. Normalização • Dependência Multivalorada • > A DMV só existe se R tem no mínimo 3 atributos • > Dada R(A, B, C), a DMV existe se também existir. Daí a notação:

  25. Normalização • Quarta forma normal • Uma relação está na Quarta Forma Normal (4NF) se ela está na 3NF (BCNF) e não existem dependências multivaloradas. • Como corrigir? • Separar a relação em relações, cada uma contendo o atributo (A) que multidetermina os outros (B, C), ou seja, R1 (A, B) e R2 (A, C).

  26. Normalização • Quarta forma normal

  27. Modelo Relacional • Exercício

  28. Modelo Relacional • Passo 1: Para cada entidade regular E no esquema ER, criar uma relação R que inclui todos os atributos de R. • Exemplo:

  29. Modelo Relacional • Passo 2: Para cada entidade fraca W no esquema E-R que tenha como entidade proprietária E, criar uma relação R e incluir todos os atributos de W como atributos de R, incluir o(s) atributo(s) chave primária da relação proprietária E. • A chave primária de R é a combinação da chave primária de E e da chave parcial de W.

  30. Modelo Relacional • Passo 3: • Para cada relacionamento R de 1:1 no esquema ER, • identificar as relações das entidades participando do relacionamento R, • escolher uma das relações e incluir como chave estrangeira, a chave primária da outra relação, • incluir todos os atributos do relacionamento na relação escolhida.

  31. Modelo Relacional Note que um mapeamento alternativo de um relacionamento 1:1 é possível juntando as duas entidades em uma única relação. Isto é apropriado quando as entidades não participam de outros relacionamentos.

  32. Modelo Relacional • Passo 4: • Para cada relacionamento regular (não fraco) 1:N, • identificar a relação S que representa a entidade do lado N, • incluir como chave estrangeira a chave primária da relação que representa a entidade do lado 1, • incluir os atributos do relacionamento em S.

  33. Modelo Relacional • Passo 5: • Para cada relacionamento R de M:N, • criar uma nova relação para representar R, • incluir como chave estrangeira as chaves primárias das relações que participam em R, estas chaves combinadas formarão a chave primária da relação, • incluir também eventuais atributos de R.

  34. Normalização • Passo 6: • Para cada atributo multivalorado A, criar uma nova relação R, incluindo um atributo correspondendo a A mais a chave primária K da relação que tem A como atributo. • A chave primária de R é a combinação de A e K.

  35. Modelo Relacional

  36. Ferramentas Case • DB Design • Desenvolver o modelo acima nesta ferramenta case e criar o script SQL

More Related