Dependência funcional



Documentos relacionados
OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

- O atributo Cursos contém valores não atómicos!!!

MODELAGEM DE DADOS - NORMALIZAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Construir um modelo de dados é: - Identificar, Analisar e Registar a política da organização acerca dos dados

Diagrama de Entidade Associação ou Relacionamento

Diagrama de transição de Estados (DTE)

Banco de Dados Lista de Exercícios 01

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

Introdução às Bases de Dados

Rock In Rio - Lisboa

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

UML (Unified Modelling Language) Diagrama de Classes

BANCO DE DADOS I AULA 6. Wlllamys Araújo willamysaraujo7@gmail.com

Depois de obtido o diagrama E/A há que estabelecer o esquema relacional correspondente.

MC536 Bancos de Dados: Teoria e Prática

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

Obrigatoriedade de participação de uma entidade numa associação. Uma entidade pode participar numa associação de duas formas:

Sistemas de Informação

Banco de Dados. Modelo Relacional. Prof. Enzo Seraphim

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

Databases. Dependências Funcionais

Modelo de Entidade e Relacionamento (MER) - Parte 07

LINGUAGEM DE BANCO DE DADOS PROFESSORA LUCÉLIA. Normalização

4 Segmentação Algoritmo proposto

Modelo Entidade-Relacionamento

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Introdução às Bases de Dados

Bases de Dados. Parte III: O Modelo Relacional

Dependências Multi-Valor, 4 a Forma Normal

Profa. Daniela Barreiro Claro

Tecnologias e Linguagens para Banco de Dados I. Expressão do Relacionamento. Expressão do Relacionamento

2 Diagrama de Caso de Uso

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

BANCO DE DADOS I AULA 3. Willamys Araújo

- A crescente necessidade de sistemas inteligentes e de aquisição de conhecimento levaram à necessidade de implementação de Data Warehouses.

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Diagrama de Entidade e Relacionamento

Conceitos de Banco de Dados

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Normalização de Esquemas de Banco de Dados. Prof. Carlos Bazilio

Tarefa Orientada 16 Vistas

Modelo Relacional. Aécio Costa

Ao conjunto total de tabelas, chamamos de Base de Dados.

Faculdade Lourenço Filho - ENADE

Desenvolvimento de Sistema de Software

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Novo Formato de Logins Manual de Consulta

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber

Tarefa Orientada 14 Subconsultas

Entendendo como funciona o NAT

Só Matemática O seu portal matemático FUNÇÕES

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

Disciplina: Unidade III: Prof.: Período:

Dependências Funcionais

Engenharia de Software III

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional

Disciplina de Banco de Dados Parte V

Especificação do 3º Trabalho

Guia de Especificação de Caso de Uso Metodologia CELEPAR

DATA WAREHOUSE. Introdução

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

Roteiro 3 Modelagem relacional

Modelo Cascata ou Clássico

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

a 1 x a n x n = b,

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Manual de Utilização de Certificados Digitais. Microsoft Word 2003

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Prof.: Clayton Maciel Costa

Regulamento de Vigilâncias de Provas Escritas de Avaliação do DEEC

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

3.1 Definições Uma classe é a descrição de um tipo de objeto.

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Manual do GesFiliais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Orientação a Objetos

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

1.3. SGBD Sistemas de Gestão de Base de Dados

TRABALHO PRÁTICO. Sistema de Gestão de Bases de Dados. Doenças. Alunos: Filipe Alexandre da Silva Vila Real Nuno José Morais Felicio

Transcrição:

