BANCO DE DADOS MODELO RELACIONAL MODELO RELACIONAL Nome da Relação Atributos E_Nome E_PIS E_Endereço E_DataNasc Pedro 9670000 r. XV de No... 05/05/65 João 9711111 r. 13 de Maio... 06/07/77 Maria 9598765 r. 7 de Setem... 03/05/75 Paula 9511112 r. 23 de Maio... 23/10/70 EMPREGADO Tuplas “Um esquema de relação Relacional, expresso por R(A1, A2, ..., An), é constituído pelo nome da relação e seus atributos A1, A2,...,An e tem a função de descrever esta relação. O Grau de uma relação consiste no nro de atributos de seu esquema.” EMPREGADO(E_Nome,E_Pis,E_Endereço,E_DataNasc) “Uma relação r de um esquema de relação R(A1,A2, ..., An), representada por r(R), é um conjunto de n_Tuplas“ r = {tupla1, tupla2, ..., tm}Cada tupla é uma lista de n valores Tupla=<valor1,valor2,...,vn> onde cada valor menor ou igual ao da relação é um elemento do domínio (Ai) ou um valor nulo especial.” Restrições do Modelo Relacional •Domínio: •Todo atributo deve ter um valor atômico (indivisível). •Não é possível a existência de valores compostos ou multi-valorados. •Chave: •Toda tupla deve ser distinta. • Duas tuplas não podem ter a mesma combinação de valores para todos os seus atributos. • Um atributo chave distingue apenas uma tupla em uma relação. • Integridade: •Atributos idênticos com papéis diferentes devem ter nomes distintos em uma relação. • Integridade de Entidade •Uma chave primária não pode ter valor nulo. • Integridade Referencial •Ocorre quando uma tupla t1 em uma relação r1 refere-se a outra tupla t2 da relação r2. •A integridade referencial garante que existe esta tupla t2 a qual t1 está se referindo. • Chave •Atributo que identifica uma única tupla em uma relação • SuperChave •Um conjunto de atributos composto por pelo menos uma chave. Toda relação tem pelo menos uma superchave que é o conjunto de todos os seus atributos • Chave Primária •Um atributo chave selecionado para identificar unicamente uma tupla. • Chave Candidata •Atributo chave que identifica unicamente uma tupla mas que não foi selecionado como chave primária. • Chave Estrangeira •Atributo de uma relação que é chave primária em outra relação. Chave Primária Chave Candidata SuperChave Chave Estrangeira EMPREGADO E_Nome E_PIS E_RG E_Dpto DEPARTAMENTO D_Nro D_Nome .. . Normalização •Processo no qual esquemas de relação inadequados são decompostos através da quebra de seus atributos em esquemas de relações menores e mais apropriados. 1a Forma Normal •Não permite a existência de atributos multivalorados ou compostos. • Uma relação está na 1a forma normal possui apenas atributos com valores atômicos (indivisíveis). Seja o esquema de relação DEPARTAMENTO(D_nro, D_nome, D_gerente,{D_local}) e suas instâncias: D_nro D_nome D_gerente D_local 1 Produção 1122 Piracicaba 2 Almoxarifado 1123 3 Pessoal 1234 DEPARTAMENTO Piracicaba São Paulo São Paulo Passamos para a 1a forma normal, removendo o atributo D_local da relação DEPARTAMENTO e criando uma uma nova relação DEPTO_LOC onde a chave primária é o nro do depto. DEPARTAMENTO(D_nro,D_nome,D_gerente) DEPTO_LOC(D_nro,D_local) DEPARTAMENT O D_nr o D_nome D_geren te 1 Produção 1122 2 Almoxarifado 1123 3 Pessoal 1234 DEPTO_LOC D_nr o D_local 1 Piracicaba 2 Piracicaba 2 São Paulo 3 São Paulo DEPENDÊNCIA FUNCIONAL É uma restrição que envolve dois conjuntos de atributos de um BD. Por exemplo, se for especificada a seguinte restrição X->Y isto significa que para quaisquer tuplas t1 e t2 com valores iguais para X, expresso por T1[X]=T2[X] , teremos T1[Y]=T2[Y]. Dizemos que Y é funcionalmente dependente ou determinado por X. Ex.: Considere o esquema de relação EMP_PROJ EMP_PROJ(EP_Epis,EP_Pnro,EP_horas,EP_Enome,EP_Pnome,EP _Plocal) e suas instâncias: EMP_PROJ EP_Epis EP_Pnro EP_horas EP_Enome EP_Pnome EP_Plocal 9670000 1 10 Pedro GIS SP 9670000 2 5 Pedro Internet Piracicaba 9711111 1 12 João GIS SP 9598765 1 5 Maria GIS SP 9598765 2 10 Maria Internet Piracicaba 9598765 3 15 Maria BD Campinas 9511112 1 10 Paula GIS SP 9511112 2 5 Paula Internet Piracicaba Podemos identificar as seguintes dependências funcionais: A) EP_Epis->EP_Enome B) EP_Pnro->{EP_Pnome,EP_Plocal} C) {EP_Epis,EP_Pnro}->EP_horas A dependência Funcional pode ser completa ou parcial: Completa: {EP_Epis,EP_Pnro} -> EP_horas Parcial: {EP_Epis,EP_Pnro} ->EP_Enome 2a Forma Normal Uma relação r está na 2a Forma Normal se todo atributo não principal* for completamente dependente funcionalmente da chave primária de r. Ex.: Considere o esquema de relação EMP_PROJ EMP_PROJ(EP_Epis,EP_Pnro,EP_horas,EP_Enome,EP_Pnome,EP_Plocal) e suas dependências funcionais: EP_Epi s EP_Pnr o EP_horas EP_Enome EP_Pno me * Atributo principal faz parte de uma chave da relação EP_Ploc al Passamos para a 2a Forma Normal transformando as dependências funcionais parciais em dependências funcionais completas através da criação de novas relações: Empregado Projeto Emp_Proj E_pi s E_nom e P_nr o P_nom e P_loca l EP_Ep is EP_Pnro EP_hora s DEPENDÊNCIA FUNCIONAL TRANSITIVA Uma dependência funcional X->Y é transitiva se existir um conjunto de atributos não chave Z, onde X->Z e Z->Y. Ex.: Considere o esquema de relação EMP_DPT EMP_DPT(E_Nome, E_Pis, E_Nasc, E_End, D_Nro, D_Nome, D_Ger) E_Nome E_Pis E_Nasc E_End D_Nro D_Nome D_Ger José 1100 01/05/70 R. XV... 1 RH Ruth João 1101 04/04/65 R. 13... 2 ADM Chico Pedro 1102 07/07/67 R. Joao... 1 RH Ruth Manoel 1103 05/05/75 R. ETC... 2 ADM Chico e suas dependências funcionais: E_Nom e EP_Epi s E_Nasc E_End D_Nro D_Nome D_Ger E_Pis -> D_Nro D_Nro -> D_Ger Logo: E_Pis->D_Ger é uma Dependência Funcional Transitiva 3a Forma Normal Uma relação r está na 3a Forma Normal se seus atributos não forem dependentes funcionalmente de outros atributos não chave, ou ainda, “se seus atributos não chave não forem transitivamente dependentes das chaves primárias” (Codd). Ex.: Considere os esquemas de relação NOTA_FISCAL(Nro,Série,DataEmiss,CodCli,NomCli,EndCli,CGCCli,TotGeral) VENDA(NroNF,CodMerc,Qtde,TotVenda) MERCADORIA(Código,Descrição,PrVenda) NOTA_FISCAL Série DataEmis s Codc li NomC li EndC li CGCCli TotGeral 96 7 A 01/08/98 1 Gisele SP 9670000 100 97 1 B 30/08/98 2 Ivan Pira 9898700 500 95 9 A 25/07/98 3 Bruno Cam p 9711111 120 95 1 A 20/06/98 1 Gisele SP 9670000 50 Nr o VENDA MERCADORIA Qtde TotVend a Código Descriç ão PrVenda NroNF CodMer c 967 1 10 100 1 Boné 10 971 2 20 500 2 Camiset a 25 959 3 6 120 3 Bermud a 20 951 4 1 50 4 Calça 50 NOTA_FISCAL(Nro,Série,DataEmiss,CodCli,TotGeral) VENDA(NroNF,CodMerc,Qtde,TotVenda) MERCADORIA(Código,Descrição,PrVenda) CLIENTE(CodCli,NomCli,EndCli,CGCCli) NOTA_FISCAL CLIENTE Série DataEmis s Codc li TotGeral Codc li NomC li EndC li CGCCli 96 7 A 01/08/98 1 100 1 Gisele SP 9670000 97 1 B 30/08/98 2 500 2 Ivan Pira 9898700 95 9 A 25/07/98 3 120 3 Bruno Cam p 9711111 95 1 A 20/06/98 1 50 Nr o VENDA MERCADORIA CodMer c Qtde TotVend a Código Descriç ão PrVenda NroNF 967 1 10 100 1 Boné 10 971 2 20 500 2 Camiset a 25 959 3 6 120 3 Bermud a 20 951 4 1 50 4 Calça 50 Forma Nornal Boyce-Codd Orientador(aluno, especialização, professor) chave primária: (aluno,especialização) chave candidata: (aluno,professor) dependência funcional: professor->especialização aluno especialização professor 100 matemática Daniel 150 psicologia Tânia 200 matemática Catarina 250 matemática Daniel 300 psicologia Darlene 300 matemática Catarina Uma relação está na BCNF se todo determinante é uma chave candidata. professor professor disciplina Daniel matemática aluno 100 Daniel 150 Tânia Tânia psicologia 200 Catarina Catarina matemática 250 Daniel Darlene psicologia 300 Darlene 300 Catarina 4a Forma Normal Relações com Dependência Multi-valoradas Aluno (ra,especialização, atividade) Chave: (ra, especialização, atividade) ra especialização atividade 100 matemática natação 100 psicologia natação 100 matemática tênis 100 psicologia tênis 150 psicologia natação Em uma relação R(a,b,c) existe uma dependência multi-valorada se a determina vários valores de b e c e b e c são independentes entre si. Uma relação está na 4a Forma Normal se está na BCNF e não tem dependências multi-valoradas. ra especialização ra atividade 100 matemática 100 natação 100 psicologia 100 tênis 150 psicologia 150 natação