Buscar

Algebra Relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1
1
Álgebra Relacional
Melissa Lemos
melissa@inf.puc-rio.br
2
Conceitos de Modelo Relacional
� Um modelo relacional representa o banco de 
dados como um conjunto de relações.
� Uma relação pode ser pensada como uma
tabela de valores.
� Cada linha na tabela representa uma coleção
de valores de dados relacionados.
3
Conceitos de Modelo Relacional
� Formalmente, na terminologia formal de modelo
relacional
� uma linha é chamada de tupla e 
� o cabeçalho da coluna é chamado de atributo
� e a tabela é chamada de relação
� o tipo de dados que descreve os tipos de valores que
podem aparecer em cada coluna é chamado de 
domínio
� O esquema de uma relação R é denotado por
R(A1,A2,…,An), sendo Ai o nome de um atributo
4
Conceitos de Modelo Relacional
� Exemplo
Tijuca489-22-4110Charles
Barra533-69-1238Barbara
Gavea422-11-230Dick
AddressSSNNameSTUDENT
Atributos
Tuplas
Nome da Relação
5
Conceitos de Modelo Relacional
� Super-chave de uma relação 
R = {A1, A2, ..., An} 
é um conjunto de atributos S � R com a 
seguinte propriedade
� Não há duas tuplas t1 e t2 em um estado da 
relação r de R tal que t1[S] = t2[S]
6
Conceitos de Modelo Relacional
� Chave K é uma super-chave com a 
propriedade adicional de que a remoção de 
qualquer atributo de K fará com que K não 
seja mais uma super-chave.
� A diferença é que a chave precisa ser 
mínima.
2
7
Exemplo
� EMPLOYEE(ENAME, SSN, BDATE, ADDRESS, DNUMBER*)
� Chave 
� {SSN}
� Super-chaves:
� {SSN}, 
� {SSN, ENAME}, 
� {SSN, ENAME, BDATE}, 
� etc
8
Conceitos de Modelo Relacional
� Quando uma relação possui mais de uma 
chave primária, cada uma é chamada de 
chave candidata.
� Neste caso uma delas é arbitrariamente 
escolhida para ser a chave primária, e as 
outras são chamadas de chaves 
secundárias.
9
Conceitos de Modelo Relacional
� É necessário manter a consistência entre tuplas de duas 
relações: uma tupla em uma relação que se refere a uma outra 
relação deve referenciar uma tupla existente naquela relação.
� O atributo (ou conjunto de atributos) de uma relação R1 que 
referencia uma outra relação R2 é chamado de chave 
estrangeira.
� Cuidado pois o atributo não é chave de R1, seria melhor que 
o nome fosse atributo de ligação
� O valor da chave estrangeira em uma tupla de R1 deve existir 
como o valor da chave primária de alguma tupla de R2, ou se 
não for obrigatório, pode ser nulo.
10
Exemplo de Modelo Relacional
EMPLOYEE
(ENAME, SSN, BDATE, ADDRESS, SUPERSSN*, DNUMBER*)
DEPARTMENT
(DNAME, DNUMBER, DMGRSSN*)
DEPT_LOCATIONS
(DNUMBER*, DLOCATION)
PROJECT
(PNAME, PNUMBER, PLOCATION, DNUMBER*)
WORKS_ON
(ESSN*, PNUMBER*, HOURS)
DEPENDENT
(ESSN*, DEPENDENT_NAME, SEX, BDATE, RELATIONSHIP)
11
Tópicos
�Operações Básicas
�União ∪
�Diferença -
� Produto Cartesiano x
� Projeção Π
� Seleção σ
12
União ∪
� R(A1,A2,…,An)
� S(B1,B2,…,Bn)
� R tem mesma aridade que S
� Dom(Ai) = Dom(Bi)
� R ∪ S = Res(C1,C2,…,Cn)
� Res tem mesma aridade que R e S
� Dom(Ai) = Dom(Bi) = Dom(Ci)
� Res contém TODAS tuplas de R ou S, sem repetição
3
13
União ∪
dbc
fad
cba
A3A2A1R
fad
agb
B3B2B1S
dbc
agb
fad
cba
A3A2A1R ∪∪∪∪ S
14
Diferença -
� R(A1,A2,…,An)
� S(B1,B2,…,Bn)
� R tem mesma aridade que S
� Dom(Ai) = Dom(Bi)
� R - S = Res(C1,C2,…,Cn)
� Res tem mesma aridade que R e S
� Dom(Ai) = Dom(Bi) = Dom(Ci)
� Res contém TODAS tuplas de R que NÃO estão em S
15
Diferença -
dbc
fad
cba
A3A2A1R
fad
agb
B3B2B1S
dbc
cba
A3A2A1R ∪∪∪∪ S
16
Produto Cartesiano X
� Relações R e S podem ter qualquer esquema
desde que atributos disjuntos
� R(A1,A2,…,An)
� S(B1,B2,…,Bm)
� R x S = Res(A1,A2,…,An,B1,B2,…,Bm)
� R x S contém todas as tuplas
correspondentes a todas as possíveis
combinações de tuplas de R com tuplas de S
17
Produto Cartesiano X
dbc
fad
cba
A3A2A1R
fad
agb
B3B2B1S
fadfad
fadcba
d
d
f
c
A3
d
b
b
b
B1
a
g
g
g
B2
abc
fbc
aad
aba
B3A2A1R x S
18
Projeção Π
� Operação unária
� Escolha de atributos de uma relação
� Πx(R) 
� Projeção de R no conjunto de atributos X, 
onde X � Att(R)
4
19
Projeção Π
dbc
fad
cba
A3A2A1R
dc
fd
ca
A3A1ΠΠΠΠA1,A3(R)
Como a relação é um conjunto, 
qualquer linha em duplicidade é 
eliminada. a
b
A2ΠΠΠΠA2(R)
20
Seleção σ
� Operação unária
� Escolher tuplas de uma relação segundo um dado 
critério ou condição
� Formato condição
� σcond(R) 
� Seleção das tuplas de R satisfazendo uma 
condição cond.
<Atributo> <Operador> <Atributo>/<Valor>
= > <
≠ ≤ ≥
21
Seleção σ
dbc
fad
cba
A3A2A1R σA2=b(R)
dbc
cba
A3A2A1
É possível ter combinação de operadores com 
operadores lógicos E e OU!
22
Tópicos
�Operações Adicionais
� Junção ⊗
� Junção Natural
� Semi Junção
� Junção Externa
� Interseção ∩
�Divisão ÷
�Agregados + Funções de Cálculo
23
Junção ⊗
� ou Join
� Extensão do produto cartesiano com condição para
composição de tuplas entre as relações operandas
� R ⊗ i θ j S 
� contém tuplas do produto cartesiano 
R X S onde atributo i de R corresponde ao atributo j de 
S de acordo com o operador aritmético θ
� Se θ é “=“ então chamamos de equijunção
� R ⊗ cond S = σcond(R x S)
24
Junção ⊗
fbb
dac
cbd
cba
A3A2A1R
eb
da
B2B1S
f
c
c
A3
a
a
a
B1
dbb
dbd
dba
B2A2A1R ⊗ A2>B1 S
5
25
Junção Natural ⊗
� Junção Natural
� Equijunção sobre atributos de mesmo nome
� Um ou mais atributos em comum!
� Se não há atributos em comum, ⊗ = x!
26
Junção Natural ⊗
fbb
dac
cbd
cba
A3A2A1R
d
c
c
c
c
T.A3
dbcbd
ebcbd
d
c
c
R.A3
a
b
b
T.A2
bac
eba
dba
A4R.A2A1R ⊗S
ecb
bda
dcb
A4A3A2T
27
Junção Natural ⊗
fbb
dac
cbd
cba
A3A2A1R
R ⊗S com 12 tuplas!
e
b
d
A4T
28
Semijunção
� Resultado da junção contém atributos de 
uma das duas relações operandas
�Πatt(R)(R ⊗ S)
� BD distribuídos!
29
Semijunção
fbb
dac
cbd
cba
A3A2A1R
cbd
d
c
A3
ac
ba
A2A1R S
ecb
bda
dcb
A4A3A2T
30
Junção Externa
� Para não perder tuplas das relações
operandas após a junção
� Tuplas sem correspondentes têm valor NULO 
associado
6
31
Junção Externa
fbb
dac
cbd
cba
A3A2A1R
NullNullNullfbb
d
c
c
c
c
T.A3
dbcbd
ebcbd
d
c
c
R.A3
a
b
b
T.A2
bac
eba
dba
A4R.A2A1R S
ecb
bda
dcb
A4A3A2T
32
Interseção ∩
� R(A1,A2,…,An)
� S(B1,B2,…,Bn)
� R tem mesma aridade que S
� Dom(Ai) = Dom(Bi)
� R ∩ S = R – (R-S)
� Res contém tuplas em ambas relações
operandas R e S
33
Divisão ÷
� Procurar em uma dada relação as 
“subtuplas” que são completadas por TODAS 
as tuplas de outra relação
� Q (A1,A2,…,Ap) = 
R(A1,A2,…, Ap , Ap +1,…,An)/ S(Ap +1,…,An)
� Q contém tuplas tais que, concatenadas à
todas as tuplas de S, formam tuplas de R.
34
Divisão ÷
eb
fb
bb
dc
ea
da
A2A1R
e
d
B1S
b
a
A1R÷S
35
Funções de Agregação
� Funções de agregação são aquelas que, 
quando aplicadas, tomam uma coleção de 
valores e retornam um valor simples como
resultado.
� SUM, AVERAGE, MAXIMUM, MINIMUM, 
COUNT
36
Agregados
� Um tipo de requisição comum envolve o 
agrupamento de tuplas em uma relação pelo valor de 
alguns atributos e depois pela aplicação de uma
função de agregação neste grupo.
� Ex. Agrupar os empregados pelo número de seu
departamento, e aplicar a função média no atributosalário em cada grupo. Desta forma saberemos a 
média dos salários dos empregados de cada
departamento.
7
37
Agregados
� <atributos_agrupados> Agreg <lista_funções> (R)
� <atributos_agrupados> 
� Lista de atributos de R
� <lista_funções> 
� Lista de pares <função><atributo>
� <função> 
� SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT
� <atributo> 
� Atributo de R
38
Agregados
� Obter número do departamento, número de empregados
do departamento e a média dos salários.
� EMPLOYEE
(ENAME, SSN, BDATE, ADDRESS, SUPERSSN*, DNUMBER*)
� R1 = DNUMBER Agreg COUNT SSN, AVERAGE SALARY (EMPLOYEE)
1.30034
1.50045
AVERAGE SALARYCOUNT SSNDNUMBER
39
Agregados
� Obter número do departamento, número de empregados
do departamento e a média dos salários.
� EMPLOYEE
(ENAME, SSN, BDATE, ADDRESS, SUPERSSN*, DNUMBER*)
� Se nenhum grupo for especificado:
� R1 = Agreg COUNT SSN, AVERAGE SALARY (EMPLOYEE)
2.5007
AVERAGE SALARYCOUNT SSN

Outros materiais