Dependência funcional Dependência funcional: Dados dois conjuntos de atributos A e B de uma entidade, diz-se que: B é funcionalmente dependente de A ou A determina B ou B depende de A, se a cada valor de A estiver associado um, e só um, valor de B. Se A determina B então B não é funcionalmente dependente de nenhum subconjunto de A. Uma dependência funcional é representada por : A B A denominado Determinante Exemplo de identificação de dependências funcionais: N_funcionário Nome_Próprio Apelido Departamento 1021 Sofia Reis 900 1022 Afonso Reis 700 1023 António Cardoso 900 Departamento N_funcionário? Não pois Departamento 900 => {1021,1023} N_funcionário Departamento? Sim pois se se conhecer o N_funcionário (atributo unívoco) é possível determinar o Departamento (um funcionário só pode pertencer a um departamento) 2.4 -TM Dados: Dependências entre atributos e normalização 1

Nome_próprio N_funcionário? Não pois podem existir funcionários com o mesmo nome => podem haver múltiplos valores de N_funcionário para o mesmo Nome_próprio N_funcionário Apelido? Apesar de dois funcionários terem o mesmo apelido, se se conhecer o N_funcionário determina-se um só Apelido N_funcionário todos os restantes atributos A Identificação de dependências funcionais não pode ser obtida apenas a partir da inspecção de algumas instâncias, mas sim através das próprias propriedades dos atributos. Outro exemplo de identificação de dependências funcionais: Papelaria Artigo Preço Colmeia Caneta bic fina 150 Central Fita cola 300 Aguarela Borracha 215 Silva Caneta bic fina 175 O preço é funcionalmente dependente de artigo (Artigo Preço)? Não; o mesmo artigo pode ter preços distintos em diferentes papelarias O preço é funcionalmente dependente de papelaria (Papelaria Preço)? Não; para cada papelaria há tantos valores para Preço quantos os artigos vendidos nessa papelaria. Preço depende funcionalmente de ambos {Papelaria, Artigo} Preço 2.4 -TM Dados: Dependências entre atributos e normalização 2

Normalização O processo de identificação dos agrupamentos necessários e da localização correcta de cada atributo consiste num conjunto de técnicas designadas por normalização. A normalização converte cada entidade gradualmente para Formas Normais, através da aplicação sucessiva de regras que alteram o formato dos dados da 1ªForma Normal até à 5ª Forma normal. Formas Normais 1ª Forma Normal Uma relação está na 1ª forma normal (1FN) quando: os domínios de todos os atributos consistem apenas em valores atómicos não existem subgrupos de atributos repetidos Passagem de uma entidade à 1FN: Eliminar subgrupos repetidos, decompondo a relação em duas (ou mais) relações. A B C D A A B C D 2.4 -TM Dados: Dependências entre atributos e normalização 3

2ª Forma Normal Uma relação está na 2ª forma normal (2FN) quando: estiver na 1FN; todos os atributos que não pertencem à chave dependem de toda a chave (e não de um subconjunto da chave). Passagem de uma relação à 2FN: Separar os atributos que dependem de um subconjunto da chave, decompondo a relação em duas (ou mais) relações. A B C D A B B D C 2.4 -TM Dados: Dependências entre atributos e normalização 4

3ª Forma Normal Uma relação está na 3ª forma normal (3FN) quando: estiver na 2FN; os atributos que não pertencem à chave não dependem de nenhum atributo que também não pertence à chave. Passagem de uma relação à 3FN: Separar os atributos que dependem de outro atributo não pertencente à chave, decompondo a relação em duas (ou mais) relações. A B C D E A C B E C D 2.4 -TM Dados: Dependências entre atributos e normalização 5

Forma Normal Boyce Codd Uma relação está na forma normal de Boyce Codd (FNBC) quando todo o determinante da relação for uma chave candidata. A FNBC corresponde a um grau de normalização mais elevado do que a 3FN e é necessária quando: uma entidade tem várias chaves candidatas; as chaves candidatas são compostas; as chaves candidatas sobrepõem-se porque possuem pelo menos um atributo em comum. Exemplo de entidade que necessita da FNBC: SEMINÁRIO ESTUDANTE INSTRUTOR Nº_PARTICIPAÇÕES S1 1022 Reis 12 S1 3088 Couto 12 S2 1022 Pires 14 S2 4325 Guedes 14 Cada seminário é dirigido por dois instrutores, mas um instrutor só pode dirigir um seminário; Um estudante pode participar em mais do que um seminário mas é orientado somente por um dos instrutores. Chaves candidatas: Seminário, Estudante Estudante, Instrutor 2.4 -TM Dados: Dependências entre atributos e normalização 6

