Você está na página 1de 20

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Bases de Dados

Parte III
O Modelo Relacional

Ricardo Rocha DCC-FCUP 1

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

O Modelo Relacional
Foi introduzido em 1970 por Ted Codd da IBM Research.
baseado no conceito de relao, onde uma relao uma tabela de valores.
Uma tabela de valores pode ser vista como um conjunto de linhas ou tuplos.
Cada tuplo identificado por um conjunto de colunas ou atributos.
Uma base de dados representada como um conjunto de relaes.
nome da relao atributos

ALUNO NumMec Nome Curso


798764544 Joo Pinto CC
relao 345673451 Carlos Semedo ERSI tuplos
487563546 Maria Silva EG
452212348 Pedro Costa MAT

Ricardo Rocha DCC-FCUP 2

1
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Conceitos Bsicos e Notao Genrica


Relao
Conjunto no ordenado de tuplos.
As relaes representam entidades-tipo ou relacionamentos da base de dados.
As relaes so definidas por esquemas do tipo R(A1, A2, , An), onde R o nome da
relao e A1, A2, , An a lista de atributos.
Atributo
Nome que identifica uma caracterstica/propriedade de uma relao.
R.Ai representa o atributo Ai da relao R.
Domnio
Conjunto de valores atmicos que caracterizam um atributo.
No modelo relacional os atributos no podem ser do tipo composto ou multi-valor.
dom(Ai) representa o domnio do atributo Ai.

Ricardo Rocha DCC-FCUP 3

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Conceitos Bsicos e Notao Genrica


Tuplo
Sequncia ordenada de valores.
Todos os tuplos de uma relao so necessariamente diferentes pois representam
entidades ou relacionamentos especficos da base de dados.
Os tuplos so definidos por sequncias do tipo <v1, v2, , vn>, onde cada vi
corresponde ao valor do tuplo para o atributo Ai ou ao valor NULL.
vi dom(Ai) ou vi = NULL.
t[Ai] ou t[i] representa o valor do tuplo t para o atributo Ai.

Ricardo Rocha DCC-FCUP 4

2
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Chaves e Superchaves
Superchave
Subconjunto de atributos de uma relao para a qual todos os tuplos so diferentes.
Permite identificar de forma nica os tuplos de uma relao.
Todas as relaes tm por defeito uma superchave o conjunto de todos os atributos da
relao.
Chave
Superchave mnima a remoo de um atributo de uma chave resulta num
subconjunto de atributos que no uma superchave.
Chave primria
Uma relao pode ter vrias chaves, mas apenas uma deve ser designada como a chave
primria da relao.
A escolha da chave primria de uma relao arbitrria, mas no entanto usual
escolher a chave com o menor nmero de atributos.
No esquema de uma relao, a chave primria representada sublinhada.

Ricardo Rocha DCC-FCUP 5

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Chaves Externas
Conjunto de atributos E de uma relao R1 que referenciam a chave C de uma
outra relao R2.
O domnio dos atributos E o mesmo dos atributos C.
Os valores de E para um determinado tuplo de R1 ou ocorrem nos valores de C para um
tuplo de R2 ou so NULL.
A chave externa E de R1 define uma restrio de integridade referencial de R1 para
R2 (garante a consistncia entre os tuplos de R1 e R2).
No esquema relacional, a chave externa E representada por um arco de E para C.

Ricardo Rocha DCC-FCUP 6

3
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Esquema Relacional da BD EMPRESA

EMPREGADO(NomeP, NomeF, NumBI, Endereo, Salrio, Sexo, DataNasc, SuperBI, NumDep)

DEPARTAMENTO(Nome, Num, GerenteBI, GerenteData)

LOCALIZAES_DEP(NumDep, Localizao)

PROJECTO(Nome, Num, Localizao, NumDep)

TRABALHA_EM(EmpBI, NumProj, Horas)

DEPENDENTE(EmpBI, Nome, Sexo, DataNasc, GrauParentesco)

