Aula 09
Álgebra relacional
Leonardo dos Santos Araujo
[email protected]
Índice
 Conceitos;
 Operadores:

Operadores da álgebra original:
 Seleção;
 Projeção;
 União;
 Interseção;
 Diferença;
 Produto cartesiano;
 Junção;
 Divisão.
Conceitos
é uma linguagem de consulta procedural [01];
consiste em um conjunto de operações tendo
como entrada uma ou duas relações e
produzindo, como resultado, uma nova
relação. [01];
é uma coleção de operadores que tomam
relações como seus operandos e retomam
uma relação como seu resultado [02];
Operadores
 Podem
ser classificados como [02]:
 Operadores de conjuntos tradicionais: união,
interseção, diferença e produto cartesiano;
 Operadores relacionais especiais: seleção,
projeção, junção e divisão.
 Esses
8 operadores acima são os operadores da
álgebra original. Outros operadores úteis
surgiram com o tempo e foram sendo
incorporados ao conjunto original [02].
Operadores - Seleção
 Seleciona
tuplas que satisfaçam um determinado
predicado [01];
 Usamos a letra grega minúscula sigma (σ) para
denotar seleção [01];
 O predicado aparece subscrito a σ [01];
 O argumento da relação é dado entre parênteses,
seguindo o σ [01];
 É um operador unário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Seleção
Exemplo:
identificador
nome
cidade
01 Neuma Maria Medeiros Florêncio
Currais Novos
02 Mariana Regina Soares dos Santos
Santa Cruz
03 Magnum Rocha
Currais Novos
04 Gilvandelma Marques de Lima
Currais Novos
05 Aparecida Lopes de Medeiros
Santa Cruz
06 Sarah Raquel da R. Silva
Currais Novos
Figura 01: tabela Alunos de um banco de dados.
σ cidade = “Santa Cruz” (Alunos)
Operadores - Seleção
Exemplo:
identificador
nome
cidade
02 Mariana Regina Soares dos Santos
Santa Cruz
05 Aparecida Lopes de Medeiros
Santa Cruz
Figura 02: resultado da operação de seleção.
Operadores - Projeção
 A operação
Projeção retorna o argumento da
relação, deixando de lado certos atributos [01];
 Usamos a letra grega minúscula pi (π) para
denotar projeção [01];
 O predicado aparece subscrito a π [01];
 O argumento da relação é dado entre parênteses,
seguindo o π [01];
 É um operador unário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Projeção
Exemplo:
identificador
nome
cidade
01 Neuma Maria Medeiros Florêncio
Currais Novos
02 Mariana Regina Soares dos Santos
Santa Cruz
03 Magnum Rocha
Currais Novos
04 Gilvandelma Marques de Lima
Currais Novos
05 Aparecida Lopes de Medeiros
Santa Cruz
06 Sarah Raquel da R. Silva
Currais Novos
Figura 03: tabela Alunos de um banco de dados.
π identificador, nome (Alunos)
Operadores - Projeção
Exemplo:
identificador
nome
01 Neuma Maria Medeiros Florêncio
02 Mariana Regina Soares dos Santos
03 Magnum Rocha
04 Gilvandelma Marques de Lima
05 Aparecida Lopes de Medeiros
06 Sarah Raquel da R. Silva
Figura 04: resultado da operação de projeção.
Operadores - União
 A operação
União retorna um conjunto com a
união dos dois conjuntos;
 Usamos o símbolo (U) para denotar união [01];
 O operador U aparece entre os dois conjuntos
[01];
 É um operador binário;
 Tuplas duplicadas são eliminadas [01].
Operadores - União
Exemplo:
identificador
nome
cidade
01 Neuma Maria Medeiros Florêncio
Currais Novos
02 Mariana Regina Soares dos Santos
Santa Cruz
03 Magnum Rocha
Currais Novos
04 Gilvandelma Marques de Lima
Currais Novos
05 Aparecida Lopes de Medeiros
Santa Cruz
06 Sarah Raquel da R. Silva
Currais Novos
Figura 05: tabela Alunos de um banco de dados.
Operadores - União
Exemplo:
identificador
nome
cidade
01 Isanio Lopes Araujo Santos
Natal
02 Leonardo dos Santos Araujo
Natal
03 Bruno Cruz de Oliveira
Natal
Figura 06: tabela Professores de um banco de dados.
π nome (Alunos) U π nome (Professores)
Operadores - União
Exemplo:
nome
Neuma Maria Medeiros Florêncio
Mariana Regina Soares dos Santos
Magnum Rocha
Gilvandelma Marques de Lima
Aparecida Lopes de Medeiros
Sarah Raquel da R. Silva
Isanio Lopes Araujo Santos
Leonardo dos Santos Araujo
Bruno Cruz de Oliveira
Figura 07: resultado da operação de união.
Operadores - Interseção
 A operação
