Roteiro Normalização Luiz Henrique de Campos Merschmann Posicionamento Introdução Departamento de Computação Universidade Federal de Ouro Preto Processo de Normalização [email protected] www.decom.ufop.br/luiz Dependências Funcionais Formas Normais BCC321 - Banco de Dados I Introdução Ementa 1. Conceitos básicos em sistemas de banco de dados. 2. Conceitos e arquitetura de sistemas de banco de dados. Para que serve a normalização? 3. Modelagem conceitual de dados. 4. Modelo Relacional: conceitos básicos e restrições de integridade. 5. Linguagens: álgebra e cálculo relacional. 6. A linguagem SQL e o uso de APIs. I Na etapa de desenvolvimento de um sistema de banco de dados, serve para validar o nosso esquema lógico relacional. I É um instrumento que nos auxilia avaliar a qualidade dos esquemas de relação. 7. Projeto de banco de dados. 8. Normalização de banco de dados. 9. Noções de processamento de transações, concorrência e recuperação de falhas. 10. Aspectos de implementação de banco de dados. I É um processo que baseia-se no conceito de forma normal. Processo de Normalização Processo de Normalização I O processo de normalização foi proposto por Codd (1972). I Esse processo sujeita um esquema de relação a uma série de testes para certicar-se de que ele satisfaça uma certa forma normal. I Inicialmente Codd propôs três formas normais: I Primeira Forma Normal (1FN). I Segunda Forma Normal (2FN). I Terceira Forma Normal (3FN). Processo de Normalização I Uma denição mais forte da 3FN, chamada Forma Normal de Boyce-Codd (FNBC) foi proposta depois por Boyce e Codd. I Todas essas formas normais são baseadas nas dependências funcionais entre os atributos de uma relação. Processo de Normalização I Existem ainda uma Quarta Forma Normal (4FN) e uma Quinta Forma Normal (5FN). I A normalização de dados é um processo que visa: I Diz-se que um bom sistema de banco de dados relacional contém esquemas relação que atendem a, no mínimo, a terceira forma normal! I Os esquemas de relações que não alcançam certas condições (os testes de forma normal) são decompostos em esquemas de relações menores que passam nos testes. I Minimizar dados redundantes. I Minimizar anomalias de inserção, exclusão e atualização. Informações Redundantes em Tuplas e Anomalias de Atualização Informações Redundantes em Tuplas e Anomalias de Atualização I Exemplo de anomalia de inserção. I Exemplo de redundância. Como garantir que os valores de atributo do departamento 5 para uma nova tupla estarão coerentes com os valores correspondentes para o departamento 5 em outras tuplas? Dependências Funcionais Denições de Chaves e Atributos Participantes de Chaves I Denição: Se o valor de um conjunto de atributos A permite descobrir o valor de um outro conjunto B, dizemos que A determina funcionalmente (exclusivamente) B, ou que B depende de A (A → B ). I Os projetistas de um BD usarão sua compreensão da semântica dos atributos de uma relação para especicar as dependências funcionais. I Exemplo: Um CEP identica uma, e somente uma, localidade no Brasil. I Portanto, dizemos que existe uma dependência funcional entre os atributos CEP e Cidade (CEP → Cidade). I Se um esquema tiver mais de uma chave, cada uma delas é chamada chave candidata. I Os atributos pertencentes a chaves candidatas são chamados de atributos primários. Uso Prático das Formas Normais Primeira Forma Normal - 1FN I Uma relação está na 1FN se não contém relações aninhadas, ou seja, ela não deve conter atributos multivalorados e nem atributos compostos. I A forma normal de uma relação refere-se à condição da mais alta forma normal alcançada. I Exemplo: A relação DEPARTAMENTO não está na 1FN porque Dlocal não é um atributo atômico. I Embora existam várias formas normais de alto grau (4FN e 5FN), o projeto praticado hoje comercialmente dá particular atenção até a 3FN, BCNF ou 4FN. I As formas normais têm uma ordem e são dependentes, isto é, para se aplicar a segunda forma normal, deve-se obrigatoriamente ter aplicado a primeira e assim por diante. Primeira Forma Normal - 1FN Primeira Forma Normal - 1FN I Das três soluções anteriores a primeira é a melhor porque I Há três técnicas básicas para alcançar a 1FN: I Remover o atributo Dlocal que viola a 1FN e colocá-lo em uma relação separada (LOCALIZACAO_DEP) ao lado da chave primária (Dnumero) de DEPARTAMENTO. I Ampliar a chave de forma a separar as tuplas da relação original DEPARTAMENTO. Qual a desvantagem dessa solução? I Se um número máximo de valores (p.ex.,3) puder ser estabelecido para o atributo, substituir o atributo Dlocal por: Dlocal1, Dlocal2 e Dlocal3. Qual a desvantagem dessa solução? não causa redundância e é genérica. I Se escolhermos a segunda solução, ela será decomposta nos próximos passos da normalização, chegando à primeira solução. I 1o solução: relação fora da 1FN decomposta em duas relações na 1FN. Segunda Forma Normal - 2FN Segunda Forma Normal - 2FN I Exemplo: A relação FUNC_PROJ está na 1FN, mas não na 2FN. I Uma relação R está na 2NF se, e somente se: I Estiver na 1NF. I Não existirem atributos não primários parcialmente dependentes de alguma chave candidata de R. I Uma dependência funcional X→Y será uma dependência funcional parcial se após a remoção de qualquer atributo de X a dependência continuar existindo. A I As dependências funcionais DF2 e DF3 fazem Fnome, Projnome e Projlocal parcialmente dependentes da chave primária {Cpf,Projnumero} de FUNC_PROJ. Segunda Forma Normal - 2FN Segunda Forma Normal - 2FN I Exemplo de Anomalia: I A relação FUNC_PROJ poderá ser normalizada na 2NF por meio da criação de várias relações na 2NF. Alocação(Sigla,Turma,Sala,Créditos) Sigla,Turma Sigla → → Sala Créditos. Terceira Forma Normal - 3FN Terceira Forma Normal - 3FN I FUNC_DEP não está na 3FN em virtude da dependência transitiva de Cpf_gerente (e também Dnome) para Cpf via I Uma relação R está na 3FN se: I I Dnumero. Estiver na 2FN. Todos os seus atributos não primários são dependentes relação (DF1 e DF2). não-transitivos de uma chave candidata. I Em um esquema de relação R, X → Y I Solução: Decompor FUNC_DEP em dois esquemas de será uma dependência transitiva se existir um conjunto de atributos Z que não é nem chave candidata nem subconjunto de qualquer chave de R, e ambas X→Z e Z→Y forem asseguradas. Terceira Forma Normal - 3FN Forma Normal de Boyce-Codd (FNBC) I Exemplo de Anomalia: Alocação(Sigla,Turma,Sala,Prédio) I É considerada mais rígida que a 3FN. I Toda relação na FNBC também está na 3FN, mas o contrário não é necessariamente verdadeiro. I Uma relação R está na FNBC se: I Estiver na 2FN. I Todos os seus atributos são dependentes não-transitivos de uma chave candidata. Sigla,Turma Sala → → Prédio. Sala Forma Normal de Boyce-Codd (FNBC) Forma Normal de Boyce-Codd (FNBC) I Intuitivamente é fácil ver a necessidade de uma forma normal mais forte que a 3FN. I Solução: Decompor a relação LOTES1A. I Seja o seguinte exemplo: I Suponha duas chaves candidatas: N U M _P ROP RIEDADE e {M U N ICIP IO _N OM E, N U M _LOT E}. I Suponha que temos milhares de lotes de somente 2 municípios: Ouro Preto e Mariana. m2 . m2 . I Ouro Preto: lotes de 500, 600, ..., 1000 I Mariana: lotes de 1100, 1200, ... , 2000 I DF5: AREA I Para evitar redundância, a área de um lote que determina → MUNICIPIO_NOME. seu município pode ser representada por 16 tuplas em uma relação separada R(AREA, M U N ICIP IO_N OM E). Perguntas FIM