Forma Normal de Boyce-Codd



Documentos relacionados
Forma Normal de Boyce-Codd

Objectivos com o Desenho de Bases de Dados Dependências funcionais 1ª Forma Normal Decomposição Forma Normal de Boyce-Codd 3ª Forma Normal

Dependências funcionais e normalização

Definição de determinantes de primeira e segunda ordens. Seja A uma matriz quadrada. Representa-se o determinante de A por det(a) ou A.

Normalização: 3 a Forma Normal

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Roteiro. Mapeamento dos Modelos ER e EER. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento

Álgebra Relacional. Linguagens de consultas relacionais

1. À primeira coluna (P), atribui-se uma quantidade de valores V igual à metade do total de linhas

Forma Normal de Boyce Codd 3 a Forma Normal

Determinantes. Matemática Prof. Mauricio José

(1, 6) é também uma solução da equação, pois = 15, isto é, 15 = 15. ( 23,

Bases de Dados BDDAD. Álgebra Relacional. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/33

Características das Figuras Geométricas Espaciais

INSTITUTO DE APLICAÇÃO FERNANDO RODRIGUES DA SILVEIRA 2ª SÉRIE DO ENSINO MÉDIO PROF. ILYDIO PEREIRA DE SÁ

MATEMÁTICA - 2 o ANO MÓDULO 01 PONTO, RETA E PLANO

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Introdução à Inteligência Artificial 2007/08

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

alocação de custo têm que ser feita de maneira estimada e muitas vezes arbitrária (como o aluguel, a supervisão, as chefias, etc.

Ficha de Exercícios nº 2

Método Simplex Revisado

Notas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Álgebra Linear AL. Luiza Amalia Pinto Cantão. Depto. de Engenharia Ambiental Universidade Estadual Paulista UNESP

Relações. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Relações 1

1 Teoria de conjuntos e lógica

RETA. Sumário: Manual de Geometria Descritiva - António Galrinho Reta - 1

Resolução da Prova de Raciocínio Lógico do STJ de 2015, aplicada em 27/09/2015.

Bases Matemáticas. Daniel Miranda de maio de sala Bloco B página: daniel.miranda

FOLHA DE CÁLCULO VAMOS APRENDER

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Programação Linear - Parte 4

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. III Método Simplex

Banco de Dados. Modelo Entidade Relacionamento Estendido DCC IME USP. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 7

Que algarismos devem ser colocados nos pontinhos da conta abaixo? x O. IS x 12 = = 120

. (A verificação é imediata.)

Lista de Exercícios Critérios de Divisibilidade

Melhorias de Processos segundo o PDCA Parte IV

SOLUÇÕES N item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.

INF1383 -Bancos de Dados

Capítulo 4. Retas e Planos. 4.1 A reta

Noções básicas de Lógica

Estática do Ponto Material e do Corpo Rígido

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

ESCOLA SUPERIOR DE TECNOLOGIA DE VISEU

TOM, SEMITOM, SUSTENIDO, BEMOL.

Qual é o estoque mínimo que irá garantir o nível de serviço ao cliente desejado pela empresa?

Roteiro. Modelagem com Entidade-Relacionamento Estendido. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa.

CAP. II RESOLUÇÃO NUMÉRICA DE EQUAÇÕES NÃO LINEARES

Programação de Computadores I. Linguagem C Função

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

- Cálculo 1 - Limites -

Bases de Dados. Parte VIII: Normalização

Exercícios de Aprofundamento Mat Polinômios e Matrizes

Capítulo 4 Inferência Estatística

Departamento de Matemática da Universidade de Coimbra Álgebra Linear e Geometria Analítica Engenharia Civil Ano lectivo 2005/2006 Folha 1.

5. O Mapa de Karnaugh

Capítulo Bissetrizes de duas retas concorrentes. Proposição 1

Gramáticas Livres de Contexto

Introdução às Bases de Dados

Semana 7 Resolução de Sistemas Lineares

Operações Relacionais Binárias. Junção Divisão

1FN: os atributos de uma relação têm que ser atómicos. FNBC: para qualquer dependência funcional α β numa relação, ou α β é trivial ou α é super-chave

Consideremos os seguintes exemplos de hipóteses cuja veracidade interessa avaliar:

1 Noções Primitivas MAT175 - GEOMETRIA ESPACIAL MAT175 - GEOMETRIA ESPACIAL

PREPARATIVOS PARA A NOVA LEGISLAÇÃO SOBRE EFICIÊNCIA E ROTULAGEM ENERGÉTICAS

COMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD:

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Aula 01 TEOREMAS DA ANÁLISE DE CIRCUITOS. Aula 1_Teoremas da Análise de Circuitos.doc. Página 1 de 8

CRIANDO MAPAS TEMÁTICOS COM SETORES CENSITÁRIOS DE SÃO PAULO

p. 2 Trechos de Material Didático (Apostila) e Conteúdo do Livro Texto, de autoria de Marcus Ramos, João José Neto e Ítalo Vega i <= 1

Sinto, por vezes, que alguns responsáveis governamentais parecem ter dificuldades em entender as reivindicações e as aspirações dos Corvinos.

Conceitos Básicos em Estatística

12 26, 62, 34, , , 65

=...= 1,0 = 1,00 = 1,000...

Álgebra Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

MEMOREX BANCO DE DADOS por Paulo Marcelo

Método Simplex das Duas Fases

O Plano. Equação Geral do Plano:

Aula 4. Conceitos básicos de escalonamento. Sistemas de Tempo-Real

Aula 8 Variações da Eliminação de Gauss/Fatoração LU.

IND 1115 Inferência Estatística Aula 8

ESCOLA ESTADUAL DR. JOSÉ MARQUES DE OLIVEIRA - ANO 2013 RECUPERAÇÃO ESTUDOS INDENPENDENTES

Resolução de Problemas. Orientador(a): Giselle Costa Alunos: André Parducci Elidiel Dantas

Modelos Conceituais de Dados

Aula 5: determinação e simplificação de expressões lógicas

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Guia para Modelagem de Casos de Uso Metodologia CELEPAR

Medidas de Tendência Central. Introdução Média Aritmética Moda Mediana

RACIOCÍNIO LÓGICO QUANTITATIVO

MATEMÁTICA (11º ano) Exercícios de Exames e Testes Intermédios Equações de retas e planos

Transcrição:

Teste de Preservação de Dependências Para verificar se α β é preservada na decomposição R em R 1, R 2,..., R n aplica-se o seguinte teste: res := α enquanto (houver alterações em res) faz para cada R i na decomposição faz t := (res R i ) + R i res := res t fimpara fimenquanto Forma Normal de Boyce-Codd Definição (Forma Normal de Boyce-Codd) Um esquema R diz-se na Forma Normal de Boyce-Codd, BCNF, relativamente a um conjunto de dependências F, sse para toda a dependência em F + da forma α β, onde α R e β R, pelo menos uma das seguintes condições é verdadeira: α β é trivial, isto é, β α. α é super-chave de R, isto é, α R. Se res contém todos os atributos em β, então α β é preservada. Aplica-se este teste a todas as dependências de F, para verificar se a decomposição preserva as dependências. Ao contrário do cálculo de F + ou de (F 1 F 2 F n ) +, que têm ambos complexidade exponencial, este procedimento tem complexidade polinomial. 261 / 299 Evita redundâncias Verificação de dependências funcionais definidas sobre atributos de R, limita-se à verificação de chaves. 262 / 299 BCNF Exemplo/Exercício R = (A, B, C), F = {A B, B C}. Chave, {A}. R não está em BCNF. Decomposição em R 1 = (A, B), R 2 = (B, C). R 1 e R 2 estão na BCNF. Decomposição sem perdas. Preserva as dependências. 263 / 299 Teste para BCNF Para determinar se uma dependência não trivial α β F + é causa de violação de BCNF: 1. calcular α + (fecho de atributos em α); 2. Verificar se inclui todos os atributos de R, i.e. é super-chave de R. Se incluir, então não viola a condição de BCNF; caso contrário há violação da BCNF, a relação não está na BCNF. Teste simplificado: Em vez de verificar para todas as dependências de F +, verificar apenas para as dependências numa cobertura canónica. Se nenhuma das dependências da cobertura canónica for contra a BCNF, então nenhuma das dependências de F + vai contra a BCNF. É no entanto necessário verificar se as dependências são preservadas. Por exemplo: Seja R(A, B, C, D), com F = {A B, B C}. Decomposição de R em R 1 (A, B) e R 2 (A, C, D); Nenhuma das dependências em F contém só atributos de (A, C, D), por isso, podemos (erradamente) pensar que R 2 satisfaz BCNF. Mas a dependência A C F + mostra que R 2 não está na BCNF. 264 / 299

Decomposição BCNF Dado o esquema Algoritmo para Decomposição BCNF Algoritmo genérico para o cálculo de uma decomposição BCNF. (idcliente,nempréstimo,quantia) Verifica-se a dependência funcional nempréstimo quantia. No entanto nempréstimo não é uma super-chave. Seja R um esquema que não está na BCNF, então existe pelo menos uma dependência funcional não trivial α β tal que α não é uma super-chave para R. Substitui-se então R por dois esquemas: (α β) (R (β α)) Ter-se-ia (para o exemplo acima) (α β) = (nempréstimo,quantia) (R (β α)) = (idcliente,nempréstimo) 265 / 299 res := {R}; fim := false; calcular F + ; enquanto fim faz se há um esquema R i em res que não está na BCNF então Seja α β uma dependência (não trivial) sobre R i tal que α R i F + e α β = ; res := (res R i ) (R i β) (α, β); senão fim := true; fimse fimenquanto Nota: no fim do algoritmo cada R i está na BCNF, e a decomposição é sem perdas. 266 / 299 Exemplo de Decomposição BCNF Outro exemplo de Decomposição BCNF Esquema: Esquema: Amigos = (nome, telefone, codpostal, localidade) F = {nome telefone, codpostal; codpostal localidade} Decomposição: res = {Amigos} codpostal localidade F + e codpostal não é chave res = {(nome, telefone, codpostal), (codpostal, localidade)} Pode-se verificar que os esquemas resultantes estão na BCNF. R = (balcao, localidade, activos, cliente, numemprestimo, valor) F = {balcao activos, localidade; numemprestimo valor, balcao } Chave = {numemprestimo, cliente} Decomposição: res = {R} balcao activos, localidade F + e balcao não é chave em R R 1 = (balcao, activos, localidade) R 2 = (balcao, cliente, numemprestimo, valor) res = {R 1, R 2 } numemprestimo valor, balcao F + e nunemprestimo não é chave em R 2 R 3 = (numemprestimo, valor, balcao) R 4 = (cliente, numemprestimo) res = {R 1, R 3, R 4 } Já está na BCNF. 267 / 299 268 / 299

Teste de Decomposição BCNF Para verificar se R i numa decomposição de R está na BCNF: Ou se testa R i relativamente à restrição de F a R i, isto é todas as dependências em F + que só contêm atributos de R i ; Ou se usa o conjunto original de dependências sobre R mas com o teste seguinte: Para todo α R i, verificar se α + não contém nenhum atributo de R i α, ou então α + contém todos os atributos de R i. Se a condição for violada por alguma α β em F, a dependência α (α + α) R i é verdadeira em R i, e R i viola BCNF. Usa-se essa dependência para decompor R i BCNF e preservação de dependências Nem sempre é possível obter uma decomposição BCNF que preserve as dependências. R = (J, K, L), F = {JK L, L K}, existem duas chaves candidatas JK e JL. R não está na BCNF. Nenhuma decomposição de R preserva JK L. 269 / 299 270 / 299 Exemplo Considere o esquema Gestores = (balcao, cliente, gestorconta), com as dependências: 1. gestorconta balcao 2. cliente, balcao gestorconta Não está na BCNF (a dependência 1 não é trivial e gestorconta não é super-chave, não implica cliente). Decompor em GestoresBal = (balcao, gestorconta) e Clientes = (cliente, gestorconta) Agora já está na BCNF. Mas não se preservam as dependências!!! A dependência 2 não se pode verificar numa só relação. Motivação para a 3 a Forma Normal Há situações em que: a BCNF não preserva as dependências; a eficiência na verificação de integridade aquando de alterações é importante Solução: definir uma forma normal mais fraca 3 a Forma Normal: admite alguma redundância (o que pode trazer problemas, como veremos à frente); as dependências podem ser verificadas sem recorrer a junções; é sempre possível fazer uma decomposição sem perdas para a 3NF, que preserva as dependências. 271 / 299 272 / 299

Exemplo Motivador O esquema Gestores = (balcao, cliente, gestorconta), com as dependências: 1. gestorconta balcao 2. cliente, balcao gestorconta não está na BCNF por causa da primeira dependência. A única chave candidata de Gestores é {cliente, balcao}. Mas: Ao decompor Gestores com base na 1 a dependência, balcao vai ficar numa relação diferente daquela onde fica cliente. Logo deixa de ser possível verificar a chave candidata de Gestores numa só relação! Solução: Para se continuar a poder verificar a chave candidata da relação original, não decompor um esquema com base numa dependência que à direita contenha apenas alguns dos atributos duma chave candidata. 3 a Forma Normal Definição (3 a Forma Normal) Um esquema R está na 3 a Forma Normal, 3NF, sse para toda α β pertencente a F +, pelo menos uma das seguintes condições é verdadeira: α β é trivial, isto é, β α. α é super-chave de R, isto é, α R. Todo atributo A em (β α) está contido numa chave candidata de R, não necessariamente a mesma. Se R está na BCNF então está também na 3NF. A 3 a condição relaxa a BCNF para garantir a preservação de dependências 273 / 299 274 / 299 3 a Forma Normal - Exemplo Teste para 3NF Duas chaves candidatas: JK e JL. R está na 3NF. JK L, L K, R = (J, K, L) F = {JK L, L K} JK é super-chave K está contido numa chave candidata A decomposição BCNF dá origem a R 1 = (JL) e R 2 = (LK). Para esta decomposição o testar de JK L obriga a uma junção. Pode haver redundância em R J L K 1 a x 2 a x 3 a x 4 b y dado a dependência L K, os dados da coluna K são, sempre que haja repetição, redundantes. 275 / 299 Optimização: Basta verificar para uma cobertura canónica de F (não é necessário verificar para toda a dependência em F + ). Usar o fecho de atributos para verificar, em toda a dependência α β, se α é super-chave. Se α não for super-chave, há que verificar se todo a atributo em β pertence a alguma chave candidata de R Este teste é bastante ineficiente, pois envolve o cálculo de chaves candidatas. Pode demonstrar-se que verificar se um conjunto de esquemas está na 3NF é um problema intratável ( NP-hard ). Existe uma decomposição para a 3NF (descrita mais à frente) com complexidade polinomial. 276 / 299

Algoritmo de Decomposição para 3NF Seja F c uma cobertura canónica de F; i := 0; para todo α β F c faz se nenhum dos esquemas R j, 1 j i contém αβ então i := i + 1; R i := αβ; fimse fimpara se nenhum dos esquemas R j, 1 j i contém uma chave candidata de R então i := i + 1; R i := uma (qualquer) chave candidata de R; fimse A decomposição resultante é (R 1, R 2,..., R i ). O algoritmo descrito garante que: Todo o esquema R i está na 3NF; A decomposição preserva as dependências e é sem perdas. Exemplo Considere o esquema: InfoGestores = (balcao, cliente, gestorconta, gabinete) As dependências definidas sobre este esquema são: gestorconta balcao, gabinete cliente, balcao gestorconta A chave candidata é: {cliente, balcao} O ciclo para todo do algoritmo, leva à introdução dos seguintes esquemas na decomposição: GestoresGab = (gestorconta, balcao, gabinete) Gestores = (cliente, balcao, gestorconta) Como Gestores contém uma chave candidata de InfoGestores, o processo de decomposição termina. 277 / 299 278 / 299 BCNF versus 3NF É sempre possível decompor um esquema, num conjunto de esquemas na 3NF em que: a decomposição é sem perdas; as dependências são preservadas. Mas pode haver alguma redundância!!! É sempre possível decompor um esquema, num conjunto de esquemas na BCNF em que: a decomposição é sem perdas; não há redundância. Mas nem sempre se podem preservar as dependências!!! 279 / 299 BCNF versus 3NF (cont.) Exemplo de problemas causados pela redundância na 3NF Seja R a seguinte relação: com a seguinte instância R = (J, K, L) F = {JK, L K} J L K j 1 l 1 k 1 j 2 l 1 k 1 j 3 l 1 k 1 null l 2 k 2 A relação R, que está na 3NF mas não na BCNF, tem problemas de: Repetição de informação (relação L K); Necessita usar valores null, por exemplo para representar a dependência entre l 2, k 2 sem que haja valores correspondente em J). 280 / 299

BCNF versus 3NF (exemplo) Considere o esquema Gestores = (balcao, cliente, gestor), com as dependências: gestor balcao cliente, balcao gestor Está na 3NF: Mas: {cliente, balcao} é chave de Gestores; {balcao} - {gestor} = {balcao} na chave candidata de Gestores (que é {cliente, balcao}). balcao cliente gestor Lx Maria Ana Cbr Maria João Lx Pedro Ana Lx José Ana Cbr null Mário Necessidade de ter um campo com null para associar gestores (ainda) sem clientes, a balcões; Dados redundantes (balcao). 281 / 299 BCNF ou 3NF? Objectivos do design, numa primeira fase: BCNF; Decomposição sem perdas; Preservação de dependências. Se tal não for possível, então há que optar por: Não preservação de dependências; Alguma redundância (devido ao uso da 3NF). O SQL não fornece nenhuma forma directa de impor dependências que não sejam super-chaves. Pode fazer-se usando assertion mas isso é muito ineficiente. Mesmo quando a decomposição preserva as dependências, com o SQL não é possível testar de forma eficiente dependências cujo lado esquerdo não seja uma chave. 282 / 299 Dependências Multi-valor - Motivação Há esquemas que estão na BCNF, que preservam as dependências, mas que, mesmo assim, não parecem estar suficientemente normalizadas. Considere o seguinte esquema para o exemplo do banco: depositante(nconta, nomecliente, moradacliente) Se tivermos a dependência funcional nomecliente moradacliente então este esquema não está na BCNF. Mas o banco quer deixar que um cliente possa ter mais do que uma morada, isto é, não quer impor esta dependência. Nesse caso, depositante já está na BCNF. 283 / 299 Motivação Está na BCNF (verificar). Mas: Redundância!!! depositante nconta nomecliente moradacliente 1 Carlos morada1 1 Carlos morada2 1 José morada3 2 Carlos morada1 2 Carlos morada2 2 Maria morada1 2 Maria morada4 3 José morada3 3 Maria morada1 3 Maria morada4 Problemas na inserção Se quisermos adicionar uma nova morada (morada5) para o José, é necessário introduzir 2 tuplos: (1, José, morada5) (3, José, morada5) 284 / 299