Interseção retorna um conjunto com
a interseção dos dois conjuntos;
 Usamos o símbolo (∩) para denotar união [01];
 O operador ∩ aparece entre os dois conjuntos
[01];
 É um operador binário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Interseção
Exemplo:
identificador
nome
nucleo
01 José Diego Saraiva
Santa Cruz
02 Leonardo dos Santos Araujo
Santa Cruz
03 Bruno Cruz de Oliveira
Santa Cruz
04 Gilbran Silva de Andrade
Santa Cruz
05 José Diego Saraiva
Nova Cruz
06 Bruno Cruz de Oliveira
Nova Cruz
07 Gilbran Silva de Andrade
Nova Cruz
08 Bartira Paraguaçu Falcão Dantas Rocha
Nova Cruz
Figura 08: tabela dos professores que ministram aula na UERN.
Operadores - Interseção
Exemplo:
π nome (σ cidade = “Santa Cruz” (Professores) )
∩
π nome (σ cidade = “Nova Cruz” (Professores) )
Operadores - Interseção
Exemplo:
nome
José Diego Saraiva
Bruno Cruz de Oliveira
Gilbran Silva de Andrade
Figura 09: resultado da operação de interseção.
Operadores - Diferença
 A operação
Diferença retorna um conjunto com
a Diferença entre dois conjuntos;
 Usamos o símbolo (-) para denotar diferença
[01];
 O operador - aparece entre os dois conjuntos
[01];
 Para este operador é importante lembrar que a
ordem é importante entre os operandos;
 É um operador binário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Diferença
Exemplo:
identificador
nome
nucleo
01 José Diego Saraiva
Santa Cruz
02 Leonardo dos Santos Araujo
Santa Cruz
03 Bruno Cruz de Oliveira
Santa Cruz
04 Gilbran Silva de Andrade
Santa Cruz
05 José Diego Saraiva
Nova Cruz
06 Bruno Cruz de Oliveira
Nova Cruz
07 Gilbran Silva de Andrade
Nova Cruz
08 Bartira Paraguaçu Falcão Dantas Rocha
Nova Cruz
Figura 10: tabela dos professores que ministram aula na UERN.
Operadores - Diferença
Exemplo:
π nome (σ cidade = “Santa Cruz” (Professores) )
π nome (σ cidade = “Nova Cruz” (Professores) )
Operadores - Diferença
Exemplo:
nome
Leonardo dos Santos Araujo
Figura 11: resultado da operação de diferença entre dois conjuntos.
Operadores - Diferença
Exemplo com a troca dos operandos:
π nome (σ cidade = “Nova Cruz” (Professores) )
π nome (σ cidade = “Santa Cruz” (Professores) )
Operadores - Diferença
Exemplo com a troca dos operandos:
nome
Bartira Paraguaçu Falcão Dantas Rocha
Figura 12: resultado da operação de diferença entre dois conjuntos.
Operadores - Produto cartesiano
 A operação
Produto cartesiano permite-nos
combinar duas relações quaisquer [01];
 Usamos o símbolo (x) para representar o produto
cartesiano [01];
 O operador x aparece entre os dois conjuntos;
 É um operador binário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Produto cartesiano
