Bases de Dados. Dependências funcionais. Menos tabelas com mais dados? loan_number amount L L

Documentos relacionados
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

Bases de Dados. Normalização. Formas Normais. 1FN : atomicidade dos atributos. 2FN : proíbe dependência parcial de chaves

Dependências funcionais e normalização

Bases de Dados 2012/2013 Dependências Funcionais e Normalização. Helena Galhardas 2013 IST. Bibliografia

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

Bases de Dados. Conversão para Modelo Relacional. Modelo Entidade-Associação. IST DEI Bases de Dados

Álgebra Relacional operações adicionais. Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li?

MySQL & PHP. MySQL & PHP ODBC ODBC/C

Especialização / generalização. Especialização top-down a partir da super-classe identificam-se as subclasses

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. branch. account depositor. loan. borrower customer. IST DEI Bases de Dados

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. branch. account depositor. loan. borrower customer. IST DEI Bases de Dados

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

Ordenação de tuplos order by

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

Bases de Dados. Junção de relações. Junção de relações

Bases de Dados. Modelo Entidade-Associação. Processo de desenvolvimento. descrição do tema. características do domínio. requisitos funcionais.

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Bases de Dados. Conversão para Modelo Relacional. Diagrama E-A. IST DEI Bases de Dados

Dependências Funcionais e Formas Normais. Formas Normais Pedro Sousa 1

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. IST DEI Bases de Dados

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

. Um modelo que represente fielmente a realidade. Um modelo capaz de responder às funcionalidades que se pretendem

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Banco de Dados - INE Projeto de Banco de Dados Relacionais. Prof. Mario Dantas

Uma base de dados está num estado de integridade se contém apenas dados válidos. Os dados armazenados devem estar de acordo com a realidade

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

DCC/UFRJ Bancos de Dados IPedro Manoel da Silveira. Projeto de BD Relacionais. Objetivos do Projeto de BD. PMS v2bancos de Dados Relacionais 1

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

NORMALIZAÇÃO. Lílian Simão Oliveira

Forma Normal de Boyce-Codd

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

Processo de desenvolvimento. Compreender o domínio interagir com utilizadores e recolher requisitos Desenho conceptual

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

Databases. Dependências Funcionais

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Bases de Dados. Parte VIII: Normalização

Bases de Dados. Parte VII Normalização

INF1383 -Bancos de Dados

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

Forma Normal de Boyce Codd 3 a Forma Normal

Banco de Dados - Senado

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

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

Banco de Dados. Dependências Funcionais e Normalização de Bancos de Dados Relacionais. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Bases de Dados. Optimização de planos de execução. Plano de execução

Bases de Dados. Revisão da matéria. Programa

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

Redundância é a causa de vários problemas com esquemas relacionais: armazenamento redundante, anomalias de inserção, de exclusão e de atualização.

As restrições de integridade garantem a consistência da BD exemplos

Capítulo 3 Modelo Relacional

Modelo Relacional. Josino Rodrigues

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

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Projeto de Bancos de Dados Relacional- Normalização. Vantagens da decomposição Normalização

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

Aula 12 BD1 Dependências Funcionais e Normalização. Profa. Elaine Faria UFU

Normalização: 3 a Forma Normal

GBC043 Sistemas de Banco de Dados Normalização de Relações em Projeto de BD

Refinamento de Esquemas e Normalização

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

Roteiro. Normalização. BCC321 - Banco de Dados I. Ementa. Para que serve a normalização? Posicionamento

Normalização. Prof. Rogério Gonçalves Bittencourt, M.Sc.

Normalização: Noções Básicas

C : R I IN 0. tal que. C(α) = 0 sempre que α I {, ɛ} C(α + β) = C(α) + C(β) + 1. C(αβ) = C(α) + C(β) + 1. C(α ) = C(α) + 1.

SISTEMAS DE INFORMAÇÃO

26/03/2012. É uma restrição entre dois conjuntos de atributos do banco de dados. Definição formal: Significa que: Exemplos

GES013 Sistema de Banco de Dados Normalização de Relações em Projeto de BD (1FN a FNBC)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Este número é racional ou irracional. Se 2. é racional então basta tomar b = c = 2. Vem b c = 2. é irracional, então seja b = = 2, que é racional

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

LINGUAGENS FORMAIS E AUTÔMATOS

Modelo Lógico de Dados (MLD) Origens do modelo relacional

Normalização. Anomalias Dependência e determinantes Normalização

Gramáticas e Linguagens independentes de contexto

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

