|
NOME | SOBREN | SAL |
José | da Silva | 7000 |
Cecília | Ortiz Rezende | 3200 |
Pedro | Silvestre | 2800 |
Felipe | Guilhermino | 1800 |
Luciana | Feitosa | 1500 |
Fabio | Santos Silva | 1500 |
Elaine | Cristina | 2500 |
Cleiton | Fernandes | 2200 |
Aninhar de operações e renomear de atributos
Podemos aninhar as operações e produzir novos resultados sem a necessidade de sucessivas operações. Imaginem se nos interessa apenas o nome, sobrenome e salário dos funcionários do departamento número 3. Vejamos como ficaria a expressão em álgebra relacional:
1 =>Relação = Tabela, entidade, na terminologia formal de banco de dados.
2 =>Tupla = Linha da tabela, registro, na terminologia formal de banco de dados.
NOME, SOBRENOME, SAL ( DEPTO=3 (EMPREGADO)), que nos produziria o seguinte resultado:
NOME | SOBREN | SAL |
Cecília | Ortiz Rezende | 3200 |
Felipe | Guilhermino | 1800 |
Elaine | Cristina | 2500 |
Cleiton | Fernandes | 2200 |
Podemos ainda, criar relações intermediárias, dando um nome para cada uma delas e finalmente chegando ao resultado desejado:
R1 <---- DEPTO=3 (EMPREGADO)
E logo após:
RESULT <----- NOME, SOBRENOME, SAL (R1), onde RESULT produziria o mesmo resultado da expressão aninhada.
E finalmente, ainda podemos renomear os atributos que aparecerão na relação resultante, para isso, basta identificar o novo nome para os atributos:
RESULT(Nome, Sobrenome, Salário) <----- NOME, SOBRENOME, SAL ( DEPTO=3 (EMPREGADO))
Result:
NOME | SOBREN | SAL |
Cecília | Ortiz Rezende | 3200 |
Felipe | Guilhermino | 1800 |
Elaine | Cristina | 2500 |
Cleiton | Fernandes | 2200 |
Revendo a teoria dos conjuntos
Vamos descrever as funções da álgebra relacional pelas operações que vieram da teoria dos conjuntos:
União (Union)
O operador de união cria uma relação partindo de duas outras, levando as tuplas comuns e não comuns a ambas, desta forma aparecerão no resultado somente linhas únicas de uma ou outra relação e as informações duplicadas aparecerão somente uma vez.
Uma característica é que somente é possível utilizar este operador caso as tabelas de origem possuam compatibilidade de união, ou seja, as tabelas devem ser equivalentes e gerem o mesmo tipo de resultado.
Representação gráfica:
Simbologia:
Sintaxe: (Relação 1) (Relação 2)
Exemplo: Imagine que precisemos recuperar A identificação de todos os empregados que trabalham no departamento 3 ou supervisione diretamente um empregado que trabalhe no departamento 3. Faremos as seguintes operações:
DEPTO3 <---- DEPTO=3 (EMPREGADO)
DEPTO3
RESULT1 <---- ID_EMP (DEPTO3)
RESULT1
ID_EMP |
12584-7 |
17987-5 |
16257-2 |
15234-1 |
RESULT2 <---- ID_GER (DEPTO3)
RESULT2
ID_GER |
17206-2 |
12584-7 |
RESULT(ID) <----- (RESULT1) (RESULT2)
RESULT
ID |
12584-7 |
17987-5 |
16257-2 |
15234-1 |
17206-2 |
Somente foi possível realizar a união entre RESULT1 e RESULT2, pois, apesar dos atributos serem diferentes, o número e o tipo de atributos são os mesmos, possibilitando uma compatibilidade de união.
Intersecção (Intersection)
A relação criada pela operação de intersecção será o resultado de todas as tuplas que pertençam a ambas as relações presentes na operação.
Representação gráfica:
Simbologia:
Sintaxe: (Relação 1) (Relação 2)
Como exemplo, considere as seguintes relações:
ALUNOS
NOME |
SOBRENOME |
Cecília |
Ortiz Rezende |
João |
da Silva |
Laura |
Nogueira |
Elaine |
Cristina |
Paulo |
Vidigal |
Pedro |
Teodoro |
Sandra |
Oliveira |
Marcio |
Santos |
Elisabeth |
de Souza |
INSTRUTORES
NOME |
SOBRENOME |
Joel |
Nunes |
Marcio |
Santos |
Paula |
Andrade |
Reinaldo |
Fagundes |
Cecília |
Ortiz Rezende |
Desta forma, uma operação de intersecção entre as duas relações, seria executada da seguinte forma:
RESULTADO <---- (ALUNOS) (INSTRUTORES) e produziria a seguinte relação:
RESULTADO
NOME |
SOBRENOME |
Marcio |
Santos |
Cecília |
Ortiz Rezende |
Uma observação extremamente relevante a ser feita é que ambas as operações de união ou intersecção são:
Conclusões
Vimos neste artigo como efetuar consultas através da álgebra relacional.
Ricardo Rezende (ricardo@sqlmagazine.com.br) é DBA Oracle na IBM do Brasil em projeto internacional, possui cursos oficiais pela Oracle University, consultor independente de Bancos de Dados, subeditor da revista SQL Magazine, editor do Website da SQL Magazine e professor licenciado pelo Centro Estadual de Educação Tecnológica “Paula Souza” na unidade de Taubaté-SP. |
Todos
os direitos reservados: DevMedia Group
SQL Magazine
- 2004