Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem de dados – Profª. Thereza Gondim AULA 8 Dependência funcional Dependência funcional é o relacionamento que existe entre os atributos. Determina uma restrição entre dois conjuntos de atributos de um BDRelacional. Denotado pelo símbolo , onde X Y significa que o atributo X determinafuncionalmente o atributo Y ou ainda, o atributo Y é dependente funcionaldo atributo X. Um atributo ou conjunto de atributos é determinante de outros atributos quando os identifica de modo unívoco. Os atributos identificados de modo unívoco por um outro atributo, ou conjunto de atributos, são funcionalmente dependentes deste último. Considerando a seguinte entidade: ALUNOS (CodAluno, Nome, Morada, CodDisciplina, Disciplina) Temos que: - Nome e Morada são dependentes de CodAluno - Disciplina é dependente de CodDisciplina Exemplos: CPF NOME_FUNCIONARIO CPF determina funcionalmente NOME_FUNCIONARIO; NOME_FUNCIONARIO é dependente funcional de CPF Informalmente: Conhecido o valor de um CPF eu consigo determinar qual o NOME_FUNCIONARIO (único) com o qual este CPF está relacionado. 2ª Forma normal (2ª FN) Uma tabela encontra-se na 2ª FN se: • estiver na primeira forma normal (1FN); • todos os atributos que não pertencem à chave dependem da chave através de uma dependência funcional elementar, isto é, dependem da totalidade da chave e não de um dos seus atributos ou subconjuntos isoladamente. Esta condição evidentemente só se aplica no caso da chave ser composta por mais de um atributo. Caso a chave seja constituída por um único atributo, chave simples, a condição imposta é que os restantes atributos dependam funcionalmente da chave. Vejamos o seguinte exemplo: Imaginemos uma tabela destinada a registrar a informação sobre as encomendas efetuadas por clientes e os produtos nelas contidos: ENCOMENDAS (Nº Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada, CodProduto, Designação, PreçoUnitário, Quantidade, TotalProd) • A tabela encontra-se na 1ª FN porque todos os campos são atômicos e não existe repetição de valores; • O campo Nº Encomenda identifica cada encomenda feita por um cliente; • De Nº Encomenda dependem os campos: DataEnc, TotalEnc, CodCliente, NomeCli e Morada; • De CodProduto dependem os campos: Designação, PreçoUnitário, Quantidade, TotalProd; A tabela não se encontra na 2ª FN porque existem campos que dependem de partes da chave. Assim, aplicando a normalização, obtêm-se as seguintes tabelas: ENCOMENDAS (Nº Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada) DETALHE (Nº Encomenda, CodProduto, Designação, PreçoUnitário, Quantidade, TotalProd) • A tabela ENCOMENDAS encontra-se na 2ª FN, visto já estar na 1ª FN e ter um chave simples, o que implica que todos os atributos não-chave dependem da totalidade da chave; • A tabela DETALHE não se encontra na 2ª FN, porque existem alguns atributos não-chave que dependem funcionalmente de parte da chave; • De Nº Encomenda dependem os campos: CodProduto, Quantidade e TotalProd; • De CodProduto dependem os campos: CodProduto, Designação, PreçoUnitário. Assim, obtemos as seguintes tabelas: ENCOMENDAS (Nº Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada) DETALHE (Nº Encomenda, CodProduto, Quantidade, TotalProd) PRODUTOS (CodProduto, Designação, PreçoUnitário) 3ª Forma normal (3ª FN) - Dependência Transitiva Não deve haver Dependência Transitiva. Quando um campo que não participa da chave primaria depende outro que também não participa.
Compartilhar