Estrutura das Bases de Dados Relacionais Redução a tabelas de um Esquema ER Álgebra Relacional Operações Estendidas da Álgebra Relacional Modificação

Espaços Vectoriais. Espaços Vectoriais

Modelo Entidade-Relacionamento (E-R)

Banco de Dados. Dependências Funcionais e Normalização de Bancos de Dados Relacionais. João Eduardo Ferreira Osvaldo Kotaro Takai

Fórmulas da lógica proposicional

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Bases de Dados. Índices. Discos. transferência lenta. transferência rápida e em blocos (512B ~ 4KB) e aos bytes. memória.

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

Normalização. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri.

Dependência Funcional e Normalização)

Programa Princípios Gerais Forças, vetores e operações vetoriais

ESPAÇO VETORIAL REAL. b) Em relação à multiplicação: (ab) v = a(bv) (a + b) v = av + bv a (u + v ) = au + av 1u = u, para u, v V e a, b R

ENFOQUE USANDO CORTES DE DEDEKIND

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Lógica Computacional

Transcrição:

Bases de Dados Dependências funcionais Menos tabelas com mais dados? borrower customer_id loan_number 23-652 L-100 15-202 L-200 22-439 L-200 loan loan_number amount L-100 6000 L-200 4000 customer_id loan_number amount 23-652 L-100 6000 15-202 L-200 4000 22-439 L-200 4000 2 1

Mais tabelas com menos dados? employee_id employee_name telephone_number start_date 123-45-6789 Kim 882-0000 1984-03-29 987-65-4321 Kim 869-9999 1981-01-16 employee_id employee_name 123-45-6789 Kim 987-65-4321 Kim employee_name telephone_number start_date t t Kim 882-0000 1984-03-29 Kim 869-9999 1981-01-16 3 Perda de informação (lossy decomposition) employee_id employee_name 123-45-6789 Kim 987-65-4321 Kim employee_name telephone_number start_date Kim 882-0000 1984-03-29 Kim 869-9999 1981-01-16 employee_id employee_name telephone_number start_date 123-45-6789 Kim 882-0000 1984-03-29 123-45-6789 Kim 869-9999 1981-01-16 987-65-4321 Kim 882-0000 1984-03-29 987-65-4321 Kim 869-9999 1981-01-16 4 2

Redundância e anomalias customer_id customer_name branch_name branch_city 23-652 Smith Downtown Brooklyn 15-202 Johnson Perryridge Washington 22-439 Hayes Perryridge Washington 19-344 Jones Downtown Brooklyn Redundância mesmos factos em vários registos Anomalia de actualização e se agência muda de cidade? Anomalia de inserção necessário saber dados da agência para inserir cliente Anomalia de remoção se apagarmos Smith e Jones perdemos aos dados da agência de Perryridge 5 Decomposição customer_id customer_name branch_name 23-652 Smith Downtown 15-202 Johnson Perryridge 22-439 Hayes Perryridge 19-344 Jones Downtown Um facto = um tuplo Junção recupera informação Maior esforço computacional Melhor utilização do espaço em disco Ausência de anomalias branch_name Downtown Perryridge branch_city Brooklyn Washington 6 3

Chaves Seja R o esquema de uma relação r exemplo: para r(a,b,c,d) o esquema é R = ABCD Seja K um subconjunto de R exemplo: K = AB K é uma super-chave em R se para qualquer par de tuplos t 1 e t 2 t 1 [K] = t 2 [K] t 1 = t 2 7 Dependências funcionais Seja R o esquema de uma relação r (p.ex. R = ABCD) Sejam α R e β R dois subconjuntos de R exemplo: α = AB e β = CD α β é uma dependência funcional em R se para qualquer par de tuplos t 1 e t 2 t 1 [α] = t 2 [α] t 1 [β ] = t 2 [β ] 8 4

Dependências funcionais exemplos customer_id loan_number amount 23-652 L-100 6000 15-202 L-200 4000 22-439 L-200 4000 bor_loan(customer_id, loan_number, amount) customer_id customer_id customer_id, loan_numbernumber amount customer_id, loan_number customer_id, loan_number, amount loan_number amount 9 Dependências funcionais Podemos exprimir dependências triviais customer_id customer_id Podemos exprimir dependências de chaves customer_id, loan_number customer_id, loan_number, amount Podemos exprimir outro tipo de dependências loan_number number amount 10 5

