Baixe o app para aproveitar ainda mais
Prévia do material em texto
Projeto de BD Normalização – Conceitos Formas Normais – Processo IC – UFF – Professora Luciana Ferraz Thomé Normalização 1- O QUE É NORMALIZAR UM BD? 2- PORQUÊ NORMALIZAR UM BD? 3- FORMAS NORMAIS 1NF, 2NF, 3NF, BCNF3- FORMAS NORMAIS 1NF, 2NF, 3NF, BCNF OUTRAS FORMAS NORMAIS 4NF, 5NF ... 4- DECOMPOSIÇÃO E JUNÇÃO SEM PERDA 5- PRESERVAÇÃO DE DEPENDÊNCIAS 6- NORMALIZAR BD X PROJETO DE BD 7-EXERCÍCIO Normalização 1- O QUE É NORMALIZAR UM BD? NORMALIZAR UMA TABELA T é o processo reversível de decompô-la - por projeção - em tabelasé o processo reversível de decompô-la - por projeção - em tabelas menores T1, T2, ..., Tn de modo a reduzir redundâncias que prejudicam a manutenção. T pode ser recomposta por junção a partir de T1,T2,...Tn Normalização Exemplo: se Fornecedores fornecem certas QtYdades de Peças NÃO devemos montar uma única tabela como FP (FN, FNOME, PN, PDESC, QTY) essa tabela com CHAVE Primária formada (FN,PN) essa tabela com CHAVE Primária formada (FN,PN) Teria REDUNDÂNCIAS como: Todo Suprimento/Fornecimento de mesmo Fornecedor FN, repete os dados (FNOME). A Manutenção da tabela FP é PREJUDICADA. Excluir o fornecimento do par de valores (F3,P5) pode implicar em perda de informação sobre a peça P5! Normalização Para atualizar os dados de fornecedor FN devemos, Redundantemente, atualizar todos seus fornecimentos. PORTANTO - há redundâncias indesejáveis na tabela FP. SOLUÇÃO:SOLUÇÃO: Projetar FP em FN, FNOME dando F Projetar FP em PN, PDESC dando P Projetar FP em FN, PN, QTY dando FPQ resultando em P ( PN, DESC) F ( FN, FNOME) FPQ( FN, PN, QTY ) sem redundâncias – NORMALIZADAS Normalização Cada Tabela expressa um único FATO - uma ENTIDADE ou - um RELACIONAMENTO SIMPLES A tabela inicial FP pode ser obtida por FP = JOIN natural de F, P e FPQ R1 – P * FPQ Resp – F * R1 Normalização • Processo que visa eliminar redundância de dados em arquivos ou tabelas. • Teoria da Normalização: conjunto de • Teoria da Normalização: conjunto de regras (formas normais) que determinam formas adequadas, sem redundâncias, de representação dos dados. Normalização 2- PORQUÊ NORMALIZAR UM BD? No processamento de Dados há dois mundos DADOS e PROCESSOS ( Yin e yang ) Nos Processos existe o conceito de Modularização Nos Dados existe similarmente o conceito Normalização de DADOSNormalização de DADOS Ambos visam melhorar a estrutura e, portanto a MANUTENÇÃO. Modularizar: Programa Monolítico => módulos manuteníveis Normalizar: Tabelão Redundante => tabelas normalizadas Objetivo: Melhorar a estrutura dos sistemas Reduzir redundâncias e diminuir a manutenção CUIDADO === Há conflito com DESEMPENHO - eficiência Normalização • Em geral MELHORA a manutenção com AUMENTO de flexibilidade mas desempenho pode CAIR. • Há que se decidir se certas normalizações valem a pena • No exemplo anterior poderíamos ter uma tabela de SUBSTANCIA ( ouro, prata, etc) ao invés de PEÇA • Isto é, a tabela P seria P ( PN, PDESC) com os valores • Isto é, a tabela P seria P ( PN, PDESC) com os valores mais ou menos fixos, ou seja {(AU, ouro); (AG, prata); (AL, alumínio); ... } • e não valeria a pena normalizar pois P não vai ser atualizada ( embora o problema da Exclusão continue...) Esta ‘desnormalização’ AUMENTA a eficiência pois evita um JOIN Normalização 3 - FORMAS NORMAIS - 1NF, 2NF, 3NF, BCNF • OUTRAS FORMAS NORMAIS 4NF, 5NF ... • FORMAS NORMAIS são medidas, graus, de quanto uma tabela está normalizada Ex: 1NF, 2NF, 3 ... etc. • As formas normais foram formalizadas no Modelo Relacional • 1NF(First Normal Form): o modelo relacional já começou com 1NF, i.é, os Domínios são atributos atômicos, cada coluna em uma tabela não pode ter valores não atômicos (vetor, registro, conjunto, etc.) Ex: F ( FN, FNOME, TEL) não está em 1NF f1 zé 274 295 Tabelas que não estão na 1NF, com colunas que são tabelas, são chamadas NF2 (NFNF) lê-se Non First Normal Form 1NF é ESTRUTURAL! 2NF em diante é um problema de semântica Primeira Forma Normal (1FN) Uma tabela encontra-se na primeira forma normal quando não possui tabelas aninhadas (grupos de repetição, atributos multivalorados).(grupos de repetição, atributos multivalorados). Normalização-Dependência Funcional ...CONCEITO DE DEPENDÊNCIA FUNCIONAL FP ( FN, FNOME, QTY, PN, PDESC) Uma coluna B, em uma relação R, é dependente funcional de uma coluna A em R sss existe uma função f tal que vale sempre f: A ---> B. Notação, A � B (lê-se A determina B). Ex. PN � PDESCEx. PN � PDESC FN � FNOME Dependências funcionais são afirmações sobre os dados do BD retiradas da Análise do sistema (por isso é semântica do Banco de dados!) No exemplo FP temos FN � FNOME PN � PDESC (FN,PN) � QTY Obs: Chave primária � determina cada um – todos os atributos! (FN,PN) � (QTY, FNOME, PDESC) Obs2: Chama-se atributo não-chave, atributo que não faz parte da chave. Normalização-Dependência Funcional DEPENDÊNCIA PARCIAL Se A,B e C são atributos de R e (A,B) � C e A � C então (A,B) � C é dita uma dependência parcial existente em Rentão (A,B) � C é dita uma dependência parcial existente em R pois “parte” do determinante (A,B) também determina C. Exemplo FP (FN,PN) � PDESC (FN,PN) é chave! e (FN) � PDESC (pela semântica do problema) portanto (FN,PN) � PDESC é uma dependência Parcial em FP Normalização-Dependência Funcional DEPENDÊNCIA TRANSITIVA Se A e C são atributos de R, diz-se que A � C é dependência transitiva em R se existir outro atributo B de R tal que A � B e B � CA � B e B � C Exemplo Aluno (Mat,Nome, Media, Situação) Mat � Situacao é transitiva pois existe Media tal que Mat � Media e Media � Situação. Normalização-Dependência Funcional 2NF uma relação R esta em 2NF sss está em 1NF e “Não existe atributo não-chave que dependa parcialmente da chave” Portanto, se houver alguma dependência parcial da chave primária a tabela (relação) não está nem na 2NF Ex. FP não está nem na 2NF. (porque?). Normalização-Dependência Funcional 3NF .............................. R está em 3NF sss está em 2NF e “não existe atributo não-chave que depende transitivamente da chave” Exemplo F ( FN, FNOME, CIDADE, TIPO ) Rio A Sampa BSampa B Salvador A ... .... onde o Tipo do Fornecedor depende da Cidade Neste caso FN ---> Cidade Mas FN ---> Tipo ( pois FN é chave) portanto FN ---> Tipo é transitiva via Cidade Logo, não está na 3NF Normalização-Dependência Funcional BCNF Usa o conceito de chave candidata chave candidata “R está na BCNF se todo determinante for chave candidata” Exemplo se incluirmos Meio de Transporte em FPQ (FN, PN, QTY, TRANSP )FPQ (FN, PN, QTY, TRANSP ) p1 100 avião p1 50 navio p2 50 avião onde (FN,PN) é a chave da tabela e PN,QTY � TRANSP FPQ está na 3FN pois não existe dependência transitiva de chave primária � existe um determinante (PN,QTY) que não é chave Normalização-Dependência Funcional OUTRAS FORMAS NORMAIS ���� 4NF, 5NF, etc. são só teóricas não práticas 4 - DECOMPOSIÇÃO E JUNÇÃO SEM PERDA Após a decomposição pode-se obter o esquema original através das operações de junção e/ou produto cartesianooperações de junção e/ou produto cartesiano NORMALIZAÇÃO DEVE SER REVERSÍVEL 5 - PRESERVAÇÃO DE DEPENDÊNCIA Seja T(nome do cliente, nome da agência, nome do gerente) onde há:dep. func.1: (nome do cliente, nome da agência) � nome do gerente dep. func.2: nome do gerente � nome da agência Nesse caso não é possível uma decomposição sem perda de informação Normalização-DependênciaFuncional Exemplo Uma normalização T1(nome do gerente, nome da agência) e T2(nome do cliente, nome do gerente) só preserva a dependência só preserva a dependência nome do gerente� nome da agência mas perde a outra dependência (nome do cliente, nome da agência) � nome do gerente Normalização-Dependência Funcional 6 - NORMALIZAR BD X PROJETO DE BD Existe Projeto ‘top-down’ via modelagem ER que já obtém esquema normalizado Existe Projeto ‘bottom-up’ via explicitação de dependências depois juntando em tabelasdepois juntando em tabelas Casos pequenos! automatizado em softwares 7 – EXERCÍCIO veja livros Banco de Dados em Aplicações Cliente – Servidor, cap 6.2 Navathe ou Date ou Silberchatz
Compartilhar