Professional Documents
Culture Documents
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
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
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.
Algebra Relacional
GBdI-ICMC-USP
4 / 83
Conceitos fundamentais
Conceitos
Introdu c ao
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
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
Algebra Relacional
GBdI-ICMC-USP
8 / 83
Conceitos
Algebra Relacional
GBdI-ICMC-USP
10 / 83
Conceitos
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 ).
Algebra Relacional
GBdI-ICMC-USP
11 / 83
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)
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.
Algebra Relacional
GBdI-ICMC-USP
13 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
15 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
16 / 83
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>}
Algebra Relacional
GBdI-ICMC-USP
17 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
18 / 83
Algebra Relacional
GBdI-ICMC-USP
19 / 83
Dom(nome ) = char(30) Grau (Nome ) = 9630 Dom(Idade ) = int[0-149] Grau (Idade ) = 150 Dom(Curso ) = char(12) Grau (Curso ) = 9612
Algebra Relacional
GBdI-ICMC-USP
20 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
21 / 83
Algebra Relacional
GBdI-ICMC-USP
22 / 83
Grau ( Aluno) = (4 3 3) 4 = 32
Algebra Relacional
GBdI-ICMC-USP
23 / 83
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
Algebra Relacional
GBdI-ICMC-USP
24 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
26 / 83
Produto Cartesiano
Algebra Relacional
GBdI-ICMC-USP
Propriedades
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
Conceitos
Algebra Relacional
GBdI-ICMC-USP
30 / 83
Sele c ao
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.
Algebra Relacional
GBdI-ICMC-USP
31 / 83
Sele c ao
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.
Algebra Relacional
GBdI-ICMC-USP
32 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
33 / 83
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
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.
Algebra Relacional
GBdI-ICMC-USP
35 / 83
Proje c ao
Algebra Relacional
GBdI-ICMC-USP
36 / 83
Proje c ao
Intuitivamente, a opera c ao de Proje c ao pode ser vista como escolhendo-se algumas Colunas da tabela.
Algebra Relacional
GBdI-ICMC-USP
37 / 83
Proje c ao
Algebra Relacional
GBdI-ICMC-USP
38 / 83
Proje c ao
Algebra Relacional
GBdI-ICMC-USP
39 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
40 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
41 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
42 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
43 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
44 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
45 / 83
Exemplos
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.
Algebra Relacional
GBdI-ICMC-USP
46 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
47 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
48 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
49 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
50 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
51 / 83
Exemplos
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
Algebra Relacional
Exemplos
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
Algebra Relacional
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
54 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
55 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
56 / 83
Exemplos
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>}
Algebra Relacional
GBdI-ICMC-USP
57 / 83
Propriedades
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 >)
Algebra Relacional
GBdI-ICMC-USP
58 / 83
Propriedades
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
Algebra Relacional
GBdI-ICMC-USP
59 / 83
Propriedades
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
Algebra Relacional
GBdI-ICMC-USP
60 / 83
Propriedades
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)
Algebra Relacional
GBdI-ICMC-USP
61 / 83
Conceitos
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 ))
Algebra Relacional
GBdI-ICMC-USP
63 / 83
Conceitos
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.
Algebra Relacional
GBdI-ICMC-USP
64 / 83
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
Algebra Relacional
GBdI-ICMC-USP
65 / 83
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
Algebra Relacional
GBdI-ICMC-USP
66 / 83
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.
Algebra Relacional
GBdI-ICMC-USP
67 / 83
Variantes da 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.
Algebra Relacional
GBdI-ICMC-USP
68 / 83
Variantes da Jun c ao
AtrR AtrS
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.
Algebra Relacional
GBdI-ICMC-USP
69 / 83
Variantes da Jun c ao
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
Variantes da Jun c ao
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
Variantes da Jun c ao
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
Algebra Relacional
GBdI-ICMC-USP
72 / 83
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
(Nome =NomeA)
2Matricula
Algebra Relacional
GBdI-ICMC-USP
74 / 83
Listar todas as disciplinas, cada uma com os respectivos alunos de computa c ao que nela se matricularam.
(Nome =NomeA)
{Disciplina,Nome }
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
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
Divis ao
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 ()
Algebra Relacional
GBdI-ICMC-USP
77 / 83
Divis ao
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
Divis ao
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
Algebra Relacional
GBdI-ICMC-USP
79 / 83
Propriedades
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
Algebra Relacional
GBdI-ICMC-USP
80 / 83
Propriedades
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.
Algebra Relacional
GBdI-ICMC-USP
81 / 83
Propriedades
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.
Algebra Relacional
GBdI-ICMC-USP
82 / 83
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