1 gabriel david feup - rua dos bragas, 4050-123 porto - portugal tel. 351-222041842 - fax:...

23
1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: [email protected] URL: http://www.fe.up.pt Modelo relacional noções básicas tradução do modelo entidade- associação álgebra relacional

Upload: marta-camilo-rios

Post on 07-Apr-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

1

Gabriel DavidFEUP - Rua dos Bragas, 4050-123 Porto - PORTUGALTel. 351-222041842 - Fax: 351-222000808

Email: [email protected]: http://www.fe.up.pt

Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

Page 2: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 2

Objectivos

Ted Codd, 1970 Fornecer um elevado grau de independência dos dados. Proporcionar uma definição comum dosdados de simplicidade

espartana, de forma que uma vasta gama de utilizadores numa empresa possa com ela lidar.

Simplificar o potencialmente gigantesco trabalho do administrador da BD.

Introduzir uma fundamentação teórica na gestão de BD. Fundir os campos de pesquisa de factos e gestão de ficheiros,

preparando a posterior adição de serviços de inferência no mundo comercial.

Elevar a programação de aplicações de BD para um novo nível, em que conjuntos sejam tratados como operandos, em vez de serem tratados elemento a elemento.

Page 3: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 3

Sistemas

Norma ANSI/SPARC Alguns sistemas relacionais

Rendez-vous Oracle QBE Ingres Informix

Há sistemas que têm estrutura tabular, mas não possuem todos os operadores relacionais básicos ou apresentam limitações práticas importantes (semi-relacionais).

Sybase Paradox Access SQL ...

Page 4: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 4

Produto cartesiano

domínios D1 = { rosa, cravo, tulipa } D2 = { branco, amarelo, vermelho, negro }

produto cartesiano D1 D2 = { (r,b), (r,a), (r,v), (r,n), (c,b), (c,a), (c,v), (c,n), (t,b), (t,a), (t,v), (t,n), (r,b) } = { (x, y) | x D1, y D2 }

branco amarelo vermelho negro

rosa (r,b) (r,a) (r,v) (r,n)

cravo (c,b) (c,a) (c,v) (c,n)

tulipa (t,b) (t,a) (t,v) (t,n)

D1

D2

Page 5: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 5

Tuplo

Generalização do produto cartesiano D1 D2 D1 = { (x, y, z) | x D1, y D2, z D1}

tuplo (n-uplo) sequência ordenada, eventuais repetições; conjunto, sem ordem nem repetições tantos elementos quantos os domínios do produto cartesiano

• (2 - par; 3 - terno; ...)

Page 6: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 6

Relação

relação subconjunto de produto cartesiano R D1 D2

extensão R = { (r,b), (c,v), (t,n) } compreensão R= { (f, c) | existe no meu jardim a flor f com a côr c }

relação é conjunto os tuplos são todos diferentes (existe chave) a ordem dos tuplos na relação é irrelevante a ordem dos componentes nos tuplos é importante (referência por

posição)• se se atribuir um nome a cada elemento do tuplo (atributo), onde

aquele for indicado, a ordem não interessa - vê-se o tuplo como um mapeamento dos atributos para os respectivos valores

– se t=(r, b) então flor(t) = r, côr(t) = b, e também t = (r, b) = (côr: b, flor: r)

Page 7: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 7

Relação normalizada

relação não normalizada: contém tuplos cujos valores são conjuntos, i.e., não atómicos não normalizada

R = { (r, {b,a}), (c, {b,v}), (t,n)} normalizada correspondente

R= {(r,b), (r,a), (c,b), (c,v), (t,n)}

Page 8: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 8

Tabela

atributo : nome de uma coluna esquema : conjunto dos atributos esquema da BD : contém o conjunto dos

esquemas das relações BD : conjunto das instâncias das relações

tuplo linha

componente coluna

RFlor Côrr bc vt n

esquema de R [plano]instância de R [conteúdo]

R = { (r,b), (c,v), (t,n) }

Page 9: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 9

Um conjunto S de atributos de uma relação R é uma chave se1 nenhuma instância de R, representando um estado

possível do mundo, pode ter dois tuplos que coincidam em todos os atributos de S e não sejam o mesmo tuplo;

2 nenhum subconjunto próprio de S satisfaz (1).

Chaves de relações

Ex: chave(R) = {flor}• (f,c1), (f, c2) c1 = c2• significa que só pode haver uma linha para uma dada flor