Dependências funcionais Determinantes Seminário, Estudante Instrutor, Nº_participações Estudante, Instrutor Seminário, Nº_participações Instrutor Seminário São chaves candidatas Não é chave candidata Passagem de uma relação à FNBC: Separar o(s) atributo(s) que depende(m) do(s) atributo(s) que não é(são) chave candidata, decompondo a relação em duas (ou mais) relações. A B C D A B C D ou B C D C A A B D A C No exemplo ficaríamos com as seguintes entidades: Participante (Estudante, Instrutor, Nº_partipações) Orientador (Instrutor, Seminário) 2.4 -TM Dados: Dependências entre atributos e normalização 7

Considerações relativamente a normalização A essência do processo de normalização consiste na decomposição sucessiva de uma colecção de relações, sem perda de informação, com base num conjunto de regras (formas normais). Benefícios do processo de normalização: Estruturação da informação e melhoria da qualidade da representação relacional; Eliminação das possibilidades de ocorrência de anomalias na manipulação dos dados (que comprometem a sua integridade); Economia de espaço de armazenamento e de custos de manipulação Exemplos de custos evitados: manipulação de maior volume de dados do que os efectivamente necessários, actualização de dados redundantes, etc.) Potencia a estabilidade do modelo lógico relacional, ao aumentar a capacidade de um modelo se manter inalterado face a mudanças que venham a ser percebidas ou introduzidas no ambiente que tenha sido modelado; Não é um processo com finalidade restritiva, mas sim com caracter organizativo; Principal limitação do processo de normalização: Fragmentação da informação e suas consequências. 2.4 -TM Dados: Dependências entre atributos e normalização 8

Estratégias de Normalização Alguns aspectos a ter em conta: O processo de normalização raramente percorre todas as formas normais (da 1FN à 5FN); Frequentemente, o analista reconhece, por experiência própria, que uma dada entidade não está normalizada e coloca-a directamente na 3FN ou na FNBC; Uma estratégia muito usada consiste em normalizar para a FNBC em iterações sucessivas, utilizando a análise de dependências funcionais. Estratégia de decomposição usando a análise de dependências funcionais Desenvolver relação universal Determinar todas as dependências funcionais A relação está na FNBC? N Decompor a relação em duas S Modelo Concluído 2.4 -TM Dados: Dependências entre atributos e normalização 9

Decomposição de uma relação com vista à obtenção de relações na FNBC Consideramos a relação R (A, B, C, D, E,...), que não está na FNBC; Procura-se uma DF C D que seja responsável por a relação não estar na FNBC; Criam-se duas relações: R1(A, B, C, E,...) e R2(C, D); Verifica-se se R1 está na FNBC; O processo continua até todas as relações obtidas por decomposição estarem na FNBC. Diagrama de dependências funcionais Notação Simbólica Diagrama de dependência funcional #Produto #Produto, #Fornecedor > Preço #Fornecedor Preço 2.4 -TM Dados: Dependências entre atributos e normalização 10

Exemplo de normalização usando a análise de dependências funcionais #Produto #Fornecedor Existências Tipo Q_alerta Preço Morada Telefone Chave candidata: #Produto, #Fornecedor Determinantes: #Produto, #Fornecedor #Produto #Fornecedor Tipo Não está na FNBC porque existem determinantes que não são chave Decompor a relação em duas R1 Existências R2 #Produto #Fornecedor Tipo Preço Morada Tipo Q_alerta Chave candidata: #Produto, #Fornecedor Determinantes: #Produto, #Fornecedor #Produto #Fornecedor Não está na FNBC Telefone Chave candidata: Tipo Determinantes: Tipo Está na FNBC 2.4 -TM Dados: Dependências entre atributos e normalização 11