Ricardo Rocha DCC-FCUP 7

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Restries de Integridade
Integridade de domnio
Os valores de um atributo devem pertencer ao domnio do atributo.
Integridade da chave
No podem existir dois tuplos de uma relao com valores iguais na chave primria.
Integridade de entidade
Os valores da chave primria no podem ser nulos.
Integridade referencial
Um tuplo que referencia outra relao tem de referenciar um tuplo existente nessa outra
relao (chave externa).

Ricardo Rocha DCC-FCUP 8

4
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Base de Dados Relacional


Base de dados relacional
Esquema relacional
Estado corrente
Esquema relacional de uma base de dados
Conjunto de esquemas de todas as suas relaes
Conjunto de restries de integridade
Restries de integridade
Uma base de dados deve satisfazer sempre as restries de integridade.
Quando isso no acontece, diz-se que a base de dados est num estado invlido.
As trs operaes bsicas que podem violar as restries de integridade so as operao
de insero, remoo e alterao (alterao = remoo + insero).

Ricardo Rocha DCC-FCUP 9

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Operao de Insero
Permite inserir novos tuplos numa relao.
Pode violar qualquer uma das quatro restries de integridade:
Domnio: se um dos valores no pertence ao domnio do atributo respectivo.
Chave: se o valor da chave j existe num outro tuplo da relao.
Entidade: se o valor da chave NULL.
Referencial: se uma chave externa referencia um tuplo no existente na relao
referenciada.
Quando uma operao de insero viola uma das restries, o SGBD pode:
Rejeitar a insero, avisar o utilizador e indicar a restrio violada;
Tentar corrigir as razes pelas quais ocorreu uma violao das restries de integridade
(este tipo de suporte no tpico dos SGBDs).

Ricardo Rocha DCC-FCUP 10

5
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Operao de Remoo
Permite remover tuplos de uma relao.
necessrio indicar uma condio sobre os atributos que seleccione o tuplo ou
tuplos a serem removidos.
Remover o EMPREGADO com NumBI = 98563435.
Pode violar a restrio de integridade referencial se o tuplo a remover
referenciado pela chave externa de outro tuplo. Quando isso acontece, o SGBD
pode:
Rejeitar a remoo e avisar o utilizador;
Procurar propagar a operao e remover todos os tuplos que referenciam o tuplo que
est a ser removido;
Alterar para NULL o valor dos atributos (no podem ser atributos chave) de todos os
tuplos que referenciam o tuplo que est a ser removido;
Combinar as opes anteriores. Por exemplo, remover os tuplos relacionados de
TRABALHA_EM e DEPENDENTE e alterar para NULL os atributos relacionados de
SuperBI e GerenteBI.

Ricardo Rocha DCC-FCUP 11

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Modelo ER
Passo 1: Entidades-tipo
Passo 2: Entidades fracas
Passo 3: Relacionamentos 1:1
Passo 4: Relacionamentos 1:N
Passo 5: Relacionamentos M:N
Passo 6: Atributos multi-valor
Passo 7: Relacionamentos de grau superior a 2
Modelo EER
Passo 8: Especializaes e generalizaes
Passo 9: Categorias

Ricardo Rocha DCC-FCUP 12

6
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

BD EMPRESA

Ricardo Rocha DCC-FCUP 13

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 1: Entidade-tipo E
E Relao S
Atributos simples de E Atributos de S
Atributos simples de um atributo composto de E Atributos de S
Atributos chave de E Chave primria de S

Prprio Famlia Salrio

Sexo
Endereo
Nome
DataNasc

NumBI EMPREGADO

EMPREGADO(NomeP, NomeF, NumBI, Endereo, Salrio, Sexo, DataNasc)

Ricardo Rocha DCC-FCUP 14

7
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 2: Entidade fraca F com entidade identificadora E
T relao associada a E
F Relao S
Atributos simples/compostos de F Atributos de S
Chave primria de T Chave externa de S
Chave primria de T + Atributos da chave parcial de F Chave primria de S

