Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Normalização de Relações Prof. Luiz Antônio Vivacqua C. Meyer (la.vivacqua@gmail.com) Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados �Normalização de Relações • O que é ? – Processo para produzir um projeto lógico a partir do conhecimento de uma implementação existente em algum meio físico tal como um arquivo, formulário e relatório. • Como é feito? – É um processo formal que avalia cada relação sob os critérios de cada forma normal e as decompõe, caso seja necessário. • Objetivo? – O objetivo a ser alcançado é substituir um conjunto de relações por outro minimizando redundâncias e anomalias de atualização (inclusão, alteração e exclusão). Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados � Normalização • Os esquemas de relações que não atendam a certas condições (definidas pelas formas normais) são decompostos em esquemas de relações menores que possuem as propriedades desejadas. • O procedimento de normalização proporciona ao projetista do banco de dados: • Uma estrutura formal para a análise de esquemas de relações com base em suas chaves e nas dependências funcionais de seus atributos. • Uma série de testes para garantir que o esquema do banco de dados atinja o grau de normalização desejado. Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados � Normalização • Embora existam varias formas normais de alto grau, como as 4FN e 5FN, a utilidade prática destas formas normais é questionável devido as restrições as quais são baseadas serem difíceis de entendidas e detectadas pelos projetistas e usuários. • Em termos práticos, o usual é dar atenção a normalização até as formas normais 3FN ou BCNF. Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados • 1A FORMA NORMAL (1FN): É considerada parte da definição formal de uma relação no modelo relacional. Uma relação está na Primeira Forma Normal (1FN) se todos os atributos contiverem valores atômicos e não existirem tuplas duplicadas. • Ou seja, a 1FN impede que haja ‘relações dentro de relações’ e atributos multivalorados, como por exemplo, um vetor. Prof. Luiz A. Vivacqua C. Meyer 6Prof. Luiz Vivacqua Projeto de Banco de Dados � Considere o esquema de tabela INSCRIÇÃO, em que um sócio pode estar matriculado em várias atividades esportivas. � INSCRIÇÃO (matricula, nome, {atividade (modalidade, preço)}), � {( )} indica que o atributo atividade é multivalorado e composto. INSCRIÇÃO Atividade Matricula Nome Modalidade Preço 1267 João Ribeiro natação musculação pilates 150,00 120,00 150,00 6590 Maria Ramos natação pilates 150,00 150,00 8786 Antonio Vieira Judô 80,00 0324 Ana Rocha musculação pilates 120,00 150,00 Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados A tabela INSCRIÇÃO não está na 1FN, pois as colunas modalidade e preço não possuem valores atômicos. Processo para obter a 1FN: • Eliminação dos atributos multivalorados. • Determinação da nova chave primária: Pk (matricula, modalidade) Anomalias Existentes: 1. Redundância. 2. Se Antonio Vieira deixar de ser sócio, perde-se a informação que judô custa 80,00. 3. Se quisermos incluir uma nova modalidade, por exemplo, hidroginástica, é preciso também incluir algum sócio para a modalidade. Matricula Nome Modalidade Preço 1267 João Ribeiro Natação 150,00 1267 João Ribeiro Musculação 120,00 1267 João Ribeiro Pilates 150,00 6590 Maria Ramos Natação 150,00 6590 Maria Ramos Pilates 150,00 8786 Antonio Vieira Judô 80,00 0324 Ana Rocha Musculação 120,00 0324 Ana Rocha Pilates 150,00 Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Uma relação está na Segunda Forma Normal (2FN) se está na Primeira Forma Normal e não existir dependência funcional parcial entre a chave e os demais atributos não primários. Dependência Funcional: É um relacionamento entre pelo menos dois atributos. Por exemplo, dado uma relação R (A, B, C, D), onde A, B, C, D são atributos, ocorre uma dependência funcional entre atributos de R se conhecendo o valor de um atributo, consegue-se determinar um único valor de outro atributo. Notação: A->C Atributo não primário: atributo que NÃO é parte de uma chave candidata. Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados �Dependência Funcional Código Nome Cidade 10 Jurídico Rio de Janeiro 20 Pessoal Rio de Janeiro 30 Financeiro São Paulo Dependências Funcionais:? Exemplo: Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Dependência Funcional OBS1: Se X-> (Y,Z), então X->Y e X->Z Se (X,Y) -> Z não implica em X->Z ou Y->Z. OBS2: Uma coluna depende parcialmente da chave se para que seu valor seja determinado não é necessário conhecer a chave como um todo, mas sim somente uma parte da chave. OBS3: Se a chave da relação é definida por somente uma coluna, então a relação está na 2FN. Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Processo para obtenção da 2FN: 1 – Para as colunas que não fazem parte da chave analisar se o seu valor é determinado por parte ou totalidade da chave. INSCRIÇÃO Matricula Nome Modalidade Preço 1267 João Ribeiro Natação 150,00 1267 João Ribeiro Musculação 120,00 1267 João Ribeiro Pilates 150,00 6590 Maria Ramos Natação 150,00 6590 Maria Ramos Pilates 150,00 8786 Antonio Vieira Judô 80,00 0324 Ana Rocha Musculação 120,00 0324 Ana Rocha Pilates 150,00 Análise das dependências funcionais: Matricula -> nome modalidade-> preço Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados 2 – As colunas que são dependentes funcionais parciais da Pk formarão novas tabelas cuja chave primária será à parte da chave de qual dependem. SÓCIO Ana Rocha0324 Antônio Vieira8786 Maria Ramos6590 João Ribeiro1267 nomematricula 80,00Judô 150,00Pilates 120,00Musculação 150,00Natação preçomodalidade ATIVIDADE Pk (matricula) Pk (modalidade) Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados 3 – As colunas com dependência funcional parcial são removidas da relação original INSCRIÇÃO Pilates0324 Musculação0324 Judô8786 Pilates6590 Natação6590 Pilates1267 Musculação1267 Natação1267 ModalidadeMatricula Pk (matricula, modalidade) Esquema final na 2FN: Inscrição (matricula, modalidade) Sócio (matricula, nome) Atividade (modalidade, preço) Obs: Anomalias Anteriormente Citadas Resolvidas Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Uma relação está na Terceira Forma Normal se está na Segunda Forma Normal, e não existir dependência funcional entre atributos não primários que não pertencem chave. Exemplo: Um cliente mora em um único edifício e um edifício tem uma única taxa. ADMINISTRAÇÃO 800,00Cidade400 1.000,00Metropolitan300 800,00Cidade200 500,00Barão de Mauá100 TaxaEdifício Cliente Pk (Cliente) Análise das Dependências funcionais: Cliente -> Edifício, Cliente -> Taxa Edifício -> Taxa Logo a relação está na 2FN mas não está na 3FN Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Anomalias: Se o cliente 300 for excluído, o valor da taxa para o edifício “Metropolitan” é perdido Se a Administradora quiser incluir o valor da taxa para um novo edifício, ela não poderá fazer até que surja um cliente para o edifício. ADMINISTRAÇÃO 800,00Cidade400 1.000,00Metropolitan300 800,00Cidade200 500,00Barão de Mauá100 TaxaEdifício Cliente Pk (Cliente) Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Processo para obtenção da 3FN 1 - Identificar as colunas que não fazem parte da chave primária. 2 - Analisar se existe dependência funcional entre estes atributos. 3- As colunas que têm seu valor determinado por uma coluna não chave, formarão novas tabelas cujas chaves primárias serão as colunas que as determinam. Administração Cidade400 Metropolitan300 Cidade200 Barão de Mauá100 EdifícioCliente PK (Cliente) Condomínio 800,00Cidade 1.000,00Metropolitan 500,00Barão de Mauá TaxaEdifício PK (Edifício) Esquema final na 3FN: Administração (cliente, edifício) Condomínio (edifício, taxa) OBS: ANOMALIAS ANTERIORMENTE CITADAS RESOLVIDAS Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Forma Normal Boyce-Codd 1. Foi proposta como uma forma mais simples de 3FN, mas é considerada mais rígida que a 3FN, isto é, toda relação na BCNF está na 3FN, porém uma relação na 3FN não está necessariamente na BCNF. 2. A 3FN não tratou satisfatoriamente casos onde uma relação tem mais de uma chave candidata, estas chaves são compostas e possuem atributos em comum. DEFINIÇÃO: Uma relação está em BCNF se todo determinante for uma chave candidata. Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Forma Normal Boyce-Codd Exemplo: Seja ENSINO (estudante, disciplina, professor) uma Relação com o seguinte significado: a) Para cada disciplina, cada estudante recebe aula de apenas um Professor. b) Cada professor ensina somente uma disciplina. c) Uma disciplina pode ser ensinada por diversos professores. RobertoFísica200 JoséMatemática200 MariaFísica100 JoséMatemática100 ProfessorDisciplinaEstudante ENSINO Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados RobertoFísica200 JoséMatemática200 MariaFísica100 JoséMatemática100 ProfessorDisciplinaEstudante Forma Normal Boyce-Codd Chaves Candidatas: (estudante, disciplina) (estudante, professor) Dependências Funcionais: (estudante, disciplina) -> professor Professor -> disciplina Se a PK for (estudante, disciplina) a relação está em 3FN. Se a PK for (estudante, professor) a relação também está em 3FN. Em ambos os casos, a relação não está em BCNF porque o determinante Professor não é uma chave candidata. Prof. Luiz A. Vivacqua C. MeyerProf. Luiz Vivacqua Projeto de Banco de Dados Processo para obtenção da BCFN 1. Identificar as dependências funcionais que violem a BCNF. 2. Para cada dependência funcional achada em 1, criar uma relação com a PK igual ao determinante. 3. As colunas que têm seu valor determinado em 1, são excluídas da relação original. Aplicação da BCNF: Roberto200 Jose200 Maria100 Jose100 ProfessorEstudante FísicaRoberto FísicaMaria MatemáticaJose DisciplinaProfessor ENSINO (estudante, professor) LECIONA (professor, disciplina)