R3 #Produto R4 #Fornecedor Existências Tipo Morada Telefone Chave candidata: #Produto Determinantes: #Produto Está na FNBC Chave candidata: #Fornecedor Determinantes: #Fornecedor Está na FNBC R5 #Produto #Fornecedor Preço Chave candidata: #Produto, #Fornecedor Determinantes: #Produto, #Fornecedor Está na FNBC Modelo de dados final R2 (Tipo, Q_alerta) R3 (#Produto, Existências, Tipo) R4 (#Fornecedor, Morada, Telefone) R5 (#Produto, #Fornecedor, Preço) 2.4 -TM Dados: Dependências entre atributos e normalização 12

Regras de inferência de dependências funcionais Regras utilizadas para reduzir, ou alterar, um dado conjunto de dependências funcionais num outro conjunto de DFs equivalentes. Dado um conjunto de dependências funcionais, utilizando as regras de inferência, é possível inferir quais são as dependências logicamente implicadas. Algumas regras de inferência de DFs: Transitividade (T); Junção de Dfs (J); Decomposição de Dfs (D); Acrescento de atributos (A); Pseudotransitividade (P). 2.4 -TM Dados: Dependências entre atributos e normalização 13

Transitividade Se X Y e Y Z, então X Z é uma dependência transitiva. Notar que: X Z é uma DF válida; Se X Y, Y Z e X Z pertencem todas a um mesmo conjunto de DFs, então X Z é redundante. As DFs redundantes devem ser eliminadas antes de iniciar o processo de decomposição. Exemplo de eliminação de DF transitivas: A B C A B C D D 1) Conjunto original de DF 2) A C é removida, uma vez que A B e B C A B C A B C D 3) D C é removida, uma vez que D B e B C D 4) A B é removida, uma vez que A D e D B 2.4 -TM Dados: Dependências entre atributos e normalização 14

Junção de DFs Se X Y e X Z, então X Y,Z. Exemplo: Se: Então BI Nome Morada BI Nome Morada Decomposição de DFs Se X Y,Z então X Y e X Z. Exemplos: Se: Então BI Nome Morada BI Nome Morada 2.4 -TM Dados: Dependências entre atributos e normalização 15

Acrescento de atributos O conceito de acrescento de atributos também gera DFs redundantes. Duas situações: Se X Y, então X,Z Y é uma DF válida mas redundante; Se X Y, então X,Z Y,Z é uma DF válida mas redundante. Exemplos: A B A B Z AZ-> B acrescentada é redundante Z AZ-> BZ acrescentada é redundante Pseudotransitividade Se X Y e Y,W Z então X,W Z é uma DF redundante pseudotransitiva. Exemplo: Docente Horário Disciplina Docente, Horário -> Sala DF pseudotransitiva (redundante) Sala 2.4 -TM Dados: Dependências entre atributos e normalização 16

Cobertura Mínima O conjunto de DFs obtidas através da remoção de todas as DFs redundantes é designado por Cobertura Mínima. A cobertura mínima pode depender da ordem pela qual as DFs redundantes vão sendo eliminadas, pelo que o mesmo conjunto de DFs pode originar várias Coberturas Mínimas. A cobertura mínima deve ser obtida antes de se iniciar o processo de decomposição. Verificar o resultado final A mesma DF não deve aparecer em mais do que uma relação; O conjunto de DFs obtidas deve ser o mesmo existente na Cobertura Mínima Inicial ou deve poder ser deduzido a partir deste usando as regras de inferência; Não devem existir relações redundantes. 2.4 -TM Dados: Dependências entre atributos e normalização 17

