34
Conte´ udo do curso Modelo relacional Universidade Estadual de Campinas - UNICAMP Instituto de Computa¸c˜ ao - IC MC536 – Bancos de Dados: Teoria e Pr´ atica Aula #4 – Modelo relacional: defini¸c˜ oes e formaliza¸c˜ ao Profs. Anderson Rocha e Andr´ e Santanch` e Campinas, 16 de Agosto de 2012 Anderson Rocha MC536 – Bancos de Dados: Teoria e Pr´ atica 1/34

MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/aulas/aula-04.pdf · Conteudo do curso Modelo relacional Universidade Estadual de Campinas - UNICAMP Instituto

Embed Size (px)

Citation preview

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