Databases. Dependências Funcionais

Documentos relacionados
Dependências Funcionais

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

Databases. Ferramentas gráficas na modelação lógica das BD. O Modelo Entidade-Relação (Associação) O Modelo de Classes no UML

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Dependências Multi-Valor, 4 a Forma Normal

Banco de Dados Lista de Exercícios 01

RELAÇÕES BINÁRIAS Produto Cartesiano A X B

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

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

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

Aplicações de Combinatória e Geometria na Teoria dos Números

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

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

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

Tabelas vista de estrutura

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Projeção ortográfica da figura plana

Introdução às Bases de Dados

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

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

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

Profa. Daniela Barreiro Claro

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

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

AJUDA DO FSYNCH. O que o FSynch faz? Como o FSynch funciona?

MODELO RELACIONAL - UFMA

Qual é Mesmo a Definição de Polígono Convexo?

Lógica Computacional. Argumentos válidos e sólidos. Métodos de Demonstração. Demonstrações formais. Regras de Inferência Igualdade

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

Capítulo 2. Álgebra e imagens binárias. 2.1 Subconjuntos versus funções binárias

Introdução às Bases de Dados

Microsoft Access INTRODUÇÃO. Sumário INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO. O que é Banco de Dados?

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

NOÇÕES DE ÁLGEBRA LINEAR

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

Conceitos Básicos de Banco de Dados

MATEMÁTICA GEOMETRIA ANALÍTICA I PROF. Diomedes. E2) Sabendo que a distância entre os pontos A e B é igual a 6, calcule a abscissa m do ponto B.

Prof. Alexandre Unterstell Banco de Dados I

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

A B C F G H I. Apresente todas as soluções possíveis. Solução

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

INSTITUTO TECNOLÓGICO

Definida pelo American National Standard Institute (ANSI) em 1986

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

Dadas a base e a altura de um triangulo, determinar sua área.

Outras Máquinas de Turing

Revisão de Banco de Dados

Morfologia Matemática Binária

Álgebra Booleana. Introdução ao Computador 2010/01 Renan Manola

Exercícios Teóricos Resolvidos

MD Teoria dos Conjuntos 1

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

Universidade Estadual de Santa Cruz. Departamento de Ciências Exatas e Tecnológicas. Especialização em Matemática. Disciplina: Estruturas Algébricas

UM TEOREMA QUE PODE SER USADO NA

Fundamentos de Bancos de Dados Prova 3

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Projeção ortográfica de modelos com elementos paralelos e oblíquos

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

IFSP - EAD - GEOMETRIA TRIÂNGULO RETÂNGULO CONCEITUAÇÃO :

Bases de Dados 2008/2009

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

CAP. I ERROS EM CÁLCULO NUMÉRICO

Feature-Driven Development

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

,QWURGXomRDR(GLWRUGH $SUHVHQWDo}HV3RZHU3RLQW

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

BANCO DE DADOS. Eliminar redundâncias e inconsistências de um banco de dados, com reorganização mínima dos dados.

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

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

Notas de aula número 1: Otimização *

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

FÓRMULAS DO MICROSOFT EXCEL

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello 1

Expansão linear e geradores

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

Refinamento de Esquemas e Formas Normais

Canguru Matema tico sem Fronteiras 2013

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = =

Capítulo 7. Topologia Digital. 7.1 Conexidade

Como incluir artigos:

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

W o r d p r e s s 1- TELA DE LOGIN

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

(A) 30 (B) 6 (C) 200 (D) 80 (E) 20 (A) 6 (B) 10 (C) 15 (D) 8 (E) 2 (A) 15 (B) 2 (C) 6 (D) 27 (E) 4 (A) 3 (B) 2 (C) 6 (D) 27 (E) 4

Elementos de Matemática Discreta

Dependência funcional

Como produzir e publicar uma apresentação online dinâmica (Prezi)

ferramentas de produtividade

Árvores Binárias Balanceadas

Transcrição:

Databases Dependências Funcionais P. Serendero, 2011-13 Referências e exemplos tirados de diversas fontes, excetuando aqueles relacionados com embarcações

