Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados Normalização de Dados – Parte I anderson fonseca Agenda Normalização de Dados – Dependência Funcional – 1ª Forma Normal – 2ª Forma Normal – 3ª Forma Normal Normalização de Dados Série de passos que se segue no projeto de um banco de dados que permite um armazenamento consistente e um eficiente acesso aos dados em um banco de dados relacional. Motivação Reduzir a redundância de dados e as chances dos dados se tornarem inconsistentes Normalização de Dados Diz-se que uma tabela num banco de dados relacional está numa certa forma normal se satisfaz certas condições. O trabalho original de Edgar F. Codd definiu três dessas formas, mas existem hoje outras formas normais geralmente aceitas. Cada forma normal representa uma condição mais forte que a que a precede na lista. Para a maioria dos efeitos práticos, considera-se que as bases de dados estão normalizadas se aderirem à terceira forma normal Normalização de Dados Primeira Forma Normal (ou 1FN) requer que todos os valores de colunas em uma tabela, sejam atômicos (ex., um número é um átomo, enquanto uma lista ou um conjunto não o são). Por exemplo, a normalização elimina grupos repetidos pondo-os cada um em uma tabela separada, conectando- os com uma chave primária ou estrangeira. Segunda Forma Normal (ou 2FN) requer que não haja dependência funcional não-trivial de um atributo que não seja a chave, em parte da chave candidata. Terceira Forma Normal (ou 3FN) requer não haver dependências funcionais não-triviais de atributos que não sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata. Normalização de Dados Primeira Forma Normal (FN1) Uma relação está na primeira forma normal se os valores de seus atributos são atômicos (simples, indivisíveis) e monovalorados. Em outras palavras, FN1 não permite “relações dentro de relações” ou “relações como atributos de tuplas”. Uma tabela está na primeira forma normal quando seus atributos não contêm grupos de repetição. Normalização de Dados Primeira Forma Normal (FN1) Esta tabela logo acima não está na primeira forma normal porque apresenta grupos de repetição (possibilidade de mais de um telefone por cliente). Normalização de Dados Primeira Forma Normal (FN1) Já estas tabelas, Cliente e Telefone, estão na primeira forma normal. Normalização de Dados Primeira Forma Normal (FN1) Normalização de Dados Primeira Forma Normal (FN1) Normalização de Dados Primeira Forma Normal (FN1) Proj(CodProj, Tipo, Descr); Emp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl); Normalização de Dados Dependência Funcional Um atributo B possui uma dependência funcional do atributo A se, para cada valor do atributo A, existe exatamente um único valor do atributo B. A dependência funcional é representada por A → B. Exemplo: Observe os conjuntos: CPF Nome 1 - José; 2 - João; 3 - Rui; 4 – Manoel Observe que existe uma dependência entre os valores dos conjuntos, ou seja, nome é função do CPF, se eu estiver com numero do CPF, poderei encontrar o nome da pessoa correspondente. CPF → Nome Leia da seguinte maneira: - com um número de CPF posso encontrar nome da pessoa, ou - nome depende da funcionalidade do CPF. Normalização de Dados Dependência Funcional Salário depende funcionalmente do Código = Código Salário Normalização de Dados Dependência Funcional (A,B) C A D Normalização de Dados Segunda Forma Normal (FN2) Uma relação está na FN2 quando duas condições são satisfeitas: 1 - A relação está na 1FN; 2 - Todo atributo da tabela seja dependente funcional da chave completa e não de parte da chave. Ou seja, Todos os atributos não-chave dependem funcionalmente de toda a chave primária, isto é, cada atributo não-chave não poderá ser dependente (dependência parcial) de apenas parte da chave. Normalização de Dados Segunda Forma Normal (FN2) Maior independência de dados (não há mais repetição de empregados por projeto, por exemplo) Normalização de Dados Segunda Forma Normal (FN2) Normalização de Dados Terceira Forma Normal (FN3) A 3FN exige que não existam atributos transitivamente dependentes da chave. Um exemplo de uma tabela 2FN que não atende o critério para 3FN é: Normalização de Dados Terceira Forma Normal (FN3) Normalização de Dados Terceira Forma Normal (FN3) A tabela não está na terceira forma normal porque o atributo "data de nascimento do vencedor" é dependente transitivamente de {Torneio, Ano} via o atributo "Vencedor". Normalização de Dados Terceira Forma Normal (FN3) As duas tabelas estão na terceira forma normal. Normalização de Dados Terceira Forma Normal (FN3) Normalize até a 3FN a seguinte estrutura de dados: Atividade Normalize até a 3FN a seguinte estrutura de dados: Atividade Dúvidas???
Compartilhar