Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
MODELAGEM DE DADOS UNIDADE 4 Modelo Lógico Relacional (PARTE 3) PROFA. GELLARS TAVARES gellarstavares@yahoo.com.br 2012 CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 2 TÓPICOS z Normalização - Dependência Funcional – Primeira Forma Normal – Segunda Forma Normal – Terceira Forma Normal - Forma Normal de Boyce-Codd (FNBC) Referências • SILBERSCHATZ, A. & Korth, H. F., Sistemas de Banco de Dados • HEUSER, C. A., Projeto de Banco Dados Dependência Funcional z Técnica de Normalização z Observe que existe uma dependência entre os valores dos conjuntos abaixo: z Exemplo: Diante do número de CPF, poderei encontrar o nome da pessoa correspondente. Esta dependência é expressa no Modelo Relacional da seguinte maneira: CPF → NOME O NOME é funcionalmente dependente do CPF, pelo fato de todo o CPF estar associado sempre ao mesmo NOME. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 3 Para denotar esta dependência funcional, usa-se uma expressão na forma CPF → NOME. A expressão denota que a coluna NOME depende funcionalmente da coluna CPF. Diz-se que a coluna CPF é o determinante da dependência Funcional. De forma geral, o determinante de uma dependência funcional pode ser um conjunto de colunas e não somente uma coluna como na definição acima. Informalmente: Conhecido o valor de um CPF eu consigo determinar qual o NOME_FUNCIONARIO (único) com o qual este CPF está relacionado. Exemplo 1: ALUNOS (CodAluno, Nome, Morada, CodDisciplina, Disciplina) Temos que: - Nome e Morada são dependentes de CodAluno - Disciplina é dependente de CodDisciplina Exemplo 2: Func (mat, nome, sal, CPF) Mat → Nome Mat → Sal Mat → CPF CPF → Sal CPF → Nome CPF → Mat Exemplo 3: Tarefa (mat, nom, nu_proj, nm_proj, horas-trab) Mat, nu_proj → horas-trab Mat → nome CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 4 Existem três tipos de dependências entre os atributos de uma tabela. z Dependência Parcial → quando algum atributo depende de apenas UM dos atributos da chave primária. z Dependência Total → quando os atributos dependem de todos os atributos da chave primária. z Dependência Transitiva → um atributo não depende de nenhum atributo da chave Primária. 1) Dependência Funcional Total: Os atributos de uma tabela têm que depender da chave primária e somente da chave primária. Um atributo C é totalmente funcionalmente dependente da chave primária composta pelos atributos A e B, quando for funcionalmente dependente de A e B e não depende funcionalmente de qualquer parte da chave primária. Exemplo: - A quantidade de horas trabalhadas num projeto não é funcionalmente dependente do cod-proj, porque não significa o total de horas do projeto e não é funcionalmente dependente de matrícula do funcionário, porque não significa o total de horas trabalhadas pelo empregado. - A quantidade de horas trabalhadas é determinada, de modo único, pela composição da matrícula do empregado e do código do projeto, porque significa a quantidade de horas trabalhadas por empregado em um determinado projeto. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 5 2) Dependência Funcional Parcial: O atributo C é parcialmente funcionalmente dependente da chave primária composta pelos atributos A e B quando for funcionalmente dependente de A ou B e não de ambos A e B. O atributo Nom-forn é funcionalmente dependente somente do atributo cod-forn. O nome fornecedor é determinado, de modo único pelo código do fornecedor, independente dos materiais que são fornecidos. z A dependência funcional parcial ocorre quando a chave primária da relação é composta e se constitui numa anomalia que deve ser evitada. z A solução para o problema da dependência parcial consiste na criação de uma nova relação, que será composta pelo atributo ou atributos que dependem de parte da chave e a chave que determine de modo único estes atributos. 3) Dependência Funcional Transitiva: O atributo C é dependente funcional transitivo de A se C é funcionalmente dependente de B e B funcionalmente dependente de A, na mesma relação. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 6 - O atributo data-term-proj é funcionalmente dependente do atributo cod-proj, que por sua vez é funcionalmente dependente do atributo Num-emp. Então data-term-proj é dependente transitivo de Num-emp. - A dependência funcional transitiva constitui numa anomalia que deve ser evitada. - A solução para o problema da Dependência Funcional Transitiva consiste na criação de uma nova relação que será composta pelo atributo ou atributos que são dependentes funcionais transitivos tendo como chave primária o atributo que determina a transitividade. Resultado da análise da dependência Funcional: Uma relação estará normalizada segundo a análise da dependência funcional, quando possuir uma única chave primária, todos os atributos não chaves forem totalmente funcionalmente dependentes da chave primária e independentes entre si, ou seja, após a eliminação da dependência funcional parcial e transitiva, caso exista. Anomalias de Atualização EMP-DEPT Relações não normalizadas são sujeitas a anomalias durante as atualizações: • Anomalias de inserção • Inserir empregado requer repetir dados de departamento. • Anomalias de exclusão • Para excluir um único empregado do departamento também se exclui o departamento. • Anomalias de alteração • Mudar o nome do departamento requer modificar várias tuplas. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 7 NORMALIZAÇÃO INTRODUÇÃO A teoria da normalização tem origem na área de projetos de bancos de dados relacionais, e teve como criador o Dr. E. F. Codd. A teoria continua se desenvolvendo até os dias atuais, quando o modelo relacional se mantém como o padrão da indústria mundial para bancos de dados, mesmo tendo o modelo de objetos crescente aceitação. A teoria da normalização visa resolver três problemas potenciais no projeto de bancos de dados relacionais: ● Repetição da informação: informações repetidas desperdiçam espaço de armazenamento e criam dificuldades na atualização do banco de dados; ● Incapacidade de representação de informação; Perda de informação. ● A aplicação da normalização a um modelo de banco de dados relacional é realizada (ao menos teoricamente) em etapas, denominadas formas normais; z A 1ª forma normal (1FN) é o ponto de partida. Posteriormente, são aplicadas as formas normais seguintes até o nível de normalização desejado; O fato de uma relação se encontrar em uma determinada forma normal implica que ela se encontra também em todas as formas normais anteriores. Na prática, as formas normais 1FN, 2FN e 3FN são aplicadas de forma conjunta sobre as relações em um projeto de banco de dados. • Normalização de dados: decomposição de esquemas para evitar anomalias de atualização. • Objetivo: evitar redundância de dados e anomalias, isto é conseguido com um bom projeto. • Mecanismo formal para analisar esquemas de relações baseado nas suas chaves e nas dependências funcionais entre seus atributos. • Projeto conceitual bem feito resulta naturalmente em esquemas normalizados. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 8 O processo de normalização ocorre em etapas sucessivas. Cada etapa corresponde uma determinada forma normal, que apresenta um progressivo refinamento na estrutura das tabelas. Uma tabela precisa atender às 3 etapas de normalização para que possa ser considerada como normalizada. Existem 6 formas normais Analisaremos aqui apenas as 4 primeiras formas normais e a forma normal de Boyce-Codd Formas Normais Primeira Forma Normal (1FN) • É parte da definição formal de uma relação; foi definida para não permitir atributos multivalorados, atributos compostos e suas combinações. Uma relação está em 1FN se e somente se todos os seus atributos contêm apenas valores atômicos (simples, indivisíveis). Ou ainda, não contém tabelas aninhadas. ° Retirar da relação o (s) atributo (s) repetido (s) transformando a relação em novas relações: ° A nova relação formada terá uma nova chave escolhida entre os atributos repetidos e para relacionamento com a antiga relação, a chave primária da relação antiga; ° As antigas relações mantêm os atributos restantes e a chave original (de R) CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 9 CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 10 Dependência Funcional • DF é um relacionamento entre atributos; • DF deve ser explicitamente definida por alguém que conheça a semântica dos atributos de uma relação. EXEMPLO Imaginemos uma tabela destinada a registrar a informação sobre os alunos e as disciplinas em que estes estão matriculados: 1º caso) ALUNOS (CodAluno, Nome, Morada, Disciplinas) Esta tabela não obedece à primeira forma normal (1FN), uma vez que o atributo Disciplinas admite conjuntos de valores. Consideremos a tabela com alguns dados como exemplo: CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 11 Como podemos constatar, o atributo Disciplinas apresenta o conjunto de disciplinas freqüentadas por cada aluno. Poderíamos, no entanto, repetir os valores na tabela para que o atributo Disciplinas apenas contivesse um único valor (2º caso). 2º caso) ALUNOS (CodAluno, Nome, Morada, Disciplina1, Disciplina2, Disciplina3,...) Esta tabela não obedece à primeira forma normal (1FN) porque, embora todos os campos sejam atômicos, existem campos repetidos para a mesma categoria. Consideremos a tabela com alguns dados como exemplo: Como podemos constatar os atributos Disciplina1, Disciplina2 e Disciplina3 aparecem como campos repetidos para a mesma categoria. A solução para este problema, ou seja, para a tabela se encontrar na 1ª FN é a apresentada no 3º caso. 3º caso) ALUNOS (CodAluno, Nome, Morada, Disciplina) CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 12 A tabela ALUNOS agora está na 1FN, pois todos os atributos contêm apenas valores elementares. Apresenta, no entanto, grande redundância de informação, que se reflete na repetição dos identificadores dos nomes e moradas dos alunos. Para além desse inconveniente, podem apontar-se ainda os seguintes: 1. Problemas de atualização - se a morada de um aluno for alterada, essa alteração tem de ser feita em várias linhas da tabela, sob o risco de gerar incoerências na Base de Dados, isto é, numa determinada linha o aluno poderá aparecer uma morada e noutra linha outra; 2. Problemas de inserção – com a tabela estruturada desta maneira torna-se impossível registrar um aluno que não esteja matriculado a nenhuma disciplina, mas que se encontra a fazer apenas exames, sem o atributo DISCIPLINA fique com valor nulo não obedecendo à regra de integridade de entidade; 3. Problemas de eliminação - porque para anular a matrícula de um aluno implica ter de eliminar várias linhas da tabela, e mesmo perder a informação do aluno, tal como NÚMERO, NOME e MORADA. OUTRO EXEMPLO CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 13 Segunda Forma Normal (2FN) Uma relação está em 2FN se e somente se estiver em 1FN e os seus atributos não chaves forem dependentes funcionais completos da chave primária. ° Examinar somente as relações (em 1FN) com chave primária composta, as demais já estão em 2FN; ° Retirar da relação original as dependências parciais, isto é, e determinar se todos os atributos, que não fazem parte da chave, dependem de toda a chave ou somente de parte dela; ° Separar os atributos de relação em: ° Relações que contém os atributos que dependem de parte da chave; sua a chave primária é a parte da chave da qual os atributos retirados dependem; ° Relação onde permanecem os atributos que dependem de toda com a chave. z Ou ainda... Uma relação está em 2FN se e somente se estiver em 1FN e, não contém dependências parciais. Uma dependência (funcional) parcial ocorre quando uma coluna depende apenas de parte de uma chave primária composta. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 14 EXEMPLO Evita: • Inconsistências devido à duplicidade de informações • Perda de dados em operações de remoções / alteração na relação CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 15 Se não houver turmas de um determinada disciplina em um perde-se a informação sobre Número de Horas!!! a semestre, o Terceira Forma Normal (3FN) Uma relação está em 3FN se e somente se estiver na 2FN e todos os seus atributos não chaves forem dependentes não transitivos da chave primária. Em outras palavras, para toda dependência funcional X → A, uma das duas condições seguintes devem valer: • X é uma superchave ou • A é membro de uma chave candidata (atributo primo). Todo atributo que pertence a uma chave candidata é denominado primo. ° Examinar todas as relações em 2FN, para verificar se existem dependências transitivas; ° Atributos dependentes de outro(s) atributo (s) não chaves vão constituir nova(s) relação (ões), cuja chave primária é (são) o (s) atributo (s) do (s) qual (ais) depende (m); CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 16 ° Os demais atributos vão constituir uma relação com chave igual à relação original. z Ou ainda... Uma relação está em 3FN se e somente se estiver na 1FN e na 2FN e, não contém dependências transitivas. Uma dependência funcional transitiva ocorre quando uma coluna, além de depender da chave primária da tabela, depende de outra coluna ou conjunto de colunas da tabela. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 17 Evita: z Inconsistências devido a duplicidade de informações z Perda de dados em operações de remoções / alteração na relação Se não houver aula em uma determinada sala nesse semestre perde-se a informação sobre qual prédio contém a tal sala. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 18 Resumo do processo para as 3 formas vistas ° eliminar atributos multivalorados ou compostos; ° eliminar atributos que dependem apenas de parte da chave primária composta; ° eliminar atributos que dependem de outros atributos que não pertencem a chave primária da relação ROTEIRO PRÁTICO PARA NORMALIZAÇÃO A)TRANSFORMAÇÃO DE RELAÇÕES NÃO NORMALIZADAS EM RELAÇÕES NA 1ª FN. ─ Escolher uma chave primária para a relação. ─ Separar da relação os atributos (ou grupos) repetitivos, transformando a relação em outras duas relações. ● Uma delas contendo o grupo repetitivo e que terá como chave a combinação da chave primária da relação não normalizada e uma chave (ou +) escolhida(s) entre os atributos repetitivos. (Regra Geral). ● Outra que permanece com a chave original e os atributos restantes. ─ Transformar atributos COMPOSTOS em atributos ATÔMICOS. B) TRANSFORMÇÃO DAS RELAÇÕES EM 1ª FN PARA RELAÇÕES NA 2ª FN. ─ Examinar as relações com chave primária composta e verificar se todos os atributos dependem funcionalmente de toda a chave ou apenas de parte dela. ─ Os atributos que dependem de parte da chave, formam uma nova relação, cuja chave primária é a parte da chave da relação em 1ª FN da qual depende. ─ Apenas os atributos que dependem totalmente da chave composta permanecem na relação original. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 19 C) TRANSFORMAÇÃO DAS RELAÇÕES EM 2ª FN PARA RELAÇÕES EM 3ª FN. ─ Examinar as dependências funcionais entre todos os atributos das relações em 2ª FN. ─ Aqueles atributos que dependem de outro atributo da relação, que não a sua chave, vão constituir uma nova relação cuja chave é o atributo do qual dependem. ATENÇÃO: Esta chave continua como atributo na tabela Base pois é o elo de ligação entre ambas. EXEMPLO DE NORMALIZAÇÃO 1ª FN – Eliminar atributos multivalorados e atributos representa agrupamento. 2ª FN – Eliminar D. F. P. (Dependência Funcional Parcial) CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 20 3ª FN – Eliminar D. F. T. (Dependência Funcional Transitiva) - Redundância deve ser evitada. Não se deve guardar o que se pode calcular. Forma Normal de Boyce-Codd (FNBC) • É uma forma mais restritiva de 3FN, isto é toda relação em FNBC está também em 3FN; entretanto, uma relação em 3FN não está necessariamente em FNBC. Uma relação está em FNBC se para toda dependência funcional (df) X → A, X é uma super-chave Anomalia de exclusão: Se Carlos sair da aula de Física, não teremos nenhum registro de que Antonio leciona Física. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 21 Note, entretanto, que a dependência funcional df1 : {Aluno, Disciplina} → {Professor} foi perdida na decomposição. Considere, por exemplo, a inserção de (Marta, Manoel) em R1. Decomposição / Junção sem Perda • Alguns esquemas não podem ser normalizados em FNBC e ao mesmo tempo preservar todas as dfs (dependências funcionais). • Solução: redundância parcial. Normalização como Ferramenta para Validação da Qualidade de um Esquema • As formas normais até FNBC são baseadas em dependências funcionais, exceto a 1FN, que faz parte da definição do modelo relacional. • O design conceitual baseado no modelo ER tende naturalmente a produzir esquemas normalizados, a menos da 1FN. • A separação de conceitos é o resultado natural do design conceitual bem feito. • Na prática, esquemas que violam a normalização são exemplos de esquemas mal projetados. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 22 quivalência Funcional entre o Modelo ER e Relações Normalizadas dentro de uma entidade: Relacionamento 1:1 ou 1:N binário (ou unário) • Relacionamento M:N binário (ou unário) E • CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 23 uarta Forma Normal (4FN) ltivaloradas (DFMVs) o seja possível um onjunto de valores determinarem o valor de outro atributo, esse conjunto C e, caso exista lguma DFMV X --->> Y, Q • Dependências funcionais mu O conceito baseia-se no fato de que, embora nã c consegue restringir os valores possíveis para aquele atributo. Uma relação R está em 4FN se e somente se estiver em FNB a a DFMV é trivial (i.e., Y Ì X ou X È Y = R) ou X é uma superchave de R. Exemplo 1 CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 24 xemplo 2 Funcionais Multivaloradas E Dependências Uma relação está na quarta forma normal quando: dado um conjunto completo de dependências funcionais multivaloradas não triviais para superchave da relação. essa relação: ¾ Para todas as A ⇒ B, ¾ A é uma CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 25 Sempre que dois conjuntos de atributos multivalorados independentes ocorrerem na mesma relação, será necessário repetir-se todos os valores de cada conjunto de atributos para cada valor possível do outro conjunto. Evita: z Inconsistências devido à inclusão de uma nova tupla que tem valores ferentes das diversas ocorrências de outro atributo multivalorado. z Inconsistências em operações de remoção de tuplas, sendo que o res di produto cartesiano dos atributos multivalorados da relação possui diferentes valores de um dos atributos em comparação com os valo de outro atributo. CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 26 XEMPLO Reconhece e separa atributos multivalorados constituindo uma chave primária composta e, telefones) lar, residencial, comercial, etc. z ão nte (codigo,nome) – Telefones (codigo,telefone) E 4FN z Cliente (codigo, nom z Telefones pode ser fixo, fax, celu Soluç – Clie CURSO: SISTEMAS DE INFORMAÇÃO DISCIPLINA: MODELAGEM DE DAODS PROFESSORA: GELLARS TAVARES MODELAGEM DE DADOS – Professora Gellars Tavares – ano 2012 27 utras Formas Normais dências. • dependências de junção e de inclusão, que levam a formas ma Normal, Forma Normal de Domínio- have . utilidade prática destas formas normais é limitada, porque num anco de dados real com muitos atributos, é muito difícil (e praticamente zir inconsistências quando se alteram relações; porém briga a execução de custosas operações de junção para a consulta de u não Normalizar? considerando-se o compromisso entre se arantir a eliminação de inconsistências na base, e eficiência de acesso. rar o desempenho das consultas. resultados já calculados. terminado o tipo de valores de uma tabela. De lidade ao surgimento de anomalias quando ocorre manipulação. gridade dos dados. os separados. Nesse caso, se as tabelas estão desnormalizadas, a leitura das informações não necessárias ocasiona maior tempo de processamento. O • Tipos adicionais de depen normais mais restritas (Quinta For C ) • A b irrelevante) descobrir tais dependências e restrições. Considerações Finais Normalizar evita introdu o informações. Normalizar o A decisão deve ser tomada g Desnormalização Vantagens Melho Quando necessita retornar muitas vezes Criação de históricos. Quando já tiver pré-de svantagens Vulnerabi Ameaça a inte Quando a consulta precisa de dad