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

23
1 Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-2-2041842 - 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

description

Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional. Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-2-2041842 - Fax: 351-222000808. Email: [email protected] URL: http://www.fe.up.pt. Objectivos. Ted Codd, 1970 - PowerPoint PPT Presentation

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

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

1

Gabriel DavidFEUP - Rua dos Bragas, 4050-123 Porto - PORTUGALTel. 351-2-2041842 - 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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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

R

Flor Côr

r b

c v

t n

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

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

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

Modelo relacional - 9

Um conjunto S de atributos de uma relação R é uma chave se

1 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).

Um conjunto S de atributos de uma relação R é uma chave se

1 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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

Modelo relacional - 10

EA versus relacional

Titularbi número

1111 1327

1111 6498

1111 9185

2222 9185

2222 5623

3333 8998

Titularbi número

1111 1327

1111 6498

1111 9185

2222 9185

2222 5623

3333 8998

Pessoabi nome data_nasc

1111 João 53-03-24

2222 Maria 54-09-11

3333 Miguel 80-03-01

4444 Pedro 83-05-29

Pessoabi nome data_nasc

1111 João 53-03-24

2222 Maria 54-09-11

3333 Miguel 80-03-01

4444 Pedro 83-05-29

Contanúmero saldo

1327 23 000

6498 78 000

9185 127 000

5623 41 000

8998 5 000

Contanúmero saldo

1327 23 000

6498 78 000

9185 127 000

5623 41 000

8998 5 000entidade

associação n mentidade

Pessoa

nome

bi

data_nasc

titular Conta

saldo

número

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

Modelo relacional - 11

entidades

associaçõesrelações

só um conceito, maior uniformidade, menos operadoressó 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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

Modelo relacional - 12

Exemplo dos cursos

Curso

Disciplina

Professor Aluno

Turma

plano

segue

inscrito

atribuídolecciona

codcurso

designacur

sigla

coddis

designadis BI

nome

morada

telefone

habilitação

grupo

BI

nome

morada

telefone

data_nasc

ano

letra

resultado

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

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

Modelo relacional - 15

Atribuidobia curso ano

letra

243 CG 10A

321 CG 11B

427 CG 10A

Atribuidobia curso ano

letra

243 CG 10A

321 CG 11B

427 CG 10A

Aluno (novo)bia nome … curso ano

turma

243 João … CG 10 A

321 Rui ... CG 11 B

427 Tiago … CG 10 A

575 Luis ...

Aluno (novo)bia nome … curso ano

turma

243 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

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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 + 8

6 Plano(codcurso, coddis)

7 Inscrito(coddis, bia, resultado)

9 Lecciona(bip, coddis, codcurso, ano, letra)

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

Modelo relacional - 18

Publicação

RevistaLivro

nr

número

ano

título

volumeeditorPublicaçãonr titulo ano tipo editor vol

no

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

Publicaçãonr titulo ano tipo editor vol

no

327 '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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

Modelo relacional - 19

Livronr titulo ano

editor

327 'Os Maias' 1983'Bertrand'

Livronr titulo ano

editor

327 'Os Maias' 1983'Bertrand'

Revistanr titulo ano vol

no

581 'Software' 1994 412

Revistanr titulo ano vol

no

581 'Software' 1994 412

• 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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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: Modelo relacional noções básicas tradução do modelo entidade-associação álgebra relacional

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