12.07.2015 Views

dependência funcional

dependência funcional

dependência funcional

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Prof. Fábio B. Lealemail: db1.fortium@gmail.comblog: http://fortium.edu.br/blog/fabio_barros


Normalização Processo que transforma um esquema de dados qualquer emum modelo relacional Normalização é executada para todos esquemas dedocumentos disponíveis


Objetivos◦ Eliminar redundâncias de dados◦ Eliminar estruturas inexistentes (atributos multivalorados)◦ Eliminar anomalias• Inserção• Deleção• Alteração


Documento Exemplo


Primeiro passo◦ Tabela não normalizada◦ Tabela não primeira-forma-normal◦ Possui uma ou mais tabelas aninhadas◦ Utilizaremos a notação ÑN Tabela aninhada◦ Coluna que, ao invés de conter valores atômicos, contém tabelas aninhadas◦ Grupo repetido◦ Coluna multivalorada◦ Coluna não-atômica


Exemplo de tabela ÑN com tabela aninhadaEsquemaProj(CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl))


Há diversas formas normais, cada vez mais rígidas, paraverificar tabelas relacionais:◦ Primeira Forma Normal (1FN)◦ Segunda Forma Normal (2FN)◦ Terceira Forma Normal (3FN)◦ Quarta Forma Normal (4FN)◦ Quinta Forma Norma (5FN)


Representação gráfica da normalização


Conceito para cada forma normal


Primeira Forma Normal (1FN)◦ Uma tabela está na primeira forma normal, quando ela não contém tabelasaninhadas◦ Não possui colunas multivaloradas (apenas colunas simples e indivisíveis) Existem duas maneiras:◦ Construir uma tabela única com redundância de dados• Do ponto de vista de “corretude” é a melhor opção.◦ Construir uma tabela para cada tabela aninhada• Podem ser perdidas as relações entre os dados(Do ponto de vista prático iremos utilizar essa notação paraentender o esquema de normalização).


Exemplo de 1FN utilizando uma tabela única comredundância de dados


Exemplo de 1FN utilizando uma tabela para cada tabelaaninhada considerando sua chave primária, bem como ascolunas de cada tabela


Utilizando o segundo método, obtemos:


Tabelas após a 1FN


Exercício 5.1 Exercício 5.2


Para entender 2FN e 3FN:◦ É necessário compreender o conceito de dependência <strong>funcional</strong>.


Dependência <strong>funcional</strong>Observe o conjunto:◦ Existe uma dependência entre os valores dos conjuntos, que pode ser expressa pela funçãof(CPF)=nome. Ou seja, nome é função do CPF, ou seja, se existir um número de CPF, seráencontrado o nome da pessoa correspondente. Esta dependência é expressa no Modelo Relacionalda seguinte maneira:• CPF -> NOMECom um número de CPF é possível encontrar o nome da pessoa, ou:Nome depende <strong>funcional</strong>mente do CPF.


Dependência <strong>funcional</strong>◦ SeparaçãoA -> BC, então, A -> B e A -> CExemplo: Com o CPF, encontra-se o nome e o endereço, ou seja,posso encontrar somente o nome ou somente o endereço.


Dependência <strong>funcional</strong>◦ AcumulaçãoA -> B, então, AC -> BExemplo: Com o CPF, encontra-se o endereço, então, com o CPFmais a idade, encontra-se o endereço também.


Dependência <strong>funcional</strong>◦ TransitividadeA -> B e B -> C, então, A -> CExemplo: CPF -> CodCidade eCodCidade -> NomeCidade, então,CPF -> NomeCidade


Dependência <strong>funcional</strong>◦ Pseudo-TransitividadeA -> B e BC -> D, então, AC -> DExemplo: CPF -> CodFuncionário eCodFuncionario, mês -> SalárioFuncio, então, CPF, mês ->SalárioFuncio


Dependência <strong>funcional</strong> parcial◦ Uma dependência (<strong>funcional</strong>) parcial ocorre quando uma colunadepende apenas de parte de uma chave primária composta


Segunda forma normal (2FN)◦ Uma tabela encontra-se na segunda forma normal, quando, além deestar na 1FN, não contém dependências parciais.


Dependência Funcional Parcial Dependência Funcional


Passagem à 2FNTabelas com apenas uma coluna de chave primária ou todas as colunas fazemparte da chave primária já está na 2FN


Tabelas após a 2FN


Terceira forma normal (3FN)Uma tabela encontra-se na terceira forma normal, quando, além deestar na 2FN, não contém dependências transitivas.


Tabelas após a 3FN


Para a maioria dos documentos e arquivos:◦ A decomposição até a 3FN é suficiente◦ Na literatura, aparecem outras formas normais:• FNBC (Forma normal de Boyce/Codd). Utiliza a Chave candidata.Substitui a 3FN (não abordaremos!)• 4FN• 5FN


Deverá estar na 3FN e as dependências multivaloradasdependem da chave.


Resolução intuitiva


De forma simplificada, pode-se dizer que uma relação está emquinta forma normal quando seu conteúdo não pode serreconstituído a partir de várias outras tabelasSe um vendedor vende um certo tipo de veículo e ele representa o fabricante daquele tipode veículo, então ele vende aquele tipo de veículo para aquele fabricante (regra desimetria), a relação acima pode ser decomposta em três outras relações, e portanto nãoestá na 5NF.


Transformando em 5FN, teremos: As relações ao lado não podemser decompostas, estando assimna 5NF.Para recompor a mesmainformação serão necessáriosas três relações.


A 5NF trata de fatos multivalorados dependentes,enquanto que a 4NF trata de fatos independentes A 4NF decompõe uma relação aos pares (substitui umarelação por duas de suas projeções – em pares), enquantoque a 5NF é utilizada quando uma decomposição aospares não é possível, como no caso anterior (a relação foidecomposta em três outras, sem perdas)


Junção de tabelas de forma a melhorar o desempenho aoacesso dos dados Exemplo: Data warehouse Realiza consultas de forma transparente; isto é, ele nãoprecisa saber o nome de tabelas de índices, ou tabelasintermediárias, resultantes da normalização


Exercício 5.3. NormalizarÑNpaciente (nro_paciente, nome_paciente, nro_quarto, descrição_quarto,nro_cômodos_quarto, (cod_médico, nome_médico, fone_médico))ÑNaluno (nro_aluno, nome_aluno, nro_créditos, nro_depto, nome_depto,(nro_curso, descrição_curso, ano_ingresso))


HEUSER, Carlos Alberto. Projeto de Banco de Dados. PortoAlegre: Sagra Luzzatto, 2001. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.Sistemas de Banco de Dados. 3ª. Ed. São Paulo: Makron Books,1999.DATE, C. J. Introdução aos Sistemas de Bancos de Dados. Riode Janeiro: Campus, 2004.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!