Bases de Dados
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
1
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
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.
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.
3
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
LOCALIZAES_DEP(NumDep, Localizao)
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).
4
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).
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.
6
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
BD EMPRESA
Sexo
Endereo
Nome
DataNasc
NumBI EMPREGADO
7
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
Nome Sexo
1 N
NumBI EMPREGADO DEPENDE_DE DEPENDENTE DataNasc
GrauParentesco
1 1
NumBI EMPREGADO DIRIGE DEPARTAMENTO
GerenteData
8
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
1 N
Num DEPARTAMENTO CONTROLA PROJECTO
9
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
M N
NumBI EMPREGADO TRABALHA_EM PROJECTO Num
Horas
10
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
Localizao
LOCALIZAES_DEP(NumDep, Localizao)
FORNECI
FNome FORNECEDOR PROJECTO PNome
MENTO
Quantidade
PRODUTO PNum
11
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
5
1 PROJECTO(Nome, Num, Localizao, NumDep)
5
5 TRABALHA_EM(EmpBI, NumProj, Horas)
12
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
5 5 2
5
1 PERCURSO(Num, DistnciaKm) 1 PARAGEM(Id, Nome, Local, Rua, Nmero)
5 5
5 PERCORRE(Num, Id)
13
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
NumBI EMPREGADO
TipoEmp
TipoEmp EMPREGADO(, NumBI, TipoEmp)
d
Secretria Engenheiro SECRETRIA(EmpBI, VelEscrita)
TCNICO(EmpBI, Qualificao)
Tcnico
ENGENHEIRO(EmpBI, TipoEng)
SECRETRIA TCNICO ENGENHEIRO
14
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
VelMax Tonelagem
15
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
TipoEmp
TipoEmp
d
Secretria Engenheiro
Tcnico
16
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
NumBI EMPREGADO
Escalo TipoEng
17
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
18
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
8D
PESSOA(BI, Nome, Morada, ISAProp, NumCont, ISACondutor, NumCarta, ISAGuarda, Cargo)
2 4A
4A 4A
2 1 TIPO_INFRACO(Categoria, Pontuao)
4A
1 VECULO(Matrcula, Marca, Modelo, PropBI, DataAquisio)
19
Bases de Dados 2010/2011 Parte III: O Modelo Relacional
20