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 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 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 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 Na linguagem SQL o operador Seleção corresponde a cláusula WHERE:
SELECT * FROM Funcionario WHERE Departamento = 'Administrativo' AND Nome = 'João'
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.
Categoria:Álgebra relacional