Buscar

Unidade IV - 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 8 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 8 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

Prévia do material em texto

23/09/2014
1
Unidade III - Álgebra Relacional
PUC Minas – Coração Eucarístico
Curso Sistemas de Informação
Bancos de Dados – Unidade IV
Profº. Manoel Palhares Moreira – setembro de 2014
Álgebra Relacional
� Consiste em uma linguagem de consulta
procedural (ou seja, uma série de comandos,
procedimentos).
� O resultado da aplicação destes comandos dará
sempre como resultado uma nova relação
(tabela).
Álgebra Relacional
� Suas operações são realizadas sempre em uma
ou em duas ou mais relações (tabelas). Neste
ultimo caso, mesmo que a entrada seja com
mais de duas relações, as operações são
tomadas sempre duas a duas.
Ex.: Realiza-se uma operação envolvendo a
Relação1 e a Relação2. O resultado é uma nova
Relação e com ela realiza-se outra operação
com a Relação3.
Álgebra Relacional
� Nosso estudo da Álgebra Relacional dar-se-á
através de exemplos.
Assim sendo, vamos imaginar as tabelas que
possuímos em um sistema que gerencia o acervo
de uma biblioteca e os empréstimos realizados por
seus usuários. Sabe-se que a biblioteca possui
quatro tipos de usuários (Aluno, Professor,
Funcionário, Visitante) e suas obras estão
classificadas em Científicas, Literatura Brasileira,
Literatura Estrangeira, Teses e Dissertações.
Álgebra Relacional
As tabelas deste sistema possuem os seguintes esquemas:
Usuário {CodUsu, NomUsu, TipUsu, CodCur, SexUsu}
Obra {CodObr, NomObr} TipoUsuário {TipUsu, DesTipUsu}
Autor {CodAut, NomAut, CodPai }
Autoria {CodAut, NomAut, CodPai}
Pais {CodPai, NomPai} Editora {CodEdi, NomEdi}
Exemplar {NumExe, CodObr, CodEdi, AnoEdc, ValExe}
Empréstimo {NumExe, DatEmp, CodUsu, DatPreDev, DatDev}
TipoObra {TipObr, DesTipObr}
Álgebra Relacional
� Nos esquemas anteriores, você deverá ler o nome de
cada coluna sempre de três em três letras. Assim,
CodUsu é o Código do Usuário, DatPreDev é a Data
Prevista Devolução, CodEdi é o Código da Editora,
AndEdc é o Ano de Edição.
� Você se habituará ao padrão de nome de dados.
Lembre-se que padronizar nomes de dados é facilitar
o manuseio deles no ambiente do banco de dados.
23/09/2014
2
Álgebra Relacional
� As operações na álgebra relacional dividem-se em
fundamentais e não fundamentais
� As fundamentais podem ser:
� unárias (aplicadas em uma única tabela) -
estas operações são: selecionar, projetar e
renomear;
� binárias (operações que envolvem duas
tabelas) - produto cartesiano, união de
conjuntos e diferença de conjuntos.
Álgebra Relacional
� As não fundamentais são utilizadas para
simplificar consultas, já que elas englobam
operações fundamentais.
Álgebra Relacional: Selecionar
Seleção/Restrição: serve para extrair (selecionar)
linhas (tuplas) de uma certa tabela. Representada pela
letra σ (sigma).
Ex: Selecionar Exemplares de Obras que possuam
código de obra acima de 200.
R σ CodObr > 200 (Exemplar)
(lê-se: R recebe a seleção em Exemplar de Código Obra maior 
que 200)
Álgebra Relacional: Selecionar
R σ CodObr > 200 (Exemplar)
O sinal é um sinal de atribuição, ou seja,
atribui-se a R o resultado da seleção em Exemplar
de Código de Obra maior que 200.
Álgebra Relacional: Projetar
R σ CodObr > 200 (Exemplar)
� Exemplar é uma tabela que possui os dados (NumExe,
CodObr, CodEdi, AnoEdc) Então dizemos que a Relação
Exemplar é do Grau 4, por que possui 4 colunas. Ou seja, o
grau indica o número de colunas de uma tabela (relação).
� A coluna NumExe está sublinhada por que é uma coluna
chave.
� ATENÇÃO: A seleção conserva o Grau da Tabela de origem,
ou seja, R é uma relação do grau 4 e possui as colunas
(NumExe, CodObr, CodEdi, AnoEdc).
Álgebra Relacional: Projetar
Projeção: cria uma nova relação (tabela) contendo
apenas os atributos especificados na operação de
projeção. Representada pela letra pi (pi).
R pi NomUsu, SexUsu (Usuario)
(lê-se: R recebe a Projeção em Usuário de Nome do 
Usuário e Sexo do Usuário ) 
23/09/2014
3
Álgebra Relacional: Projetar
R pi NomUsu, SexUsu (Usuario)
� Usuário é uma tabela que possui os dados (CodUsu,
NomUsu, TipUsu, CodCur). Como já dito, dizemos que
a Relação Usuário é do Grau 4, por que possui 4
colunas.
� ATENÇÃO: A projeção impõe o grau à nova relação pelo
número de colunas projetadas. No nosso caso, R é uma
relação do grau 2 por que possui apenas duas colunas
(NomUsu, SexUsu).
Álgebra Relacional: Renomear
Renomear: A renomeação produz uma relação
idêntica à relação de origem (R1, p.e.) mas
designada por outro nome (R2) e com atributos em
uma nova ordem e com novos nomes.
Exemplo
R ρ Editoras (Código, Nome) (Editora)
Álgebra Relacional: Renomear
R ρ Editoras (Código, Nome) (Editora)
Lê-se R recebe a renomeação para Editoras com 
atributos Código e Nome da elação Editora. 
Lembre-se que a relação Editora possui dois 
atributos: CodEdi e NomEdi. 
União, Interseção e Diferença
Dado duas relações, R1(A1, A2,..., AN) e R2(B1, B2,...,
BM):
� Elas são compatíveis para as operações de
União, Interseção e Diferença se tiverem o
mesmo grau n e se possuírem o mesmo tipo de
tuplas, ou seja, se dom(Ai) = dom(Bi) : 1 ≤ i ≤
n (ou seja, domínios iguais correspondentes).
� O resultado da (união) R1 ∪ R2 é a uma relação
que inclui todas as tuplas que estão em R1 ou
em R2. Tuplas em duplicata são eliminadas.
União, Interseção e Diferença
� O resultado da interseção R1 ∩ R2 é uma relação
que inclui todas as tuplas comuns às duas
relações, ou seja, tuplas que estão em R1 e
estão em R2.
� O resultado da diferença R1 − R2 é a uma
relação que inclui todas as tuplas que estão em
R1 mas não estão em R2.
� Como na teoria de conjuntos, a União e
Intersecção são comutativas mas a diferença
não.
União, Interseção e Diferença: exemplos
� Suponha duas Relações ObraCOREU {CodObr,
NomObr} e ObraBAR {CodObr, NomObr},
referentes às obras existentes no Coração
Eucarístico e no Barreiro, respectivamente.
� Repare que elas são compatíveis para as
operações de União, Interseção e Diferença,
pois possuem o mesmo grau e o mesmo tipo de
tuplas.
23/09/2014
4
União, Interseção e Diferença: exemplos
A união entre estas relações é representada por
R ObraCOREU ∪ ObraBAR e corresponde ao conjunto
total de obras da Universidade nestas duas unidades.
A interseção entre estas relações é representada por
R ObraCOREU ∩ ObraBAR e corresponde ao conjunto
de obras coincidentes entre as bibliotecas da unidade
Coração Eucarístico e a da unidade Barreiro.
União, Interseção e Diferença: exemplos
� Uma query para responder a questão de quais obras
só existem na unidade Coração Eucarístico seria
resolvida por R ObraCOREU - ObraBAR e uma para
listar as que existem apenas no Barreiro seria
R ObraBAR - ObraCOREU
� Repare que a diferença não é comutativa.
Álgebra Relacional: Produto Cartesiano
O Produto Cartesiano gera todas as combinações
possíveis entre as tuplas de duas tabelas e é esta
operação que nos permite combinar tuplas de diferentes
relações.
Dizemos que R R1 X R2, ou seja que R recebe o
resultado do produto cartesiano entre R1 e R2.
Álgebra Relacional: Produto Cartesiano
Sejam R1(A1, A2, ...,AN) e R2(B1, B2, ...,BM), então R,
resultado do produto cartesiano entre R1 e R2 é uma
relação com n+m atributos, R(A1, A2, ...,AN, B1, B2, ..., BM),
ou seja uma relação com grau N + M na qual existe uma
tupla para cada combinação possível de tuplas de R1
com cada tupla de R2.
Álgebra Relacional: Produto Cartesiano
� O número de tuplas de R é sempre igual ao número
de tuplas de uma relação multiplicado pelo número de
tuplas da outra relação.
� Se entre R1 e R2 existem atributos com mesmo nome,
nos referimos a eles como R1.Ax e R2.Ax
Álgebra Relacional: Produto Cartesiano
� Sejam as tabelas País e Autor conforme
representadas abaixo:
� CalculeR Pais X Autor
CodPai NomPai
1 Brasil
2 Portugal
CodAut NomAut CodPai
1 José de Alencar 1
2 Machado de Assis 1
3 Luís de Camões 2
23/09/2014
5
Álgebra Relacional: Produto Cartesiano
� R possui 6 linhas (2 X 3) e é uma relação de grau 5 e
possui os atributos (CodPai, NomPai, CodAut,
NomAut, CodPai)
� R = {1, Brasil, 1, José de Alencar, 1;
1, Brasil, 2, Machado de Assis, 1;
1, Brasil, 3, Luís de Camões, 2;
� 2, Portugal, 1, José de Alencar, 1;
2, Portugal, 1, Machado de Assis, 1;
2, Portugal, 1, 3, Luís de Camões, 2}
Álgebra Relacional: Produto Cartesiano
Sempre:
� O número de linhas de um produto cartesiano R1 X
R2 é igual à multiplicação do número de linhas de
R1 pelo número de linhas de R2 ;
� O número de colunas de um produto cartesiano R1
X R2 é igual à soma do número de colunas de R1
com o número de linhas de R2.
Álgebra Relacional: Junção
� A Junção corresponde à combinação do
operador de seleção com o operador produto
cartesiano. Ela cria uma nova relação através
da seleção por uma condição especificada, no
resultado do produto cartesiano.
� É representada pelo símbolo é ⋈
� R R1 a⋈b R2, onde a e b são os atributos
de Junção.
Álgebra Relacional: Junção
� A Junção é que nos permite lidar com
associações entre relações.
� A Junção também é conhecida como Junçãoθ (lê-
se Junção Theta) onde θ pode ser qualquer
operador de seleção.
� Quando θ é um símbolo de igualdade (=) temos a
equijunção, que é a mis utilizada forma de junção.
Álgebra Relacional: Junção
� A Junção, como o Produto Cartesiano, possui
grau formado pela soma dos atributos das
relações que a formam.
� Assim, uma operação de Junção com uma
relação R1 de grau 4 com uma relação R2 de grau
3, resultará em uma relação R de grau 7.
Álgebra Relacional: Junção
� Quando temos atributos de junção de mesmo nome,
não indicamos estes atributos e a Junção tem um
nome especial: Junção Natural. Além disso, o
atributo de mesmo nome só aparece uma vez na
relação R final. Então na Junção Natural o grau da
relação final é sempre a soma dos graus das duas
relações menos um.
� R R1 ⋈ R2
23/09/2014
6
Álgebra Relacional: Junção
� Atenção: Uma junção natural entre duas relações
que não possuam atributos de mesmo nome
equivale a um produto cartesiano, pois não há como
executar a seleção.
� Lembre-se que é possível renomear (ρ) colunas
para possibilitar Junções Naturais.
Álgebra Relacional: Junção
� A junção é sempre uma operação binária. Uma
junção de três relações é igual a junção de duas
relações e o resultado junção com a terceira.
� R ((R1 a⋈b R2) ⋈c R3)
Álgebra Relacional: Junção
� A junção, como o Produto Cartesiano, possui
grau formado pela soma dos atributos das
relações que a formam.
� Assim, uma operação de junção com uma
relação R1 de grau 4 com uma relação R2 de
grau 3, resultará em uma relação R de grau 7.
Álgebra Relacional: Junção
� Exemplo: Listar pela álgebra relacional o Nome do
País e o Nome do Autor.
� R1 Pais ⋈ Autor
� R piNomPai, NomAut (R1)
� Observe que o grau de R1 é 4 (soma dos graus menos
um, pois é junção natural). O Grau de R é 2, apenas
duas colunas projetadas.
Álgebra Relacional: Junção Externa
� A Junção só recupera linhas que satisfaçam a
condição de Junção. Entretanto, muitas vezes
precisamos resuperar linhas externas à Junção, ou
seja, as que não satisfazem a condição de Junção.
� Os símbolos utilizados para Junção externa são:
e respectivamente significam, Junção
Externa à esquerda, Junção Externa à direita e
Junção Externa total.
Álgebra Relacional: Junção Externa
� A junção externa à direita, traz as linhas da tabela
que se encontram à direita do símbolo de Junção
que satisfaçam ou não a condição de Junção.
� Exemplo: Listar todos os Nomes de País e para
aqueles que possuem, listar o nome dos autores.
� R1 País Autor
R piNomPai, NomAut(R1)
23/09/2014
7
Álgebra Relacional: Junção Externa
� Se a tabela Pais estivesse à direita do símbolo de
Join, utilizaríamos a Junção Externa à Direita, para
solucionar o mesmo pedido.
� R1 Autor País
R piNomPai, NomAut(R1)
Álgebra Relacional: Divisão
Divisão ÷
� A divisão de duas relações R1 ÷ R2, onde se verifica
que os atributos(R2) ⊆ atributos(R1), tem como
resultado uma relação R cujo conjunto de atributos
é igual a diferença de atributos de R1 pelos atributos
de R2 e onde para cada tupla t que aparece no
resultado, os valores de t devem aparecer em R1
combinados com cada tupla de R2.
Álgebra Relacional: Divisão
Exemplo R R1 ÷ R2 R1A H
a1 h1
a2 h1
a3 h1
a4 h1
a2 h2
a2 h4
a3 h4
a4 h4
a3 h3
a4 h4
R2
A
a1
a2
a3
R
h1
h4 � A divisão é utilizada para consultas do tipo ‘para 
todos’. Para realizá-la é preciso preparar as 
relações. 
� Exemplo: Listar o Código e o Nome das Editoras 
que já editaram todas as obras de Machado de 
Assis.
Álgebra Relacional: Divisão
� Para resolver a questão, vamos preparar as
relações para uma operação de divisão, criando
uma relação com os códigos de obras de Machado
de Assis, o código e o nome das editoras. E uma
outra relação com o código de todas as obras de
Machado de Assis. Depois dividimos a primeira
pela segunda.
Álgebra Relacional: Divisão
R1 ← σNomAut = 'Machado de Assis' (Autor) / selecionando o autor Machado
de Assis
R2 ← pi CodObr (Autoria ⋈ R1) / Código da obras de Machado de Assis
R3 ← pi CodObr, NumExe (Exemplar ⋈ R2) / código da Obra e Num 
exemplar de todos os exemplares das obras de Machado de Assis
R4 ← pi CodEdi, NomEdi, CodObr ( Editora ⋈ R3) / código da Editora, 
Nome da Editora e código da Obra de todos os exemplares das obras de 
Machado de Assis
R ← R4 ÷ R2 / O resultado é uma relação contendo o Código e Nome das
editoras de todas as obras de Machado de Assis
Álgebra Relacional: Divisão
23/09/2014
8
Referências Bibliográficas
NAVATHE, Shamkant B., ELSMARI, Ramez. Sistemas de Banco
de dados. 5ª ed. São Paulo: Pearson Addison Wesley, 2005, caps.
5 e 6.
NAVATHE, Shamkant B., ELSMARI, Ramez. Sistemas de Banco
de dados. 6 ed. São Paulo: Pearson Addison Wesley, 2011, caps.
3 e 6.
SILBERSCHATZ, A; KORTH, H. F.; SUDARSHAN, S. Sistema de 
bancos de dados. 5 ed. São Paulo: Campus Elsevier, 2006, cap. 2.
SILBERSCHATZ, A; KORTH, H. F.; SUDARSHAN, S. Sistema de 
bancos de dados. São Paulo: Campus Elsevier, 2006 , cap. 2.

Outros materiais