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