MODELO RELACIONAL
O modelo relacional é um modelo de dados, adequado a ser o modelo subjacente de um Sistema Gerenciador de Banco de Dados (SGBD), que se baseia no princípio em que todos os dados estão guardados em tabelas (ou, matematicamente falando, relações). Toda sua definição é teórica e baseada na lógica de predicados e na teoria dos conjuntos.
O conceito foi criado por Edgar Frank Codd em 1970, sendo descrito no artigo "Relational Model of Data for Large Shared Data Banks". Na verdade, o modelo relacional foi o primeiro modelo de dados descrito teoricamente, os bancos de dados já existentes passaram então a ser conhecidos como (modelo hierárquico, modelo em rede ou Codasyl e modelo de listas invertidas). (wikipédia, 2011)
O modelo relacional representa os dados num BD como uma coleção de tabelas (relações).
• Cada tabela terá um nome, que será único, e um conjunto de atributos com seus respectivos nomes e domínios.
• Todos os valores de uma coluna são do mesmo tipo de dados
Nome da Relação Atributos
EMPREGADO 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
Tuplas
No modelo relacional cada linha , cada registro é chamado de tupla. Os campos , ou colunas são chamados de atributos e as tabelas são conhecidas como relação .
Portanto :
No modelo relacional temos :
RELAÇÃO- Tabelas/Arquivos de dados TUPLAS- Registros ou dados individualizados
ATRIBUTOS- Campos
“Um esquema de relação R, 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 numero de atributos de seu esquema.”
Em nossas palavras uma relação é expressa pelo numero de atributos(campos) que as descrevem .
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 = {t1, t2, ..., tm}. Cada tupla é uma lista de n valores t=<v1,v2,...,vn>, onde cada valor vi, 1<= i <=n, é um elemento do dom(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.
• Ex.: Fone: conjunto de 10, dígitos CPF: conjunto de 7 dígitos
Idade_Empregado: 16 ≤ idade ≤70
Departamentos: conjunto de departamentos de uma empresa.
A cada domínio está associado um tipo de dados ou formato. Ex.: Fone: (ddd) ddd-dddd onde d = {0,1,2,...,9}
IdadeEmpregado: inteiro entre 16 e 70.
– Um esquema de relação R, denotado por R(A1,A2,...,An), é um conjunto de atributos R = {A1,A2,...,An}. Cada atributo Ai é o nome de um papel realizado por algum domínio D na relação R.
– O grau de uma relação é o número de atributos que seu esquema contém. • Ex.: Seja o esquema Estudante (matrícula, nome, fone, idade, curso) => grau = 5
Um instante (snapshot) de relação r, do esquema R(A1, A2, ...,An), denotado por r(R), é o conjunto de n-tuplas r = {t1,t2,...,tn}.
Cada tupla t é uma lista ordenada de valores t = <v1,v2,...,vn>
– Os termos intenção para o esquema R e extensão para instante de relação são também empregados.
– Uma instância r(R) é um subconjunto do produto cartesiano dos domínios de R.
– r(R) (dom(A1) X dom(A2) X ... X dom(An))
Caracteristidas das relações :
A ordem das tuplas e dos atributos não tem importância: – Todo atributo possui valor atômico
– Cada atributo numa relação tem um nome que é único dentro da relação. – Todas as tuplas devem ser únicas (conjunto).
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.
A convenção de anotação é sublinhar a chave primária . Exemplo : Funcionários (matricula, nome, sexo, setor)
A indicação acima declara que a matricula é campo chave.
O mesmo atributo pode ter nomes diferentes nas relações que são tratadas. Exemplo :
Funcionários ( matricula, nome , CEP, casa) Enderecos( Cod-Cep,rua,bairro,cidade,estado)
• Integridade da chave :
Atributos idênticos com papéis diferentes devem ter nomes distintos em uma relação.
Toda tupla tem um conjunto de atributos que a identificade maneira única na relação.
o Integridade de Entidade: Nenhum valor de chave primária poderá ser NULO.
o Integridade Referencial: Uma relação pode ter um conjunto de atributos que contém valores com mesmo domínio de um conjunto de atributos que forma a chave primária de uma outra relação. 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 Exemplo :
Tabela Funcionários (matricula, nome, sexo, CEP,casa) A chave do exemplo acima é a matricula
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
São utilizados quando há necessidade de mais de uma chave para identificar os atributos.
Chave Primária
Um atributo chave selecionado para identificar unicamente uma tupla.
Chave Estrangeira
Atributo de uma relação que é chave primária em outra relação. Um conjunto de atributos de uma relação R1 é uma chave estrangeira se satisfaz às seguintes regras:
– Os atributos da chave estrangeira têm o mesmo domínio dos atributos da chave primária de outra relação R2.
– Um valor da chave estrangeira numa tupla t1 de R1 possui o mesmo valor da chave primária para alguma tupla t2 em R2 ou é NULO.
Na realidade são ligações de chaves em duas relações
Chave Candidata
Atributo chave que identifica unicamente uma tupla mas que não foi
selecionado como chave primária ou super-chave na relação atual, mas será chave primária na outra relação
Neste caso ele não é chave na relação atual mas é chave em outra relação
Dados os itens abaixo , monte os relacionamentos e o modelo relacional :
Clientes ( nro , nome , sexo, dtnascimento,
rua,bairro,cidade,CEP,estado,casa, Rg, Cpf, telefonecelular) 1. Crie as relações possíveis ( Cep e Sexo)
2. Indique quais são as relações e seus atributos 3. Quais são as chaves primarias
4. Quais são as chaves candidatas 5. Quais são as superchaves
6. Quais são as chaves estrangeiras
7. Qual e o grau de relação de cada tabela
Uma empresa trabalha com vendas de tintas , faça a composição de tabelas tendo em vista a ficha de controle
Ficha de controle de tintas Codigodatinta : 99
Nome da Tinta : Vermelho do inferno Fabricante : Coral
Tamanho (1-lata,2-galao,3-3/4): 1 – Lata Vendas :
Data Nropedido Quantidade Nrocliente 13/06/2009 61 23 51 15/05/2010 987 12 69 Quantidade Minima de estoque : 10
Quantidade atual de estoque : 20
1. Crie as relações possíveis
2. Indique quais são as relações e seus atributos 3. Quais são as chaves primarias
4. Quais são as chaves candidatas 5. Quais são as superchaves
6. Quais são as chaves estrangeiras 7.Qual e o grau de relação de cada tabela
Mais exemplos de normalização
EMPREGA
DO 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 se 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:
DEPARTAMENTO D_nro D_nome D_gerente D_local
1 Produção 1122 Piracicaba
2 Almoxarifado 1123 Piracicaba
São Paulo
3 Pessoal 1234 São Paulo
Chave Primária
Chave Candidata
Chave Estrangeira SuperChave
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)
DEPARTAMEN
TO D_nro D_nome D_gerente
1 Produção 1122 2 Almoxarifad o 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_PRO J EP_Epis EP_Pnr o EP_hora s EP_Enome EP_Pno me EP_Ploca l 967000 0 1 10 Pedro GIS SP 967000 0
2 5 Pedro Internet Piracicab
a 971111
1
959876 5
1 5 Maria GIS SP
959876 5
2 10 Maria Internet Piracicab
a 959876 5 3 15 Maria BD Campina s 951111 2 1 10 Paula GIS SP 951111 2
2 5 Paula Internet Piracicab
a
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_Epis EP_Pnr o EP_hora s EP_Enome EP_Pno me EP_Ploca l *
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_pis E_nom e P_nro P_nom e P_local EP_Epi s 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_Epis 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
Nro Série DataEmis
s Codcli NomCli EndCli CGCCli TotGeral
967 A 01/08/98 1 Gisele SP 9670000 100
971 B 30/08/98 2 Ivan Pira 9898700 500
959 A 25/07/98 3 Bruno Camp 9711111 120
951 A 20/06/98 1 Gisele SP 9670000 50
VENDA MERCADORIA
NroNF CodMerc Qtde TotVend
a Código Descrição PrVenda
967 1 10 100 1 Boné 10 971 2 20 500 2 Camiset a 25 959 3 6 120 3 Bermuda 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
Nro Série DataEmis
s Codcli TotGeral Codcli NomCli EndCli CGCCli
967 A 01/08/98 1 100 1 Gisele SP 9670000
971 B 30/08/98 2 500 2 Ivan Pira 9898700
959 A 25/07/98 3 120 3 Bruno Camp 9711111
951 A 20/06/98 1 50
VENDA MERCADORIA
NroNF CodMerc Qtde TotVend
a Código Descrição PrVenda
967 1 10 100 1 Boné 10
971 2 20 500 2 Camiset
a 25
959 3 6 120 3 Bermuda 20
951 4 1 50 4 Calça 50
Forma Nornal Boyce-Codd
Orientador(aluno, especialização, professor) 3a
Forma Normal
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.
aluno professor professor disciplina
100 Daniel Daniel matemática
150 Tânia Tânia psicologia
200 Catarina Catarina matemática
250 Daniel Darlene psicologia
300 Darlene
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