Seleção (álgebra relacional)
Esta página ou seção foi marcada para revisão devido a incoerências ou dados de confiabilidade duvidosa.Dezembro de 2011) ( |
O operador de Seleção, indicado por σ (a letra grega sigma minúscula), é um dos operadores fundamentais da Álgebra relacional. É um operador que tem como resultado um subconjunto estruturalmente idêntico a de um conjunto inicial fornecido como argumento, mas apenas com os elementos do conjunto original que atendem a uma determinada condição (também chamada de predicado). A seleção pode ser entendida como uma operação que filtra as linhas de uma tabela. É uma operação unária, já que opera sobre um único conjunto de dados de entrada.
Sintaxe
[editar | editar código-fonte]Notação do operador:
σ (predicado) (Relação)
Onde, predicado é o conjunto de expressões lógicas que devem ser satisfeitas para uma linha que faça parte do subconjunto resultante. E relação é o conjunto de entrada (inicial).
As expressões lógicas podem ser formadas por operadores lógicos e relacionais:
Os operadores lógicos são:
• ^ (and)
• v (or)
• ¬ (not)
Os operadores relacionais são:
• = (Igual a)
• < (Menor que)
• <= (Menor ou igual a)
• > (Maior que)
• >= (Maior ou igual a)
• <> (Diferente de)
Exemplos com relações
[editar | editar código-fonte]Levando em consideração a Relação R como relação de entrada, ao aplicar o operador Seleção, vamos obter uma nova Relação como saída (Relação S, Relação T e Relação U).
Relação R:
C1 | C2 | C3 |
1 | A | 10,00 |
2 | A | 50,00 |
3 | B | 98,54 |
4 | C | 87,48 |
Aplicando o operador Seleção:
σ C2 = "A" (R)
Temos como resultado a Relação S:
Relação S:
C1 | C2 | C3 |
1 | A | 10,00 |
2 | A | 50,00 |
No exemplo acima estamos buscando todas as linhas da Relação R onde a coluna C2 contenha o seu valor igual a "A".
Outros exemplos:
σ C2 = "A" ^ C3 >= 50,00 (R)
Temos como resultado a Relação T:
Relação T:
C1 | C2 | C3 |
2 | A | 50,00 |
No exemplo acima estamos buscando todas as linhas da Relação R onde a coluna C2 contenha o seu valor igual a "A" e a coluna C3 contenha seu valor maior ou igual a 50,00.
σ C2 = "A" v C3 >= 50,00 (R)
Temos como resultado a Relação U:
Relação U:
C1 | C2 | C3 |
2 | A | 50,00 |
3 | B | 98,54 |
4 | C | 87,48 |
No exemplo acima estamos buscando todas as linhas da Relação R onde a coluna C2 contenha o seu valor igual a "A" ou a coluna C3 contenha seu valor maior ou igual a 50,00.
Exemplos com tabelas reais
[editar | editar código-fonte]Levando em consideração a Tabela funcionario como Relação de entrada, ao aplicar o operador Seleção, vamos obter uma nova Relação como saída (Relação S e Relação T).
Funcionario:
ID | Departamento | Nome | Salario |
1 | Administrativo | João | 980,00 |
2 | Suporte | João | 710,20 |
3 | Suporte | Pedro | 790,20 |
4 | Desenvolvimento | José | 1290,00 |
5 | Desenvolvimento | Alberto | 1012,86 |
6 | Análise | Marcos | 2598,05 |
7 | Desenvolvimento | Zélio | 1579,96 |
σ Nome <> "João" (Funcionario)
Temos como resultado a Relação S:
Relação S:
ID | Departamento | Nome | Salario |
3 | Suporte | Pedro | 790,20 |
4 | Desenvolvimento | José | 1290,00 |
5 | Desenvolvimento | Alberto | 1012,86 |
6 | Análise | Marcos | 2598,05 |
7 | Desenvolvimento | Zélio | 1579,96 |
No exemplo acima estamos buscando todas as linhas da Tabela funcionario onde o Nome do funcionário seja diferente de "João".
σ Departamento = "Desenvolvimento" ^ Salario < 1290,00 (Funcionario)
Temos como resultado a Relação T:
Relação T:
ID | Departamento | Nome | Salario |
5 | Desenvolvimento | Alberto | 1012,86 |
No exemplo acima estamos buscando todas as linhas da Tabela Funcionario onde o Departamento do funcionário seja igual a "Desenvolvimento" e que tenha salário inferior a "1290,00".
Utilização em SQL
[editar | editar código-fonte]Na linguagem SQL o operador Seleção corresponde a cláusula WHERE:
SELECT * FROM Funcionario WHERE Departamento = 'Administrativo' AND Nome = 'João'
Referências
- «Álgebra relacional» (PDF). , Página visitada em 01/06/2009.
- Professor Ronaldo S. Mello, Disciplina de Banco de Dados I, Página visitada em 05/06/2009.
- Professora Jiani C. Cardoso, Disciplina de Bancos de Dados I, Página visitada em 14/06/2009.