Dependências Funcionais (DF) Uma Base de Dados, para ser um modelo que bem represente a realidade, precisa de de ser depurada de anomalias, redundâncias e outros problemas que se presentam quando operamos nela: inserções, apagar, modificar, interrogar Utilizamos a Teoria da Normalização para fazer esta depuração Na base da normalização, estão as chamadas: Dependências Funcionais Utilizando os conceitos de chaves e dependências funcionais podemos desenhar boas relações numa BD As DF constituem um tipo de restrição de integridade, no desenho de BD

Dependências Funcionais Considere a seguinte relação: colaborador(num-empregado,num-projeto, nome-empregado, nome-projeto, num-horas) Anomalias que se podem apresentar: INSERÇÃO: Não se pode inserir um novo projeto, de não ser que um empregado seja atribuído a ele. Inversamente, não se pode inserir um novo empregado sem ter que lhe atribuir um projeto ACTUALIZAÇÃO: se mudarmos o nome dum projeto, vamos ter que atualizar em todos os muitos empregados que colaboram em dito projeto. APAGAR: Se apagarmos um projeto, vamos apagar todos os colaboradores do mesmo Portanto, NÃO É BOA PRÁTICA DE DESENHO, MISTURAR ATRIBUTOS PERTENCENTES A DISTINTAS ENTIDADES NUMA MESMA RELAÇÃO

Dependência Funcional Numa relação R, existe DF sse o valor dum conjunto de atributos X determinam o valor preciso dum outro atributo A X A ex: BI nome O conjunto dos atributos X determinam funcionalmente o atributo A (no ex. o nome depende do BI, mas o BI não depende do nome) X: O conjunto determinante A: o atributo dependente Por outras palavras, dados 2 tuplos em R, se os valores de X são os mesmos, então os valores de A devem ser também os mesmos DF é portanto uma declaração sobre todas as relações permitidas: uma restrição. A relação R satisfaz a depêndencia X Y

Dependências Funcionais Dependência Funcional Esta relação de dependência funcional também se pode expressar como subconjuntos X1,X2,..,Xm A1,...An ou X Y O símbolo da seta se lê determina, portanto o conjunto X determina o conjunto Y Isto é equivalente a dizer que a projecção π x,y R é uma função, isto é, Y é função de X Nota: A convenção em muitos textos utiliza as letras A,B,C,D, para atributos singulares e as letras X,Y,Z para conjuntos de atributos

Dependências Funcionais Portanto, numa tabela representando uma relação R, Se dois tuplos j e m coincidem no valor de todos os seus Tuplos atributos A1A, devem A2 também An coincidir B1em todos B2 os valores B3 dos seus atributos B Tuplo j Tuplo m Se j e m concordam aqui Também devem concordar aqui Efeitos da dependência funcional em dois tuplos Ullman, pag. 119

Dependências Funcionais Exemplo: Repare nos conjuntos modelo e comprimento na relação embarcação -mostrada anteriormente- : Existe um dependência entre os valores destes conjuntos. O comprimento é função do modelo. Dado um modelo de embarcação, posso encontrar o comprimento Essa dependência se expressa assim: modelo comprimento modelo Benetton I 11.25 Hurrican A 10.90 Benetton II 12.50 Laser 470 4.75 comprimento Isto tem uma aplicação imediata nas conhecidas chaves candidatas: Uma chave candidata é o subconjunto mínimo de atributos que determina todos os atributos numa relação

Dependências Funcionais Seria correto escrever a DF: comprimento modelo? Não, porque podem existir diferentes modelos com o mesmo comprimento Da mesma maneira como nome BI indicado anteriormente não é DF porque um mesmo nome (Diana por ex.) não determina um único BI O que quer dizer que se criamos uma relação com estes elementos, modelo seria a chave e comprimento o atributo Como vemos, existe normalmente DF entre a chave e os atributos numa tabela Se K é a chave primária numa relação R, então K determina funcionalmente o valor de cada um dos atributos em R. Em termos de tabelas, nunca temos dois tuplos idênticos, posto que a chave primária é única na tabela

