Seleção (álgebra relacional)

operador fundamental da Álgebra relacional

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

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

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

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

Na linguagem SQL o operador Seleção corresponde a cláusula WHERE:

SELECT * FROM Funcionario WHERE Departamento = 'Administrativo' AND Nome = 'João'

Referências

  Este artigo sobre banco de dados é um esboço. Você pode ajudar a Wikipédia expandindo-o.