Propriedades da decomposição A decomposição deve: deixar todas as relações na forma normal adequada (que não cause anomalias); preservar todos os atributos; preservar as dependências funcionais; conduzir a junção sem perdas (não aditiva). Preservação de atributos Cada atributo da Relação Universal deve aparecer em pelo menos uma das relações R1, R2,..., Rn, ou seja, não se pode perder atributos durante o processo de normalização. Preservação de DF As dependências funcionais existentes entre os atributos da relação universal devem aparecer directamente, ou devem poder ser deduzidas através das regras de inferência, numa das relações R1, R2,..., Rn. Porquê preservar as DF? As DF representam restrições e podem e devem ser usadas para garantir a integridade; Se, após a normalização, uma dada DF não aparece directamente numa única relação, deixa de ser possível verificar facilmente a restrição representada por essa DF; Seria necessário fazer a junção de duas ou mais relações para poder verificar essa restrição, o que se tornaria incomportável num sistema real. 2.4 -TM Dados: Dependências entre atributos e normalização 18

Violação da propriedade de preservação de DF: Exemplo Lotes ID_propriedade Concelho N_lote Área Supor que: O número de identificação de cada propriedade é estabelecido a nível nacional; As instâncias da entidade só contemplam 2 concelhos: Coimbra e Soure; As áreas dos lotes em Coimbra só podem ser de 500, 700 ou 1000 m 2 ; As áreas dos lotes em Soure só podem ser 1200 m 2 ; DF s: a) ID_propriedade todos os atributos b) Área Concelho c) N_lote, Concelho Área d) N_lote, Concelho ID_propriedade Utilizando a FNBC obtém-se: Lotes ID_propriedade N_lote Área Área Concelho As DF c) e d) perderam-se no processo de decomposição. 2.4 -TM Dados: Dependências entre atributos e normalização 19

Junção sem perdas ou junção não aditiva Se a decomposição preserva informação da relação inicial, a junção da projecção das instâncias originais deve produzir as instâncias iniciais, pois: a decomposição de uma relação em várias relações normalizadas não pode levar a perda de informação; há perda de informação quando, após o processo de normalização, há o risco de a junção das relações dar origem a registos espúrios (com informação errada). Esta propriedade é também chamada junção não aditiva (JNA) porque garante que a operação de junção não gera registos adicionais contendo informação errónea. Violação da propriedade da junção não aditiva: exemplo Proj_Emp Nome_emp BI Nproj Nomeproj Local Horas José 1154324 1 Hércules Coimbra 200 José 1154324 2 Viriato Viseu 35 Maria 5367222 3 Safira Braga 120 Sofia 2373672 1 Hércules Coimbra 80 Sofia 2373672 2 Viriato Viseu 70 Marta 6263533 2 Viriato Viseu 100 DF {BI NomeE Nproj NomeP, Local BI, Nproj Horas} 2.4 -TM Dados: Dependências entre atributos e normalização 20

Decompondo a relação Proj_Emp nas relações Emp_Locais e Proj_Emp1, ou seja, projectando a relação universal segundo (Nome_Emp, Local) e (BI, Nproj, Nomeproj, Local e Horas), obtém-se: Emp_Locais Proj_Emp1 Nome_emp Local BI Nproj Nomeproj Local Horas José Coimbra 1154324 1 Hércules Coimbra 200 José Viseu 1154324 2 Viriato Viseu 35 Maria Braga 5367222 3 Safira Braga 120 Sofia Coimbra 2373672 1 Hércules Coimbra 80 Sofia Viseu 2373672 2 Viriato Viseu 70 Marta Viseu 6263533 2 Viriato Viseu 100 A junção das duas relações Emp_Locais e Proj_Emp1, é efectuada a partir do atributo comum, ou seja, Local, combinando todas as instâncias, das duas relações, que possuem o mesmo valor para o atributo Local. O resultado da referida junção, apresentado parcialmente, é o seguinte: Nome_emp BI Nproj Nomeproj Local Horas José 1154324 1 Hércules Coimbra 200 José 2373672 1 Hércules Coimbra 80! José 1154324 2 Viriato Viseu 35 José 2373672 2 Viriato Viseu 70! José 6263533 2 Viriato Viseu 100! Maria 5367222 3 Safira Braga 120..................! exemplos de registos espúrio 2.4 -TM Dados: Dependências entre atributos e normalização 21