Super-chave e chave candidata K é uma super-chave de uma relação r com esquema R se e só se K R K é uma chave candidata de uma relação r com esquema R se e só se K R, e não existir α K tal que α R 11 Utilização de Dependências Funcionais notas Nota 1: uma relação pode aparentar obedecer a uma dada dependência quando isso só acontece por acaso p.ex.: pode acontecer que não existam 2 empréstimos com quantias iguais sugere a dependência: amount loan_number (errado) loan_number amount L-100 6000 L-200 4000 L-300 5000 12 6

Utilização de Dependências Funcionais notas Nota 2: uma dependência funcional α β é trivial se β α exemplos customer_id customer_id customer_id, loan_number customer_id customer_id, loan_number loan_number customer_id, loan_number customer_id, loan_number 13 Utilização de Dependências Funcionais notas Nota 3: é possível deduzir outras dependências funcionais a partir de um dado conjunto F p.ex.: se A B e B C então é certo que A C A C chama-se uma dependência transitiva ao conjunto de todas as dependências F dadas e todas as que são possíveis deduzir a partir de F chama-se F + F + é também designado por fecho de F 14 7

Axiomas de Armstrong Transitividade se α β e β γ, então α γ Reflexividade se β α, então α β Aumento se α β, então γα γβ 15 Axiomas de Armstrong exemplo R = (A, B, C, G, H, I) F = { A B, A C, CG H, CG I, B H } alguns dos elementos de F + A H transitividade de A B e B H AG I aumenta-se A C com G e obtém-se AG CG transitividade de AG CG com a existente CG I CG HI aumenta-se CG I com CG e obtém-se CG CGI aumenta-se CG H com I e obtém-se CGI HI transitividade de CG CGI e CGI HI 16 8

Como calcular F + Algoritmo iniciar F + = F repetir para cada dependência funcional f em F + aplicar reflexividade e aumento a f incluir as dependências resultantes em F + para cada par de dependências f 1 e f 2 em F + se houver transitividade em f 1 e f 2 então incluir a dependência resultante em F + até F + não sofrer alterações 17 Axiomas de Armstrong se α β e β γ, então α γ se β α, então α β se α β, então γα γβ (transitividade) (reflexividade) (aumento) Os axiomas de Armstrong não geram dependências erradas (soundness) são capazes de gerar todas as dependências (completeness) Mas há outras regras que também dão jeito... união, decomposição, pseudo-transitividade 18 9

União União se α β e α γ, então α β γ demonstração aumenta-se α β com γ e obtém-se αγ β γ aumenta-se α γcom α e obtém-se α αγ transitividade de α αγe αγ β γ 19 Decomposição Decomposição se α β γ, então α β e α γ demonstração reflexividade diz-nos que β γ β reflexividade diz-nos que β γ γ transitividade de α βγ com β γ βdá α β transitividade de α β γ com β γ γ dá α γ 20 10

Pseudo-transitividade Pseudo-transitividade se α β e β γ δ, então α γ δ demonstração aumenta-se α β com γ e obtém-se αγ β γ transitividade de αγ β γ com β γ δdá αγ δ 21 Fecho de atributo Estas regras permitem deduzir outras dependências Mas se um atributo α determina o valor de β... α β...e β determina outros atributos via β γ...será possível deduzir todos os atributos determinados por α? Chama-se a α + o fecho do atributo α 22 11

Como calcular α + Abordagem 1 calcular F + e considerar só as dependências α unir todos os atributos dependentes de α Abordagem 2 sem calcular F + result = α while (changes to result) do for each γ βin F do if γ result then result := result U β 23 Como calcular α + exemplo R = (A, B, C, G, H, I) F = { A B, A C, CG H, CG I, B H } Calcular (AG) + result = AG A B tem A result logo result = AGB A C tem A result logo result = AGBC CG H tem CG result logo result = AGBCH CG I tem CG result logo result = AGBCHI 24 12

Utilização de α + O fecho α + de um atributo α pode ser usado para saber se α é uma super-chave nesse caso α + contém todos os atributos de R saber se uma dada α β existe em F +, sem calcular F + existe se β α + permite calcular F + por outra via para cada α R calcula-se α + para cada S α + diz-se que α S o conjunto de todos os α S é F + 25 Utilização de α + exemplo R = (A, B, C, G, H, I) F = { A B, A C, CG H, CG I, B H } Já vimos que (AG) + = AGBCHI contém todos os atributos de R, logo é super-chave Será que A ou G são super-chaves? teríamos que calcular A + e G + 26 13