Ex: chave(Inscrito) = {coddis, bia}• (d, a, r1), (d, a, r2) r1 = r2• só coddis ou só bia não garantem a condição (1)• {coddis, bia, resultado} não é chave porque contém uma chave.

conceito de chave depende do esquema, não da instância várias chaves numa relação — chaves candidatas; escolhe-se

uma delas como chave primária

Page 10: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 10

EA versus relacional

Titularbi número1111 13271111 64981111 91852222 91852222 56233333 8998

Pessoabi nome data_nasc1111 João 53-03-242222 Maria 54-09-113333 Miguel 80-03-014444 Pedro 83-05-29

Contanúmero saldo1327 23 0006498 78 0009185 127 0005623 41 0008998 5 000

entidade

associação n mentidade

Pessoa

nomebi

data_nasc

titular Conta

saldo

número

Page 11: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 11

entidades

associaçõesrelações

só um conceito, maior uniformidade, menos operadores

Tradução

conjunto de entidades E entidade ex: conj. entidades Pessoa se E tiver chave emprestada,

incluir esses atributos na relação ex: Turma

associação A = (E1, ..., Ek)

ligação ex: associação titular

relação, esquema = atributos de E tuplo Pessoa( bi, nome, data_nasc )

Turma( curso, ano, letra ) relação, esquema = atributos nas

chaves de E1, ..., Ek, renomeando iguais tuplo Titular( bi, numero )

Page 12: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 12

Exemplo dos cursos

Curso

Disciplina

Professor Aluno

Turma

plano

segue

inscrito

atribuídolecciona

codcurso

designacur

sigla

coddis

designadis BInome

moradatelefone

habilitaçãogrupo

BInome

moradatelefone

data_nasc

ano

letra

resultado

Page 13: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 13

Tradução do exemplo

[Entidades]1 Curso(codcurso, designacur)2 Disciplina(coddis, sigla, designadis)3 Turma(codcurso, ano, letra)4 Professor(bip, nome, morada,

telefone, habilitação, grupo)5 Aluno(bia, nome, morada, telefone,

data_nasc)

[Associações]6 Plano(codcurso, coddis)7 Inscrito(coddis, bia, resultado)8 Atribuido(bia, codcurso, ano, letra)9 Lecciona(bip, coddis, codcurso, ano,

letra)10 Segue(codcurso, ano, letra)

na associação Segue elimina-se o atributo repetido; o resultado é igual a Turma

Page 14: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 14

Conteúdo das chaves

Quando os esquemas das relações são uma tradução do modelo EA: relação vinda de um conjunto de entidades: a chave da entidade é a chave da

relação relação vinda de uma associação muitos-para-muitos: chave inclui,

frequentemente, todos os atributos relação vinda de entidade fraca: chave inclui a chave da entidade forte associação um-para-um entre E e F: tanto a chave de E como a de F podem ser

chave para a relação associação muitos-para-um de E1, ..., Ek-1 em Ek: frequentemente, os atributos E1,

..., Ek-1 formam uma chave

[Entidades]1 Curso(codcurso, designacur)2 Disciplina(coddis, sigla, designadis)3 Turma(codcurso, ano, letra)4 Professor(bip, nome, morada,

telefone, habilitação, grupo)5 Aluno(bia, nome, morada, telefone,

data_nasc)chave primária chave candidata

[Associações]6 Plano(codcurso, coddis)7 Inscrito(coddis, bia, resultado)8 Atribuido(bia, codcurso, ano, letra)9 Lecciona(bip, coddis, codcurso, ano,

letra)10 Segue(codcurso, ano, letra)

Page 15: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 15

Atribuidobia curso ano

letra243 CG 10

A

321 CG 11B

427 CG 10A

Aluno (novo)bia nome … curso ano

turma243 João … CG 10 A

321 Rui ... CG 11 B

427 Tiago … CG 10 A

575 Luis ...

Alunobia nome ...243 João 12

321 Rui 31

427 Tiago 5

575 Luis 40

- valor nulo

tuplo pendente

Tradução (cont.)

Simplificação - Duas relações com uma chave candidata em comum podem ser combinadas numa só relação cujo esquema é a reunião dos outros dois.

• poupa espaço• perguntas envolvendo atributos das duas relações têm resposta mais rápida

Page 16: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 16

Regras práticas

entidade relação ex: Disciplina, Aluno

associação m 1 (binária) atributo do lado m ex: atribuído Aluno

