Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional - PDF
Download "Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional"
Adelina Bernardes de Lacerda
1 Banco de Dados Definido por E F Codd em 1970, teve sua grande aceitação comercial a partir de meados da década de 1980 Razões da grande aceitação Simplicidade dos conceitos básicos Poder dos operadores de manipulação Fernando Fonseca Ana Carolina 2 Conceitos Básicos Dada uma coleção de conjuntos D 1, D 2,, D n (não necessariamente disjuntos), R é uma Relação sobre estes n conjuntos se ela é um conjunto de n-uplas ordenadas <d 1, d 2,, d n > tal que d 1 pertence a D 1, d 2 pertence a D 2,, d n pertence a D n D 1, D 2,, D n são Domínios n é o grau de R Sejam os domínios D 1 (D-Pessoa) e D 2 (D-Endereço) José Maria João Thaís Branca D-PESSOA R A, 30 R B, 45 R C, 17 R D, 67 R E, 55 D-ENDEREÇO Seja a relação <Esposo, Esposa, Logradouro> em D 1 X D 1 XD 2 <José, Maria, R A, 30> <João, Thaís, R D, 67> 3 4 O Domínio representa o conjunto de valores atômicos admissíveis de um componente de uma relação Ele funciona como um conector semântico inter-relação a 2 níveis Definição: todo valor de uma n-upla pertence a D i Manipulação: 2 valores só podem ser comparados se definidos sobre o mesmo domínio D Ex: D-IDADE: inteiro D-IDADE Exemplo: Domínios e Relações abaixo José Maria João Thaís Branca D-PESSOA <José, 25> <João, 30> <Thais, 25> Relação: Aluno(Nome, Idade) <Maria, 25> <Branca, 15> Relação: Professora(Nome, Idade) É válido comparar a idade da professora com a dos alunos(mesmo domínio) 5 1
2 dupla: <d 1, d 2 >, grau = 2 tripla: <d 1, d 2, d 3 >, grau = 3 n-upla: <d 1, d 2,, d n >, grau = n tupla Tupla É uma n-upla <a 1, a 2,, a n > de uma relação R(D 1,, D n ) tal que a i pertence a D i (1 <= i <= n) D-IDADE <José, 25> D-PESSOA Atributo: Explicita o papel de um domínio em uma relação Ex: ATRIBUTOS Fone-res: D-FONE Fone-com: D-FONE DOMÍNIO Os atributos de uma mesma relação devem ser diferentes(nomes diferentes) Um (ou vários) atributos identificam uma relação: Chave Primária Unicidade Minimalidade 8 Chave Candidata Uma relação pode ter mais de um atributo como identificador único Um deles é escolhido como chave primária e os outros são chaves candidatas Chave Estrangeira Um atributo que corresponde a uma chave primária em outra relação Chave Primária PILOTO Num-cad Nome CPF Endereço Tuplas 0101 João Recife 0035 José São Paulo Atributos 0987 Pedro Recife Chave Candidata 9 10 Vôo Num-voo Num-pil Chave Estrangeira Esquema Relacional Conjunto de relações semanticamente ligadas por seus domínios de definição O conceito de relação permite ao mesmo tempo representar Uma entidade Uma relação semântica(relacionamento)
3 Restrições de Integridade Integridade de Domínio: diz respeito ao controle sintático e semântico de um dado e faz referência ao tipo de definição do domínio Integridade de Entidade: diz respeito aos valores de chave primária que devem ser únicos e não nulos Integridade Referencial: diz respeito aos valores de um atributo chave estrangeira e os valores do atributo chave primária correspondente Linguagem Algébrica/Álgebra Relacional Compreende dois tipos de operadores Operadores clássicos sobre conjuntos União, interseção e diferença entre relações compatíveis Operadores relacionais Operadores unários de restrição: seleção e projeção Operadores binários de extensão: junção e divisão Álgebra Relacional Seleção: seleciona todas as tuplas que satisfazem à condição de seleção em uma relação R σ <condição de seleção> (Nome-da-relação) Álgebra Relacional Projeção: produz uma nova relação com alguns dos atributos de R π <lista de atributos> (Nome-da-relação) condição simples: =, /= ou< >, <, <=, >, >= condição booleana: conexão de condições simples por operadores booleanos: AND, OR, NOT Piloto Álgebra Relacional Projeção Num-cad Nome CPF Endereço Álgebra Relacional Junção: produz todas as combinações de tuplas de R1 e R2 que satisfazem à condição de junção R1 <condição de junção> R2 Seleção 0101 João Recife 0035 José São Paulo 0987 Pedro Recife Num-cad Nome CPF Endereço 0101 João Recife 0205 José SãoPaulo 0957 Pedro Recife Num-cad Num-voo Num-pil Nome CPF Endereço Num-voo 0101 João Recife 330 Num-pil
4 Álgebra Relacional Divisão: produz a relação R(X) incluindo todas as tuplas de R1(A) que aparecem em R1, combinadas com cada tupla de R2(B), onde B A e X = A-B R1 R2 Quais os pilotos que conduzem todos os aviões? Álgebra Relacional União: produz uma relação que inclui todas as tuplas de R1 ou R2 R1 e R2 devem ser união compatíveis R1 U R2 V Piloto Avião Divisor Avião R Piloto 0010 Duas relações R(a 1, a 2,, a n ) e S(b 1, b 2,, b n ) são união compatíveis se elas têm o mesmo grau n e se o Dom(a i ) = Dom( b i ), 1 =< i => n Álgebra Relacional Interseção: produz uma relação que inclui as tuplas comuns de R1 e R2 R1 e R2 devem ser união compatíveis R1 R2 Diferença: produz uma relação que inclui todas as tuplas de R1 que não estão em R2 R1 e R2 devem ser união compatíveis R1 R2 ESTRUTURAS OPERADORES RESTRIÇÕES Relação Atributo Domínio Chave Primária Chave Estrangeira União Interseção Diferença Seleção Projeção Junção Divisão Integridade de: Domínio Entidade Referencial Teoria das dependências - No projeto de um banco de dados devemos Identificar dados Fazer com que estes dados representem eficientemente o mundo real Como proceder? Por intuição? O processo de identificar e estruturar dados Decomposição Modelo relacional Método permitindo identificar a existência de problemas potenciais (anomalias de atualização) no projeto de um BD relacional Converte progressivamente uma tabela em tabelas de grau e cardinalidade menores até que pouca ou nenhuma redundância de dados exista
5 Teoria das Dependências Se a normalização for bem sucedida O espaço de armazenamento dos dados diminui A tabela pode ser atualizada com maior eficiência A descrição do BD será imediata Dependência Funcional Sejam R(A 1, A 2,, A n ) e X, Y contidos em {A 1,A 2,, A n } diz-se que existe uma Dependência Funcional (DF) de X para Y (X Y) se somente se, em R, a um valor de X corresponde um e um só valor de Y Ex: Num-cad Nome DF Total: Se X Y e Y X (X Y) Ex: Num-cad CPF Teoria das Dependências Teoria das Dependências DF Plena: quando um atributo é dependente de dois (ou mais) outros Ex: Num-pil Num-av Trajeto Chave Primária Um atributo A (ou uma coleção de atributos) é a chave primária de uma relação R, se Todos os atributos de R são funcionalmente dependentes de A Nenhum subconjunto de atributos de A também tem a propriedade Definição Uma relação está na Primeira Forma Normal (1NF) se todos os atributos que a compõem são atômicos Como corrigir? Separar os componentes em atributos distintos Piloto Num-cad Nome CPF Telefone Piloto Num-cad Nome CPF TELEFONE 0010 José João Manuel Josué José João Manuel Josué
6 Seja a relação Piloto Num-cad Nome CPF Salário Diploma Descrição 0010 José ,00 D1 Helicópteros 0010 José ,00 D2 Aviões a jato 0015 João ,00 D3 Bi-motor Manuel ,00 D1 Helicópteros Manuel ,00 D2 Aviões a jato Manuel ,00 D4 Concorde 0018 Josué ,00 D2 Aviões a jato Conseqüências da Desnormalização Extensão da chave primária Dependência funcional de parte da chave primária Anomalias de atualização Atualização de todas as tuplas com mesmo valor de atributo Anomalias de atualização(cont) Inconsistência: se a atualização não for feita em todos os níveis Inclusões: de um item que não tem correspondente para os outros campos da chave primária Remoções: de um item da chave provoca a remoção de informações adicionais Definição Uma relação está na Segunda Forma Normal (2NF) se ela está na 1NF e todo atributo nãochave é plenamente dependente da chave primária Num-cad Nome CPF Salário Diploma Descrição Dependências Parciais Como corrigir? Para cada subconjunto de atributos que compõem a chave primária, criar uma relação com este subconjunto como chave primária Colocar cada um dos outros atributos com o subconjunto mínimo do qual ele depende Relações criadas (Num-cad, Nome, CPF, Salário) (Diploma, Descrição) (Num-cad, Diploma) Dar nome às novas relações, por exemplo: Piloto, Diplomas e Formação (respectivamente)
7 Piloto Num-cad Nome CPF Salário Diplomas 0010 José , João ,00 Manuel , José ,00 Diploma D1 D2 D3 D4 Descrição Helicópteros Aviões a jato Bi-motor Concorde Formação OBS: Anomalias foram eliminadas- Não houve perda de informação Num-cad Diploma 0010 D D D3 D1 D2 D D2 Teoria das Dependências Dependência Transitiva Ocorre quando Y depende de X e Z depende de Y Logo, Z também depende de X X Y Z No-avião Tipo Capacidade Local Definição Uma relação está na Terceira Forma Normal (3NF) se ela está na 2NF e nenhum atributo não-chave é transitivamente dependente da chave primária Como corrigir? Para cada determinante que não é chave candidata, remover da relação os atributos que dependem dele para criar uma nova relação onde o determinante será chave primária Avião No-av Tipo Capacidade Local 101 A Rio 104 B SPaulo 105 DC Rio 103 B Recife 110 B Rio Definição Uma relação está na Forma Normal de Boyce/Codd (BCNF) se todo determinante é uma chave candidata Avião1 No-av Tipo Local 101 A320 Rio 104 B727 SPaulo 105 DC10 Rio 103 B727 Recife 110 B727 Rio Tipo_av Tipo Capacidade A B DC
8 Relações com mais de uma chave candidata Considere a relação Aluno Disciplina Professor ADP Aluno Disc Prof Maria BD Fernando Maria ES Paulo José BD Fernando José ES André e as regras: - para cada disciplina, cada estudante tem um único professor - cada professor ensina uma única disciplina - cada disciplina é ensinada por vários professores A relação está na 3NF mas não está na BCNF A decomposição seria AP Aluno Professor PD Professor Disciplina Maria Fernando Fernando BD Maria Paulo Paulo ES José Fernando André ES José André Seja a relação Vôo Piloto Avião Trajeto 101 Rec-Rio 105 Rio- Spa Spa-Rec Rec-For Rio-Spa? Vôo Piloto Avião Trajeto 101 Rec-Rio 105 Rio- Spa 105 Spa-Rec 101 Spa-Rec 101 Rio-Spa 105 Rec-Rio Rec-For Rec-For Rio-Spa Dependência Multivalorada (DMV) Dada uma relação R com atributos A, B, C, existe uma dependência multivalorada do atributo A no atributo B (A B) se um valor de A é associado a uma coleção específica de valores de B, independente de quaisquer valores de C > A DMV só existe se R tem no mínimo 3 atributos >DadaR(A,B,C),aDMVA Bexistese A CtambémexistirDaíanotação: A B C Vôo1 Piloto Avião Definição Uma relação está na Quarta Forma Normal (4NF) se ela está na 3NF (BCNF) e não existem dependências multivaloradas Como corrigir? Separar a relação em relações, cada uma contendo o atributo (A) que multidetermina os outros (B, C), ou seja, R1 (A, B) e R2 (A, C) Vôo Piloto Avião Trajeto 101 Rec-Rio 105 Rio- Spa 105 Spa-Rec 101 Spa-Rec 101 Rio-Spa 105 Rec-Rio Rec-For Rec-For Rio-Spa Vôo Piloto Trajeto Rec-Rio Rio-Spa Spa-Rec 0010 Rec-For 0015 Rio-Spa 48 8
9 OBS: Para evitar relações não 4NF Quando existir mais de um atributo multivalorado, o processo de normalização para 1NF é o seguinte: Criar uma relação para cada atributo multivalorado (AMV) (e os que ele determina) Incluir a chave primária da relação original (CPO) A chave primária será: CPO + AMV Notas Até agora o processo de decomposição substituía uma relação por duas de suas projeções Pode acontecer que uma relação não possa ser decomposta sem perdas em duas relações mas possa ser decomposta em três ou mais Este fenômeno é chamado n-decomposição (n > 2) Vôo Seja a relação Vôo : Piloto Avião Trajeto Projeção em três relações 101 Rec-Rio Rec-Rio Rio-Spa Rec-Rio É possível aplicar a operação de projeção de várias maneiras V1 Piloto Avião V2 Avião Trajeto V Rec-Rio 105 Rec-Rio 101 Rio-Spa Trajeto Piloto Rec-Rio Rio-Spa Rec-Rio 0010 Projeção em duas relações V1 Piloto Avião V2 Avião Trajeto Rec-Rio 105 Rec-Rio 101 Rio-Spa Projeção V1 Piloto Avião V2 Avião Trajeto V4 Avião 101 Rec-Rio 105 Rec-Rio 101 Rio-Spa Piloto Avião Trajeto 101 Rec-Rio Rec-Rio Rio-Spa Rec-Rio Rio-Spa V3 (Trajeto, Piloto) Trajeto Piloto Rec-Rio Rio-Spa Rec-Rio 0010 Relação Original Definição Uma relação R satisfaz a Dependência de Junção * (X, Y,, Z) se somente se R é igual à junção de suas projeções em X, Y,, Z onde X, Y,, Z são subconjuntos do conjunto de atributos de R No exemplo, a relação Vôo satisfaz à DJ: * ({Piloto, Avião)}, {Avião, Trajeto}, {Trajeto, Piloto})
10 Problemas na atualização Vôo Piloto Avião Trajeto P1 A1 T2 P1 P2 A2 A1 T1 T1 P1 A1 T1 Se t3 for inserida => t4 Se t4 for removida, uma das t também tem que ser Exemplo: Se João pilota um B737 e o trajeto Rec-Rio é feito por um B737 e João pilota no trajeto Rec-Rio Então João pilota um B737 no trajeto Rec-Rio O que não é necessariamente verdadeiro Teorema de Fagin R (A, B, C) satisfaz à DJ *(AB, AC) se somente se satisfaz o par de DMV A B C Este teorema pode ser visto como uma definição de DMV, logo DJ DMV DF : Generalização OBS: A DJ é a forma mais geral de dependências que tratam relações sendo decompostas via projeção e reconstruídas via junção Definição Uma relação está na Quinta Forma Normal (5NF), também chamada de Forma Normal Projeção/ Junção (PJNF), se somente se cada dependência de junção em R é uma conseqüência de chaves candidatas de R Notas: Qualquer relação 5NF está na 4NF Resultados demonstrados por Fagin Qualquer relação dada pode ser decomposta sem perdas em uma coleção equivalente de relações em 5NF, ou seja, a 5NF é sempre realizável Resultados demonstrados por Fagin (Cont) Dada uma relação R, podemos dizer se R está na 5NF se conhecermos suas chaves candidatas e todas as DJ em R Embora seja fácil identificar DF e DMV, o mesmo não pode ser dito da DJ porque seu significado intuitivo não é óbvio 59 Resumo da Eliminar atributos não atômicos 1NF Para evitar problemas com a 4NF: Eliminar DF não plenas Remover para outras relações atributos multivalora- 2NF dos quando da Eliminar dependências transitivas aplicação da 1NF 3NF Eliminar DF cujo determinante não é chave candidata BCNF Eliminar DMV 4NF Eliminar DJ (se encontradas) 5NF 60 10
11 E-R/Relacional Mapeamento E/R - Relacional Um esquema relacional pode ser facilmente derivado de um esquema conceitual desenvolvido usando o modelo E-R Seja o exemplo de modelagem E-R a seguir Nome Cad 1 Supervisão Sexo Salário Número Nome Empregado N 1 Dependentes de N N Trabalha 1 para Data-Ini Dependentes 1 1 Gerencia M Trabalha em Horas N Departamento 1 Controla N Projeto Locais Local Empregado E-R/Relacional Passo 1 Para cada entidade regular E no esquema E-R, criar uma relação R que inclui todos os atributos de R Exemplo Cad Nome Sexo Salário Nome Data-nasc Grau-P Número Nome E-R/Relacional Passo 2 Para cada entidade fraca W no esquema E-R que tenha como entidade proprietária E Criar uma relação R e incluir todos os atributos de W como atributos de R Incluir o(s) atributo(s) chave primária da relação proprietária E A chave primária de R é a combinação da chave primária de E e da chave parcial de W Dependente Cad Nome Data-nasc Grau-P E-R / Relacional Passo 3 Para cada relacionamento R de 1:1 no esquema ER Identificar as relações das entidades participando do relacionamento R Escolher uma das relações e incluir como chave estrangeira a chave primária da outra relação Incluir todos os atributos do relacionamento na relação escolhida
12 Passo 3 (cont) Exemplo E-R/Relacional Departamento Número Nome Cad-Ger Data-Ini Note que um mapeamento alternativo de um relacionamento 1:1 é possível juntando as duas entidades em uma única relação Isto é apropriado quando as entidades não participam de outros relacionamentos E-R / Relacional Passo 4 Para cada relacionamento regular (não fraco) 1:N Identificar a relação S que representa a entidade do lado N Incluir como chave estrangeira a chave primária da relação que representa a entidade do lado 1 Incluir os atributos do relacionamento em S Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv E-R/Relacional Passo 5 Para cada relacionamento R de M:N Criar uma nova relação para representar R Incluir como chave estrangeira as chaves primárias das relações que participam em R, estas chaves combinadas formarão a chave primária da relação Incluir também eventuais atributos de R E-R/Relacional Passo 6 Para cada atributo multivalorado A, criar uma nova relação R, incluindo um atributo correspondendo a A mais a chave primária K da relação que tem A como atributo A chave primária de R é a combinação de A e K Trabalha-em Cad-Emp Num-Proj Horas Locais Num-Dep Num-Loc E-R/Relacional Passo 7 Para cada relacionamento n-ário R (n > 2) Criar uma nova relação S para representar R Incluir como chaves estrangeiras as chaves primárias das relações que representam as entidades participantes Incluir os eventuais atributos de R A chave primária de S é normalmente a combinação das chaves estrangeiras Esquema Relacional Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv Departamento Número Nome Cad-Ger Data-Ini Locais Num-Dep Num-Loc Projeto Número Nome Num-Dep Trabalha-em Cad-Emp Num-Proj Horas Dependente Cad Nome Data-nasc Grau-P