Você está na página 1de 31

Cap.

0
Modelo Relacional: revisão

Abel J.P. Gomes

Bibliografia usada:
1. T. Connoly e C. Begg. “Database Systems: a pratical approach to design,implementation,
and management”. Addison-Wesley, 1999 (cap.3).

1
1. Objectivos

 História e terminologia.
 COMO as tabelas são usadas para REPRESENTAR
dados.
 Relações matemáticas versus relações do modelo
relacional.
 Propriedades das relações de bases de dados.
 COMO identificar chaves candidatas, primárias e
estrangeiras.
 Integridade existencial e integridade referencial.
 COMO formular inquirições em álgebra relacional.
 Critérios de avaliação de DBMS relacionais.

2
2. Breve História do Modelo Relacional (MR)

 E.F. Codd (1970)


 ‘A relational model of data for large shared data banks´.
Communications of the ACM, 13(6), pp 377-387.
 Objectivos
 Permitir um grau elevado de independência dos dados.
 Fornecer mecanismos para lidar com a semântica,
consistência e redundância dos dados.
 Permitir a expansão de DMLs orientadas por (teoria)
conjuntos.
 Desenvolvimento e Comercialização
 Sistema R (IBM, California, finais da década de 70): protótipo
DBMS relacional:
⇒ desenvolvimento da SQL
⇒ comercialização DBMSs relacionais na década de 80 (DB2
e SQL/DS da IBM; ORACLE da ORACLE Corporation)
 INGRES (Interactive Graphics Retrieval System), Univ.
California at Berkeley, finais de 70
 Peterlee Relational Test Vehicle, IBM UK, 1976.
3
3. Identificação de Entidades por Abstracção

 Entidade ?
Abstracção dum conjunto de objectos que possuem
características/atributos comuns.
 Atributo ?
Característica comum aos objectos abstraídos por uma
entidade.

Boxer
Pastor Alemão
Setter CÃO
Dobermann
Fox-Terrier

Porsche
Fiat
Renault CARRO
Peugeot
Seat
Rover 4
4. Representação de Entidades por Tabelas

CÃO
nome raca sexo dnasc
Yankee boxer M Jan 85
Rocky pastor F Mai 98
Fritz setter M Fev 00

 Cada coluna representa um atributo.


 Cada linha representa uma instância (ou
ocorrência) da entidade CÃO.

5
4.1 A entidade CÃO vista pela administração
municipal
CÃO
n_licenca nome raca sexo nm_dono d_lic

DONO
nm_dono morada

 Agora, a entidade CÃO tem mais atributos.


 E temos mais uma entidade DONO que de
algum modo está relacionada com a entidade
CÃO.

6
4.2 A entidade CÃO vista pela clínica
veterinária
CÃO
nome raca sexo peso nm_dono d_nasc

DONO
nm_dono morada balanco

 Agora, embora a entidade CÃO tenha o mesmo número de


atributos relativamente à base de dados da edilidade, os
seus atributos são diferentes.
 A entidade DONO tem mais um atributo que a mesma
entidade da base de dados da edilidade.

7
5. Matemática do Modelo Relacional

 Teorias ?
Teoria dos Conjuntos + Lógica de Predicados.

 Conceito matemático fundamental ?


Relação.

 Conceito análogo em bases de dados ?


Tabela.

BRANCH (agência duma empresa imobiliária)

Bno Street Area City Pcode Tel_No Fax_No

B7 16 Argyll St Dyce Aberdeen AB2 3SU 01224-67125 01224-67111


B5 22 Deer Rd Sidcup London SW1 4EH 0171-886-1212 0171-886-1214
B3 163 Main St Partick Glasgow G11 9QX 0141-339-2178 0141-339-4439
B4 32 Manse Rd Leigh Bristol BS99 1NZ 0117-916-1170 0117-776-1114
B2 56 Clover Dr London NW10 6EU 0181-963-1030 0181-453-7992

