You are on page 1of 79

Bases de Dados Algebra Relacional

Caetano Traina Jr.

Grupo de Bases de Dados e Imagens Instituto de Ci encias Matem aticas e de Computa c ao Universidade de S ao Paulo - S ao Carlos caetano@icmc.usp.br
31 de agosto de 2010 S ao Carlos, SP - Brasil

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

1 / 83

Outline

Conceitos fundamentais Opera c oes sobre Conjuntos Opera c oes Relacionais Un arias Opera c oes Relacionais Bin arias

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

2 / 83

Conceitos fundamentais

Conceitos

Introdu c ao

A algebra relacional e composta por um conjunto de opera c oes, utilizadas para manipular Rela c oes como um todo. Toda Opera c ao Relacional e denida sobre uma ou mais rela c oes, e seu resultado sempre e uma rela c ao, a qual pode ser utilizada em opera c oes subsequentes. Do ponto de vista alg ebrico, uma rela c ao e um elemento imut avel, at omico. Assim, n ao existem opera c oes de inclus ao ou modica c ao de tuplas, ou de deni c ao de rela c oes.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

4 / 83

Conceitos fundamentais

Conceitos

Introdu c ao

Os operadores Relacionais s ao denidos tendo por objetivo atender:


As restri c oes de uma Algebra : de maneira a garantir propriedades desej aveis e permitir a preserva c ao (ou o controle) dessas propriedades nas rela c oes resultantes Propriedades. As necessidades de Implementa c ao: de maneira a que cada operador corresponda a um algoritmo que possa ser executado num computador, realizando aquela opera c ao numa base de dados nele armazenado Custo.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

5 / 83

Conceitos fundamentais

Conceitos

Operadores Relacionais
As opera c oes relacionais podem ser divididas em 3 grupos: Opera c oes sobre Conjuntos
Uni ao Interse c ao Diferen ca Uni ao exclusiva | Complemento Produto Cartesiano Complemento Ativo

Opera c oes Relacionais Un arias


Sele c ao Proje c ao

Opera c oes Relacionais Bin arias


Jun c ao (interna Divis ao
Grupo de Bases de Dados e Imagens ()

e externas

3, 1 e 2)
GBdI-ICMC-USP 6 / 83

Algebra Relacional

Conceitos fundamentais

Conceitos

Operadores Relacionais
Al em dos Operadores Relacionais, a algebra relacional utiliza uma nota c ao (relativamente) padr ao, a qual incorpora ainda mais duas pseudo-opera c oes (embora elas n ao sejam opera c oes no sentido matem atico do termo): Atribui c ao de Nome a Rela c oes Permite atribuir um nome a uma rela c ao que n ao o tenha em particular para rela c oes que s ao o resultado de uma express ao da algebra relacional: Nome <Express~ ao da Algebra Relacional> Substitui c ao de Nomes de Atributos Permite atribuir um novo nome para os atributos de uma rela c ao em particular para uma rela c ao resultante de outras opera c oes da Algebra Relacional:
NomeRela c~ ao(NomeAtributo,...) <Express~ ao da Algebra Relacional>
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 7 / 83

Conceitos fundamentais

Conceitos

Operadores Relacionais

Por exemplo: Atribui c ao de Nome a Rela c oes Aluno {Nome, Idade, Curso}> Professor {Nome, Idade, Depto} Pessoa Aluno Professor Substitui c ao de Nomes de Atributos Pessoa(Nome, Idade, Curso) Aluno Professor

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

8 / 83

Opera c oes sobre Conjuntos

Conceitos

Opera c oes sobre Conjuntos


O grupo das Opera c oes sobre Conjuntos da Algebra Relacional corresponde ` as opera c oes usuais da Teoria dos Conjuntos. Dentro da Algebra Relacional, elas s ao denidas considerando-se que cada rela c ao e um conjunto de tuplas.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

10 / 83

Opera c oes sobre Conjuntos

Conceitos

Opera c oes sobre Conjuntos

Quase todas as Opera c oes Relacionais sobre Conjuntos s ao bin arias.

Pr e-requisito
Para que duas rela c oes possam ser operadas por uma opera c ao sobre conjunto, e necess ario que ambas sejam Compat veis em Dom nio (ou Union Compatible ).

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

11 / 83

Opera c oes sobre Conjuntos

Rela c oes Compat veis em Dom nio

Opera c oes sobre Conjuntos


Rela c oes Compat veis em Dom nio

Duas rela c oes R (A1 , A2 , ..., An ) e S (B1 , B2 , ..., Bn ) s ao ditas Compat veis em Dom nio se ambas t em o mesmo grau n e se Dom(Ai ) = Dom(Bi ), 1 i n. Ou seja, duas rela c oes s ao Compat veis em Dom nio quando, al em de ter o mesmo n umero de atributos, cada par de atributos correspondentes t em o mesmo dom nio. Por exemplo: Dados:
Aluno = {Nome, Idade, Curso} Professor = {Nome, Idade, Depto} Funcion ario = {Nome, Depto, Idade} Dom(nome) Char(30), Dom(idade) int, Dom(Curso) Char(12), Dom(Depto) Char(12)

Professor e compat vel com Aluno, mas n ao com Funcion ario.


Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 12 / 83

Opera c oes sobre Conjuntos

Rela c oes Compat veis em Dom nio

Opera c oes sobre Conjuntos


Rela c oes Compat veis em Dom nio

Note-se que, para a Algebra Relacional, a sem antica de uma rela c ao n ao e importante, apenas a sua estrutura. No caso, a ordem dos atributos vale mais do que o fato dos tipos de dados serem semanticamente distintos. As opera c oes bin arias sobre conjuntos da Algebra Relacional somente podem operar sobre pares de rela c oes Compat veis em Dom nio.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

13 / 83

Opera c oes sobre Conjuntos

Opera c oes Bin arias sobre conjuntos

Opera c oes sobre Conjuntos


Operadores bin arios

As opera c oes relacionais s ao as usuais da teoria dos conjuntos:


Uni ao: R S O resultado cont em todas as tuplas de S e todas as tuplas de R , por em tuplas que est ao em ambas as rela c oes aparecem apenas uma vez. Interse c ao R S O resultado cont em apenas as tuplas que est ao em R e tamb em em S . Diferen ca R S O resultado cont em as tuplas que est ao em R mas n ao est ao em S .

Devido ` as necessidades de consulta, as vezes considera-se uma outra opera c ao:


Uni ao Exclusiva R |S O resultado cont em todas as tuplas que est ao nas rela c oes S ou R , mas n ao as tuplas que est ao em ambas R e S .
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 14 / 83

Opera c oes sobre Conjuntos

Opera c oes Bin arias sobre conjuntos

Opera c oes sobre Conjuntos


Operadores bin arios Exemplos

Uni ao:
Aluno = {Nome, Idade, Curso} = {<Zeca, 25, computa c~ ao>, <Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor = {Nome, Idade, Depto} = {<Zeca, 25, computa c~ ao>, <Ari, 30, computa c~ ao>, <Eva, 27, eletronica>} Aluno Professor = { Nome, Idade, Curso} {<Zeca, 25, computa c~ ao>, <Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>, <Ari, 30, computa c~ ao>, <Eva, 27, eletronica>}

Note-se que a opera c ao de atribui c ao de nomes repete os nomes dos atributos da rela c ao ` a esquerda do operador bin ario na rela c ao resultado.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

15 / 83

Opera c oes sobre Conjuntos

Opera c oes Bin arias sobre conjuntos

Opera c oes sobre Conjuntos


Operadores bin arios Exemplos

Intersec c ao:
Aluno = {Nome, Idade, Curso} = {<Zeca, 25, computa c~ ao>, <Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor = {Nome, Idade, Depto} = {<Zeca, 25, computa c~ ao>, <Ari, 30, computa c~ ao>, <Eva, 27, eletronica>} Aluno Professor = { Nome, Idade, Curso} {<Zeca, 25, computa c~ ao>}

Note-se que a opera c ao de atribui c ao de nomes repete os nomes dos atributos da rela c ao ` a esquerda do operador bin ario na rela c ao resultado.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

16 / 83

Opera c oes sobre Conjuntos

Opera c oes Bin arias sobre conjuntos

Opera c oes sobre Conjuntos


Operadores bin arios Exemplos

Diferen ca:
Aluno = {Nome, Idade, Curso} = {<Zeca, 25, computa c~ ao>, <Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor = {Nome, Idade, Depto} = {<Zeca, 25, computa c~ ao>, <Ari, 30, computa c~ ao>, <Eva, 27, eletronica>} Aluno Professor = { Nome, Idade, Curso} {<Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor Aluno = { Nome, Idade, Depto} {<Ari, 30, computa c~ ao>, <Eva, 27, eletronica>}

Note-se que, diferente da Uni ao e Intersec c ao, a opera c ao Diferen ca n ao e comutativa.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

17 / 83

Opera c oes sobre Conjuntos

Opera c oes Bin arias sobre conjuntos

Opera c oes sobre Conjuntos


Operadores bin arios Exemplos

Uni ao Exclusiva:
Aluno = {Nome, Idade, Curso} = {<Zeca, 25, computa c~ ao>, <Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor = {Nome, Idade, Depto} = {<Zeca, 25, computa c~ ao>, <Ari, 30, computa c~ ao>, <Eva, 27, eletronica>} Aluno | { Nome, {<Zico, <Juca, <Tuca, <Ari, <Eva, Professor = Idade, Curso} 18, eletronica>, 21, odontologia>, 18, computa c~ ao>, 30, computa c~ ao>, 27, eletronica>}

Apenas as tuplas que est ao em apenas em uma das rela c oes operando aparecem no resultado.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

18 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Operadores Un arios

Complemento de uma rela c ao R


Relacional, uma Rela c ao e denida como um subconjunto Na Algebra do produto cartesiano dos dom nios dos atributos . Portanto, pode-se considerar que o universo de uma rela c ao e o pr oprio produto cartesiano dos dom nios dos atributos. Seja R = {A1 , A2 , ..., An }. Ent ao Universo (R ) = Dom(A1 ) Dom(A2 ) ...Dom(An ). R = Universo (R ) R R = Dom(A1 ) Dom(A2 ) ...Dom(An ) R

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

19 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Operadores Un arios

Complemento de uma rela c ao R


Essa opera c ao raramente e usada, pois usualmente ela n ao tem muita serventia pr atica, j a que os dom nios dos atributos t em cardinalidade muito grande. Por exemplo:
Grau (Aluno ) =4 Aluno = {Nome, {<Zeca, <Zico, <Juca, <Tuca, Idade, 25, 18, 21, 18, Curso} = computa c~ ao>, Grau (Aluno ) = eletronica>, 9630 150 9612 4 = odontologia>, 2.7 1085 4 computa c~ ao>}

Dom(nome ) = char(30) Grau (Nome ) = 9630 Dom(Idade ) = int[0-149] Grau (Idade ) = 150 Dom(Curso ) = char(12) Grau (Curso ) = 9612

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

20 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Operadores Un arios

Assim, foi criada uma outra opera c ao de complemento de rela c oes para a algebra relacional, mais u til em situa c oes pr aticas. Complemento ativo de uma rela c ao
A opera c ao da algebra relacional Complemento ativo de uma rela c ao R e denida sobre o conceito de Dom nio Ativo de um Atributo da Rela c ao.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

21 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Complemento Ativo de um Atributo

Dom nio Ativo de um Atributo Dom (Atr )[R ]


O Dom nio Ativo de um Atributo e denido sobre cada rela c ao em que o atributo participa. O Dom nio Ativo de um Atributo Atr denido sobre uma rela c ao R eo conjunto de todos os valores que o atributo assume na rela c ao.
Aluno = {Nome, {<Zeca, <Zico, <Juca, <Tuca, Idade, 25, 18, 21, 18, Dom (Nome)[Aluno]={Zeca, Zico, Curso} = Juca, Tuca} computa c~ ao>, Dom (Idade)[Aluno]={18, 21, 25} eletr^ onica>, Dom (Curso)[Aluno]={Computa c~ ao, odontologia>, Eletr^ onica, Odontologia} computa c~ ao>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

22 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Complemento Ativo de uma Rela c ao

Complemento Ativo de uma Rela c ao R


o conjunto: E Dom (A1 )[R ] Dom (A2 )[R ] . . . Dom (An )[R ] R
Aluno = {Nome, {<Zeca, <Zico, <Juca, <Tuca, Idade, 25, 18, 21, 18, Dom (Nome)[Aluno]={Zeca, Zico, Curso} = Juca, Tuca} computa c~ ao>, Dom (Idade)[Aluno]={18, 21, 25} eletr^ onica>, Dom (Curso)[Aluno]={Computa c~ ao, odontologia>, Eletr^ onica, Odontologia} computa c~ ao>}

Grau ( Aluno) = (4 3 3) 4 = 32

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

23 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Complemento Ativo de uma Rela c ao

Complemento Ativo de uma Rela c ao R Seja Ministra a rela c ao que indica quais departamentos participam da ministra c ao de quais cursos:
Ministra = {Curso, Depto} {<Compt., SCE>, <Eletron., SMA>, <Compt., SMA>, <Eletron., SCE>, <Matem., SMA>, <Eletron., SEL>}

Dom(Depto)=Char(7) Grau (Depto) = 967 Dom(Curso)=Char(6) Grau (Curso) = 966 Grau (Ministra) = 966 967 6 = 5.8 1025 6

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

24 / 83

Opera c oes sobre Conjuntos

Opera c oes Un arias sobre Conjuntos

Opera c oes sobre Conjuntos


Complemento Ativo de uma Rela c ao

Seja a consulta: Quais s ao os departamentos que n ao participam de quais cursos?


Ministra = {Curso, Depto} {<Eletron., SMA>, <Eletron., SCE>, <Eletron., SEL> <Compt., SMA>, <Compt., SCE>, <Matem., SMA>, } Resposta: Ministra = {Curso, Depto} {<Compt., SEL>, <Matem., SCE>, <Matem., SEL>} Dom(Depto)[Ministra]={SCE, SMA, SEL} Dom(Curso)[Ministra]={Computa c~ ao, Matem atica, Eletr^ onica}

Grau ( Ministra) = 3 3 Grau (Ministra) = 9 6 = 3


Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 25 / 83

Opera c oes sobre Conjuntos

Produto Cartesiano

Opera c oes sobre Conjuntos


Produto Cartesiano

Produto Cartesiano R S
A opera c ao da algebra relacional Produto Cartesiano , tal como as demais opera c oes sobre conjuntos, tamb em n ao leva em conta a estrutura das rela c oes. Assim, a opera c ao Produto Cartesiano de duas Rela c oes R e S tem como resultado uma rela c ao cujos atributos s ao a concatena c ao dos atributos da rela c ao R e da rela c ao S , e tem como tuplas todas as combina c oes poss veis de valores de R com valores de S . Esta opera c ao difere das demais opera c oes sobre conjuntos, no sentido de que, ao contr ario das demais, ela n ao imp oe que as rela c oes devem ser Compat veis de Dom nio.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

26 / 83

Opera c oes sobre Conjuntos

Produto Cartesiano

Opera c oes sobre Conjuntos


Produto Cartesiano

Por exemplo: Sejam as duas rela c oes seguintes:


Ministra = {Curso, {<Compt., <Compt., <Matem., Depto} SCE>, SMA>, SMA>} DiaMatric = {Depto, Dia} {<SCE, 25>, <SMA, 26>}

Ministra X DiaMatric = {Curso, {<Compt., <Compt., <Compt., <Compt., <Matem., <Matem.,


Grupo de Bases de Dados e Imagens ()

Mdepto, SCE, SCE, SMA, SMA, SMA, SMA,

Ddepto, SCE, SMA, SCE, SMA, SCE, SMA,

Dia} 25>, 26>, 25>, 26>, 25>, 26>}


27 / 83

Algebra Relacional

GBdI-ICMC-USP

Opera c oes sobre Conjuntos

Propriedades

Propriedades das Opera c oes sobre Conjuntos


Propriedades dos operadores sobre Conjuntos na Algebra Relacional

Propriedades do operador dos operadores

e :

Os operadores de Uni ao e Intersec c ao s ao comutativos: R S =S R R S =S R Note-se que R S = S R Os operadores de Uni ao, Intersec c ao s ao associativos: (R S ) T = R (S T ) (R S ) T = R (S T ) Note-se que (R S ) T = R (S T ) Os operadores de Uni ao e Intersec c ao s ao idempotentes: R R=R R R=R Mas R R =
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 28 / 83

Opera c oes Relacionais Un arias

Conceitos

Opera c oes Relacionais Un arias


As opera c oes relacionais levam em conta a estrutura interna das rela c oes, reconhecendo quais s ao os atributos que as comp oem. Ou seja, n ao tratam as rela c oes apenas como um conjunto de tuplas, mas como um subconjunto de produtos cartesianos de dom nios de atributos.
R = {Atr1 , Atr2 , Atr3 , ..., Atrn } Existem basicamente 2 opera c oes relacionais un arias:
Sele c ao Proje c ao

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

30 / 83

Opera c oes Relacionais Un arias

Sele c ao

Opera c oes Relacionais Un arias


Opera c ao de Sele c ao

Opera c ao de Sele c ao (<condic a o >) R


A opera c ao de sele c ao aplicada sobre uma rela c ao R resulta no subconjunto das tuplas de R que satisfazem ` a < condic ao > indicada. A < condic ao > sempre e uma opera c ao de compara c ao de um atributo Atri da rela c ao com:
Uma constante: < condic ao >:= Atri cte ; Ou com outro atributo da pr opria rela c ao, sempre comparando os valores de dois atributos da mesma tupla: < condic ao >:= Atri Atrj | Atri , Atrj R .

O operador de compara c ao e qualquer operador v alido no dom nio do atributo Atri . Tipicamente os operadores de igualdade (= e =) e relacionais (>, , <, ) s ao v alidos para qualquer atributo textual, num erico ou datas, e outros podem ser v alidos em dom nios espec cos, tal como contin encia para textos.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

31 / 83

Opera c oes Relacionais Un arias

Sele c ao

Opera c oes Relacionais Un arias


Opera c ao de Sele c ao

Por exemplo, considere novamente a rela c ao Aluno e a consulta:


Selecione os Alunos que fazem Odontologia. A resposta corresponde ` a opera c ao: (curso =odontologia) Aluno

Resultado:
Aluno = {Nome, {<Zeca, <Zico, <Juca, <Tuca, Idade, 25, 18, 21, 18, Curso} = computa c~ ao>, eletr^ onica>, odontologia>, computa c~ ao>}

{<Juca, 21,

odontologia>}

Note-se que neste caso a condi c ao compara um atributo da rela c ao com uma constante.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

32 / 83

Opera c oes Relacionais Un arias

Sele c ao

Opera c oes Relacionais Un arias


Opera c ao de Sele c ao

Intuitivamente, a opera c ao de Sele c ao pode ser vista como escolhendo-se algumas linhas da tabela que e a rela c ao.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

33 / 83

Opera c oes Relacionais Un arias

Sele c ao

Opera c oes Relacionais Un arias


Opera c ao de Sele c ao

A maioria das opera c oes de sele c ao utiliza a compara c ao entre um atributo e uma constante. Existem consultas que comparam dois atributos da mesma rela c ao. E comum aplicar essa forma sobre rela c oes que resultam de um produto cartesiano. Por exemplo:
Selecione os departamentos em que cada aluno cumpre as disciplinas de seu curso. Corresponde a seq u encia de opera c oes: (dado que Aluno={Nome, Idade, Curso} e Ministra={Curso, Depto} )

AlunoDepto {Aluno Ministra} AlunoDepto = {Nome, Idade, ACurso, Mcurso, Depto} (acurso =mcurso ) AlunoDepto
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 34 / 83

Opera c oes Relacionais Un arias

Sele c ao

Opera c oes Relacionais Un arias


Opera c ao de Sele c ao

Note-se que ambos os atributos comparados numa condi c ao devem pertencer ` a Rela c ao. Quando dois atributos s ao comparados, verica-se o valor de ambos na mesma tupla. O operador de sele c ao verica tupla por tupla se a condi c ao e satisfeita. Sempre que o for, aquela tupla passa para a rela c ao resultado.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

35 / 83

Opera c oes Relacionais Un arias

Proje c ao

Opera c oes Relacionais Un arias


Opera c ao de Proje c ao

Opera c ao de Proje c ao {<lista de atributos>} R


A opera c ao de proje c ao aplicada sobre uma rela c ao R tem como resultado outra rela c ao que tem apenas os atributos indicados na <lista de atributos>. A <lista de atributos> e um subconjunto dos atributos da pr opria rela c ao.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

36 / 83

Opera c oes Relacionais Un arias

Proje c ao

Opera c oes Relacionais Un arias


Opera c ao de Proje c ao

Intuitivamente, a opera c ao de Proje c ao pode ser vista como escolhendo-se algumas Colunas da tabela.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

37 / 83

Opera c oes Relacionais Un arias

Proje c ao

Opera c oes Relacionais Un arias


Opera c ao de Proje c ao

Por exemplo, considere novamente a rela c ao Aluno e a consulta:


Obtenha o nome e idade de todos os Alunos. A resposta corresponde ` a opera c ao: {Nome, Idade} Aluno

O Resultado e a rela c ao:


{Nome, Idade} Aluno = {Nome, {<Zeca, <Zico, <Juca, <Tuca, Idade, 25, 18, 21, 18, Curso} = computa c~ ao>, eletronica>, odontologia>, computa c~ ao>} {<Zeca, <Zico, <Juca, <Tuca, 25>, 18>, 21>, 18>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

38 / 83

Opera c oes Relacionais Un arias

Proje c ao

Opera c oes Relacionais Un arias


Opera c ao de Proje c ao

Considera c oes sobre a opera c ao de proje c ao.


O resultado de uma opera c ao de proje c ao e uma rela c ao, portanto n ao deve existir tuplas repetidas no resultado. Se a <lista de atributos> contiver uma chave da rela c ao, ent ao podese ter certeza de que o resultado n ao ter a tuplas repetidas. Se a <lista de atributos> n ao contiver uma chave da rela c ao, ent ao poder a haver mais de uma tupla que tenha o mesmo valor para todos os atributos da lista. Nesse caso, tuplas repetidas devem ser eliminadas com a opera c ao de Elimina c ao de Tuplas Repetidas, embora obviamente essa n ao seja uma opera c ao alg ebrica .

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

39 / 83

Opera c oes Relacionais Un arias

Proje c ao

Opera c oes Relacionais Un arias


Opera c ao de Proje c ao

Note-se que numa opera c ao de Proje c ao, al em de se descartar algumas colunas da tabela, algumas tuplas repetidas podem ser eliminadas, diminuindo tambem algumas linhas da tabela.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

40 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as notas que os alunos tiraram na disciplina SCE-125 O Resultado e obtido pela rela c ao: {NomeA,Nota} (disciplina=SCE 125) Matricula
Matricula={NomeA, = {<Zeca, <Zeca, <Zeca, <Zico, <Juca, <Juca, Disciplina, SCE-125, SCE-148, SCE-180, SCE-148, SCE-125, SCE-148, Nota} 8.5>, 8.0>, 7.5>, 5.2>, 6.0>, 7.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

41 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as notas que os alunos tiraram na disciplina SCE-125 O Resultado e obtido pela rela c ao: {NomeA,Nota} (disciplina=SCE 125) Matricula
Temp1 (disciplina=SCE 125) Matricula
Matricula={NomeA, = {<Zeca, <Zeca, <Zeca, <Zico, <Juca, <Juca, Disciplina, SCE-125, SCE-148, SCE-180, SCE-148, SCE-125, SCE-148, Nota} 8.5>, 8.0>, 7.5>, 5.2>, 6.0>, 7.0>}

Temp1={NomeA, Disciplina, Nota} ={<Zeca, SCE-125, 8.5>, <Juca, SCE-125, 6.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

42 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as notas que os alunos tiraram na disciplina SCE-125 O Resultado e obtido pela rela c ao: {NomeA,Nota} (disciplina=SCE 125) Matricula
Result {Nota,NomeA} Temp1
Matricula={NomeA, = {<Zeca, <Zeca, <Zeca, <Zico, <Juca, <Juca, Disciplina, SCE-125, SCE-148, SCE-180, SCE-148, SCE-125, SCE-148, Nota} 8.5>, 8.0>, 7.5>, 5.2>, 6.0>, 7.0>}

Result={NomeA, Nota} = {<Zeca, 8.5>, <Juca, 6.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

43 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que o aluno Zico esta matriculado. O Resultado e obtido pela rela c ao: {Disciplina} (Nome =Zico ) Matricula
Matricula={NomeA, = {<Zeca, <Zeca, <Zeca, <Zico, <Juca, <Juca, Disciplina, SCE-125, SCE-148, SCE-180, SCE-148, SCE-125, SCE-148, Nota} 8.5>, 8.0>, 7.5>, 5.2>, 6.0>, 7.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

44 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que o aluno Zico esta matriculado. O Resultado e obtido pela rela c ao: {Disciplina} (Nome =Zico ) Matricula
Temp1 (Nome =Zico ) Matricula
Matricula={NomeA, = {<Zeca, <Zeca, <Zeca, <Zico, <Juca, <Juca, Disciplina, SCE-125, SCE-148, SCE-180, SCE-148, SCE-125, SCE-148, Nota} 8.5>, 8.0>, 7.5>, 5.2>, 6.0>, 7.0>}

Temp1={NomeA, Disciplina, Nota} ={<Zico, SCE-148, 5.2>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

45 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que o aluno Zico esta matriculado. O Resultado e obtido pela rela c ao: {Disciplina} (Nome =Zico ) Matricula
Result {Disciplina} Temp1
Matricula={NomeA, Disciplina, = {<Zeca, SCE-125, <Zeca, SCE-148, <Zeca, SCE-180, <Zico, SCE-148, <Juca, SCE-125, <Juca, SCE-148, Note-se que embora a resposta seja um Nota} 8.5>, Result={Disciplina} 8.0>, = {<SCE-148>} 7.5>, 5.2>, 6.0>, 7.0>} u nico valor, o resultado ainda e uma rela c ao.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

46 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar Idade e Nome dos alunos e professores. O Resultado e obtido pela rela c ao: {Nome ,Idade } Aluno {Nome ,Idade } Professor
Aluno= {Nome, Idade, Curso} ={<Zeca, 25, computa ca ~o>, <Zico, 18, eletr^ onica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor= {Nome, Idade, Depto} ={<Zeca, 25, computa ca ~o>, <Ari, 30, computa ca ~o>, <Eva, 27, eletr^ onica>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

47 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar Idade e Nome dos alunos e professores. O Resultado e obtido pela rela c ao: {Nome ,Idade } Aluno {Nome ,Idade } Professor
Temp1 {Nome ,Idade } Aluno Temp2 {Nome ,Idade } Professor Aluno= {Nome, Idade, Curso} ={<Zeca, 25, computa ca ~o>, <Zico, 18, eletr^ onica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor= {Nome, Idade, Depto} ={<Zeca, 25, computa ca ~o>, <Ari, 30, computa ca ~o>, <Eva, 27, eletr^ onica>} Temp1={Nome, Idade} ={<Zeca, 25, <Zico, 18>, <Juca, 21>, <Tuca,18>} Temp2= {Nome, Idade} ={<Zeca, 25, <Ari, 30>, <Eva, 27>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

48 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar Idade e Nome dos alunos e professores. O Resultado e obtido pela rela c ao: {Nome ,Idade } Aluno {Nome ,Idade } Professor
Result Temp1 Aluno= {Nome, Idade, Curso} ={<Zeca, 25, computa ca ~o>, <Zico, 18, eletr^ onica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Professor= {Nome, Idade, Depto} ={<Zeca, 25, computa ca ~o>, <Ari, 30, computa ca ~o>, <Eva, 27, eletr^ onica>} Result={Nome, ={<Zeca, <Zico, <Juca, <Tuca, <Ari, <Eva, Temp2 Idade} 25, 18>, 21>, 18>, 30>, 27>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

49 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Aluno= {Nome, Idade, Curso} ={<Zeca, 25, computa ca ~o>, <Zico, 18, eletr^ onica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Matricula={NomeA, Disciplina, Nota} = {<Zeca, SCE-125, 8.5>, <Zico, SCE-148, 5.2>, <Juca, SCE-125, 6.0>, <Juca, SCE-148, 7.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

50 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Temp1 (Aluno Matricula)
Aluno= {Nome, Idade, Curso} ={<Zeca, 25, computa ca ~o>, <Zico, 18, eletr^ onica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Matricula={NomeA, Disciplina, Nota} = {<Zeca, SCE-125, 8.5>, <Zico, SCE-148, 5.2>, <Juca, SCE-125, 6.0>, <Juca, SCE-148, 7.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

51 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Temp1 = {Nome, Idade, Curso, ={<Zeca, <Zeca, <Zeca, <Zeca, <Zico, <Zico, <Zico, <Zico, <Juca, <Juca, <Juca, <Juca, <Tuca, <Tuca, <Tuca, <Tuca, 25, 25, 25, 25, 18, 18, 18, 18, 21, 21, 21, 21, 18, 18, 18, 18, computa ca ~o, computa c~ ao, computa c~ ao, computa c~ ao, eletr^ onica, eletr^ onica, eletr^ onica, eletr^ onica, odontologia, odontologia, odontologia, odontologia, computa c~ ao, computa c~ ao, computa c~ ao, computa c~ ao, NomeA, Disciplina, Nota} Zeca, Zico, Juca, Juca, Zeca, Zico, Juca, Juca, Zeca, Zico, Juca, Juca, Zeca, Zico, Juca, Juca, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, 8.5>, 5.2>, 6.0>, 7.0>, 8.5>, 5.2>, 6.0>, 7.0>, 8.5>, 5.2>, 6.0>, 7.0>, 8.5>, 5.2>, 6.0>, 7.0>}
GBdI-ICMC-USP 52 / 83

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Temp1 = {Nome, Idade, Curso, ={<Zeca, <Zeca, <Zeca, <Zeca, <Zico, <Zico, <Zico, <Zico, <Juca, <Juca, <Juca, <Juca, <Tuca, <Tuca, <Tuca, <Tuca, 25, 25, 25, 25, 18, 18, 18, 18, 21, 21, 21, 21, 18, 18, 18, 18, computa ca ~o, computa c~ ao, computa c~ ao, computa c~ ao, eletr^ onica, eletr^ onica, eletr^ onica, eletr^ onica, odontologia, odontologia, odontologia, odontologia, computa c~ ao, computa c~ ao, computa c~ ao, computa c~ ao, NomeA, Disciplina, Nota} Zeca, Zico, Juca, Juca, Zeca, Zico, Juca, Juca, Zeca, Zico, Juca, Juca, Zeca, Zico, Juca, Juca, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, SCE-125, SCE-148, 8.5>, 5.2>, 6.0>, 7.0>, 8.5>, 5.2>, 6.0>, 7.0>, 8.5>, 5.2>, 6.0>, 7.0>, 8.5>, 5.2>, 6.0>, 7.0>}
GBdI-ICMC-USP 53 / 83

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Temp2 = {Nome, Idade, Curso, ={<Zeca, <Zico, <Juca, <Juca, 25, 18, 21, 21, computa ca ~o, eletr^ onica, odontologia, odontologia, NomeA, Disciplina, Nota} Zeca, Zico, Juca, Juca, SCE-125, SCE-148, SCE-125, SCE-148, 8.5>, 5.2>, 6.0>, 7.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

54 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Temp2 = {Nome, Idade, Curso, ={<Zeca, <Zico, <Juca, <Juca, 25, 18, 21, 21, computa ca ~o, eletr^ onica, odontologia, odontologia, NomeA, Disciplina, Nota} Zeca, Zico, Juca, Juca, SCE-125, SCE-148, SCE-125, SCE-148, 8.5>, 5.2>, 6.0>, 7.0>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

55 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Temp3 = {Nome, Idade, Curso, ={<Zeca, 25, computa ca ~o, NomeA, Disciplina, Nota} Zeca, SCE-125, 8.5>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

56 / 83

Opera c oes Relacionais Un arias

Exemplos

Opera c oes Relacionais Un arias


Exemplos de consultas com Opera co es Relacionais Un arias

Listar as disciplinas em que os alunos de computa c ao se matricularam. O Resultado e obtido pela rela c ao: {Disciplina} ((curso =computacao ) ((nome =nomeA) (Aluno Matricula) ))
Result= {Disciplina} = {<SCE-125>}

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

57 / 83

Opera c oes Relacionais Un arias

Propriedades

Propriedades das Opera c oes Relacionais Un arias


Propriedades do operador de sele c ao

Propriedades do operador de sele c ao: O operador de Sele c ao e comutativo (<condic ao1 >) (<condic ao2 >) R = (<condic ao2 >) (<condic ao1 >) R Dessa forma, uma seq u encia de operadores de sele c ao pode ser executada em qualquer ordem. ela tamb em pode ser transformada numa u nica sele c ao com uma condi c ao conjuntiva (termos cujo valor e VERDADEIRO ou FALSO, ligados pelo operador (E, AND) ): (<condic = ao1 >) (<condic ao2 >) . . . (<condic aon >) R (<condic R ao1 ><condic ao2 >...<condic aon >)

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

58 / 83

Opera c oes Relacionais Un arias

Propriedades

Propriedades das Opera c oes Relacionais Un arias


Propriedades do operador de sele c ao

Outras propriedades: (<condic ao1 ><condic ao2 >) R = (<condic ao1 >) R (<condic ao2 >) R (<condic ao1 ><condic ao2 >) R = (<condic ao1 >) R (<condic ao2 >) R Idempot encia: (<condic ao1 >) (<condic ao1 >) R = (<condic ao1 >) R (<condic ao1 >) R = R (<condic ao1 >) R (<condic ao1 >) R = R (<condic ao1 >) R

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

59 / 83

Opera c oes Relacionais Un arias

Propriedades

Propriedades das Opera c oes Relacionais Un arias


Propriedades do operador de proje c ao

Propriedades do operador de proje c ao: Operador de Proje c ao n ao e comutativo. Se o subconjunto de atributos {AtribsB } cont em o subconjunto {AtribsA }, ent ao vale a igualdade: {<AtribsA >} {<AtribsB >} R = {<AtribsA >} R

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

60 / 83

Opera c oes Relacionais Un arias

Propriedades

Propriedades das Opera c oes Relacionais Un arias


Distributividade entre Operadores Un arios e

Distributividade entre Operadores de Sele c ao e Proje c ao e : Dado dois conjuntos de atributos A e B tal que A B ent ao: (A) {B } = {B } (A)

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

61 / 83

Opera c oes Relacionais Bin arias

Conceitos

Opera c oes Relacionais Bin arias

Pela Teoria da Algebra Relacional, se estiverem denidas apenas as seguintes opera c oes, todas as demais podem ser denidas a partir delas:
Uni ao Diferen ca Produto Cartesiano Sele c ao Proje c ao

Por exemplo, a opera c ao de Interse c ao pode ser denida usando apenas a uni ao e a diferen ca: R S = (R S ) ((R S ) (S R ))

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

63 / 83

Opera c oes Relacionais Bin arias

Conceitos

Opera c oes Relacionais Bin arias

Portanto, todas as opera c oes relacionais bin arias da algebra relacional s ao pass veis de serem denidas atrav es de produto cartesiano e outras opera c oes do conjunto b asico. Assim, estritamente falando, s ao desnecess arias. No entanto, devido ao fato que podem ser desenvolvidos algoritmos mais ecientes para determinadas opera c oes compostas do que seria poss vel utilizando apenas combina c oes de algoritmos das opera c oes b asicas, ent ao consideram-se como fazendo parte da algebra relacional diversas outras opera c oes, chamadas genericamente de Opera c oes Relacionais Bin arias.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

64 / 83

Opera c oes Relacionais Bin arias

Jun c ao

Opera c oes Relacionais Bin arias


Jun c ao

Por exemplo, ap os uma opera c ao de Produto Cartesiano, e frequente comparar um atributo ou grupo de atributos de uma das rela c oes originais com um atributo ou grupo de atributos compat veis em dom nio da outra rela c ao. Por exemplo, seja a consulta:
Listar as disciplinas em que os alunos de computa c ao se matricularam. onde as rela c oes t em o seguinte esquema: Aluno = {Nome, Idade, Curso} Matricula = {NomeA, Disciplina, Nota} A resposta corresponde ` a seguinte express ao: {Disciplina} (curso =computacao ) (Nome =NomeA) MatriculaAluno

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

65 / 83

Opera c oes Relacionais Bin arias

Jun c ao

Opera c oes Relacionais Bin arias


Jun c ao

muito mais eciente um algoritmo que somente grave as tuplas que E atendem ao crit erio de sele c ao associado ao Produto Cartesiano do que gravar todas as tuplas geradas e depois rel e-las uma a uma, para s o ent ao selecionar aquelas que atendem ` a condi c ao da sele c ao. Por ser muito comum, essa opera c ao foi inclu da entre as opera c oes da Algebra Relacional, sendo denominada jun c ao (join). {Disciplina} (curso =computacao ) (Nome =NomeA)
(Nome =NomeA) Matricula Aluno MatriculaAluno

{Disciplina} (curso =computacao )

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

66 / 83

Opera c oes Relacionais Bin arias

Jun c ao

Opera c oes Relacionais Bin arias


Jun c ao

(cond junc )

Opera c ao de Jun c ao -

A condi c ao de Jun c ao < cond junc > segue a forma: < comp atratr1 > < comp atratr2 > . . . < comp atratrn >, onde < comp atratri > e uma compara c ao entre um atributo de cada rela c ao, da forma: AtribRi AtribSi , onde
AtribRi e um atributo da rela c ao esquerda R , AtribSi e um atributo da rela c ao direita S , AtribRi e AtribSi t em o mesmo dom nio, e e uma opera c ao de compara c ao v alida nesse dom nio.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

67 / 83

Opera c oes Relacionais Bin arias

Variantes da Jun c ao

Opera c oes Relacionais Bin arias


Jun c ao

Existem diversas varia c oes sobre a opera c ao de jun c ao, todas elas denidas em raz ao de terem grande utiliza c ao, e levando em conta como viabilizar uma implementa c ao mais eciente do que seria poss vel pela execu c ao das opera c oes elementares teoricamente envolvidas. Cada opera c ao de jun c ao tem uma deni c ao pr opria de como s ao tratados os atributo envolvidos na compara c ao, e de como s ao tratadas tuplas onde os atributos envolvidos na compara c ao n ao t em valor correspondente na outra rela c ao.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

68 / 83

Opera c oes Relacionais Bin arias

Variantes da Jun c ao

Opera c oes Relacionais Bin arias


Jun c ao-

AtrR AtrS

Opera c ao de Jun c ao- R

A opera c ao de jun c ao (ou -join), permite usar qualquer operador v alido no dom nio dos atributos comparados. Essa e a opera c ao de jun c ao mais gen erica e ex vel, mas tamb em a mais lenta. Na opera c ao de Jun c ao-, os atributos envolvidos na express ao de compara c ao aparecem ambos na rela c ao resultado, e tuplas sem valores correspondentes em ambas as rela c oes nos atributos envolvidos na compara c ao n ao aparecem no resultado.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

69 / 83

Opera c oes Relacionais Bin arias

Variantes da Jun c ao

Opera c oes Relacionais Bin arias


Equi-Jun c ao
AtrR =AtrS AtrR ,AtrS

Opera c ao de Equi-Jun c ao- R S ou R S comum que a opera E c ao de compara c ao numa jun c ao seja a igualdade (=). Isso e interessante, porque com isso pode-se simplicar o algoritmo de compara c ao. Portanto e interessante dispor de uma opera c ao de jun c ao equivalente ` a Jun c ao-, mas que compare todos os atributos envolvidos com o operador igual (=). Essa opera c ao e chamada Equi-jun c ao (ou Equi-join). Tal como na opera c ao de jun c ao-, os atributos envolvidos na express ao de compara c ao aparecem ambos na rela c ao resultado, o que resulta em pares de atributos com valores iguais na rela c ao resultado (mas n ao necessariamente de mesmo tipo de dados). Tuplas sem valores correspondentes em ambas as rela c oes nos atributos envolvidos na compara c ao tamb em n ao aparecem no resultado.
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 70 / 83

Opera c oes Relacionais Bin arias

Variantes da Jun c ao

Opera c oes Relacionais Bin arias


Jun c ao Natural
AtrR ,AtrS Atr

Opera c ao de Jun c ao Natural R S ou R S Como os atributos comparados numa opera c ao de Equi-Jun c ao aparecem em pares com valores id enticos na rela c ao resultado, um de cada par pode ser eliminado. A opera c ao de jun c ao natural (ou natural join) e semelhante ` a opera c ao de Equi-Jun c ao, por em dos atributos comparados por igualdade, apenas os origin arios de uma das rela c oes operadas aparecem na rela c ao resultado. Para que a jun c ao natural possa ser usada, os atributos comparados t em que ser do mesmo tipo de dados. Na opera c ao Jun c ao Natural R S , dos atributos envolvidos na compara c ao aparecem apenas os origin arios da rela c ao da esquerda R na rela c ao resultado. Tuplas sem valores correspondentes em ambas as rela c oes nos atributos envolvidos na compara c ao tamb em n ao aparecem no resultado.
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 71 / 83

Opera c oes Relacionais Bin arias

Variantes da Jun c ao

Opera c oes Relacionais Bin arias


Jun c oes Internas

Jun c ao Interna As tr es formas de jun c ao apresentadas sempre emparelham pares de valores existentes em ambas as rela c oes. Por isso s ao chamadas Jun c oes Internas.
AtrR AtrS

Jun c ao- R

S
AtrR =AtrS AtrR ,AtrS

Equi-Jun c ao R

S ou R
AtrR ,AtrS

S
Atr

Jun c ao Natural R S ou R S

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

72 / 83

Opera c oes Relacionais Bin arias

Jun c oes Externas

Opera c oes Relacionais Bin arias


Jun c oes Externas

Existem situa c oes em que e interessante listar tamb em as tuplas de uma rela c ao que n ao t em valores correspondentes na outra rela c ao. Para isso, existe a chamada jun c ao externa. Ela e semelhante ` a Jun c ao Natural, por em os valores de uma rela c ao que n ao podem ser emparelhados com os valores na outra rela c ao s ao repassados para o resultado com valor nulo nos atributos oriundos da outra rela c ao.
AtrR =AtrS

O s mbolo da Jun c ao externa e: R S Essa e a chamada Jun c ao Externa Completa (full outer join). Se for necess ario que apare cam as tuplas sem correspond encia de apenas uma das rela c oes, podem ser usadas:
AtrR =AtrS

Jun c ao Externa ` a Esquerda (left outer join), Jun c ao Externa ` a Direita (right outer join),
Grupo de Bases de Dados e Imagens () Algebra Relacional

AtrR =AtrS

1S ou R 2S .
R
GBdI-ICMC-USP 73 / 83

Opera c oes Relacionais Bin arias

Jun c oes Externas

Opera c oes Relacionais Bin arias


Jun c oes Externas Exemplo

Por exemplo, seja a consulta:


Listar todas as disciplinas, cada uma com os respectivos alunos de computa c ao que nela se matricularam. onde as rela c oes t em o seguinte esquema: Aluno = {Nome, Idade, Curso} Matricula = {NomeA, Disciplina, Nota}

A resposta corresponde ` a seguinte express ao: {Disciplina,Nome } (curso =computacao ) Aluno

(Nome =NomeA)

2Matricula

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

74 / 83

Opera c oes Relacionais Bin arias

Jun c oes Externas

Opera c oes Relacionais Bin arias


Jun c oes Externas Exemplo

Listar todas as disciplinas, cada uma com os respectivos alunos de computa c ao que nela se matricularam.
(Nome =NomeA)

{Disciplina,Nome }

(curso =computacao ) Aluno

2Matricula

Aluno = {Nome, Idade, Curso} = {<Zeca, 25, computa c~ ao>, <Zico, 18, eletronica>, <Juca, 21, odontologia>, <Tuca, 18, computa c~ ao>} Matricula = {NomeA, Disciplina, Nota}= <Zeca, SCE111, 8.0>, <Zeca, SCE112, 9.0>, <Zico, SCE112, 8.5>, <Juca, SCE113, 8.0>, <Tuca, SCE114, 7.0>}
Grupo de Bases de Dados e Imagens () Algebra Relacional

Resultado:
Result={Disciplina, <SCE111, <SCE112, <SCE112, <SCE113, <SCE114, Nome} = Zeca>, Zeca>, >, >, Tuca>}

GBdI-ICMC-USP

75 / 83

Opera c oes Relacionais Bin arias

Divis ao

Opera c oes Relacionais Bin arias


Divis ao

Opera c ao de Divis ao R S Outra Opera c ao Relacional Bin aria, sem uma liga c ao intuitiva direta com o produto cartesiano (embora sua deni c ao conceitual o utilize), e a chamada Divis ao: T R S A rela c ao S deve ter como atributos um subconjunto dos atributos da rela c ao R , ou seja: T (A) R (A B ) S (B ) A opera c ao divis ao pode ser intuitivamente percebida como uma divis ao inteira, em que se buscam os registros T (A) cujos valores R (B ) ocorrem juntamente com todos os valores S (B ). Isto e: para cada valor T (A) existe uma sub-rela c ao S (B ) completa em R (A B ).
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 76 / 83

Opera c oes Relacionais Bin arias

Divis ao

Opera c oes Relacionais Bin arias


Divis ao Exemplo

Exemplo: Quais alunos cursam todas as disciplinas ministradas pelo Prof. Ad ao?. Resposta: {NomeA,Disciplina} Matricula {Disciplina} (Nomeprof =Adao ) Aulas
Nota} = 8.5>, 8.0>, 7.5>, 5.2>, 6.0>, 7.0>} =

Matricula= {NomeA, Disciplina, {<Zeca, SCE-125, <Zeca, SCE-148, <Zeca, SCE-180, <Zico, SCE-148, <Juca, SCE-125, <Juca, SCE-148, Aulas = {NomeProf, Disciplina} {<Ad~ ao, SCE-125>, <Ad~ ao, SCE-148>, <Eva, SCE-180>}
Grupo de Bases de Dados e Imagens ()

Temp 1 {Disciplina} (Nomeprof =Adao ) Aulas


{<SCE125>, <SCE148>}

Algebra Relacional

GBdI-ICMC-USP

77 / 83

Opera c oes Relacionais Bin arias

Divis ao

Opera c oes Relacionais Bin arias


Divis ao Exemplo

Exemplo: Quais alunos cursam todas as disciplinas ministradas pelo Prof. Ad ao?. Resposta: {NomeA,Disciplina} Matricula {Disciplina} (Nomeprof =Adao ) Aulas

Temp2= {NomeA, Disciplina} = {<Zeca, SCE-125>, <Zeca, SCE-148>, <Zeca, SCE-180>, <Zico, SCE-148>, <Juca, SCE-125>, <Juca, SCE-148>} Temp1 = {Disciplina} = = {<SCE125>, <SCE148>}
Grupo de Bases de Dados e Imagens () Algebra Relacional

Temp 2 Temp 1
{<Zeca>, <Juca>}

GBdI-ICMC-USP

78 / 83

Opera c oes Relacionais Bin arias

Divis ao

Propriedades das Opera c oes Relacionais Bin arias


Propriedades do operador Produto Cartesiano

Propriedades do operador Produto Cartesiano: Do ponto de vista da Algebra Relacional, o operador de Produto Cartesiano e comutativo, isto e assumindo que R = {A} e S = {B } ent ao R S = {A} {B } e portanto vale a propriedade comutativa: R S =S R O operador de Produto Cartesiano e associativo: (R S ) T = R (S T ) O operador de Produto Cartesiano n ao e idempotente: R R =R

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

79 / 83

Opera c oes Relacionais Bin arias

Propriedades

Propriedades das Opera c oes Relacionais Bin arias


Propriedades do operador de Jun c ao

Propriedades do operador de Jun c ao: O operador de Jun c ao e comutativo:


A A

S =S

O operador de Jun c ao e associativo: Se os atributos envolvidos nas compara c oes A est ao apenas nas rela c oes R e S , e os atributos envolvidos nas compara c oes B est ao apenas nas rela c oes S e T , ent ao
A B A B

T =R

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

80 / 83

Opera c oes Relacionais Bin arias

Propriedades

Propriedades das Opera c oes Relacionais Bin arias


Distributividade entre Operadores Un arios e Bin arios e

Distributividade entre Operadores Un arios ( e ) e Operadores Bin arios ( e :) Seja f (A) um operador un ario ( ou ) Seja um operador bin ario ( , , , ou ) Ent ao, a propriedade da distributividade f (R S ) = f (R ) f (S ) pode ser usada para antecipar ou atrasar uma sele c ao ou proje c ao em rela c ao ao operador bin ario, desde que as opera c oes un arias incorporem as condi c oes/atributos necess arios ` a opera c ao bin aria. Veja que para ser poss vel utilizar , e e necess ario que as rela c oes envolvidas sejam compat veis em dom nio.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

81 / 83

Opera c oes Relacionais Bin arias

Propriedades

Propriedades das Opera c oes Relacionais Bin arias


Distributividade entre Operadores Un arios e Bin arios e

Portanto, as seguintes regras s ao v alidas:


(A) (R (A) (R S ) = (A) R S ) = (A) R (A) S (A) S (A) (R (A) (R S ) = (A) R S ) = (A) R (A) S (A) S

(A) (R S ) = (A) R (A) S (A) (R S ) = (A) R (A) S (A) (R S ) = (A) R (A) S

(A) (R S ) = (A) R (A) S (A) (R S ) = (A) R (A) S (A) (R S ) = (A) R (A) S

Note-se que as opera c oes tradicionais sobre escalares (+, , , / e potencia c ao), bem como as opera c oes booleanas, especialmente sobre predicados, continuam v alidas e podem ser usadas na transforma c ao de express oes na algebra relacional.

Grupo de Bases de Dados e Imagens ()

Algebra Relacional

GBdI-ICMC-USP

82 / 83

Bases de Dados Algebra Relacional

Caetano Traina Jr.

Grupo de Bases de Dados e Imagens Instituto de Ci encias Matem aticas e de Computa c ao Universidade de S ao Paulo - S ao Carlos caetano@icmc.usp.br
31 de agosto de 2010 S ao Carlos, SP - Brasil

FIM
Grupo de Bases de Dados e Imagens () Algebra Relacional GBdI-ICMC-USP 83 / 83

You might also like