Chaves nas relações Um ou mais atributos {A1, A2,...An } formam uma chave numa relação R, se: 1) Aqueles atributos determinam funcionalmente todos os outros atributos nessa relação Por outras palavras, é impossível que dois tuplos em R concordarem no valor de todos os seus atributos {A1, A2,...An } 2) Nenhum subconjunto em {A1, A2,...An } determina funcionalmente todos os outros atributos da relação R. Isto é, uma chave deve ser mínima. A esta denomina-se chave principal ou primária

modelo comprimento Dependências Funcionais matricula nome da embarcação num-aluno curso curso nome-curso, data-criação aluno,ano,disciplina, epoca nota Exemplos de DF na relação embarcação BI nome-pessoa Bi NIF NIF BI São estas duas dependências verdadeiras?

Dependências Funcionais Outro exemplo: Dada a relação R embarcação(matricula, nome, proprietario, pais, modelo, comprimento, boca, bi_proprietario), e as seguintes dependências funcionais matricula nome, matricula pais, matricula bi_proprietario matricula comprimento Estas dependências são corretas? NÃO!! o BI depende do seu proprietário, e não da matricula do seu barco. Uma pessoa que mude de bi, continuará a ser proprietário da mesma embarcação, identificada pelo número de matrícula A determinação do bi não depende funcionalmente da matrícula do barco Mais uma outra?

DF's Portanto um atributo é funcionalmente dependente, se o seu valor é determinado por um outro atributo que é uma CHAVE Se A B logo dado um valor para A só pode existir um valor para B Se A B e B A, logo A e B estão numa relação 1-1 Se A (B,C) logo A B e A C Se (A,B) C, não é necessariamente verdadeiro que A C e B C

Regras nas Dependências Funcionais A maneira de pensar sobre as dependências funcionais Splitting rule e combination rule Já foi dito que A1, A2,.., An B1, B2,...Bm isto quer dizer que: A1, A2,.., An B1 A1, A2,.., An B2... A1, A2,.., An Bm Podemos separar os atributos no lado direito tal que só 1 atributo aparece à direita de cada dependência funcional Da mesma maneira podemos substituir uma coleção de dependências com um lado esquerdo comum por uma dependência simples com o mesmo lado esquerdo e todos os lados direitos combinados num só conjunto de atributos X Y

Dependências Funcionais Exemplo: o conjunto de dependências: tipo-embarcação, modelo boca tipo-embarcação, modelo comprimento tipo-embarcação, modelo calado são equivalentes a dependência: tipo-embarcação, modelo boca, comprimento, calado Não existe splitting rule para o lado esquerdo da dependência Porque? tipo-embarcação boca modelo boca modelo não determina sozinho o tamanho da boca. E o tipo de embarcação também não. São precisos os dois: superchave

Regras nas Dependências Funcionais Em qualquer evento o novo conjunto de dependências é equivalente ao velho. Isto pode ser utilizado de diversas maneiras: substituindo A1, A2,.., An B1,B2,...Bm por A1, A2,.., An Bi para i = 1,2,..,m A esta transformação chama-se splitting rule Podemos substituir as dependências A1, A2,.., An Bi (i = 1,2,..,m) pela dependência simples: A1, A2,.., An B1,B2,...Bm Chamamos esta transformação, combination rule, regra de combinação

Dependências triviais Dependências Funcionais A dependência funcional A1, A2,.., An B é considerada TRIVIAL se B pertence a algum subconjunto de A Por exemplo: tipo-embarcação, modelo tipo-embarcação Portanto dependências triviais existem sempre numa relação, posto que dois tuplos que coincidem em todas as A1, A2,.., An também concordam numa delas Dependências não triviais: se pelo menos uma das B não está entre as A Dependências completamente não triviais: se nenhuma das B está entre as A

Dependências Funcionais Regras de inferência: propriedades das DF Axiomas de Amstrong: Reflexividade: Se A é um subconjunto de X, logo X A Augmentação: Se X A, logo XZ AZ, (XZ = X Ս Z) Transitividade: Se X A e A B, logo X B Aditividade: Se X Y, Z V, implica X U Z Y U V As primeiras 3 regras formam um conjunto completo de regras de inferência nas relações (U - união)

