MC536 { Bancos de Dados: Teoria e Pr aticaAula #4 { Modelo relacional: de ni˘c~oes e...
Transcript of MC536 { Bancos de Dados: Teoria e Pr aticaAula #4 { Modelo relacional: de ni˘c~oes e...
Conteudo do cursoModelo relacional
���������������������������������������������������������������������������������������������������������������� Universidade Estadual de Campinas - UNICAMPInstituto de Computacao - IC
MC536 – Bancos de Dados: Teoria e PraticaAula #4 – Modelo relacional: definicoes e formalizacao
Profs. Anderson Rocha e Andre Santanche
Campinas, 16 de Agosto de 2012
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 1/34
Conteudo do cursoModelo relacional
Conteudo do curso
1. Introducao: arquitetura de banco de dados.
2. Modelos de dados: modelagem e abstracoes.
3. Modelos conceituais: modelo entidade-relacionamento (ER)basico e estendido.
4. Modelo relacional: definicoes e formalizacao.
5. Mapeamento do modelo ER para o modelo relacional.
6. Linguagens de definicao e de manipulacao de dados.I Algebra relacional;I Calculo relacional.
7. Dependencias funcionais e normalizacao.
8. Processamento de consultas.
9. Controle de concorrencia.
10. Mecanismos de protecao e recuperacao.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 2/34
Conteudo do cursoModelo relacional
Modelo relacional (1)
I Baseado no conceito de Relacao.
I Uma Relacao e um conceito matematico baseado na ideia deconjunto.
I O ponto forte da abordagem relacional e o fundamento formaldado pela teoria das relacoes.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 3/34
Conteudo do cursoModelo relacional
Modelo relacional (2)
I Proposto por E. F. Codd (IBM) em 1970: A Relational Modelfor Large Shared Data Banks, Communications of the ACM,June 1970.
I ACM Turing Award.
I Num modelo relacional as estruturas sao tabelas (relacoes).
I Pode conter restricoes: de integridade, de domınio, deentidade e referencial.
I As operacoes sao baseadas em algebra relacional.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 4/34
Conteudo do cursoModelo relacional
Conceito
I Um banco de dados estruturado de acordo com o modelorelacional corresponde a uma colecao de relacoes.
I Informalmente, uma relacao e uma tabela na qual cada linhaexpressa ema colecao de dados relacionados, cujos valorespodem ser interpretados como um fato que descreve umaentidade ou um relacionamento.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 5/34
Conteudo do cursoModelo relacional
Terminologia
I As linhas de uma relacao, ou tabela, sao chamadas deTUPLAS.
I O cabecalho das colunas representa ATRIBUTOS.
I O conjunto de valores que podem aparecer em cada coluna echamado de DOMINIO.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 6/34
Conteudo do cursoModelo relacional
Um relacao
Figura: Exemplo de um relacao: ESTUDANTE.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 7/34
Conteudo do cursoModelo relacional
Esquema de relacao
I E uma expressao da forma: R(A1,A2, ...,An) onde:I R – e o nome de uma relacao;I Ai – e o nome de um atributo que representa um papel de um
domınio D em R – dom(Ai );I n – e o grau da relacao.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 8/34
Conteudo do cursoModelo relacional
Instancia de uma relacao (1)
I A instancia de uma relacao r(R) e um conjunto de n-tuplasr = {t1, t2, . . . , tn} onde cada n-tupla t e uma lista de nvalores t = 〈v1, v2, . . . , vn〉.
I Cada vi e um elemento do dom(Ai ).
I Um valor especial null ou nulo e usado para representarvalores desconhecidos ou inaplicaveis a certas tuplas.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 9/34
Conteudo do cursoModelo relacional
Instancia de uma relacao (1)
I Formalmente, r(R) ⊂ (dom(A1)× dom(A2)× . . .× dom(An)).
I Um subconjunto do produto cartesiano dos domınios deatributos, que representam fatos do mundo real.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 10/34
Conteudo do cursoModelo relacional
Caracterısticas de uma relacao
I As tuplas de uma relacao nao sao ordenadas.
I Uma tupla e uma lista ordenada de valores, portanto, a ordemdos valores em uma tupla, e consequentemente, dos atributosna definicao de um esquema de relacao e importante.
I Valor de cada atributo em uma tupla e atomico.
I Um esquema de relacao pode ser interpretado como umadeclaracao, ou seja, uma tupla satisfaz ou nao uma relacao.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 11/34
Conteudo do cursoModelo relacional
Esquema de um BD relacional (1)
I Um esquema de BD relacional S define um conjunto deesquemas relacao R = {R1,R2, . . . ,Rn} e um conjunto derestricoes de integridade I .
I Portanto S = (R, I ).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 12/34
Conteudo do cursoModelo relacional
Esquema de um BD relacional (1)
I Uma instancia B de S e um conjunto de relacoesB = {r1, r2, ...rn}, tal que, cada ri e uma instancia de Ri esatisfazem as restricoes de integridade especificadas em I .
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 13/34
Conteudo do cursoModelo relacional
Relacao – Visao formal
Termos informais Termos formaisTabela Relacao
Coluna Atributo/Domınio
Linha Tupla
Valores em uma coluna Domınio
Definicao da tabela Esquema da relacao
Tabela populada Extensao
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 14/34
Conteudo do cursoModelo relacional
Exemplo conceitual
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 15/34
Conteudo do cursoModelo relacional
Relacoes
(a) Cliente Particular (b) Cliente Empresa
(c) Taxi (d) Corrida
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 16/34
Conteudo do cursoModelo relacional
Restricoes de integridade
I Restricoes sao condicoes que devem ser validas para todas asinstancias de relacoes
I Restricao de chave;I Restricao de domınio;I Restricao de integridade de entidade;I Restricao de integridade referencial.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 17/34
Conteudo do cursoModelo relacional
Restricoes de domınio
I Especificam que o valor de cada atributo A de uma relacaodeve ser um valor atomico do dom(A).
I Exemplo: CPF tem um domınio de 11 numeros.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 18/34
Conteudo do cursoModelo relacional
Restricoes de chave (1)
I Superchave: subconjunto de atributos de um esquema R coma propriedade de que duas tuplas, em qualquer estado derelacao r ∈ R, nao tenham as mesmas combinacoes de valorespara esses atributos.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 19/34
Conteudo do cursoModelo relacional
Restricoes de chave (2)
I T1[SK ] 6= T2[SK ];
I SK e um subconjunto de atributos;
I Uma superchave especifica uma restricao de unicidade;
I Superchave pode conter atributos redundantes.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 20/34
Conteudo do cursoModelo relacional
Restricoes de chave (3)
I Chave: uma chave K e uma superchave com a propriedadeadicional de, ao remover qualquer atributo A de K , o conjuntode atributos K ′ restante nao e mais superchave de R.
I Em geral, um esquema de relacao pode ter mais de umachave.
I Cada uma e chamada de
I chave candidata.
I Uma delas e indicada como
I chave primaria
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 21/34
Conteudo do cursoModelo relacional
Restricoes de chave (4)
I Duas tuplas distintas, em qualquer estado, nao podem tervalores identicos para (todos) os atributos chave.
I Um chave e uma superchave mınima.
(a) Superchave (b) Chave = superchave-minimal.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 22/34
Conteudo do cursoModelo relacional
Exemplos (1)
I SuperchavesI {Placa};I {Placa,Marca};I {Placa,Marca,Modelo};I {Placa, Marca, Modelo, AnoFab}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 23/34
Conteudo do cursoModelo relacional
Exemplos (2)
I Chave:I {Placa}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 24/34
Conteudo do cursoModelo relacional
Integridade de entidade (1)
I Esquema de um banco de dados relacional: conjunto S derelacoes que pertencem ao mesmo banco de dados.
I S e o nome do banco de dados
S = {R1,R2, ...,Rn}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 25/34
Conteudo do cursoModelo relacional
Integridade de entidade (2)
I Integridade de Entidade: os atributos que sao chave primariaPK de cada relacao R em S nao podem ter valores nulos emnenhuma tupla de r(R).
I Motivo: os valores de chaves primarias sao usados paraidentificar tuplas t[PK ] 6= NULO para toda ∀ t ∈ r(R).
I Outros atributos de R podem ter restricao similar, mesmo naosendo chave primaria.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 26/34
Conteudo do cursoModelo relacional
Integridade referencial (1)
I Usado para especificar um relacionamento entre tuplas emduas relacoes.
I Relacao que referencia uma outra relacao / relacao que ereferenciada por outra relacao.
I Tuplas em uma relacao R1 tem atributos FK (chaveestrangeira) que referencia atributos chave primaria PK deuma outra relacao R2.
I Uma tupla t1 ∈ R1 aponta para uma tupla t2 ∈ R2 set1[FK ] = t2[PK ].
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 27/34
Conteudo do cursoModelo relacional
Integridade referencial (2)
Figura: Placa e chave primaria em TAXI e chave estrangeira emCORRIDA.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 28/34
Conteudo do cursoModelo relacional
Restricao de integridade referencial
I Os atributos FK de R1 tem o mesmo domınio que osatributos PK de R2.
I O valor de uma chave estrangeira FK de uma relacao R1 podeser
I Um valor de uma chave primaria existente em uma outrarelacao R2;
I Um nulo.
I No segundo caso, FK em R1 nao deve fazer parte da chaveprimaria de R1.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 29/34
Conteudo do cursoModelo relacional
Outras restricoes
I Integridade semanticaI Baseada na semantica da aplicacao;I Nao pode ser expressa no modelo em si;I Exemplo: numero maximo de horas trabalhadas por um
empregado nao pode ultrapassar 40 horas por semana.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 30/34
Conteudo do cursoModelo relacional
Restricoes × Atualizacoes (1)
I Insercao/Modificacao/Delecao.
I Restricoes de integridade nao podem ser violadas poroperacoes de atualizacao.
I Atualizacoes podem ser propagadas, em cascata,automaticamente para respeitar as restricoes de integridade.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 31/34
Conteudo do cursoModelo relacional
Restricoes × Atualizacoes (2)
I InsercaoI Insercao de tupla com chave ja existente: viola restricao de
chave;I Insercao de tupla com chave nula: viola restricao de
integridade de entidade;I Insercao de tupla com chave estrangeira invalida: viola
restricao de integridade referencial.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 32/34
Conteudo do cursoModelo relacional
Restricoes × Atualizacoes (3)
I RemocaoI Pode violar restricao de integridade referencial.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 33/34
Conteudo do cursoModelo relacional
Duvidas?
Figura: O pensador - Auguste Rodin.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 34/34