Baixe o app para aproveitar ainda mais
Prévia do material em texto
MODELAGEM DE DADOS 1 Aula 6: Formas normais ................................................................................................................. 2 Introdução ............................................................................................................................. 2 Conteúdo ................................................................................................................................ 3 A primeira forma ................................................................................................................ 3 As dependências funcionais ............................................................................................ 5 Segunda Forma Normal ................................................................................................... 7 Terceira Forma Normal .................................................................................................... 8 Boyce-Codd ........................................................................................................................ 9 Quarta Forma Normal ..................................................................................................... 11 Quinta Forma Normal ..................................................................................................... 14 Atividade proposta .......................................................................................................... 16 Referências........................................................................................................................... 18 Exercícios de fixação ......................................................................................................... 18 Chaves de resposta ..................................................................................................................... 23 MODELAGEM DE DADOS 2 Introdução Em 1970, Codd, um estudioso, considerado o pai do modelo relacional, já propunha que os elementos de um conjunto fossem representados em tabelas. Nessa representação aparecem algumas anomalias graves com relação à atualização, inclusão e deleção de elementos. Desta forma, surgiram as formas normais, que são tratamentos de decomposição de novas relações de forma a não se perder conteúdo e evitar os problemas nos tratamento das informações nas tabelas. Uma modelagem conceitual bem feita já nos garante, no mínimo, a terceira forma normal (como será visto), mas muitas vezes nos deparamos com estruturas já definidas e que precisam ser normalizadas. Objetivo: 1. Estudar a primeira, segunda e terceira formas normais; 2. Estudar as demais formas normais – Boyce-Codd, quarta e quinta forma normal. MODELAGEM DE DADOS 3 Conteúdo A primeira forma Suponha que se deseje guardar os dados de um aluno na forma de uma tabela: Tabela representativa dos dados de um aluno. Esses dados foram coletados do mundo real para cada elemento. O encontro de uma linha com uma coluna é chamado de célula. Observando a tabela, verifica- se que existem células em branco (sem valor), células com um valor e células com mais de um valor. Uma tabela com dados desse tipo é chamada de tabela não normalizada. Existem vários problemas para manusear as linhas desta tabela. Por exemplo, se desejar tirar um dos telefones de Luiz deve-se tirar toda a linha, o que implica em perda de dados, além de outros problemas. Tabela representativa dos dados de um aluno. A proposta do modelo relacional normalizado é trabalhar com tabelas cujo conteúdo da célula tenha no máximo um valor. Isso quer dizer que se devem eliminar todas as entradas múltiplas em uma célula. Na prática implica em dizer que não são aceitos grupos repetitivos ou multivalorados. Quando uma tabela tem no máximo um valor por célula diz-se que ela está na Primeira Forma MODELAGEM DE DADOS 4 Normal. Toda tabela não normalizada pode ser colocada na Primeira Forma Normal, por repetição de dados em linhas, de modo a manter todas as informações. Assim, a tabela exemplo, na primeira forma normal, fica: Atenção Observe que se repetiu linhas para Álvaro de forma a manter as informações para seus irmão e telefones. O mesmo ocorreu para José Luiz. Esta tabela está na Primeira Forma Normal (1FN). Existem várias dificuldades em se trabalhar com a 1FN: i) Imagine que deseja se colocar mais um telefone para Álvaro, isto implica em entrar com várias linhas de modo a fazer a combinação com todos os seus irmãos. Então uma anomalia grave é na inclusão de novos valores para os atributos representados. ii) Ou que se quer atualizar o endereço de Álvaro, ele aparece em vários registros devido as repetições. E isto pode causar inconsistências, basta que não se atualize um dos registros. III) O mesmo ocorre se for preciso retirar um telefone, isto implica em retirar vários registros o que também poderá resultar em perda graves ou inconsistências. O SGBD´S (Oracle, Mysql, Ingress, SQL Server,...) são produzidos para dar suporte a primeira forma normal, por isto são chamados de SGBD relacionais (normalizados). Veja que quem trabalha com a primeira forma normal deve resolver o problema das anomalias na programação e isto não é desejável pois a probabilidade de introduzir erros é muito alta. MODELAGEM DE DADOS 5 As dependências funcionais As dependências funcionais são estudadas na matemática com a teoria das duplas e esses conceitos são usados na normalização. Data uma tabela R com suas colunas B. Diz que uma coluna B é dependente funcional de outra A representado por A ->- B se para cada valor na célula A (Va) aparece sempre o mesmo valor na coluna b (Vb). De outra forma sempre que aparecer o valor na coluna A em linhas diferentes deverá aparecer o mesmo valor correspondente na coluna B. Na tabela exemplo pode-se escrever: CPF ->- NOME. Diz-se que NOME é dependente funcional de CPF. Ou seja, sempre que aparecer o CPF = 371628-23 aparecerá o nome Álvaro. Uma coluna que não tem essa característica é dita não dependente funcional e representa: ENDEREÇO CPF. Pois, não se pode garantir que quando aparece um endereço será sempre do mesmo CPF. Existem algumas propriedades matemáticas nas dependências funcionais: 1) reflexiva. (Toda coluna é dependente funcional dela mesma.) (A1, ...... An ) A i , onde (i = 1,2,....n) 2)simétrica Se A B não se pode garantir que B A. Portanto não tem a propriedade da simetria. 3) transitiva A B e B C pode-se concluir que A C Portanto a DF tem a propriedade da transitividade. Pode-se trabalhar com conjunto de colunas para se estabelecer a dependência funcional. Assim: ( CPF, NOME) ENDEREÇO Endereço é dependente funcional do conjunto de colunas CPF +NOME MODELAGEM DE DADOS 6 Generalizando ( A, B, C...) D Assim estabelecem-se outros conceitos. O de dependência total e de dependência parcial. Diz que A é dependente total de (b,C) quando sua ocorrência acontece para a combinação de colunas. Dependência parcial é quando a coluna A já tem sua dependência definida para uma das colunas que faz parte do conjunto da definição de dependência. Para facilitar o entendimento dos conceitos acima vai se desenvolver o estudo para o documento de pedido de orçamento abaixo que precisa ser transformada em um conjunto de relaçõesnormalizadas. O pedido deve ser representado na forma de um esquema relacional, que consistente em representar a tabela indicando o nome das colunas entre parênteses e sublinhando as colunas identificadoras. Assim tem-se: MODELAGEM DE DADOS 7 Orçamento (n-orcamento, vendedor, data-orcamento, destinatário, endereço,município,CGC, insc-est, local-entrega,unidade, quantidade, descrição,preço-unitario, preço-total). Esta relação está na primeira forma normal, pois com repetição de células representa-se todas as informações possíveis no documento. Para melhor identificar cada linha vai-se introduzir um novo campo que ajudará na identificação do grupo repetitivo referente aos itens. Vai –se colocar o codigo- item, ficando: Orçamento (n-orcamento,codigo-item, vendedor, data-orcamento, destinatário, endereço, município, CGC, insc-est, local-entrega, unidade, quantidade, descrição ,preço-unitario, preço-total) Observe que existem colunas que tem dependência funcional total da chave, como por exemplo, descrição. E colunas que tem dependência de parte da chave, por exemplo, vendedor. Segunda Forma Normal Assim inicia-se o trabalho para colocar na Segunda Forma Normal – 2FN – Quando se decompõe uma relação da 1FN em novas relações em que todas as colunas são dependentes funcionais totais da chave. A relação inicial foi substituída por duas novas relações que contêm todas as informações. Orçamento (n-orçamento, vendedor, data-orcamento, destinatário, endereço, município, CGC, insc-est, local-entrega). Item_pedido (n-orcamento, código-item, unidade, quantidade, descrição, preço-unitário, preço-total). Observe que foi criada uma relação em que as colunas- - Chave foram colocadas como identificadores, e outra em que parte da chave é o identificador. MODELAGEM DE DADOS 8 Veja que a coluna de preço total na relação item_pedido deve ser retirada, pois pode ser obtido diretamente de duas outras colunas – preço-unitário * quantidade. Assim, as duas relações ficam: Orçamento (n-orcamento, vendedor, data-orcamento, destinatário, endereço, município, CGC, insc-est, local-entrega). Item_pedido (n-orcamento, código-item , unidade, quantidade, descrição, preço-unitário, preço-total). Então, pode-se colocar que para se obter a 2FN a relação deve estar na 1 FN e todas as colunas devem ser dependentes funcionais das chaves. A segunda forma normal já resolve alguns problemas de inclusão, alteração e deleção, mas ainda apresenta problemas no armazenamento de informações. Por exemplo, se eu desejar incluir um novo vendedor, isto só poderá ser feito se for incluída uma nova nota fiscal. O mesmo ocorre se for necessário tirar um vendedor, isso ocorrerá com a perda de dados da nota fiscal. Então há necessidade de se tratar essas anomalias. Obs.: uma relação em que a chave é uma coluna já está automaticamente na 2FN. Terceira Forma Normal Na Terceira Forma Normal deve-se separar as colunas que já estão na 2 FN de forma a retirar as dependências funcionais entre as colunas fora da chave. E cria-se tantas relações quantas forem necessárias para isso. No exemplo tem- se: 1 - Orçamento (n-orçamento, vendedor, data-orçamento, destinatário, endereço, município, CGC, insc-est, local-entrega). As informações de destinatário, endereço, município são dependentes funcionais entre si. Assim, escreve-se: Orçamento (n-orcamento, vendedor, data-orçamento, CGC, insc-est, local- entrega). Destinatário (cod-destinatário, destinatário, endereço, município). MODELAGEM DE DADOS 9 2 - Se for necessário dados sobre o vendedor, como telefone, endereço deve-se criar uma nova relação para isso. Ter-se-ia as seguintes relações: Orçamento (n-orçamento, data-orçamento, CGC, insc-est, local-entrega); Destinatário (cod-destinatário, destinatário, endereço, município); Vendedor (cod-vendedor, vendedor, telefone, endereço). 3 - A Terceira Forma Normal já não apresenta as anomalias citadas. Então, a regra para a terceira forma normal é: A relação precisa estar na 2 FN e não ter dependências transitivas entre as colunas fora da chave. Boyce-Codd Suponha que se obteve a relação abaixo, quando se estabeleceu a 3FN em um modelo: Nota_fiscal (código, número-nota, descrição, quantidade) Existem 2 chaves compostas com sobreposição na coluna número-nota. Essa relação está na 3FN, mas ainda apresenta anormalidade, pois vários matérias podem, por exemplo, ter a mesma descrição, então temos as seguintes dependências funcionais Código descrição Descrição código Assim, há necessidade de se tratar essa mistura de informações e para isso define-se a Forma Normal de BOYCE-CODD (FNBC). A FNBC é mais restritiva que a 3FN e uma relação estará na FNBC se e somente se cada dependência deve ser diretamente da chave. Examine-se as relações: Cidade (cidade, população) Fornecedor (cod-fornecedor, fnome, cidade) Considerando os candidatos a chave na relação Fornecedor tem-se: Cod fornecedor, fnome. Suponha também que os atributos cidade e população são mutuamente independentes ou seja; cidade população MODELAGEM DE DADOS 10 Vai-se representar esta situação na forma: Neste grafico verifica-se que cidade é dependente funcional de cod-fornecedor e que população é dependente funcional de cidade, Assim: Fornecedor esta na FNBC, pois todos os campos são dependentes funcionais do candidato a chave Cod-fornecedor. Cidade está na terceira forma normal, mas não na FNBC, pois existem dependentes funcionais de uma coluna que está na relação fornecedores. Assim pode-se definir as dependências funcionais: Então pode-se definir as relações na FNBC Fornecedor (cod-fornecedor, fnome) Cidade-forn ( cod-fornecedor, cidade) Cidade-pop (cod-fornecedor, população) Veja que a FNBC é mais restritiva que a 3FN. Cod_fornecedor cidade população Fnome Cod_fornecedor cidade população Fnome MODELAGEM DE DADOS 11 Analise com duas chaves candidatas Considere a relação: FFP (F#, P#, FNOME,QTDE) Nesta relação às chaves candidatas são {F#,P#} e {P#,FNOME} esta relação esta na FNBC? Veja que F# e FNOME que são parte de ambas os candidatos a chave e são determinantes um para o outro. Desta forma haverá redundâncias nas atualizações, deleções e entrada de dados, embora a relação esteja na 3FN. Para evitar isto deve-se desmembrar a relação para evitar o conflito nar relaçoes: Fornecedor ( F#, FNOME) Fornecedorproduto ( F#, P#, QTDE). Agora duas novas relações estão na terceira forma normal e todos os campos são dependentes da chave, portanto estão na FNBC. Normalmente a maioria das vezes ao se definir a 3FN já se está colocando a FNBC, mas é preciso fazer a verificação se haverá problemas nas consultas e demais operações. Quarta Forma Normal Considere a relação abaixo: Livro (número, autores), título (assuntos, editora, ano) Veja que autores e assuntos são apresentados com “(“e”)”. Isso é uma forma de representar que são células que recebem repetições, tal qual a tabela inicial deste trabalho, quando colocou-se telefones e irmão, podendo receber mais de um valor. Portanto, a relação é não normalizada. Tirando os campos repetidos tem-se: Livro ( número, autor, assunto, título, editora, ano) onde número + autor + título forma uma chave composta capaz de identificar uma linha na tabela. Essarelação está na 1FN mas não está na 2FN, porque editora e ano dependem MODELAGEM DE DADOS 12 funcionalmente de parte da chave, para colocá-la na 2FN decompõem-se nas seguintes relações: Livro1 (número, título, editora, ano) Livro2 (número, autor, assunto) As relações Livro1 e Livro2 estão na Terceira Forma Normal, pois não existem dependências funcionais por transitividade. Observe que a relação Livro2 também atende à FNBC, pois não existe nenhuma coluna fora da chave, portanto, atende à regra de todo o atributo fora da chave ser diretamente dependente dela. Mas, se se observar esta relação, ver-se-á que existe uma série de redundâncias, e problemas para a inclusão, consulta e deleção de dados. Para ilustrar vejamos uma tabela. LIVROS 2 numero autor assunto 1 AU1 ASS1 1 AU1 ASS2 2 AU1 ASS1 2 AU2 ASS1 3 AU3 ASS2 3 AU3 ASS1 3 AU1 ASS1 3 AU2 ASS3 Veja que deve ser possível representar todas as combinações entre autores, assuntos e numero (codigo do livro). Para isto repete-se os autores e assuntos de forma a preservar as informações. Assim, o livro 1, o autor AU1 aparec e duas vezes. MODELAGEM DE DADOS 13 E assim para todas as outras linhas da tabela. Estas informações devem ser representadas com menos redundâncias. Na tabela existem vários valores que são deduzidos a partir das repetições dos autores ao mudar de assunto. Nota-se que somente devido ao fato de se ter duas colunas com vários valores para cada livro é que aparece estas repetições. Vai se definir a dependência multivalorada de B em relação A, denotado por A B, esta forma foi definida por Fagin que introduziu a 4ª. FN. Assim quando existir mais de três colunas deve-se decompor estass relações de modo a obter dus novs relaçoes projetando-se a relação nas colunas da esquerda e da direita da dependência multivalorada. Assim por autor assunto, deve ser decomposto nas relações: Livro-autor ( numero,autor) e livro-assunto (numero, assunto), desta forma não existem mais dependências multivaloradas entre as colunas. As novas tabelas ficam: LIVRO-AUTOR Numero autor 1 AU1 2 AU1 2 AU2 3 AU2 3 AU3 3 AU1 MODELAGEM DE DADOS 14 LIVRO-ASSSUNTO numero assunto 1 ASS1 1 ASS2 2 ASS1 3 ASS2 3 ASS1 3 ASS3 Assim não aparecem mais as repetiçoes entre as colunas assunto e autor. Pode-se então definir que: Para se obter a 4ª.FN a relação deve estar na FBNC e não conter nenhuma dependência multivalorada entre as colunas. Assim as relações: Livro1 (numero, titulo, editora, ano) Livro-autor (numero,autor) Livro-assunto(numero,assunto) Estão na quarta forma normal Quinta Forma Normal Para entender a Quinta Forma Normal vamos considerar o modelo conceitual abaixo: MODELAGEM DE DADOS 15 Figura representativa da quinta forma normal. Suponha que os relacionamentos M-R-P seja apenas o seguinte: M-R-P= {( m1, r1, p1), ( m2, r1, p2), (m2, r2, p1)} onde mi, ri e pi são elementos dos conjuntos de materiais, requisições e pedidos, respectivamente. Figura representativa da quinta forma normal. As triplas mostradas produzem os seguintes pares na decomposição mostrada na figura: Itens de requisições= { (m1,r1), (m2,r1), (m2,r2)} Itens de pedidos = { (m1,p1), (m2,p2), (m2,p1)} R-P = {(r1,p1), (r1,p2), (r2,p1)} MODELAGEM DE DADOS 16 Compondo os três relacionamentos, o resultado é o conjunto: C = {( m1,r1,p1), (m2,r1,p1), (m2,r1,p2), (m2,r2,p1)}. Não foi introduzida a tripla (m1, r1, p2), pois em itens de pedidos não existe o par (m1, p2). E o resultado é diferente do relacionamento M-R-P original, pois aparece a tripla (m2, r1, p1), que não existia. Assim, mostra-se que a decomposição pode produzir uma perda (ou ganho) de informações. Atenção Se os dados de M-R-P puderem ser decompostos nos conjuntos vistos, sem perdas de informação teremos que M-R-P não está na 5ª FN. A relação M-R-P está na 5ª FN se não pudesse ser decomposta. A vantagem de representar as três relações no lugar da original deve-se ao fato de nesta aparecerem redundâncias e nas relações decompostas isso não ocorre. Uma relação para estar na 5ª FN deve estar na 4ª FN. Para maiores informações sobre o tratamento da 5ª FN recomenda-se a leitura do livro do Prof. Date, Introdução a sistemas de banco de dados. Deve-se notar que é um caso bem articular, pois normalmente a decomposição se dá com perda de informação. A definição da 5ª FN aparece justamente essa característica que é de decomposição sem perda (ou junção). Atividade proposta a) Considere o documento apresentado e faça considerações sobre a sua implementação na 1ª FN. b) Devem ser considerados o total de cada item e o total da nota? c) Deve ser colocado o título da nota? d) É possível fazer uma modelagem utilizando a notação pata de corvo? e) Como se deve definir identificadores na decomposição da nota? MODELAGEM DE DADOS 17 f) Há necessidade de se armazenar peso líquido e peso bruto? Chave de resposta: a) Nota_fiscal (código, quantidade, unidade, descrição, cod_preço-unitário, frete, seguro, embalagem, ICM, vendedor, pedido, comissão, transportador, endereço, peso-bruto, peso-líquido, nome-destinatário, endereço-destinatário, CGC, fone, CEP, município, data-emissão). b) Não deve entrar na modelagem. Justificativa: São dados derivados e podem ser obtidos por outras colunas. c) Não. Justificativa: Os dados da empresa são constantes e não devem ser armazenados. d) Sim. Na nota verifica-se grupos de dados correspondentes a várias entidades. O ideal é fazer o modelo, pois se obtém no mínimo na Terceira Forma Normal. e) Deve ser definido pelo analista de forma a identificar o grupo de dados que representa. Justificativa: O analista deve definir esses dados de forma a não introduzir riscos ao modelo. f) Sim, pois não se consegue deduzir esses dados de nenhuma outra informação. Justificativa: Só não se armazena dados que possam ser derivados de outros dados. MODELAGEM DE DADOS 18 Referências SETZER, Waldemar W. Banco de dados. Editora Edgar Blucher ltda. DATE, C. J. Introdução a sistemas de banco de dados. Editora Campus. Exercícios de fixação Questão 1 A forma mais adequada de normalização para um modelo de dados é a: a) 2 FN b) 3 FN c) 4 FN d) 5 FN e) 6 FN MODELAGEM DE DADOS 19 Questão 2 Considere a tabela abaixo: A B C D a1 b1 c1 d1 a1 b1 c1 d2 a2 b2 c1 d1 a2 b2 c1 d2 A alternativa que apresenta uma dependência funcional que a relação R acima NÃO satisfaz é: a) A→B b) B→A c) A→C d) C→A e) B→C Questão 3 Considere a seguinte relação: Funcionário (MatrículaFunc, NomeFunc, CódigoCargo, DescriçãoCargo) Essa relação é derivada em duas outras: Funcionário (MatrículaFunc, NomeFunc, CódigoCargo) e Cargo (CódigoCargo, DescriçãoCargo) É correto afirmar que: a) A relação Funcionário foi normalizada até a 2FN. b) Para estar na 2FN, a relação Cargo deveria conter também as MatrículaFunc de todos os funcionários. c) A relação Funcionário foi normalizada até a 3FN. d) Para estar na 3FN, a relação Cargo deveria conter também a MatrículaFunc. e) Não foi aplicada nenhuma regra FN à relação Funcionário derivada. MODELAGEM DE DADOS 20 Questão4 No processo de normalização, a eliminação de dependência parcial da chave, a estrutura com maior redundância e a eliminação de dependência transitiva representam, respectivamente, as formas normais: a) 3FN, 2FN e 1FN b) 3FN, 1FN e 2FN c) 1FN, 2FN e 3FN d) 2FN, 1FN e 3FN e) 2FN, 3FN e 1FN Questão 5 A forma normal que se aplica a relações que tenham chaves candidatas múltiplas em que estas chaves candidatas sejam compostas, tendo um atributo em comum, garantindo que todo determinante seja chave candidata, é: a) 1FN b) 2FN c) BCNF ou Boyce/Codd d) 0FN e) 3FN Questão 6 A seguinte especificação: se e somente se todas as colunas de uma tabela relacional tiverem apenas valores atômicos (cada coluna só pode ter um valor para cada linha na tabela) define a: a) 1FN b) 2FN c) 3FN d) 4FN e) FN Boyce-Codd MODELAGEM DE DADOS 21 Questão 7 Cada tabela que está na FN Boyce-Codd também está na: a) 5FN e 4FN, porém não na 3FN, 2FN e 1FN b) 4FN e 3FN, porém não na 2FN e 1FN c) 3FN, 2FN e 1FN d) 2FN e 1FN, porém não na 3FN e) 1FN, porém não na 3FN e 2FN Questão 8 Formar novas relações, separando-as a partir de grupos de repetição antes existentes dentro de uma relação, é objetivo da: a) 1FN b) 2FN c) 3FN d) FNBC e) 5FN Questão 9 Uma relação que contém grupos de repetição, mas NÃO contém dependências funcionais transitivas: a) Está na 1FN b) Não está normalizada c) Está na 2FN d) Está na 3FN e) Está na FNBC MODELAGEM DE DADOS 22 Questão 10 Quando uma tabela relacional não contém grupos de repetição e sua chave primária não é composta ou todos os atributos não chave são funcionalmente dependentes de toda a chave, é correto afirmar que ela está: a) Desnormalizada b) No máximo, na 1FN c) No máximo, na 2FN d) No máximo, na 3FN e) No máximo, na 4FN MODELAGEM DE DADOS 23 Aula 6 Exercícios de fixação Questão 1 - B Questão 2 - C Questão 3 - C Questão 4 - D Questão 5 - C Questão 6 - A Questão 7 - C Questão 8 - A Questão 9 - B Questão 10 - C
Compartilhar