Académique Documents
Professionnel Documents
Culture Documents
lgebra Relacional
um conjunto bsico de operaes do modelo relacional. Essas operaes permitem ao usurio especificar requisitos bsicos de consulta aos dados armazenados no banco de dados.
Uma consulta feita sobre uma relao ou mais relaes e o seu resultado de uma consulta uma nova relao. A lgebra apresenta um conjunto mnimo de operadores relacionais que podem ser combinados para extrair da base de dados todas as informaes ali armazenadas. As operaes da lgebra relacional so normalmente divididas em dois grupos.
O primeiro deles inclui um conjunto de operaes da teoria de conjuntos. As operaes so UNIO, INTERSEO, DIFERENA e PRODUTO CARTESIANO. O segundo grupo consiste de operaes desenvolvidas especificamente para bases de dados relacionais, tais como: SELEO, PROJEO e JUNO entre outras.
Pedido Itens_Pedido
Codped 001 001 002 002 003 003 003 004 004 005 Codprod P1 P2 P1 P2 P2 P3 P4 P3 P5 P1 Qtde 1 2 3 4 5 6 7 8 9 10 Codped 001 002 003 004 005 Dtped 22/10/04 22/10/04 23/01/05 02/02/05 02/02/05
Produto
Codpro P1 P2 P3 P4 P5 nomepro Vassoura Sabo Detergent e Esponja Amaciant e precopro 1,00 3,45 0,90 0,50 5,00
Operao Seleo ()
A operao de seleo, representada graficamente pela letra grega sigma , usada para selecionar um subconjunto de linhas de uma tabela que satisfaz uma condio de seleo, tambm chamada de predicado.
O predicado aparece subscrito a e o argumento, a relao de entrada, representada entre parnteses. Forma Geral: <condio de seleo> (<nome da relao>)
Em geral, os predicados permitem expressar comparaes do tipo <,>, , , e = . Tambm pode-se utilizar os operadores lgicos AND, OR, NOT. Por exemplo, a seleo de um subconjunto de tuplas da relao CLIENTE que possua crdito maior ou igual a R$50,00
Credcli >=50 (Cliente)
Codcli 23 35 44 57 Nomcli Alice Joyce Marcos Joaquim Endcli Rua X Rua Y Rua Z Rua D fonecli 3611090 36131111 36112200 36251111 Credcli 100,00 200,00 50,00 150,00 Stacli Bom Bom Mdio Mdio
Operao Projeo ()
A operao de projeo, representada graficamente pela letra grega pi , usada para selecionar um subconjunto de colunas (atributos) de uma tabela. Os atributos desejados como resultado aparecem subscritos a , e o argumento, a relao de entrada, representada entre parnteses. A forma geral do operador PROJEO :
<lista de atributos>
(<nome da relao>)
Por exemplo, suponha uma consulta que deseje listar apenas os nomes e os preos dos produtos:
nomepro,precopro
(Produto)
nomepro Vassoura Sabo Detergente Esponja Amaciante precopro 1,00 3,45 0,90 0,50 5,00
Seqncia de Operaes
Em geral, existe a necessidade de se aplicar vrias operaes da lgebra relacional uma aps a outra. Pode-se escrever essas operaes em apenas uma nica expresso da lgebra relacional ou aplicar uma nica operao por vez e criar relaes intermedirias. Neste ltimo caso, deve-se dar nomes s relaes intermedirias. Por exemplo, deseja-se recuperar os cdigos dos pedidos que foram feitos no dia 22/10/2004. Isto pode ser feito aplicando-se as operaes de SELEO E PROJEO: Codped (Dtped=22/10/04(Pedido)) Alternativamente, pode-se explicitar a seqncia de operaes, dando um nome para cada relao intermediria: R1 Dtped=22/10/04(Pedido) R2 Codped (R1)
Codped 001 002
Para resolver
Buscar os nomes e telefones dos clientes que possuem status timo. Buscar os cdigos dos clientes e dos pedidos feitos no mes de janeiro de 2005. Buscar todas as informaes de produtos que possuem preo maior do que R$ 20.00.
Compatibilidade de Unio
Duas relaes R(A1, A2, ..., An ) e S(B1 , B2 , ..., Bn) so unio compatvel se:
tiverem o mesmo grau n, e dom(Ai )=dom(Bi) para 1 i n.
Isso significa que as duas relaes tm o mesmo nmero de atributos e que cada par de atributos correspondentes tem o mesmo domnio.
RG 333444555 888665555
RUS
Operao de Interseco ()
Dadas duas relaes R e S, o resultado da operao de interseco, denotado por R S, uma relao que inclui todas as tuplas que so comuns a R e a S.
RG 333444555 888665555
RS
RG 333444555
RG 333444555 888665555
R-S
SSN
888665555
S-R
Observaes
As operaes unio e interseo so comutativas:
R S = S R e RS = S R.
Estas operaes podem ser aplicadas a qualquer nmero de relaes, e ambas so associativas:
R (S T) = (R S) T, e R (S T) = (R S) T.
Para resolver
Buscar todos os clientes que moram na rua x, y e z. Buscar todos os dados de todos os pedidos excetos aqueles feitos pelo cliente 44.
Codped 001 001 001 001 001 001 001 001 001 001 002 002 002 002 002 002 002 002 002 002 003 003 003 003 003 003 003 003 003 003 003 003 003 003 003 004 004 004 004 004 004 004 004 004 004 005 005 005
Codprod P1 P1 P1 P1 P1 P2 P2 P2 P2 P2 P1 P1 P1 P1 P1 P2 P2 P2 P2 P2 P2 P2 P2 P2 P2 P3 P3 P3 P3 P3 P4 P4 P4 P4 P4 P3 P3 P3 P3 P3 P5 P5 P5 P5 P5 P1 P1 P1
Qtde 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 10 10 10
Codpro P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 P1 P2 P3
nomepro Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente Esponja Amaciante Vassoura Sabo Detergente
precopro 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90 0,50 5,00 1,00 3,45 0,90
Resultado da Consulta
Codped 001 001 002 002 003 003 003 004 004 005
nomepro Vassoura Sabo Vassoura Sabo Sabo Detergente Esponja Detergente Amaciante Vassoura
Para resolver
Buscar os nomes e endereos dos clientes que fizeram pedidos Buscar os nomes dos produtos e as quantidades que estavam no pedido 003.
O resultado de JOIN uma relao Q com n+m atributos Q(A1, A2, ..., An ,B1 ,B2 , ..., Bm) nesta ordem; Q tem um tupla para cada combinao de tuplas - uma de R e uma de S- onde quer que a combinao satisfaa a condio join. Esta a principal diferena entre produto cartesiano e juno; Em juno, apenas combinaes de tuplas que satisfazem a condio de juno que aparecer no resultado, j no produto cartesiano, todas as combinaes de tuplas so includas no resultado. A condio de juno especificada sobre atributos de R e de S, e avaliada para cada combinao de tuplas. De uma forma geral, a juno de R e S representada por:
<condio de juno>
Observao
O exemplo utilizado para ilustrar o produto cartesiano pode ser especificado usando o operador JOIN trocando as duas operaes:
R1 Itens_Pedido X Produto R2 codpro= codprod (R1)
por
R1 Itens_Pedido
Produto
codpro=codpro