8
5.1 Relações (em matemática)

 Relação ?
Qualquer subconjunto dum produto cartesiano.

 Exemplo:

Conjuntos (ou Domínios de Atributos):


A = {1,2} B = {3,4,5}

Produto Cartesiano:
A×B = {(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)}

Relação (exemplo):
R = {(1,4),(1,5),(2,3)}

9
5.2 Relações (em bases de dados)

 Relação ?
R é um conjunto de n-tuplos (A1:d1, A2:d2,…,An:dn)
com d1 ∈D1, d2 ∈ D2,…, dn ∈ Dn.

 Exemplo:

Conjuntos (ou Domínios de Atributos):


Bno, Street, Area, City, Pcode, Tel_No, Fax_No

Produto Cartesiano:
Bno × Street × Area × City × Pcode × Tel_No × Fax_No

Relação (exemplo): com um só 7-tuplo


{(B5,22 Deer Rd,Sidcup, London,SW1 4EH,0171-886-1212,0171-886-1214)}

10
5.3 Propriedades de Relações

 Cada relação tem um nome diferente.


 Cada valor dum atributo é atómico (1NF).
 Cada atributo tem um nome distinto.
 Os valores dum atributo pertencem todos ao mesmo
domínio.
 A ordem dos atributos é irrelevante.
 Cada tuplo é distinto.
 A ordem dos tuplos é irrelevante.

NOTA: Estas propriedades reflectem as propriedades da


teoria de conjuntos!
11
6. Grau e Cardinalidade de uma Relação

 Grau ? G
É o número de atributos duma relação.

 Cardinalidade ? C
É o número de tuplos duma relação.

 Exemplo:

G=7

Bno Street Area City Pcode Tel_No Fax_No

B7 16 Argyll St Dyce Aberdeen AB2 3SU 01224-67125 01224-67111


B5 22 Deer Rd Sidcup London SW1 4EH 0171-886-1212 0171-886-1214
C=5 B3 163 Main St Partick Glasgow G11 9QX 0141-339-2178 0141-339-4439
B4 32 Manse Rd Leigh Bristol BS99 1NZ 0117-916-1170 0117-776-1114
B2 56 Clover Dr London NW10 6EU 0181-963-1030 0181-453-7992

BRANCH (agência duma empresa imobiliária)


12
7. Chaves Relacionais

 Super-Chave ?
É um atributo ou conjunto de atributos que identificamen
unicamente um tuplo duma relação.

 Chave Candidata ?
É uma super-chave UNICIDADE
tal que nenhum subconjunto próprio é uma super-chave. IRREDUTABILIDADE

 Exemplo: BRANCH
London tem 2 agências City 
Cada agência tem um identificador único Bno 

Bno Street Area City Pcode Tel_No Fax_No

B7 16 Argyll St Dyce Aberdeen AB2 3SU 01224-67125 01224-67111


B5 22 Deer Rd Sidcup London SW1 4EH 0171-886-1212 0171-886-1214
B3 163 Main St Partick Glasgow G11 9QX 0141-339-2178 0141-339-4439
B4 32 Manse Rd Leigh Bristol BS99 1NZ 0117-916-1170 0117-776-1114
B2 56 Clover Dr London NW10 6EU 0181-963-1030 0181-453-7992

BRANCH (agência duma empresa imobiliária)


13
7. Chaves Relacionais (cont. 1)

 Chave Primária?
É a chave primária que é seleccionada para identificaros tuplos
duma relação.

 Chave Alternativa ?
É uma chave candidata que não é seleccionada como chave
primária.

 Exemplo: BRANCH
Chave primária: Bno
Chaves alternativas: Tel_No, Fax_No

Bno Street Area City Pcode Tel_No Fax_No

B7 16 Argyll St Dyce Aberdeen AB2 3SU 01224-67125 01224-67111