Algoritmo de verificação da propriedade de junção não_aditiva (JNA) Violação da JNA: Exemplo Proj_Emp (BI, NomeE, Nproj, NomeP, Local, Horas) Emp_Local (NomeE, Local) Proj_Emp1(BI, Nproj, NomeP, Local, Horas) DF BI NomeE Nproj NomeP, Local BI, Nproj Horas 1ºPasso Construir uma matriz S que terá nas colunas os atributos da relação universal e nas linhas os nomes das relações de decomposição. Emp_Local Proj_Emp1 BI Nproj NomeP Local Horas 2ºPasso Marcar os atributos de cada relação de decomposição com a i, sendo i o nº do atributo. BI NomeE Nproj NomeP Local Horas Emp_Local a2 a5 Proj_Emp1 a1 a3 a4 a5 a6 2.4 -TM Dados: Dependências entre atributos e normalização 22

DF Proj_Emp (BI, NomeE, Nproj, NomeP, Local, Horas) Emp_Local (NomeE, Local) Proj_Emp1(BI, Nproj, NomeP, Local, Horas) BI NomeE Nproj NomeP, Local BI, Nproj Horas 3ºPasso Repetir Para cada DF X Y Se (existe alguma linha na matriz S com os dois conjuntos de atributos X e Y, todos marcados com a s) então Para cada linha da matriz S Se (os atributos contidos em X estão marcados com a s) então Marcar com a s todos os atributos contidos em Y fim se fim para fim se fim para Até ((existir uma linha só com a s) ou (não haver alterações na matriz)) BI NomeE Nproj NomeP Local Horas Emp_Local a2 a5 Proj_Emp1 a1 a3 a4 a5 a6 Não há alterações na matriz, nem nenhuma linha só com a s viola JNA 2.4 -TM Dados: Dependências entre atributos e normalização 23

Verificação de JNA: Exemplo Proj_Emp (BI, NomeE, Nproj, NomeP, Local, Horas) DF Emp (BI, NomeE) Proj (Nproj, NomeP, Local) Trab_em (BI, Nproj, Horas) BI NomeE Nproj NomeP, Local BI, Nproj Horas 1ºPasso e 2ºPasso BI NomeE Nproj NomeP Local Horas Emp a1 a2 Proj a3 a4 a5 Trab_em a1 a3 a6 3ºPasso BI NomeE BI NomeE Nproj NomeP Local Horas Emp a1 a2 Proj a3 a4 a5 Trab_em a1 a2 a3 a6 Nproj NomeP, Local BI NomeE Nproj NomeP Local Horas Emp a1 a2 Proj a3 a4 a5 Trab_em a1 a2 a3 a4 a5 a6 Linha só com a s verifica JNA 2.4 -TM Dados: Dependências entre atributos e normalização 24

O processo de decomposição (feito intuitivamente) pode dar origem à violação da propriedade da JNA. Haverá algum algoritmo de decomposição que garanta essa propriedade? Sim, mas é usado raramente porque: é bastante complexo; tem como ponto de partida a cobertura mínima, pelo que não é determinístico, pois para o mesmo conjunto de atributos pode haver várias coberturas mínimas; é praticamente inviável para grandes projectos. A solução mais utilizada Construir o modelo conceptual de dados (DER); Derivar o modelo lógico a partir do modelo conceptual; Verificar o resultado usando a teoria da normalização (ver se as relações estão na FNBC ou superior); Verificar se as seguintes propriedades são respeitadas: - preservação dos atributos; - preservação das dependências funcionais; - verificação de junções não aditivas. 2.4 -TM Dados: Dependências entre atributos e normalização 25