associação m n (ou m 1 > binária) relação ex: plano, lecciona

Page 17: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 17

Associação Segue: está contida em Turma e portanto desaparece

Esquema relacional de Cursos

Relações recombinadas 1 Curso(codcurso, designacur)2 Disciplina(coddis, sigla, designadis)3 Turma(codcurso, ano, letra)4 Professor(bip, nome, morada, telefone, habilitação,

grupo)5 Aluno(bia, nome, morada, telefone, data_nasc,

codcurso, ano, letra) 5 + 86 Plano(codcurso, coddis)7 Inscrito(coddis, bia, resultado)9 Lecciona(bip, coddis, codcurso, ano, letra)

Page 18: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 18

Publicação

RevistaLivro

nr

número

ano

título

volumeeditorPublicaçãonr titulo ano tipo editor vol

no327 'Os Maias' 1983 'L' Bertrand 581 'Software' 1994 'R'

Tradução alternativa de hierarquias todas as especializações numa tabela

reunir numa única tabela os atributos da generalização e das especializações, renomeando se necessário

acrescentar um atributo obrigatório Tipo com tantos valores quantas as especializações

os atributos das especializações são optativos; em cada entidade só se especificam os valores dos atributos da especialização correspondente

vistas para manipular especializações• vista LIVRO = PUBLICAÇÃO(nr, titulo, ano, editor)

condição tipo='L'• vista REVISTA = PUBLICAÇÃO(nr, titulo, ano, vol, no)

condição tipo='R'

isa isa

Page 19: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 19

Livronr titulo ano

editor327 'Os Maias' 1983

'Bertrand'Revistanr titulo ano vol

no581 'Software' 1994 41

2

• tudo junto• acesso simples• muitos nulos• integridade via programação

• integridade mais explícita• subconjuntos menores• muitas tabelas• problemas com a vista reunião

uma tabela várias tabelas

Hierarquias (cont.)

especializações em tabelas separadas uma tabela por especialização, incluindo os atributos

próprios mais os herdados generalização acessível por uma vista contendo a

reunião das especializações (só para consulta)• vista PUBLICAÇÃO =

LIVRO (nr, titulo, ano) REVISTA (nr, titulo, ano)

alterações são feitas directamente nas especializações

Page 20: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 20

Associação característica

A classe D tem chave emprestada se, para definir a sua chave de utilizador, for necessário recorrer à chave de outra classe C que seja o lado um de uma associação de que D é o lado muitos caso da turma num curso: turma 2B da LEIC e 2B da LGEI

a existência de objectos em D depende da existência de objectos em C, enquanto que os objectos em C existem independentemente de D

diz-se que D corresponde a uma entidade fraca e que entre D e C existe uma associação característica exemplo: entidade Facturas e entidade Linhas (das facturas)

Page 21: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 21

Elementos activos na BD

Esquema da BD = esquemas das tabelas + restrições de integridade

elementos activos complementam os estruturais Restrição

função booleana cujo valor têm que ser verdadeiro uma alteração que conduza a um estado que viole uma restrição

é rejeitada Trigger

código que espera por um evento (inserção, apagamento, …) executa uma sequência de acções disparadas pelo evento usado para verificar regras de integridade suplementares

Page 22: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 22

Restrições de integridade

chave - identifica uma entidade; não pode haver duas entidades com a mesma chave; não pode ser nula

valor único - impede a repetição da mesma combinação de valores nos atributos envolvidos

valor não nulo - preenchimento obrigatório integridade referencial - exige que um valor referido

por uma entidade de facto exista na BD (chave externa) domínio - exige que o valor pertença a um determinado

conjunto ou gama genérica - asserção que tem que ser verdadeira

Page 23: 1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL:  Modelo

Modelo relacional - 23

Tuplos pendentes

tuplo pendente - tuplo numa tabela que não tem par na outra, ao combinar duas relações

formas de reduzir o problema1) impondo restrições de integridade referencial

• [se o valor V aparece em A de R1, também tem que existir em B de R2]

• chave externa - restringir os valores num, ou vários atributos de uma tabela ao conjunto de valores nos atributos chave de uma outra relação [atributo bia em Inscrito só deve admitir valores que existam na chave de Aluno]

2) colocando um símbolo especial nos atributos desconhecidos (), o valor nulo.

• valores nulos não podem aparecer na chave primária• dois valores nulos são sempre diferentes