360 likes | 527 Views
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
E N D
Allynson Praxedes Soares aps2@cin.ufpe.br 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 • Um atributo que corresponde a uma chave primária em uma relação.
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.
Á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
Álgebra relacional • Seleção e projeção
Álgebra Relacional Junção
Álgebra Relacional • Divisão
Normalização • As formas normais que serão trabalhadas: • 1 NF • 2 NF • 3 NF • 4 NF
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)
Normalização • Idealmente: Mas o atributo habilidade não é atômico, o que é possível fazer dentro do modelo relacional?
Normalização • Primeira forma normal: • Uma relação está na primeira forma normal, quando todos os seus atributos são atômicos. Atleta Habilidade
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
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)
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
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
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
Normalização • Dependência funcional Transitiva • Ocorre quando Y depende de X e Z depende de Y. • Logo, Z também depende de X.
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 !!!
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.
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)
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)
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.
Normalização • Dependência Multivalorada Tem-se as dependências multivaloradas Nome | Matéria e Nome | Orientando.
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:
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).
Normalização • Quarta forma normal
Modelo Relacional • Exercício
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:
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.
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.
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.
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.
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.
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.
Ferramentas Case • DB Design • Desenvolver o modelo acima nesta ferramenta case e criar o script SQL