BDF Aula4 PDF

You might also like

Download as pdf
Download as pdf
You are on page 1of 17
Aula 4. Normalizagao de dados Objetivos: ‘aprender a construir o Banco de Dados em sua estrutura; ‘+ produzir um projeto de Bando de Dados utilizando as técnicas de normalizacao, Cato (a) estudante, Nesta aula, aprenderemos a montar 0 Modelo Entidade Relacionamento (MER), considerando outro ponto de vista. Anteriormente, era apresentado ‘9 contexto em que tinha-se a ideia de modelar o banco e eram definidas as entidades, relacionamentos e atributos de forma bastante subjetiva. A nor- malizacao de dados trata da construcao do modelo de dados, mas considera fatos reais, como documentos fiscais, formulérios, planithas, fichas, entre outras coisas. A ideia basica é que a partir destes documentos, aplicando re- gras previstas no proceso de normalizacéo, seja gerado o Modelo de Dados. Para atingir os objetivos, podemos dizer que um banco de dados esta rela- cionado a alguns conceitos fundamentals * Banco de Dados = Colecao de Arquivos; * Arquivos = Coleco de Registros; ‘Registro = Colegao de Campos (Tuplas): ‘+ Campo = Colegio de Caracteres; © Caractere = Alfa-numéricos ou simbolos. De acordo com Machado (1995), existem nove técnicas que podem ser utli- zadas no desenvolvimento de um banco de dadlos nas fases iniciais, as quais podemos citar: 1. Contextualizacéo; 2. Objetivacao; 3. Intitulacao; 4, Especificacdo de Requisitos; 5. Normalizacéo;, 6, Modelagem; 7. Trigramacao; 8. Dicionarizacéo; 9. Auditoria das fases de Analise e de Projeto Lagico do Sistema de Banco de Dados. Para este curso, estaremos focados no que diz respeito & Normalizagao como ferramenta para o desenvolvimento de um banco de dados. 0s conceitos apresentados neste material, em seu todo ou em partes, fo- rain retirados do livro "Projeto de Banco de Dados: uma viséo pratica”, de Machado, FN. R, e Abreu, M. P, Editora Erica, 1995, Capitulo 12, Norma- lizacao. 4.1 Formas normais A Teoria da Normalizacao é expressa tradicionalmente através de um conjun- to de Formas Normais, que otimizam a estrutura e 0 contetido das relacées entre as entidades. © conceito de normalizagao foi introduzido por E. F Codd, em 1970, uti- lizando a primeira forma normal — 1FN. Esta técnica, pode-se dizer, € um proceso matematico formal que fundamenta-se na teoria dos conjuntos. Nesse processo podem ocorrer as seguintes Anomalias de Atualizacéo: * Inclusdo - ao se incluir um novo cliente, por exemplo, ele tem que estar relacionado com uma venda + Alteracao - caso 0 fabricante de um produto altere o preco de determi- nada classe de produto, seré preciso percorrer toda a Entidade para se realizarem miltiplas alteracoes. + Exclusdo - Ao se excluir um cliente, por exemplo, os dados referentes as suas compras poderdo ser perdidos Através do processo de normalizacéo podemos substituir, de forma gradual, um conjunto de Entidades e Relacionamentos para um modelo mais “ade- quado", em relagao as Anomalias de Atualizacéo (Incluséo, Alteracao e Ex- clusao), as quais podem causar certos problemas: ‘© Grupos repetiti 105 (atributos mult jalorados) de dados; '* Dependéncias parciais em relacéo a uma chave conc: ‘+ Redundancias de dados desnecessérios; + Perdas acidentais de informacéo; * Dificuldade na representacao de fatos da realidade observada; + Dependencias transitivas entre atributos Estes problemas podem ser minimizados através da aplicagéo da norma- lizac8o, tornando 0 modelo de dados bastante estavel e sujeito a poucas manutengoes, 4.2 Dependéncia funcional Para descrever as formas normais, faz-se necessaria a introducdo deste con- ceito importante na aplicagao da normalizagao, no qual a maior parte da teoria de normalizacao foi baseada Dada uma entidade qualquer, dizemos que 0 atributo ou conjunte de atribu- tos de A é dependente funcionalmente de outro atributo de B; neste caso, hd dependéncia funcional Em outras palavras, podemos dizer que, em uma entidade TB_ITENSNOTA, 0 atributo ITN_CODPRODUTO depende funcionalmente do atributo PRO_CO- DIGO, que encontra-se na entidade T8_PRODUTO: A analise das relagdes existentes entre os atributos de uma entidade deve ser feita a partir de um conhecimento prévio da sistemitica aplicada nas relacées entre as entidades, para que esta possa ser modelada, como no exemplo anterior Para iniciar a normalizacéo, faz-se necessaria a descrigéo de todos os atribu- tos do documento que se deseja normalizar (visando a criagao do modelo de dados), para que posteriormente, possam ser aplicadas técnicas (formas normais) que iréo dividir os atributos em entidades, as quais darao suporte & construcao do modelo de dados Para facilitar 0 entendimento, este material ird apresentar a normalizac3o com exemplos praticos. 4.3 Normalizagao de dados (nota fiscal) Supondo a necessidade de ura empresa em modelar um banco de dados para emissio de ura nota fiscal simples, como apresentado no quadro abai- x0, Verifique que hé dados que sao especificos da empresa, representados aqui como "Dados da Empresa” e que ndo hé necessidade de manter-se no banco de dados, pois s40 impressos diretamente na nota fiscal encaminhada pela aréfica, O que nos interessa aqui é justamente os dados que necessitam ser preenchidos, como Data, Numero da Nota Fiscal, Cliente, RG, CPF, Cida- de, UF, Endereco, Numero e Bairro, além dos dados dos produtos vendidos, inerentes a0 Cédigo do produto, Descricéo, Unidade de Medida, Quantida- de, Valor Unitario e Valor Total. Inicialmente, realiza-se a definicdo de todos os atributos que o documento possui, registrando que eles sdo tidos como atributos da entidade principal (documento), conforme segue. Neste caso, a entidade principal foi definida como Nota e a ela foram relacio- nados todos 08 atributos oriundos a emisséo de uma nota fiscal. Foi definida ainda a chave primaria, Unica para cada nota fiscal a ser emitida, Nota (niimero da nota, data, cliente, RG, CPF, cidade, UF (Unidade da Fede- rago), endereco, n°, baitro, cédigo_produto_1, cédigo_produto_2, cédigo_ produto_3, ..., descriggo_produto 1, descrigéo_produto_2, descri¢io_pro- duto_3,..., unidade_produto_1, unidade_produto_2, unidade_oroduto_3, quantidade_produto_1, quantidade_produto_2, quantidade_produto_3, .valor_unitario_produto_1, valor_unitério_produto_2, valor_unitério_pro- duto_3 ..., valor_total_produto_1, valor_total_produto_2, valor_total_pro- duto_3,..., valor_total_da_nota); * Qs campos sublinhados indicam as chaves primérias. 4.3.1 Aplicagdo da 1* Forma Normal - 1FN Existem situagées em que nos deparamos com algumas informacées que se repetem (atributo multivalorado) dentro de uma Unica linha, ligeda a uma chave primaria. A TEN diz que cada ocorréncia da chave priméria deve corresponder a so- mente uma informacao de cada atributo, ou seja, a entidade ndo deve con- ter atributos repetidos ou multivalorados, ou, ainda, 0s atributos nao-chave deverdo ser atémicos (dnicos) Ao observarmos que certo grupo de atributos nao-chave nao sao atomicos, 20 longo do processo de entrada de dados, verificamos que este atributo devera ser decomposto em uma nova entidade. Nas novas entidades criadas, a chave primaria sera a concatenacéo da chave primaria da entidade original, o que mantém, desta forma, 0 relacionamento entre elas, como também o conjunto de atributos que se repetem Por exemplo: AEN diz que todos os atributos devern conter um valor atémico (‘nico), ou seja, 0s dados inclusos dentro do campo nao devem se repetir, Ex. 0 campo cliente vai ser preenchido quantas vezes na nota acima? Ape- nas uma vez, certo? Entao corresponde a um valor atOmico. J4 os campos que se referem aos itens da nota serdo acrescidos uma ou muitas vezes. Des- ta forma, tem-se a necessidade de separacao da entidade Nota, criando-se a nova entidade chamada ttens_Nota, ficando Nota (numero da nota, d: UF, valor_total) dliente, RG, CPF, endereco, n°, bairro, cidade, Os campos que se repetem so destinados a uma nova tabela, no nosso exemplo chamado de itens da nota. A chave principal também é inclusa na nova tabela para manter o relacionamento entre elas. Itens_Nota (nimero da nota, codigo, descricao, unidade_de_medida, va~ lor_unitério, quantidade, valor_total) + Note: as tabelas que saem na TFN sao tabelas associativas. 4.3.2. Aplicagéo da 2° Forma Normal - 2FN A 2FN diz que todos os atributos que néo forem chave tém que ser depen- dentes diretos da chave, ou seja, os atributos que estdo contidos na nota tém que depender diretamente da chave Numero da nota. Inicialmente, observa-se a entidade que possui chave primdria concatenada. Para aquelas que satisfazem esta condigéo, analisar se existe algum atributo ou conjunto de atributos com dependéncia direta 8 chave priméria. Ex. 0 atributo cliente & dependente direto da nota, pois é o cliente desta nota. J8 atributo RG, CPF so dependentes do cliente, ndo tendo nenhuma relacdo direta com a nota, ou seja, independentemente da nota, 0 CPF do dliente seré o mesmo se soubermos 0 nome do cliente. Sabe-se também que © CPF do cliente nunca muda. Desta forma, tem-se Nota (numero da nota, data, cédigo_cliente, endereco, n°, baitro, cédigo_ cidade, valor_total); + 05 atributos adicionados acima “cédigo_cliente e cédigo_cidade” so para manter o relacionamento entre as entidades + Verifique que 0 campo endereco deve permanecer na entidade Nota, tendo em vista que, se, por acaso, pretender-se buscar uma nota emi- tida ha cinco anos cujo cliente alterou seu endereco para outra rua, 0 endereco que deverd aparecer na nota emitida ha cinco anos deve ser 0 correspondente ao endereco antigo do cliente, e no 0 novo endereco. Cliente (cédigo, nome, RG, CPF); ‘+ Os campos dependentes do cliente so transferidos para a tabela cliente Cidade (codigo, descricgo, UF); +O atributo UF que depende apenas da cidade é atribuido para a tabela cidade. tens nota (numero da nota, codigo produto, quantidade, valor_unitario, valor_total); * Oatributo “cédigo_produto” é mantido na tabela associativa para man- ter 0 relacionamento entre Nota, Itens da Nota e Produtos. Produto (cédigo, descricao, unidade_de_medida, valor_unitario); + 0s atributos dependentes de produto sao relacionados tabela produto. Repare que o atributo valor unitario foi duplicado, isso pela necessidade do valor unitario de um produto sofrer mudancas, em notas diferentes o valor unitério pode estar diferente também 4.3.3 Aplicagéo da 3* Forma Normal - 3FN ‘A 3FN diz que o atributo precisa estar na segunda forma normal, e todos os atributos que nao so chave, ndo podem depender de outros atributos que também nao sao chave. Deve-se verificar ainda se o valor de um atributo pode se repetir em muit sao de nova entidade. stuplas, sendo que neste caso, & necessério inclu- Uma Entidade esta na 3FN se nenhum de seus atributos possui dependéncia em relaco a outros atributos da Entidade, Ao verificar a existéncia de de- pendéncia entre as Entidades e seus atributos, devemos criar outra entidade que contenha os atributos dependentes Nota (numero da nota, data, codigo_cliente, cddigo_endereco, cédigo_bair- 10, n°, codigo_cidade), + Note que 0 atributo valor total da nota foi retirado na 3FN. Todos os atri- butos que sao gerados a partir do resultado de dois ou mais atributos s80 retirados, visando manter a consisténcia dos dados. Enderego (cédigo, descricso); * Aplicando a 3FN, o endereco é retirado da tabela nota, pois o endereco nao é um atributo chave e refere-se ao endereco do cliente nesta nota: Entéo, 0 endereco 6 incluso na tabela de clientes e relaciona-se tanto com a entidade Cliente como a entidade Nota. Bairro (codigo, descricao); * Aplicando a 3FN, o bairro é retirado da tabela nota, pois 0 bairro nao & um atributo chave e refere-se ao bairro do cliente nesta nota, 30, 0 bairro € incluso também na tabela de clientes e relaciona-se tanto com a entidade Cliente como a entidade Nota Cliente (codigo, nome, RG, CPF, n°, codigo endereco, cddigo cidade); * Os campos chave cédigo_endereco e cédigo_cidade vém para a tabela de clientes com o fim de fazer o relacionamento entre as tabelas. Cidade (codigo, descricao, UF); Itens nota (numero da nota, cddigo produto, quantidade, valor_unitario); * Oatributo valor total sai, pois ele ¢ resultado de outros dois atributos: a quantidade vezes o valor unitario Produto (cédigo, descri¢ao, unidade_de_medida, valor_unitario); A figura 18 representa o MER do exemplo normalizado anteriormente Iebai codigo bai_descricao| snot_codigo not_data #not_codCliente #not_codindereca| #not_codCidade not _codBairro #itn_codProduto| itn virUnivario jen _quantidade Jrcid codigo ‘eid deacricao cid UF itn_codNota pro descricac pro_unidadeMedida| pro_virunitario ‘cli_ntimero iyi codGidade qiclivcodBairro Figura 18 - Modelo gerado pela Normalizacéo da Nota Fiscal Font: autor (adaptado peo stad 4.4 Normalizacao de dados (Formulario Remanejamento) Dado 0 formulério de solicitacéo de remanejamento, sera aplicada a norma- lizagdo de dados visando obter um modelo de dados conciso: MINISTERIO DA EDUCACAO UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANA CAMPUS MEDIANEIRA REQUERIMENTO DE REMANEJAMENTO ESPAGO ASSER PREENCHIDO PELO REQUISITANTE: Nome Seno: © MDF Data de Nescimentos fc (Categoria Funciona Lotagde atu Data oe admiss0:. Cidade, Escolondede gorau 2 Grau - Curso 1 Grau = Curso ouves: Prnpais cursos realizatos: 2 3 5 ‘Experitneasprotesonas rtevarts: Prncpals arbuigses desenvohidas 20 setor Figura 19 Fone: Machado (1995) ‘Setores em que ja wababou: 1 Pesiooo a Motvo da sida 2 Periodo a Motvo da sida 3 o - Periodo a ‘Ops: se necossaro,utizarfoha aus @ anoxar ‘Aribugdes que gostaria de rabathar,ordem de peferéncia, 2 a 5 Horatio de peterénis: - ‘Setores/Onvisbew/ Dietorias em que gostara de tabahar, em cxdem de pretence: Quai) (8) motivo) que o toms descentente com suns abvicades? 1D Fala de cortege com a formagto académica 1 Avidads com complexdade minima 1 Atata de formacao em elado a atvdade desenvoNida prejudca sua execucéo 1B Horsriocetebeino 1D Oretconaments com acheta nto @satsttsro 1D Oreiaconaments con os colegas de trabalho fo 6 bom 1D. Fazamesma cosa hi motos anos Fata de expectatia ce crescinanto profisional 1D Aatidage decenvolvda ert ciando problemas de sate 1D Excesso detrabalna 1D Poucos vabaino [Ambiente excessvamente autoeritica Outros Obeervagtes Data de presnchimento.. I. Medianosa,.... de oe ‘csnatra 6 cervidor igura 20 Fen: hago 1985) ESPAGO A SER PREENCHIDO PELA CHEFIA IMEDIATA, a) servidorta) tom demonstrado nteresse pela aividade atuaimente desenvolvida? ‘As tarefas que Ihe so confiadas so cumpridas a contento? (0 horérios cumpridos esto dentro do estabelecido pela chefa? a) servidora) respeita os regulamentos e age em conformidade com 9s normas intemnas? ja) servidorta) desempenha suas fungées com serieda fe precisdo? ‘Qual a posiedo da cheia em relacio & permanéncia do servidor no atual setor? Qual orelacionamento do(a) servidor(a) com o grupo de trabalho? Meciante as inlormagées acima prestadas: (_ )Livero ofa) tuncionano(a) sem reposicao (( ) Libero ofa} funcionério(a) mediante reposicuo (( ) No bere ofa) funcionériova) ustiicativa Daten foi Assinatura © carimbo: Espavo a ser preenchido pela Diretotia em que o servdor esté lotado Data: ffi. Asinatura @ carimbo: Espaco a ser preenchido pela Divisio de Racrutamento, Selecdo e Desenvolvimento de Pessoal Foe: Machado (1985) 4.4.1 Definicado dos atributos contidos no formulario yento (codigo, nome, sexo, data_nascimento, categoria funcional, Requer lotacao_atual, data_admissao, cidade, escolaridade, grau, cursos_realizados, experiéncias_profissionais, atribuicdes_desenvolvidas, setor_que_trabalhou, data_entrada, data_saida, motivo_saida, atribuicées_que_gostaria, hord- rio, setores/divisGes/diretorias_gostaria, motivos_descontente, abservac6es, data_preenchimento, questio1, questéo2, questdo3, questdo4, questio5, questio6, questéo7, resultado, justificativa, data_resultado) + Os campos sublinhados indicam as chaves primarias. 4.4.2 Aplicacéo da 1° Forma Normal - 1FN A IFN diz que todos os atributos devem conter um valor atémico (Unico), ou seja, os dados inclusos dentro do campo n&o devem se repetir. Ex: 0 campo que representa 05 cursos feitos pelo requerente seré preen- chido quantas vezes no formulério? Depende de quantos cursos ele fez: na possibilidade de ser preenchido duas vezes, 0 campo é retirado para uma tabela associativa Remanejamento (cédigo, nome, sexo, data_nascimento, categoria_funcio- nal, lotacdo_atual, data_admissao, cidade, data_preenchimento, questao1, questio2, questao3, questiod, questao5, questio6, questao7, resultado, justificativa, data_resultado); + Permaneceram na tabela remanejamento apenas os campos com valores inicos, os campos que podem ser preenchidos uma ou mais vezes s80 retirados para as tabelas associativas, Remanejamento/escolaridade (cddigo remanejamento, escolaridade, rau); Remanejamento/Cursos (codigo remanejamento, cursos); Remanejamento/experiéncias profissionais (cédigo remanejamento, ex- periéncias_profissionais); Remanejamento/atribuigées desenvolvidas (cddigo_remanejamento, atribuicoes); Remanejamento/setores que trabalhou (cédigo remanejamento, setor, data_entrada, data_salda, motivo_sa(da); Remanejamento/atribuigées que gostaria (cédigo remanejamento, atribuig6es, horério); Remanejamento/setores- manejamento, setor); isdes-diretorias que gostaria (cédigo re- Remanejamento/motivos descontentamento (cadigo remanejamento, motivos, observacées). 4.4.3 Aplicacdo da 2* Forma Normal - 2FN A 2FN diz que todos os atributos que no forem chave tém que ser depen- dentes diretos da chave, ou seja, os atributos que estéo contidos no requeri- mento tém que depender diretamente da chave cédigo requerimento, Inicialmente, observa-se a entidade que possui chave primaria concatenada. Para aquelas que satisfazem esta condigéo, analisar se existe algum atributo ou conjunto de atributos com dependéncia direta 8 chave priméria Remanejamento (cédigo, cédigo_funcionério, categoria_funcional, lota- o_atual, data_admissao, cidade, data_preenchimento, questo, ques- tao2, questao3, questao4, questao5, questao6, questao7, resultado, just ficativa, data_resultado); * Verifique que 0 campo categoria funcional, lotagéo atual e cidade de- vem permanecer na entidade Remanejamento, tendo em vista que, se, or acaso, se desejar buscar um formulério emitido ha cinco anos, cujo funcionario alterou sua categoria funcional, lotagao atual ou cidade, os dados que deverdo aparecer no formulério preenchido hé cinco anos devem ser 0 correspondente & categoria funcional, lotacao atual ou cida- de, preenchido antigamente, e nao os dados novos. Funcionario (cédig0, nome, sexo, data_nascimento); Remanejamento/escolaridade (codigo _remanejamento,_escolaridade, grau); Remanejamento/Cursos (codigo_remanejamento,_cursos); Remanejamento/experiéncias profissionais (cddigo remanejamento, ex: periéncias); Remanejamento/atribuigées desenvol atribuicbes); idas (cédigo_remanejamer Remanejamento/setores que trabalhou (cédigo_remanejamento,_setor, data_entrada, data_saida, motivo_saida); Remanejamento/atribuiges que gostaria (cidigo_remanejamento, atribuicdes, hordrio), Remanejamento/setores-di manejamento, setor); des-diretorias que gostaria (codigo_re- Remanejamento/motivos descontentamento (cédigo_remanejamen- to,_motivos, observacées); 4.4.4 Aplicagao da 3* Forma Normal - 3FN A3FN diz que 0 atributo precisa estar na segunda forma normal, e todos os atributos que nao séo chave, nao podem depender de outros atributos que também no so chave Uma Entidade esta na 3FN se nenhum de seus atributos possui deendéncia em relagdo a outros atributos da entidade. Ao verificar a existéncia de de- pendancia entre as Entidades e seus atributos, devemos criar outta entidade que contenha os atributos dependentes. Remanejamento (cédigo, cédigo_funcionario, cédigo_categoria_funcio- nal, cédigo_lotagao, data_admisséo, cédigo_cidade, data_preenchimento, questéo1, questao2, questéo3, questao4, questo5, questao6, questéo7, resultado, justificativa, data_resultado); Categoria Funcional (codigo, descricio); Lotagao (codigo, descricao); Cidade (codigo, descricao); Funcionario (cadigo, nome, sexo, data_nascimento); Remanejamento/escolaridade (cédigo remanejamento, cédigo escolari- dade, grau); Escolaridade (codigo, descricao); Remanejamento/Cursos (cidigo_remansjamento, cédigo_cursos); Cursos (cédigo, descric’o); Remanejamento/experiéncias profissionais (cddigo_remanejamenio, digo _experiéncias); Experiéncias Profissionais (cddigo, descricao); Remanejamento/atribuigges desenvolvidas (cddigo remanejamento, cédigo atribuicdes); Atribuigées (cadigo, descrisao); Remanejamento/setores que trabalhou (cédigo remangjamento, cédi- go setor, data_entrada, data_saida, motivo_saida); Setores (cidigo, descricéo); Remanejamento/atribuicdes que gostaria (codigo remanejamento, digo_atribuicdes, horério); Remanejamento/setores-divisdes-diretorias que gostaria (cédigo re- manejamento, codigo setor); Remanejamento/motivos descontentamento (c6digo remanejamento, cadigo motives, observacoes);, Motiv descontentamento (cédigo, descricao) ‘A figura 22 demonstra 0 MER do exemplo anterior. Figura 22 - Modelo de Dados aplicado ao Requerimento de Remanejamento Font: ue (adaptado peo stad) Resumo Chegando ao fim deste capitulo, vocé deve ter percebido que a norma- lizagao de dados é uma ferramenta a mais, que propicia a criacdo de um Modelo de Dados conciso de forma faciitada. Lembre-se de que sempre hé necessidade de seguir as regras *ao pé da letra", considerando que caso no faca isso, seu modelo gerado poder apresentar problemas, como duplici- dade de dados, inconsisténcia, entre outros. Fixe a ideia de que a primeira forma normal busca determinar todas as tabelas associativas que voce tera A segunda forma normal busca manter a integridade do banco, mantendo inclusive 0 aspecto historico necessério e sua dependéncia com as entidades. A terceira forma visa criar entidades que normalmente néo dependem de rninguém, mas que se tornam dependentes de outras entidades.

You might also like