B5 22 Deer Rd Sidcup London SW1 4EH 0171-886-1212 0171-886-1214
B3 163 Main St Partick Glasgow G11 9QX 0141-339-2178 0141-339-4439
B4 32 Manse Rd Leigh Bristol BS99 1NZ 0117-916-1170 0117-776-1114
B2 56 Clover Dr London NW10 6EU 0181-963-1030 0181-453-7992

BRANCH (agência duma empresa imobiliária)


14
7. Chaves Relacionais (cont. 2)

 Chave Estrangeira?
É um atributo ou conjunto de atributos duma relação que é chave
candidata de alguma (possivelmente a mesma) relação.

 Exemplo: STAFF
Chave estrangeira: Bno

STAFF (agência duma empresa imobiliária)


Sno Fname LName Address Tel_No Position Sex DOB Salary NIN Bno

SL21 John White 19 Taylor St, Cranford, London 0171-884-5112 Manager M 10/1/45 30000 WK442011B B5

SG37 Ann Beech 81 George St, Glasgow PA1 2JR 0141-848-3345 Snr Asst F 11/10/60 12000 WL432514C B3

SG14 David Ford 63 Ashby St, Partick, Glasgow G11 0141-339-2177 Deputy M 3/24/58 18000 WL220658D B3

SA9 Mary Howe 2 Elm Pl, Aberdeen AB2 3SU Assistant F 2/19/70 9000 WM532187D B7

SG5 Susan Brand 5 Gt Western Rd, Glasgow G12 0141-334-2001 Manager F 6/3/40 24000 WK588932E B3

SL41 Julie Lee 28 Malvern St, Kilburn NW2 0181-554-3541 Assistant F 6/13/65 9000 WA290573K B5

15
7. Modelo Relacional de Dados

 Todos os DADOS, assim como as inter-RELAÇÕES


existentes entre os dados, são representados por um
conjunto de tabelas (relações) relacionadas entre si:
 Cada tabela tem um nome único pelo qual é referenciada. Este
nome identifica uma classe de entidades.
 Cada coluna tem um nome que se refere a um atributo das
entidades duma classe.
 Cada coluna contém valores atómicos do domínio do atributo.
 Cada linha (tuplo) representa uma entidade única ou uma inter-
relação entre entidades.
 Cada relação contém zero ou mais tuplos.
 Não pode haver campos ou células vazias. Se o valor dum
campo é desconhecido (ou não é aplicável) esse campo é
preenchido com um valor nulo.

16
7.1 Atomicidade:
exemplo da base de dados duma
universidade
INCORRECTO
ALUNO (duma universidade)

nome numero disciplinas


Jose Silva 10567 Fisica, Quimica,Bases de dados
Maria Cebola 8723 AM I, Algebra

CORRECTO
ALUNO (duma universidade)

nome numero disciplinas


Jose Silva 10567 Fisica
Jose Silva 10567 Quimica

Jose Silva 10567 Bases de dados


Maria Cebola 8723 AM I
Maria Cebola 8723 Algebra
17
8. Integridade Relacional

 Há dois tipos de integridade relacional:

 Integridade existencial (entity integrity)


Nenhum atributo duma chave primária pode ser NULL

 Integridade referencial
se uma chave estrangeira (CE) existe na relação,
então
o valor da CE tem de ser obrigatoriamente um valor da chave
primária existente numa outra relação
senão
o valor da CE é obrigatoriamente NULL, o que significa que não
referencia nenhum valor da chave primária duma outra tabela.

 NULL:
Representa ausência de valor.

18
9. Álgebra Relacional

 Álgebra relacional
= conjunto de relações + conjunto de operações

 Operações fundamentais:
• Selecção
• Projecção
• Produto Cartesiano
• União
• Diferença

 Operações suplementares:
• Junção
• Intersecção
• Divisão

19
9.0 Empresa imobiliária

 Consideremos mais as seguintes relações/tabelas da nossa