Exemplo:
identificador
nome
cidade
01 Neuma Maria Medeiros Florêncio
Currais Novos
02 Mariana Regina Soares dos Santos
Santa Cruz
03 Magnum Rocha
Currais Novos
Figura 13: tabela Alunos de um banco de dados.
identificador
nome
cidade
01 Isanio Lopes Araujo Santos
Natal
02 Leonardo dos Santos Araujo
Natal
03 Bruno Cruz de Oliveira
Natal
Figura 14: tabela Professores de um banco de dados.
Operadores - Produto cartesiano
Exemplo:
π alunos.nome (Alunos) x π professores.nome (Professores)
Operadores - Produto cartesiano
Exemplo:
alunos.nome
professores.nome
Neuma Maria Medeiros Florêncio
Isanio Lopes Araujo Santos
Neuma Maria Medeiros Florêncio
Leonardo dos Santos Araujo
Neuma Maria Medeiros Florêncio
Bruno Cruz de Oliveira
Mariana Regina Soares dos Santos
Isanio Lopes Araujo Santos
Mariana Regina Soares dos Santos
Leonardo dos Santos Araujo
Mariana Regina Soares dos Santos
Bruno Cruz de Oliveira
Magnum Rocha
Isanio Lopes Araujo Santos
Magnum Rocha
Leonardo dos Santos Araujo
Magnum Rocha
Bruno Cruz de Oliveira
Figura 15: resultado da operação de produto cartesiano.
Operadores - Junção
 Existem
diversas variedades da operação de junção.
Porém, de longe a mais importante é a chamada junção
natural [02];
 A operação Junção é utilizada para unir relações, assim
como o Produto cartesiano. A Junção Natural (mais
comum) realiza a união em relações que apresentam
atributos com mesmo nome e valores iguais;
 Usamos o símbolo ( ) para representar a junção [01];
 O operador
aparece entre os dois conjuntos [01];
 É um operador binário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Junção
Exemplo:
id_professor
nome_professor
id_curso
02 Leonardo dos Santos Araujo
02
03 Bruno Cruz de Oliveira
02
04 Bruno Cruz de Oliveira
03
Figura 16: tabela Professores de um banco de dados.
id_curso
nome_curso
nucleo
01 Ciência da Computação
Natal
02 Ciência da Computação
Santa Cruz
03 Ciência da Computação
Nova Cruz
Figura 17: tabela Cursos de um banco de dados.
Operadores - Junção
Exemplo:
Professores
id_professor nome_professor id_curso
Cursos
nome_curso
nucleo
02 Leonardo...
02
Ciência da Computação Santa Cruz
03 Bruno Cruz...
02
Ciência da Computação Santa Cruz
04 Bruno Cruz...
03
Ciência da Computação Nova Cruz
Figura 18: resultado da operação de junção.
Operadores - Divisão
 A operação
Divisão é usada nas consultas nas
quais se emprega a frase “para todos” [01];
 Usamos o símbolo (÷) para representar a divisão
[01];
 O operador ÷ aparece entre os dois conjuntos;
 Para este operador é importante lembrar que a
ordem é importante entre os operandos;
 É um operador binário;
 Tuplas duplicadas são eliminadas [01].
Operadores - Divisão
Exemplo:
identificador
nome
nucleo
01 José Diego Saraiva
Santa Cruz
02 Leonardo dos Santos Araujo
Santa Cruz
03 Bruno Cruz de Oliveira
Santa Cruz
04 Gilbran Silva de Andrade
Santa Cruz
05 José Diego Saraiva
Nova Cruz
06 Bruno Cruz de Oliveira
Nova Cruz
07 Gilbran Silva de Andrade
Nova Cruz
08 Bartira Paraguaçu Falcão Dantas Rocha
Nova Cruz
Figura 19: tabela Professores que ministram aula na UERN.
Operadores - Divisão
Exemplo:
identificador
nucleo
01 Nova Cruz
02 Santa Cruz
Figura 20: tabela Interiores de um banco de dados.
π nome, nucleo (Professores) ÷ π nucleo (Interiores)
Operadores - Divisão
Exemplo:
nome
José Diego Saraiva
Bruno Cruz de Oliveira
Gilbran Silva de Andrade
Figura 18: resultado da operação de divisão.
Referências
 [01]
KORTH H. F., SILBERSCHATZ A. &
SUDARSHAN S. Sistema de Banco de Dados.
Editora Makron Books, 3ª Edição, 1999.
 [02]
DATE, C. J. Introdução a Sistemas de
Banco de Dados. Editora Elsevier, Tradução da
8ª Edição americana, 2004.
Download

Figura 01