Formas mais avançadas de normalização Quarta Forma Normal (4FN); Quinta Forma Normal (5FN); Outras (não abordadas). Formas Normais Tipo de dependências em que se baseiam 1FN 2FN 3FN FNBC 4FN 5FN ou FNPJ Dependências funcionais (e chave primária) Dependências funcionais (e chaves candidatas) Dependências multivalor Dependências de junção 2.4 -TM Dados: Dependências entre atributos e normalização 26

Dependências Multivalor Uma dependência multivalor (DM) é outro tipo de dependência entre dados que consiste em associações de muitos para muitos entre atributos. Exemplo: Uma pessoa (Id_pessoa) pode ter vários números de telefone (N_telefone) e um número de telefone pode ser partilhado por várias pessoas. DF Id_pessoa N_telefone N_telefone Id_pessoa As DF são falsas Existem situações que não podem ser explicadas por DF. A forma correcta de representar esta situação é através da dependência multivalor (DM) : Id_pessoa N_telefone e diz-se que N_telefone é funcionalmente multidependente de Id_pessoa, ou, que Id_pessoa multidetermina N_telefone. 2.4 -TM Dados: Dependências entre atributos e normalização 27

Dependência Multivalor: Exemplo de situação clássica As DM são uma consequência da 1FN que não permite que um atributo tenha um conjunto de valores; Se tivermos um ou mais atributos multivalor independentes na mesma relação, temos de os repetir, gerando todas as combinações entre os atributos, para manter as instâncias consistentes. Funcionário Projecto Dependente Pires Alfa Rita Funcionário Projecto Pires Alfa João Funcionário Dependente Pires Alfa Ana Pires Beta Rita e Pires Beta João Projecto e Dependente Pires Beta Ana sem relacionamento Numa relação R {A, B, C} se existe a DM A B, então também existe A C (ou seja, A R-AB). Como neste caso, as DM surgem sempre aos pares e representam-se por: A B C 2.4 -TM Dados: Dependências entre atributos e normalização 28

Dependência Multivalor: Definição informal Sendo A, B, e C subconjuntos do conjunto de atributos da relação R, diz-se que A B se e só se o conjunto dos valores de B que corresponde a um dado conjunto de valores de um par (A, C) depende unicamente do valor de A e é independente do valor de C. Se A B C, então a relação deve conter todas as combinações possíveis dos dois conjuntos de valores de B e de C, associados ao mesmo valor de A. Dependências funcionais e dependências multivalor Muitas vezes é possível exprimir o mesmo facto através de DF ou de DM; Deve representar-se primeiro todas as DF; Só no caso de as DF se mostrarem insuficientes para representar certos factos, é que se deve procurar as DM. 2.4 -TM Dados: Dependências entre atributos e normalização 29

Dependências Multivalor e 4ª Forma Normal Uma relação na FNBC pode ainda conter redundância; Exemplo: R(Funcionário, Projecto, Dependente) A decomposição não se pode basear em DF (pois não existem DF na relação). É necessária uma regra para o tratamento destas situações, que possa ser usada para decompor a relação sem perda de informação. 4ª Forma Normal (4FN): Definição informal Uma relação está na 4FN se para qualquer DM X Y a relação não tem outros atributos para além dos que fazem parte de X e de Y. Passagem de uma relação à 4FN: Separar os atributos multidependentes, decompondo a relação em duas relações. Exemplo: A relação R decompõe-se em duas relações na 4FN: Func_proj Func_dependente Funcionário Projecto Funcionário Dependente Pires Alfa Pires Rita Pires Beta Pires João Pires Ana 2.4 -TM Dados: Dependências entre atributos e normalização 30