empresa imobiliária:
PROPERTY_FOR_RENT
Pno Street Area City PostCode Type NoRooms Rent Ono
P14 Rua dos Moleiros 2 Norte Viseu 3520 Apartamento 2 35000 O46
P94 Rua das Carmelitas 45 Alta Covilha 6200 Casa 1 25000 O87
P4 Bairro dos Olhos, Lote 3, 4EB Verde Golega 2350 Apartamento 2 30000 O40
P36 Quinta do Lago, Mansao Eulalia Golfe Vale de Lobo 4242 Mansao 10 300000 O93
P21 Rua das Flores 18 Baixa Coimbra 3000 Casa 5 50000 O87
P16 Rua do Imaginario 3, 5 Esq Sul Regabofe 1212 Atelier 1 20000 O93

OWNER
Ono FName Lname Street Tel
O46 Joao Calisto Rua da Ferrajota 2, 7300 PORTALEGRE 054-34567
O87 Pedro Vasconcelos Rua do Arco 23, 1000 LISBOA 01-319786
O40 Cristina Alvito Alameda das Torres Novas 100, 2320 ENTRONCAMENTO 049-717988
O93 Maria Calas Beco da Boavista 5, 5100 NAZARE 040-45567

RENTER
Rno Fname Lname Street Tel Type MaxRent
R76 Joao Fagundes Rotunda da Alegria 12, 4500 TOMAR 038-89700 Apartamento 70000
R56 Alda Segundo Avenida das Antas 345, 1200 LISBOA 01-450678 Estudio 50000
R74 Miguel Andrade Bairro das Mesuras 45, 3500 VISEU 032-422775 Casa 60000
R62 Mariana Tavora Largo da Independencia 42, 3100 TONDELA 032-31234 Duplex 20
100000
9.1 Selecção (ou Restrição)

σpredicado(R)

Define uma relação que contém só os tuplos


(linhas) de R que satisfazem uma dada condição
(predicado).

 Exemplo:
σSalary>10000(STAFF)
Liste todo o pessoal com salário superior a 10000€.

 SQL:
SELECT *
FROM STAFF
WHERE Salary > 10000

21
9.2 Projecção

Πcol1,…,coln(R)

Define uma relação que contém um subconjunto vertical


de R que extrai os valores dos atributos especificados,
eliminando duplicados.

 Exemplo:
Π sno,FName,lname,salary(STAFF)
Produz uma lista de salários de todo o pessoal, mostrando
somente os dados dos atributos especificados, nomeadamente
Sno,FName, LName e Salary.

 SQL:
SELECT Sno, FName, LName, Salary
FROM STAFF

22
9.3 Produto Cartesiano

R×S
Define uma relação que resulta da concatenação de cada
tuplo de R com todos os tuplos de S.

 Exemplo:
(Π rno,fname,lname(RENTER)) × (Π rno,pno,comment(VIEWING))
Produz uma lista de todos os nomes e todos comentários de todos
os inquilinos que tenham visto uma propriedade.

 SQL:

SELECT RENTER.Rno, FName, Lname, VIEWING.Rno, Pno, Comment


FROM RENTER, VIEWING

23
i linhas

9.4 União j linhas

R∪S
A união das relações R e S com i,j tuplos, respectivamente, é
uma relação obtida pela concatenação dos (i+j) tuplos, com
eliminação dos tuplos repetidos.
NOTA: R e S são obrigatoriamente compatíveis (union-compatible).

 Exemplo:
Π area(BRANCH) ∪ Π area(PROPERTY_FOR_RENT)
Construa uma lista de todas as areas onde existe ou uma agência
(branch) ou uma propriedade para arrendar (property).

 SQL:
SELECT Area
FROM BRANCH
UNION
SELECT Area
FROM PROPERTY_FOR_RENT 24
9.5 Diferença

R-S
A diferença entre as relações R e S com i, j tuplos,
respectivamente, é uma relação que contém os tuplos de R
que não pertencem a S.
NOTA: R e S são obrigatoriamente compatíveis (union-compatible).

 Exemplo:
Π city(BRANCH) - Π city(PROPERTY_FOR_RENT)
Construa uma lista de todas as cidades (cities) onde existe ou uma
agência (branch) mas nenhuma propriedade para arrendar
(property).

 SQL: SELECT City


FROM BRANCH
MINUS
SELECT City
FROM PROPERTY_FOR_RENT
25
9.6 θ-Junção

R P S
Uma θ-junção define uma relação a partir do produto
cartesiano de R e S que contém os tuplos que satisfazem o
predicado P.
NOTA:O predicado P é da forma R.ai θ S.bi, onde θ é um dos operadores
relacionais <, <=, >, >=, =, ~=.

 Exemplo:
Π Rno,FName,LName(RENTER) Renter.Rno=Viewing.Rno ΠRno,Pno,Comment(VIEWING)
Construa uma lista dos nomes e comentários de todos os arrendatários que já
visitaram uma propriedade.

 SQL:

SELECT RENTER.Rno,Fname,Lname,VIEWING.Rno,Pno,Comment
FROM RENTER, VIEWING
WHERE RENTER.Rno= VIEWING.Rno
26
9.7 Junção Natural

R S
A junção natural é uma =-junção de R e S sobre todos os
atributos comuns. A ocorrência de um atributo comum é
eliminada do resultado.

 Exemplo:
Π Rno,FName,LName(RENTER) ΠRno,Pno,Comment(VIEWING)
Construa uma lista dos nomes e comentários de todos os
arrendatários que já visitaram uma propriedade.

 SQL:

SELECT RENTER.Rno,Fname,Lname, VIEWING.Rno,Pno,Comment


FROM RENTER, VIEWING
WHERE RENTER.Rno= VIEWING.Rno

27
9.8 Junção Exterior (à esquerda)

R S
A junção exterior (à esquerda) é uma junção na qual os tuplos
de R que não encontram correspondência nas colunas comuns
de S também são incluídos na relação resultante.
NOTA:Os valores em falta na segunda relação são colocados a
NULL.

 Exemplo:
Π pno,street,city(PROPERTY_FOR_RENT) VIEWING
Produza um relatório sobre as visitas a propriedades.

 SQL:

SELECT PROPERTY_FOR_RENT.Pno,Street,City,Comment
FROM PROPERTY_FOR_RENT LEFT JOIN VIEWING
ON PROPERTY_FOR_RENT.Pno = VIEWING.Pno
28
9.9 Intersecção

R ∩ S = R - (R - S)
É o conjunto dos tuplos que pertencem simultaneamente a
R e S.
NOTA: R e S devem ser compatíveis (union-compatible).

 Exemplo:
Π fname,lname,salary>10000(STAFF) ∩ Π fname,lname,salary<20000(STAFF)
Produza uma lista dos funcionários com salários compreendidos
entre 10000 e 20000 exclusivé.

 SQL:

SELECT FName, LName,Salary


FROM STAFF
WHERE Salary > 10000 AND Salary < 20000

29
9.10 Divisão

R÷S
É o conjunto dos tuplos de R definidos sobre os atributos C
que têm correspondência para qualquer tuplo de S.
NOTA: C = A - B,
A é o conjunto de atributos sobre o qual R é definida,
B é o conjunto de atributos sobre o qual S é definida.

 Exemplo:
Π rno,pno(VIEWING) ÷ Π pno(σ rooms=3(PROPERTY_FOR_RENT))
Identifique todos os arrendatários que visitaram todas as
propriedades com 3 quartos.

 SQL:

30
Sumário

 Breve história do modelo relacional.


 Identificação de entidades por abstracção.
 Representaçã
Representação o de entidades por tabelasd
 Matemá
Matemática do modelo relacional.
relacional.
 Grau e cardinalidade duma relaçã
relaçãoo.
 Chaves relacionais.
relacionais.
 Modelo relacional de dados.
 Integridade relacional.
 Álgebra relacional.

31