Dependências Funcionais Das regras anteriores pode-se derivar outras regras adicionais de inferência Descomposição União Se X YZ, logo X Y e X Z Se X Y e X Z, logo X YZ, onde (Y U Z) Pseudotransitividade Se X Y e WY Z, logo WX Z

Computando o fecho dos atributos Como sabemos se um conjunto de atributos é uma super chave? Computando o fecho dum atributo ajuda-nos a responder esta questão O fecho de Y, escrito como Y+ é o conjunto de todos os atributos X dos quais Y+ depende funcionalmente Numa DF olhemos para o lado esquerdo X. Se este determina igualmente um atributo A, então A vai fazer parte do fecho Y+. O fecho dum conjunto Y de DF é o conjunto Y+ de todas as DF que podem serem inferidas desde Y

Computando o fecho dos atributos Algoritmo para calcular o fecho de atributos: Começando com um conjunto de atributos, repetidamente expandimos este conjunto adicionando os lados direitos das DF dadas, na altura que incluirmos os seus lados esquerdos. Eventualmente não podemos expandir mais este conjunto. O conjunto resultante é o FECHO Algoritmo para calcular o fecho de atributos: 1. Y + = Y 2. Se A 1, A 2,..,A m B, adicionar B em Y + (adicionar uma DF) 3. Terminar quando não conseguimos adicionar mais atributos a Y + (como implementava você este algoritmo numa linguagem de programação?)

Computando o fecho dos atributos Y+ A B Se o subconjunto A determina um outro atributo B, adicionamos este ao fecho Y+ Novo Y+

Fecho dos atributos: exemplo Dada a seguinte relação R (A, B, C, D, E) e dado o seguinte conjunto de DF: A BC CD E B D E A Queremos saber se: A é ou não uma super chave desta R? Computamos o fecho A+ 1. A+ = A 2. ABC // porque A BC 3. ABCD // porque B D 4. ABCDE // porque CD E 5. ABCDE A+ = ABCDE, portanto A é uma super chave em R

Fecho dos atributos: exemplo Dada a mesma R (A, B, C, D, E) da página anterior e as mesmas DF: A BC CD E B D E A Será B uma super chave em R? Computamos o fecho B+ 1. B+ = B 2. BD // porque B D 3. BD B+ = BD, portanto B NÃO é uma super chave em R Se K todos os Ai numa R, então K é uma super chave As DF são uma generalização das chaves

Fecho de atributos - Exemplo Dado R = (A, B, C, G, H, I) e dadas DF = { A B, A C, CG H, CG I, B H } desejamos saber se AG será uma chave candidata. Portanto AG é uma super chave? ou seja AG+ R? Existe algum subconjunto de AG que seja também uma super chave? A R? é A+?, ou seja é A+ um subconjunto em R? G R? é G+?, ou seja é G+ um subconjunto em R? Para responder calculamos o fecho para AG+ 1) AG+ = AG 2) AGB //por A B 3) AGBC // por A C 4) AGBCH // por CG H 5) AGBCHI // por CG I e CG é subconjunto de AGBCH 6) ABCGHI, portanto AG é uma super chave

Dependências Funcionais Exemplo Dada a relação R(ABCDEF ) com as seguintes DF s: AB C BC A BC D D E CF B Qual será o fecho de (AB)+ (AB)+ = AB = ABC, porque AB C = ABCD, porque BC D = ABCDE, porque D E = ABCDE Se (AB)+ ser a chave principal desta relação, então o atributo F não é determinado funcionalmente por AB

Dependências funcionais Redundância entre as Dependências A C é redundante em F+ quando {A B, B C} Partes duma DF poderiam ser redundantes No lado ESQUERDO duma regra: {A B, B C, AC D} pode ser simplificada: {A B, B C, A D} No lado DIREITO duma regra: {A B, B C, A CD} Pode ser simplificada: {A B, B C, A D}

Dependências Funcionais Fim