Você está na página 1de 23

INSTITUTO DE EXATAS E TECNOLGICAS Curso de Ci"ncia da Co#pu$a%&o

BANCO DE DADOS aula 6 lgebra relacional -

professor: Juliano Varella de Car al!o

*;+; <lgebra =elacional rela%>es de e4e#plo


conta nome_agencia SA,-+ SA,-+ NO)-+ 0OA-+ 0OA-+ NO)-+ SA,-SA,-numero_conta '''+ ''''''. '''1 '''* '''6 '''/ '''( saldo +-'' .''' 1*'' 1''' +*'' -'' ./*' +('' agencia nome_agencia NO)-+ SA,-+ 0OA-+ SA,-depositante nome_cliente Jo&o 0edro 3rancisco cliente nome Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana Bea$ri5 rua 6e$:lio Vargas 6e$:lio Vargas Ola o Bilac Jo&o 0essoa Cec8lia 9eireles Jo&o 6oular$ Assis Brasil 3loriano 0ei4o$o cidade 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 de edor nome_cliente Jo&o Ana )elena emprestimo nome_agencia SA,-+ 0OA-+ NO)-+ num_emprestimo E-''+ E-''* E-''( total 1'''' -*1'' *1-' num_emprestimo E-''+ E-''* E-''( 9aria 0aulo Jos7 Ana numero_conta '''+ ''''''. '''1 '''/ '''6 '''* cidade_agencia No o )a#burgo S&o ,eopoldo 0or$o Alegre S&o ,eopoldo saldo -6''*' 1***(' +-*'.62 +-**((

*;-; <lgebra =elacional concei$os


? Linguagens de Consulta! linguage# por #eio da @ual os usurios ob$"# infor#a%>es do banco de dados; 0ode# ser: - procedurais: o usurio descre e u#a se@A"ncia de opera%>es para ob$er o resul$ado deseBadoC E"! pascalD pl-s@lD $ransac$-s@lD e$c; - n&o procedurais: o usurio descre e a infor#a%&o deseBadaD se# ins$ruir co#o es$a ser ob$ida; E"! s@lD EBE FEuerG bG e4a#pleHD e$c; ? #lge$ra %elacional! linguage# de consul$a @ue consis$e e# u# conBun$o de opera%>esD $endo co#o en$rada u#a ou duas rela%>es e produ5indo co#o resul$ado u#a no a rela%&o; Opera%>es #ais i#por$an$es: selec$C proBec$C InionC na#elG na$ural Boin assign#en$C se$ differenceC car$esian produc$C rena#eC se$ in$ersec$ionC di isionC

- 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$;

*;.; <lgebra =elacional opera%>es funda#en$ais


? Opera&'o SELECT! seleciona as $uplas @ue sa$isfa%a# u# de$er#inado predicado; A le$ra sig#a represen$a a sele%&oD o predicado aparece subscri$o a sig#aD e a rela%&o u$ili5ada 7 colocada en$re par"n$eses; E"! no#eMagencia J NSA,-+OFcon$aH : seleciona as $uplas da rela%&o con$a cuBa ag"ncia 7 igual a NSA,-+O;
nome_agencia numero_conta '''+ '''saldo +-'' .''' SA,-+ SA,-+

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 +-**((

*;.; <lgebra =elacional opera%>es funda#en$ais


- Jun$ando opera%>es SE,ECP E 0=OJECP: pode-se unir opera%>es desde @ue elas $ra$e# de rela%>es; no#eMagenciaDsaldoFno#eMagencia J NSA,-+OFcon$aH H
conta nome_agencia SA,-+ SA,-+ NO)-+ 0OA-+ 0OA-+ NO)-+ SA,-numero_conta '''+ ''''''. '''1 '''* '''6 '''/ saldo +-'' .''' 1*'' 1''' +*'' -'' ./*' nome_agencia SA,-+ SA,-+ numero_conta '''+ '''saldo +-'' .''' nome_agencia SA,-+ SA,-+ saldo +-'' .'''

? 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

nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo

Fes$&o nas - rela%>esH Fde edorH

Jos7 Ana )elena

*;.; <lgebra =elacional opera%>es funda#en$ais


- I#a opera%&o INQON en$re duas rela%>es NrO e NsO sR 7 poss8 el se: i; as rela%>es NrO e NsO $"# o #es#o n:#ero de a$ribu$osC ii; os do#8nios dos i-7si#o a$ribu$o de NrO e o i-7si#o a$ribu$o de NsO de e# ser os #es#os para $odo NiO; ? Opera&'o Di*eren&a entre con+untos! sendo NrO e NsO duas rela%>esD Nr-sO $e# co#o resul$ado o conBun$o de $uplas @ue es$&o na rela%&o NrOD #as n&o encon$ra#-se na rela%&o NsO; , E"! selecionar $odos os clien$es @ue $e# con$a #as n&o $e# e#pr7s$i#o; no#eMclien$eFdeposi$an$eH - no#eMclien$eFde edorH

nome_cliente Jo&o 0edro

,in!as eli#inadas

Clien$es co# con$as 9as se# e#pr7s$i#os

3rancisco 9aria 0aulo Jos7 Ana

*;1; <lgebra =elacional opera%>es adicionais


? Opera&'o de Interse&'o de con+untos! cap$ura $odas as $uplas @ue encon$ra#-se e# u#a rela%&o NrOD e @ue $a#b7# encon$ra#-se na rela%&o NsO; , E"! Selecionar os no#es de clien$es @ue possue# u#a con$a e u# e#pr7s$i#o;

no#eMclien$eFde edorH no#eMclien$eFdeposi$an$eH


depositante nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana numero_conta '''+ ''''''. '''1 '''/ '''6 '''* nome_client e Jo&o Ana nome_client e Jo&o Ana )elena E-''+ E-''* E-''( de edor num_emprestimo

r s J r Fr - sH

r r-s
r Fr - sH

*;.; <lgebra =elacional opera%>es funda#en$ais


? Opera&'o (roduto Cartesiano! per#i$e co#binar infor#a%>es de duas rela%>es @uais@uer; =epresen$ado por Nr 4 sO; E"! Eual o produ$o car$esiano en$re as rela%>es de edor e e#pres$i#o; Fde edorH4Fe#pres$i#oH J Fno#eMclien$eD nu#Me#pres$i#oD no#eMagenciaD nu#Me#pres$i#oD $o$alH Obs: 0ara e i$ar o proble#a da duplicidade de no#es de a$ribu$os insere-se o no#e da rela%&o an$es do a$ribu$o: $o$alH Fno#eMclien$eD de edor;nu#Me#pres$i#oD no#eMagenciaD e#pres$i#o;nu#Me#pres$i#oD

- 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-'

*;.; <lgebra =elacional opera%>es funda#en$ais


- AgoraD de e-se encon$rar $odos os no#es de clien$es @ue $en!a# u# e#pr7s$i#o na ag"ncia NSA,-+OD a$ra 7s da opera%&o:
Apenas Jo&o fe5 e#pr7s$i#o e# SA,-+;
nome_client e Jo&o Ana )elena

no#eMag"ncia J NSA,-+OFde edor 4 e#pres$i#oH


de edor-num_emprestimo E-''+ E-''* E-''( nome_agencia SA,-+ SA,-+ SA,-+ emprestimo-n.m_emprestimo E-''+ E-''+ E-''+ total 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''''

no#eMclien$eFde 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#oHHH


nome_client e Jo&o

*;.; <lgebra =elacional opera%>es funda#en$ais


? Opera&'o %ename! represen$ado pela le$ra grega r!o FHD per#i$e dar u# no#e a u#a de$er#inada e4press&o; Assi#D a e4press&o e# lgebra relacional E abai4o $e# por resul$ado u#a e4press&o sob o no#e 4;
nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 rua_cliente 6e$:lio Vargas 6e$:lio Vargas Ola o Bilac Jo&o 0essoa Cec8lia 9eireles Jo&o 6oular$ Assis Brasil 3loriano 0ei4o$o

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

rua_cliente Ola o Bilac

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

cidade_cliente No o )a#burgo No o )a#burgo No o )a#burgo No o )a#burgo No o )a#burgo No o )a#burgo No o )a#burgo No o )a#burgo

nome_cliente 3rancisco Jos7 Bea$ri5

cidMfranciscoF

cidadeMclien$e

Fno#eMclien$e J N3ranciscoOFclien$eHHHHH

*;1; <lgebra =elacional opera%>es adicionais


? Opera&'o de )un&'o Natural! a Bun%&o na$ural ou na$ural Boin 7 u#a opera%&o binria @ue per#i$e co#binar sele%>es e u# produ$o car$esiano e# u#a sR opera%&o; , E"! encon$rar $odos os no#es de clien$es @ue $en!a# u# e#pr7s$i#o no bancoD be# co#o o $o$al e#pres$ado; I$ili5ando apenas as opera%>es funda#en$aisD poderia ser resol ido assi#:

no#eMclien$eD e#pres$i#o;nu#Me#pres$i#oD $o$alF

de edor;nu#Me#pres$i#o J e#pres$i#o;nu#Me#pres$i#o

Fde edor 4 e#pres$i#oHH

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;

no#eMclien$eD nu#Me#pres$i#o $o$alFde

edor

e#pr7s$i#oH

nome_client e Jo&o Ana )elena

num_emprestimo E-''+ E-''* E-''(

total 1'''' -*1'' *1-'

*;1; <lgebra =elacional opera%>es adicionais


/ormali0ando! Sendo = e S dois es@ue#as de rela%&oD ou seBaD u#a lis$a de a$ribu$os e rF=H e sFSH duas rela%>esD a Bun%&o na$ural de r e s Fr s H 7 u#a rela%&o for#al#en$e definida assi#:

sJ

=SF

r;A+Js;A+ r;A-Js;A-;;; r;AnJs;AnFr 4 sHH

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

- se rF=H e sFSH s&o rela%>es se# a$ribu$os co#unsD en$&o r

*;1; <lgebra =elacional opera%>es adicionais


? Opera&'o de Di is'o! a di is&o de duas rela%>es = SD onde os a$ribu$os de S es$&o con$idos nos a$ribu$os de =D AF=H AFSHD resul$a na rela%&o PD onde AFPH J U AF=H AFSH VD onde para cada $upla $ @ue aparece no resul$adoD os alores de $ de e# aparecer e# =D co#binando co# cada $upla de S; Es$a opera%&o 7 u$ili5ada nas consul$as e# @ue se e#prega a frase Npara $odosOC

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

*;1; <lgebra =elacional opera%>es adicionais


, E"! encon$rar $odos os clien$es @ue $en!a# con$a e# $odas as ag"ncias locali5adas e# S&o ,eopoldo;
conta nome_agencia SA,-+ SA,-+ NO)-+ 0OA-+ 0OA-+ NO)-+ SA,-SA,-numero_conta '''+ ''''''. '''1 '''* '''6 '''/ '''( saldo +-'' .''' 1*'' 1''' +*'' -'' ./*' +('' agencia 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 +-**(( depositante nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana Jo&o numero_conta '''+ ''''''. '''1 '''/ '''6 '''* '''(

no#eMagenciaFcidadeMagencia J NS&o ,eopoldoOFagenciaHH


nome_ag3ncia SA,-+ SA,-cidade_ag3ncia S&o ,eopoldo S&o ,eopoldo saldo 1***(' +-**(( nome_ag3ncia SA,-+ SA,--

no#eMclien$eD no#eMagenciaFdeposi$an$e
nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana Jo&o

con$aH

nome_agencia SA,-+ SA,-+ NO)-+ 0OA-+ SA,-NO)-+ 0OA-+ SA,--

no#eMclien$eD no#eMagenciaFdeposi$an$e

con$aH

no#eMagenciaFcidadeMagencia J NS&o ,eopoldoOFagenciaHH

nome_cliente Jo&o

*;1; <lgebra =elacional opera%>es adicionais


? Opera&'o de Atri$ui&'o 4Assignment Operation5! $rabal!a de #aneira si#ilar W a$ribui%&o das linguagens de progra#a%&o; =epresen$ada por - A$ribui-se a rela%&o resul$an$e de u#a opera%&o W direi$a de D a u#a ari el $e#porriaD W es@uerdaD a @ual poder ser u$ili5ada e# rela%>es subse@Aen$es; - E"! opera%&o de di is&o an$erior poderia ser descri$a co#o: $e#p+ $e#p-

no#eMagenciaFcidadeMagencia J NS&o ,eopoldoOFagenciaHH no#eMclien$eD no#eMagenciaFdeposi$an$e


con$aH

resul$ado $e#p- $e#p+

*;*; <lgebra =elacional opera%>es es$endidas


? (ro+e&'o generali0ada! es$ende# as proBe%>esD per#i$indo @ue opera%>es ari$#7$icas seBa# usadas nas proBe%>es;

3+D 3-D ;;;D 3n

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''

no#eMclien$eD li#i$eMcredi$o credi$oMusado

Fcredi$oH

credito credito_usado --'' +'' +*'' *''' .6'' nome_cliente Jos7 Ana 0edro 9aria 3l ia limite_credito , credito_usado +('' .+'' -.'' ('' '

*;*; <lgebra =elacional opera%>es es$endidas


? )un&'o e"terna 4outer +oin5! e4$ens&o da opera%&o de Boin para resol er infor#a%>es o#i$idas; , E"! Dadas as rela%>es a seguir co# os seguin$es es@ue#as: e#pregadoFno#eMe#pregadoD ruaD cidadeH $rabal!adorMin$egralFno#eMe#pregadoD no#eMagenciaD salarioH
empregado nome_empregado Jos7 Ana 0edro 9aria rua Jo&o 6oular$ Assis Brasil 6e$:lio Vargas Jo&o 0essoa cidade No o )a#burgo 0or$o Alegre S&o ,eopoldo 0or$o Alegre nome_empregado Jos7 Ana 3l ia 9aria tra$al6ador_integral nome_agencia NO)-+ 0OA-+ SA,-+ 0OA-+ salario *''' 1('' .-'' 6*''

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:

no#eMe#pregadoD ruaD cidadeD no#eMagenciaD salarioFe#pregado

$rabal!adorMin$egralH
salario *''' 1('' 6*''

nome_empregado Jos7 Ana 9aria

rua Jo&o 6oular$ Assis Brasil Jo&o 0essoa

cidade No o )a#burgo 0or$o Alegre 0or$o Alegre

nome_agencia NO)-+ 0OA-+ 0OA-+

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:

*;*; <lgebra =elacional opera%>es es$endidas


Juno externa a esquerda
e#pregado
nome_empregado Jos7 Ana 9aria 0edro

$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.

Juno externa a direita


e#pregado
nome_empregado Jos7 Ana 9aria 3l ia

$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.

Juno externa total


e#pregado
nome_empregado Jos7 Ana 9aria 0edro 3l ia

$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 .-''

A juno externa total a! am"as opera#es acima.

*;*; <lgebra =elacional opera%>es es$endidas


? /un&7es agregadas! s&o a@uelas @ueD @uando aplicadasD $o#a# u#a cole%&o de alores e re$orna# u# alor si#ples co#o resul$ado;
tra$al6ador_integral

- *un&'o sum! descobrir a so#a $o$al dos salrios de $odos os e#pregados de $e#po in$egral; su#
salario

nome_empregado Jos7 Ana

nome_agencia NO)-+ 0OA-+ SA,-+ 0OA-+

salario *''' 1('' .-'' 6*''

F$rabal!adorMin$egralH

sum salario +1*'*

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 .

, *un&'o a g! descobrir a #7dia dos salrios; a g


salario

F$rabal!adorMin$egralH

a g salario .6-6;-*

, *un&'o min! descobrir o #enor salrio; #in


salario

min salario .-''

F$rabal!adorMin$egralH

, *un&'o ma"! descobrir o #aior salrio; #a4


salario

ma" salario 6*''

F$rabal!adorMin$egralH

*;*; <lgebra =elacional opera%>es es$endidas


? E# alguns casosD aplica#-se as fun%>es agregadas n&o so#en$e a u# :nico conBun$o de $uplasD #as a di ersos gruposD onde cada grupo 7 u# conBun$o de $uplas; Qs$o 7 reali5ado a$ra 7s da opera%&o c!a#ada agrupamento; E"! descobrir a so#a $o$al dos salrios dos e#pregados de $e#po in$egralD por ag"ncia; solu%&o: par$icionar a rela%&o $rabal!adorMin$egral e# gruposD co# base na ag"ncia as @uais os e#pregados fa5e# par$e eD por fi# aplicar a fun%&o agregada a cada u# des$es grupos;
nome_empregado Jos7 Ana 3l ia 9aria 3ernando Bea$ri5 Bruno nome_agencia NO)-+ 0OA-+ SA,-+ 0OA-+ 0OA-+ SA,-+ NO)-+ salario *''' 1('' .-'' 6*'' 1''' +''' .'''

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''' +'''

nome_agencia NO)-+ 0OA-+ SA,-+

sum salario (''' +*.'' 1-''

nome_agencia NO)-+ 0OA-+ SA,-+

, /ormalmente!

6+D 6-D ;;;D 6n

g 3+A+D 3-A-D 3#A# FEHD onde:

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

*;*; <lgebra =elacional #odifica%>es no BD


? e"clus'o! per#i$e a e4clus&o de $uplas in$eiras de u#a rela%&o; X e4pressa por: r r ED onde: r: 7 u#a rela%&oC E: 7 u#a consul$a e# lgebra relacional E"! e4cluir $odos as con$as do clien$e Jo&o; con$a con$a -

no#eMclien$e J NJo&oO

Fcon$aH

E"! e4cluir $odas as con$as das ag"ncias locali5adas e# S&o ,eopoldo; r+ r-

cidadeMagencia J NS&o ,eopoldoO

Fcon$a Fr+H

agenciaH

no#eMagenciaD nu#eroMcon$aD saldo

con$a con$a r-

*;*; <lgebra =elacional #odifica%>es no BD


? inser&'o! per#i$e a inser%&o de u# conBun$o de $uplas e# u#a rela%&o; X e4pressa por: r r ED onde r 7 u#a rela%&o e E: 7 u#a consul$a e# lgebra relacional Obs: i; os alores dos a$ribu$os das $uplas a inserir de e# ser #e#bros do do#8nio dos a$ribu$osC ii; As $uplas inseridas de e# $er o #es#o grau da rela%&o; E"! inserir @ue o clien$e Saulo $e# .('' na con$a '+' da ag"ncia NO)-+; con$a con$a UFNNO)-+OD '+'D .(''HV deposi$an$e deposi$an$e UFNSauloOD '+'HV E"! inserir u#a no a caderne$a de poupan%a de +'' reais para $odos os clien$es da ag"ncia SA,-+D sendo o n:#ero do e#pr7s$i#o o #es#o n:#ero usado para es$a con$a poupan%a; r+ r-
de edor nome_client e Jo&o Ana )elena emprestimo nome_agencia SA,-+ 0OA-+ NO)-+ num_emprestim o E-''+ E-''* E-''( total 1'''' -*1'' *1-' nome_agencia SA,-+ SA,-+ NO)-+ 0OA-+ 0OA-+ NO)-+ SA,-SA,-numero_conta '''+ ''''''. '''1 '''* '''6 '''/ '''( depositante nome_cliente Jo&o 0edro 3rancisco 9aria 0aulo Jos7 Ana

conta saldo +-'' .''' 1*'' 1''' +*'' -'' ./*' +(''

numero_conta '''+ ''''''. '''1 '''/ '''6 '''*

num_emprestimo E-''+ E-''* E-''(

cidadeMagencia J NSA,-+O Fde

edor

e#pres$i#oH

no#eMagenciaD nu#Me#pres$i#o Fr+H no#eMclien$eD nu#Me#pres$i#o Fr+H

con$a con$a Fr- 4 UF+''HVH deposi$an$e deposi$an$e

*;*; <lgebra =elacional #odifica%>es no BD


? atuali0a&'o! per#i$e a #udan%a de u#a $upla se# #udar $odos os alores dela; 0ara isso usa-se o operador de proBe%&o generali5ada: r 3+D 3-D ;;;D 3n FrHD e# @ue cada 3i 7 o i-7si#o a$ribu$o de NrO se o i-7si#o a$ribu$o n&o for a$uali5adoD ouD se o i-7si#o a$ribu$o for a$uali5adoD en$&o cada 3i 7 u#a e4press&o en ol endo so#en$e cons$an$es e os a$ribu$os de NrOD @ue d no os alores a esses a$ribu$os; E"! A $a4a de Buros au#en$ou e o saldo de $odas as con$as au#en$ou *Y; con$a

no#eMagenciaD nu#eroMcon$aD saldo saldo T +;'*

Fcon$aH

E"! As con$as co# saldo aci#a de -*'' recebe# +'YD e os de#ais *Y;

con$a

no#eMagenciaD nu#eroMcon$aD saldo saldo T +;+

saldo K -*''

Fcon$aHH

no#eMagenciaD nu#eroMcon$aD saldo saldo T +;'*

saldo LJ -*''

Fcon$aHH

Você também pode gostar