Escolar Documentos
Profissional Documentos
Cultura Documentos
Algebra Relacional
Algebra Relacional
- Opera%>es pri#rias: opera# sobre u#a :nica rela%&o: selec$D proBec$D rena#e; - Opera%>es binrias: opera# sobre duas rela%>es: unionD se$ differenceD car$esian produc$;
O resul$ado da sele%&o 7
- pode# ser usados co#para%>es do $ipo: JDDDKDDL e os conec$i os: FeH FouH ? Opera&'o (%O)ECT! deno$ada pela le$ra grega pi FHD es$a opera%&o re$orna a rela%&o co# so#en$e os a$ribu$os selecionadosD eli#inando as lin!as e# duplicidade; Os a$ribu$os aparece# ao lado de piD subscri$oD e a rela%&o aparece en$re par"n$eses;
E"! no#eMag"nciaDsaldoFagenciaH
nome_agencia NO)-+ SA,-+ 0OA-+ SA,-cidade_agencia No o )a#burgo S&o ,eopoldo 0or$o Alegre S&o ,eopoldo saldo -6''*' 1***(' +-*'.62 +-**(( agencia nome_agencia NO)-+ SA,-+ 0OA-+ SA,-saldo -6''*' 1***(' +-*'.62 +-**((
? Opera&'o UNION! considere a seguin$e consul$a: selecionar $odos os no#es de clien$es @ue $en!a# u# e#pr7s$i#oD u#a con$a ou a#bos; De e-se u$ili5ar as rela%>es Ndeposi$an$eO e Nde edorO;
no#eMclien$eFde
edorH
no#eMclien$eFdeposi$an$eH
Fdeposi$an$eH
,in!as eli#inadas
r s J r Fr - sH
r r-s
r Fr - sH
- Euan$as e @uais $uplas aparecer&o na rela%&o Fde edor 4 e#pres$i#oH S Se a rela%&o Fde edorH possui NnO $uplas e a rela%&o e#pr7s$i#o $e# N#O $uplasD en$&o o produ$o car$esiano Fde edor 4 e#pr7s$i#oH $e# nT# $uplas;
de edor " emprestimo nome_cliente Jo&o Jo&o Jo&o Ana Ana Ana )elena )elena )elena de edor-num_emprestimo E-''+ E-''+ E-''+ E-''* E-''* E-''* E-''( E-''( E-''( nome_agencia SA,-+ 0OA-+ NO)-+ SA,-+ 0OA-+ NO)-+ SA,-+ 0OA-+ NO)-+ emprestimo-num_emprestimo E-''+ E-''* E-''( E-''+ E-''* E-''( E-''+ E-''* E-''( total 1'''' -*1'' *1-' 1'''' -*1'' *1-' 1'''' -*1'' *1-'
OPS !!!
Obs: Co#o a opera%&o produ$o car$esiano associa $odas as $uplas de e#pr7s$i#os a $odas as $uplas de de edorD en$&o e4is$e# e#pr7s$i#os @ue es$&o relacionados erronea#en$e a alguns clien$es; 0ara con$ornar es$e proble#aD de e#os e4igir @ue o a$ribu$o de edor;nu#Me#pres$i#o seBa igual ao a$ribu$o e#pres$i#o;nu#Me#pres$i#o; - Assi# $e#os: de edor;nu#Me#pres$i#o J e#pres$i#o;nu#Me#pres$i#o Fno#eMag"ncia J NSA,-+O Fde edor 4 e#pr7s$i#oHH
nome_client e Jo&o de edor-num_emprestimo E-''+ nome_agencia SA,-+ emprestimo-num_emprestimo E-''+ total 1''''
cliente cidade_cliente S&o ,eopoldo S&o ,eopoldo No o )a#burgo 0or$o Alegre S&o ,eopoldo No o )a#burgo 0or$o alegre No o )a#burgo
4FEH
E"! DeseBa#os o no#e dos clien$es @ue #ora# na #es#a cidade de 3rancisco; 0ri#eiroD 7 necessrio descobrir e# @ual cidade 3rancisco #oraD fa5endo u#a sele%&o: no#eMclien$e J N3ranciscoOFclien$eHD E depois u#a proBe%&o: cidadeMclien$eFno#eMclien$e J N3ranciscoOFclien$eHH 0ara encon$rar os ou$ros clien$esD 7 necessrio fa5er u#a arredura na rela%&o clien$eD co#parando o a$ribu$o cidadeMclien$e co# o a$ribu$o da rela%&o ob$ida apRs a proBe%&o an$eriorD ficando assi#: no#eMclien$eFclien$e;cidadeMclien$e J cidMfrancisco;cidadeMclien$e Fclien$e 4
nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana Bea$ri5
Ana Bea$ri5
nome_cliente 3rancisco
cidade_cliente No o )a#burgo
cidade_cliente No o )a#burgo
rua_cliente 6e$:lio Vargas 6e$:lio Vargas Ola o Bilac Jo&o 0essoa Cec8lia 9eireles Jo&o 6oular$ Assis Brasil 3loriano 0ei4o$o
cidade_cliente S&o ,eopoldo S&o ,eopoldo No o )a#burgo 0or$o Alegre S&o ,eopoldo No o )a#burgo 0or$o alegre No o )a#burgo
cidMfranciscoF
cidadeMclien$e
Fno#eMclien$e J N3ranciscoOFclien$eHHHHH
de edor;nu#Me#pres$i#o J e#pres$i#o;nu#Me#pres$i#o
No en$an$oD 7 poss8 el si#plificar es$a opera%&o u$ili5ando o s8#bolo da Bun%&o na$ural: A Bun%&o na$ural for#a u# produ$o car$esiano das duas rela%>esD e B e4ecu$a u#a sele%&oD fa5endo a e@ui al"ncia dos a$ribu$os @ue aparece# e# a#bos os es@ue#as da rela%&oD e por :l$i#oD re#o e os a$ribu$os e# duplicidade;
edor
e#pr7s$i#oH
sJ
=SF
E# @ue = S J UA+DA-D;;;DAnV (ropriedades! - a Bun%&o na$ural 7 associa$i aD por$an$o: clien$e con$a deposi$an$e J Fclien$e con$aH deposi$an$e J clien$e sJr4s Fcon$a deposi$an$eH
S A2 a+ aa.
% A2 a+ aa. a1 a+ a. a% A1 b+ b+ b+ b+ bbb. b. b. b1 b1 b1
a. a1 a+ aa.
A1 b+ b1
no#eMclien$eD no#eMagenciaFdeposi$an$e
nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana Jo&o
con$aH
no#eMclien$eD no#eMagenciaFdeposi$an$e
con$aH
nome_cliente Jo&o
FEH
Onde E 7 u#a e4press&o e# lgebra relacional e cada 3i s&o e4press>es ari$#7$icas en ol endo cons$an$es e a$ribu$os no es@ue#a de E; , E"! Dada a rela%&o cr7di$oD descobrir @uan$o cada clien$e ainda pode u$ili5ar do seu cr7di$o pessoal;
nome_cliente Jos7 Ana 0edro 9aria 3l ia limite_credito 1''' .-'' +-'' *('' .6''
Fcredi$oH
credito credito_usado --'' +'' +*'' *''' .6'' nome_cliente Jos7 Ana 0edro 9aria 3l ia limite_credito , credito_usado +('' .+'' -.'' ('' '
Descobrir a ruaD cidadeD ag"ncia e salrio de $odos os e#pregados; Al$erna$i a na$ural 7 fa5er u#a sele%&o co# u#a Bun%&o na$ural:
$rabal!adorMin$egralH
salario *''' 1('' 6*''
proble#a: os dados de rua e cidade do e#pregado 0edro fora# perdidosD be# co#o os dados de ag"ncia e salrio fora# perdidos da e#pregada 3l ia; solu%&o: u$ili5ar as opera%>es de Bun%>es e4$ernas para e i$ar perda de infor#a%>esD @ue pode# ser:
$rabal!adorMin$egral
rua Jo&o 6oular$ Assis Brasil Jo&o 0essoa 6e$:lio Vargas cidade No o )a#burgo 0or$o Alegre 0or$o Alegre S&o ,eopoldo nome_agencia NO)-+ 0OA-+ 0OA-+ Nulo salario *''' 1('' 6*'' Nulo
A juno esquerda pega todas as tuplas da relao esquerda que no encontraram par entre as tuplas da relao direita, preenchendo com nulo os valores no encontrados. Estas tuplas so adicionadas ao resultado da juno natural.
$rabal!adorMin$egral
rua Jo&o 6oular$ Assis Brasil Jo&o 0essoa Nulo cidade No o )a#burgo 0or$o Alegre 0or$o Alegre Nulo nome_agencia NO)-+ 0OA-+ 0OA-+ SA,-+ salario *''' 1('' 6*'' .-''
A juno direita pega todas as tuplas da relao direita que no encontraram par entre as tuplas da relao esquerda, preenchendo com nulo os valores no encontrados. Estas tuplas so adicionadas ao resultado da juno natural.
$rabal!adorMin$egral
rua Jo&o 6oular$ Assis Brasil Jo&o 0essoa 6e$:lio Vargas Nulo cidade No o )a#burgo 0or$o Alegre 0or$o Alegre S&o ,eopoldo Nulo nome_agencia NO)-+ 0OA-+ 0OA-+ Nulo SA,-+ salario *''' 1('' 6*'' Nulo .-''
- *un&'o sum! descobrir a so#a $o$al dos salrios de $odos os e#pregados de $e#po in$egral; su#
salario
F$rabal!adorMin$egralH
3l ia 9aria
-*un&'o count! descobrir o n:#ero de ag"ncias e4is$en$es na $abela de $e#po in$egral; coun$
no#eMagencia
F$rabal!adorMin$egralH
count nome_agencia 1
coun$-dis$inc$
no#eMagencia
F$rabal!adorMin$egralH
count,distinct nome_agencia .
F$rabal!adorMin$egralH
a g salario .6-6;-*
F$rabal!adorMin$egralH
F$rabal!adorMin$egralH
tra$al6ador_integral
no#eMagencia
g su#
salario
F$rabal!adorMin$egralH
no#eMagencia
g su#
salario
#in
salario
F$rabal!adorMin$egralH
sum salario (''' +*.'' 1-'' min salario .''' 1''' +'''
, /ormalmente!
E: 7 u#a e4press&o @ual@uer e# lgebra relacionalC Cada 6i cons$i$ui u# a$ribu$o @ue ser agrupadoC Cada 3i 7 u#a fun%&o agregadaC Cada Ai 7 o no#e de u# ab$ribu$oC
no#eMclien$e J NJo&oO
Fcon$aH
Fcon$a Fr+H
agenciaH
con$a con$a r-
conta saldo +-'' .''' 1*'' 1''' +*'' -'' ./*' +(''
edor
e#pres$i#oH
Fcon$aH
E"! As con$as co# saldo aci#a de -*'' recebe# +'YD e os de#ais *Y;
con$a
saldo K -*''
Fcon$aHH
saldo LJ -*''
Fcon$aHH