Nome Sexo

1 N
NumBI EMPREGADO DEPENDE_DE DEPENDENTE DataNasc

GrauParentesco

DEPENDENTE(EmpBI, Nome, Sexo, DataNasc, GrauParentesco)

Ricardo Rocha DCC-FCUP 15

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 3A (opo chave externa): Relacionamento 1:1 R(E1,E2)
E2 com participao total em R
T1 e T2 relaes associadas a E1 e E2
Atributos simples/compostos de R Atributos de T2
Chave primria de T1 Chave externa de T2

1 1
NumBI EMPREGADO DIRIGE DEPARTAMENTO

GerenteData

DEPARTAMENTO(Nome, Num, GerenteBI, GerenteData)

Ricardo Rocha DCC-FCUP 16

8
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 3B (opo juntar relaes): Relacionamento 1:1 R(E1,E2)
E1 e E2 com participao total em R
T1 e T2 relaes associadas a E1 e E2
T1 Juntar com T2
Atributos simples/compostos de R Atributos de T2
Passo 3C (opo referncia cruzada): Relacionamento 1:1 R(E1,E2)
Existncia de poucas instncias relacionadas
T1 e T2 relaes associadas a E1 e E2
R Relao S
Atributos simples/compostos de R Atributos de S
Chave primria de T1 Chave externa de S
Chave primria de T2 Chave externa de S
Chave primria de T1 Chave primria de T2 Chave primria de S

Ricardo Rocha DCC-FCUP 17

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 4A (opo chave externa): Relacionamento 1:N R(E1,E2)
T1 e T2 relaes associadas a E1 e E2
Atributos simples/compostos de R Atributos de T2
Chave primria de T1 Chave externa de T2

1 N
Num DEPARTAMENTO CONTROLA PROJECTO

PROJECTO(Nome, Num, Localizao, NumDep)

Ricardo Rocha DCC-FCUP 18

9
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 4B (opo referncia cruzada): Relacionamento 1:N R(E1,E2)
Existncia de poucas instncias relacionadas
T1 e T2 relaes associadas a E1 e E2
R Relao S
Atributos simples/compostos de R Atributos de S
Chave primria de T1 Chave externa de S
Chave primria de T2 Chave externa de S
Chave primria de T2 Chave primria de S

Ricardo Rocha DCC-FCUP 19

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 5: Relacionamento M:N R(E1,E2)
T1 e T2 relaes associadas a E1 e E2
R Relao S
Atributos simples/compostos de R Atributos de S
Chave primria de T1 Chave externa de S
Chave primria de T2 Chave externa de S
Chave primria de T1 + Chave primria de T2 Chave primria de S

M N
NumBI EMPREGADO TRABALHA_EM PROJECTO Num

Horas

TRABALHA_EM(EmpBI, NumProj, Horas)

Ricardo Rocha DCC-FCUP 20

10
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 6: Atributo multi-valor A da entidade ou relacionamento X
T relao associada a X
A_X Relao S
A Atributo de S
Chave primria de T Chave externa de S
Chave primria de T + A Chave primria de S

Localizao

Num DEPARTAMENTO Nome

LOCALIZAES_DEP(NumDep, Localizao)

Ricardo Rocha DCC-FCUP 21

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 7: Relacionamento R(E1,,En), n > 2
T1, , Tn relaes associadas a E1, , En
R Relao S
Atributos simples/compostos de R Atributos de S
Chave primria de Ti (1 i n) Chave externa de S
Chave primria de T1 + + Chave primria de Tn Chave primria de S
No incluir na chave primria de S as chaves das entidades com cardinalidade 1

FORNECI
FNome FORNECEDOR PROJECTO PNome
MENTO

Quantidade
PRODUTO PNum

FORNECIMENTO(FNome, PNome, PNum, Quantidade)

Ricardo Rocha DCC-FCUP 22

11
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional da BD EMPRESA