Formas Normais e Dependências Multivalor Exemplo: Se um representante representa um conjunto de produtos e se possui um dado conjunto de clientes, então este vende esses produtos a esses clientes. Revendas Representante Cliente Produto 1 Martins Sá e filhos Louça Chave da relação 2 Martins Sá e filhos Talheres Representante, Cliente, Produto 3 Martins DMI, Lda Louça 4 Martins DMI, Lda Talheres Está na FNBC, mas tem 5 Castro Sá e filhos Cintos redundância 6 Castro Sá e filhos Meias 7 Castro Sá e filhos Lenços A redundância resulta de: 8 Castro YSL Cintos Representante Cliente 9 Castro YSL Meias Representante Produto 10 Castro YSL Lenços De acordo com a 4FN, a relação Revendas decompõe-se em duas relações: Clientes_Representante Representação Representante Cliente Representante Produto Martins Sá e filhos Martins Louça Martins DMI, Lda Martins Talheres Castro Sá e filhos Castro Cintos Castro YSL Castro Meias Castro Lenços 2.4 -TM Dados: Dependências entre atributos e normalização 31

Dependências de Junção Supondo que se acrescentava à relação Revendas a restrição que indica que uma dada loja só revende certos produtos: Por exemplo, a loja Sá e filhos não vende talheres nem Meias e a loja YSL não vende Cintos. Neste caso: as instâncias nº 2, 6 e 8 seriam retiradas pois deixariam de existir; a decomposição de Revendas em duas relações (4FN) não se alterava; a decomposição de Revendas em duas relações (4FN) violaria a propriedade da junção não aditiva, aparecendo os registos retirados como espúrios; a DM Representante Produto Cliente, deixa de ser verdadeira. As DM são uma tentativa de detectar decomposições sem perdas que se apliquem a todas as relações de um dado esquema. Se não é possível reconhecer qualquer DM em R, não existe decomposição sem perdas em duas relações. No entanto, o facto de R não se decompor sem perdas em 2 relações não significa que R não se decompõe sem perdas em 3 ou mais relações. Isto porque existem dependências directamente associadas a decomposição sem perdas, denominadas dependências de junção. Dependências de Junção (DJ) Uma DJ, representada por DJ(R1, R2,..., Rp) ou por *[R1, R2,..., Rp], especifica uma restrição das instâncias de R, e define que as instâncias de R têm uma decomposição sem perdas em R1, R2,... e Rp. Note-se que, uma DM X Y é um caso particular de uma DJ com p=2 representada por *[ XY, X ( R - XY )] 2.4 -TM Dados: Dependências entre atributos e normalização 32

Dependências de Junção e 5ªForma Normal (5FN) ou Forma Normal de Projecção Junção (FNPJ) Com a introdução de uma restrição que indica que uma dada loja só vende certos produtos é necessário definir a seguinte DJ[R1, R2, R3] sendo: R1(Representante, Cliente), R2(Representante, Produto) e R3(Cliente, Produto). Clientes_Representante Representação Vendas_Clientes Represen. Cliente Represen. Produto Cliente Produto Martins Sá e filhos Martins Louça Sá e filhos Louça Martins DMI, Lda Martins Talheres Sá e filhos Cintos Castro Sá e filhos Castro Cintos Sá e filhos Lenços Castro YSL Castro Meias DMI, Lda Louça Castro Lenços DMI, Lda Talheres YSL Meias YSL Lenços A junção deve ser aplicada, simultaneamente, a todas as relações, pois a junção de qualquer par de relações pode dar origem a registos espúrios. A aplicação da 5FN consiste em encontrar a DJ *[R1, R2,..., Rp] que permite decompor uma relação sem perdas. Note-se que, os casos que necessitam da 5FN são raros e difíceis de detectar, pois resultam da existência de regras ou condições especiais, que tornam algumas instâncias inválidas. 2.4 -TM Dados: Dependências entre atributos e normalização 33