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

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

Projetando uma base de dados

Apresentações semelhantes


Apresentação em tema: "Projetando uma base de dados"— Transcrição da apresentação:

1 Projetando uma base de dados
Java Avançado Allynson Praxedes Soares Projetando uma base de dados

2 Modelo Relacional Chave candidata Chave Estrangeira
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 União, interseção e diferença
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

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. Ncli CPF end tel Pcod Nprod Vunit qtd tot 111 ABC 123 A Lápis 0,50 2 1,00 Ana 222 XYZ 456 B Caneta 3 3,00 João 333 XPT 789 C Régua 2,00 Pedro 444 KZZ Null 20 10,00 CPF  Ncli, End, Tel Pcod  Nprod, Vunit CPF, Pcod  Qtd, Tot

13 São exemplos de super-chave:
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: Ncli CPF Id Tel 111 100 123 Ana 222 300 456 Maria 777 400 Pedro 444 200 Null 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: Ncli CPF Id Tel 111 100 123 Ana 222 300 456 Maria 777 400 Pedro 444 200 Null São exemplos de Chaves-Candidatas: (CPF), (Id) Uma das Chaves-Candidatas deve ser “eleita” como PK

15 CPF, Pcod  Ncli, End, Tel, Nprod, Vunit
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. Ncli CPF end tel Pcod Nprod Vunit qtd tot 111 ABC 123 A Lápis 0,50 2 1,00 Ana 222 XYZ 456 B Caneta 3 3,00 C Régua 5 5,00 Pedro 444 KZZ Null 20 10,00 CPF, Pcod  Ncli, End, Tel, Nprod, Vunit CPF  Ncli, End, Tel Pcod  Nprod, Vunit

16 CPF não determina Qtd, Tot Pcod não determina Qtd, Tot
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. Ncli CPF end tel Pcod Nprod Vunit qtd tot 111 ABC 123 A Lápis 0,50 2 1,00 Ana 222 XYZ 456 B Caneta 3 3,00 João 333 XPT 789 C Régua 2,00 Pedro 444 KZZ Null 20 10,00 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 CodCargo  CNome, Salario
Normalização Dependência funcional Transitiva Mat Nome End CodCargo CNome Salario 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
Mat Nome End CodCargo CNome Salario 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 Aluno, Disciplina  Tutor
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. Aluno Disciplina Tutor 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


Carregar ppt "Projetando uma base de dados"

Apresentações semelhantes


Anúncios Google