4A
1
EMPREGADO(NomeP, NomeF, NumBI, Endereo, Salrio, Sexo, DataNasc, SuperBI, NumDep)
3A 3A
1 DEPARTAMENTO(Nome, Num, GerenteBI, GerenteData)
2 6
6 LOCALIZAES_DEP(NumDep, Localizao) 4A
4A

5
1 PROJECTO(Nome, Num, Localizao, NumDep)

5
5 TRABALHA_EM(EmpBI, NumProj, Horas)

2 DEPENDENTE(EmpBI, Nome, Sexo, DataNasc, GrauParentesco)

Ricardo Rocha DCC-FCUP 23

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Ricardo Rocha DCC-FCUP 24

12
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

1 AUTOCARRO(Matrcula, DataEntrada, DistnciaKm, DataPrximaReviso, Marca, Modelo)


4A 4A
1 TIPO_AUTOCARRO(Marca, Modelo, LugSentados, LugP, Largura, Altura, Comprimento)

5 5 2

5 NO_PODE_FAZER(Marca, Modelo, Num) 2 SADA(Matrcula, BI, Data, Turno, Num)


2
1 CONDUTOR(BI, Nome, Morada, DataEntrada)
5
5
4A
5 EST_HABILITADO(BI, Num)

5
1 PERCURSO(Num, DistnciaKm) 1 PARAGEM(Id, Nome, Local, Rua, Nmero)
5 5
5 PERCORRE(Num, Id)

Ricardo Rocha DCC-FCUP 25

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8A (opo superclasse e subclasses): Especializao {C1, , Cn} de G
G Relao S
Atributos simples/compostos de G Atributos de S
Atributos chave de G Chave primria de S
Ci (1 i n) Relao Ti
Atributos simples/compostos de Ci (1 i n) Atributos de Ti
Chave primria de S Chave externa de Ti (1 i n)
Chave primria de S Chave primria de Ti (1 i n)

Ricardo Rocha DCC-FCUP 26

13
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8A (opo superclasse e subclasses)

NumBI EMPREGADO

TipoEmp
TipoEmp EMPREGADO(, NumBI, TipoEmp)
d
Secretria Engenheiro SECRETRIA(EmpBI, VelEscrita)

TCNICO(EmpBI, Qualificao)
Tcnico
ENGENHEIRO(EmpBI, TipoEng)
SECRETRIA TCNICO ENGENHEIRO

VelEscrita Qualificao TipoEng

Ricardo Rocha DCC-FCUP 27

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8B (opo subclasses): Especializao {C1, , Cn} de G
Especializao disjunta total
Ci (1 i n) Relao Ti
Atributos simples/compostos de Ci (1 i n) Atributos de Ti
Atributos simples/compostos de G Atributos de Ti (1 i n)
No incluir o atributo discriminante se G for uma especializao definida por atributo
Atributos chave de G Chave primria de Ti (1 i n)

Ricardo Rocha DCC-FCUP 28

14
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8B (opo subclasses)

Matrcula VECULO Preo

NumLugares CARRO CAMIO NumEixos

VelMax Tonelagem

CARRO(Matrcula, Preo, NumLugares, VelMax)

CAMIO(Matrcula, Preo, Tonelagem, NumEixos)

Ricardo Rocha DCC-FCUP 29

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8C (opo atributo discriminante): Especializao {C1, , Cn} de G
Especializao disjunta
Existncia de poucos atributos nas subclasses
Definir um novo atributo A (em G) que discrimine a subclasse a que cada tuplo
pertence (no necessrio se G for uma especializao definida por atributo)
G Relao S
Atributos simples/compostos de G Atributos de S
Atributos simples/compostos de Ci (1 i n) Atributos de S
Atributos chave de G Chave primria de S

Ricardo Rocha DCC-FCUP 30

15
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8C (opo atributo discriminante)
NumBI EMPREGADO

TipoEmp
TipoEmp
d
Secretria Engenheiro

Tcnico

SECRETRIA TCNICO ENGENHEIRO

VelEscrita Qualificao TipoEng

EMPREGADO(, NumBI, TipoEmp, VelEscrita, Qualificao, TipoEng)

Ricardo Rocha DCC-FCUP 31

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8D (opo atributos de seleco): Especializao {C1, , Cn} de G
Especializao com sobreposio
Existncia de poucos atributos nas subclasses
Definir novos atributos Ai (em G), 1 i n, que discriminem se um tuplo pertence a Ci
G Relao S
Atributos simples/compostos de G Atributos de S
Atributos simples/compostos de Ci (1 i n) Atributos de S
Atributos chave de G Chave primria de S

Ricardo Rocha DCC-FCUP 32

16
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 8D (opo atributos de seleco)

NumBI EMPREGADO

DataEntrada EFECTIVO ENGENHEIRO

Escalo TipoEng

EMPREGADO(, NumBI, ISAEfectivo, DataEntrada, Escalo, ISAEngenheiro, TipoEng)

Ricardo Rocha DCC-FCUP 33

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 9A (opo chaves iguais): Categoria K de {C1, , Cn}
T1, , Tn relaes associadas a C1, , Cn
T1, , Tn tm chaves primrias iguais
K Relao S
Atributos simples/compostos de K Atributos de S
Chave primria de T1 Chave primria de S

Ricardo Rocha DCC-FCUP 34

17
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 9B (opo chaves diferentes): Categoria K de {C1, , Cn}
T1, , Tn relaes associadas a C1, , Cn
T1, , Tn tm chaves primrias diferentes
Definir um novo atributo A (em K) que identifique de forma nica as instncias de K
K Relao S
Atributos simples/compostos de K Atributos de S
A Chave primria de S
A Chave externa de Ti (1 i n)

Ricardo Rocha DCC-FCUP 35

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Passo 9A (opo chaves iguais) e 9B (opo chaves diferentes)
Matrcula
BANCO Matrcula

PESSOA EMPRESA CAMIO


CARRO
U U
DataCompra NumLicena

PROPRIETRIO POSSUI VECULO_MATRICULADO

PESSOA(, PropID) CAMIO(Matrcula, ) PROPRIETRIO(PropID)

BANCO(, PropID) CARRO(Matrcula, ) POSSUI(PropId, Matrcula, DataCompra)

EMPRESA(, PropID) VECULO_MATRICULADO(Matrcula, NumLicena)

Ricardo Rocha DCC-FCUP 36

18
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Ricardo Rocha DCC-FCUP 37

Bases de Dados 2010/2011 Parte III: O Modelo Relacional

8D
PESSOA(BI, Nome, Morada, ISAProp, NumCont, ISACondutor, NumCarta, ISAGuarda, Cargo)

2 4A

2 INFRACO(Matrcula, BI, Data, Local, Descrio, GuardaBI, Categoria)

4A 4A

2 1 TIPO_INFRACO(Categoria, Pontuao)

4A
1 VECULO(Matrcula, Marca, Modelo, PropBI, DataAquisio)

Ricardo Rocha DCC-FCUP 38

19
Bases de Dados 2010/2011 Parte III: O Modelo Relacional

Converso para o Modelo Relacional


Resumo modelo ER
Entidade-tipo Relao
Entidade fraca Relao com chave externa
Relacionamento 1:1 Chave externa (3A) ou juntar relaes (3B) ou relao com
chave externa (3C)
Relacionamento 1:N Chave externa (4A) ou relao com chave externa (4B)
Relacionamento M:N Relao com duas chaves externas
Atributo multi-valor Relao com chave externa
Relacionamento de grau N > 2 Relao com N chaves externas
Resumo modelo EER
Especializao em N subclasses Relao da superclasse e N relaes com chave
externa (8A) ou N relaes (8B) ou relao com atributo discriminante (8C) ou
relao com atributos de seleco (8D)
Categoria Nova chave (9B) e relao com chave externa (9A e 9B)

Ricardo Rocha DCC-FCUP 39

20