Buscar

BANCO_DE_DADOS_ALEXANDRE_WAGNER_MODELO_RELACIONAL_OFICIAL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

EstruturadeDadoseEstruturadeDadose
SistemasdeIntegraSistemasdeIntegraççãoão
ModeloRelacionalModeloRelacional
Prof.AlexandreWagnerC.FariaProf.AlexandreWagnerC.Faria
MaterialadaptadodoLivro:SistemadeBancodeDados(Silberschatz,Korth,Sudarshan),
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Capítulo2:Modelorelacional
SistemadeBancodeDados,5/E
Modelorelacional
• Omodelo relacional é hoje o principal modelo
de dados para aplicações comerciais e de
processamentodedados;
• Eleconquistousuaposiçãodedestaquedevido
asuasimplicidade,oquefacilitouotrabalhodo
programador, comparado com os modelos
anteriores,
• Neste capitulo iremos estudar os fundamentos
do modelo relacional, em seguida, iremos
descrever a álgebra relacional, usada para
especificarrequisiçõesdeinformações...
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Capítulo2:Modelorelacional
�Estruturadosbancosdedadosrelacionais
�Operaçõesfundamentaisdaálgebrarelacional
�Outrasoperaçõesdeálgebrarelacional
�Operaçõesdeálgebrarelacionalestendidas
�Valoresnulos
�Modificaçãodobancodedados
SistemadeBancodeDados,5/E
Modelorelacional
• Umbancodedadosrelacionalconsisteemumacoleção
detabelas,cadaumacomumnomeúnicoatribuído.
• Umalinhaemumatabelarepresentaumarelaçãoentre
umconjuntodevalores;
• Informalmente,umatabelaé umconjuntodeentidades,
eumalinhaé umaentidade
• Comoumatabelaé umacoleçãodessasrelações,existe
umaintimacorrespondênciaentreoconceitodetabelae
oconceitomatemáticaderelação,doqualomodelode
dadosrelacionalextraiseunome.
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Exemplodeumarelação
SistemadeBancodeDados,5/E
Modelorelacional
• Considereatabelaanterior;
• Ela possui três cabeçalhos de coluna: numero_conta,
nome_agencia,esaldo.
• Segundo a terminologia do modelo relacional,
chamamosessescabeçalhosdeatributos.
• Para cada atributo, existe um conjunto de valores
permitidos,queé odomíniodesteatributo
• Paraoatribuito nome_agencia,porexemplo,odomínio
é oconjuntodetodososnomesdaagencia
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
Modelorelacional
• SejaD1oconjuntodetodososnúmerosdaconta,D2
o conjunto de todos os nomes de agencia e D3 o
conjuntodetodosossaldos
• Qualquerlinhadecontaprecisaconsistiremumatupla
de3(v1,v2,v3).
• onde:
– v1 é um numero de conta (ou seja, v1 está no
dominio deD1)
– v2 é um nome de agencia (ou seja, v2, está no
dominio deD2)
– v3é umsaldo,(ouseja,v3está nodominio deD3)
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Estruturabásica
• Formalmente,dadososconjuntosD1,D2,….Dn umarelaçãor é um
subconjuntode
D1 xD2 x… xDn
Portanto,umarelaçãoé umconjuntoden tuplas (a1, a2,…,an)ondecada
ai ∈ Di
• Exemplo:Se
nome_cliente ={Jones,Smith,Curry,Lindsay}
rua_cliente ={Main,North,Park}
cidade_cliente ={Harrison,Rye,Pittsfield}
Entãor ={(Jones,Main,Harrison),
(Smith,North,Rye),
(Curry,North,Rye),
(Lindsay,Park,Pittsfield)}
é umarelaçãosobre
nome_cliente xrua_cliente xcidade_cliente
SistemadeBancodeDados,5/E
Modelorelacional
• Como as tabelas são basicamente
relações, usaremos os termos
matemáticos relação e tupla no lugar dos
termostabelaelinha.
•
• Umavariávelde tupla é umavariávelque
significa uma tupla, em outras palavras,
umavariávelde tupla é umavariável cujo
domínioé oconjuntodetodasastuplas.
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
Modelorelacional
• Na relação conta da tabela anterior,
existemsetetuplas.
• Façaavariável,detupla tsereferirá
primeiratupla darelação.
• Usaremosanotaçãot[numero_conta]
paradenotarovalorde tnoatributo
numero_conta;
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Tiposdeatributo
�Cadaatributodeumarelaçãopossuium
nome
�Oconjuntodevalorespermitidospara
cadaatributoé chamadoodomíniodo
atributo
�Ovalorespecialnulo é ummembrode
tododomínio
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Esquemaderelação
� A1,A2,…,An sãoatributos
� R =(A1,A2,…,An )é umesquemaderelação
– Exemplo:
– Esquema_cliente =(nome_cliente,rua_cliente,
cidade_cliente)
� r(R)é umarelaçãonoesquemaderelaçãoR
– Exemplo:
– cliente(Esquema_cliente)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Instânciaderelação
� Osvaloresatuais(instânciaderelação)deumarelaçãosãoespecificados
porumatabela
� Umelementot der é umatupla,representadaporumalinha emumatabela
atributos
(ou colunas)
tuplas
(ou linhas)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Relaçõessãodesordenadas
� A ordem das A ordem das A ordem das A ordem das tuplastuplastuplastuplas éééé irrelevante (as irrelevante (as irrelevante (as irrelevante (as tuplastuplastuplastuplas podem estar em uma ordem podem estar em uma ordem podem estar em uma ordem podem estar em uma ordem 
arbitrarbitrarbitrarbitráááária)ria)ria)ria)
� Exemplo: relaExemplo: relaExemplo: relaExemplo: relaçççção ão ão ão contacontacontaconta com com com com tuplastuplastuplastuplas não ordenadasnão ordenadasnão ordenadasnão ordenadas
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Bancodedados
� Umbancodedadosconsisteemmúltiplasrelações
� As informações sobre uma empresa são divididas empartes, com cada relação
armazenandoumapartedasinformações
conta : armazena informações sobre contas
depositante : armazena informações sobre que cliente possui que conta
cliente:armazenainformaçõessobreclientes
� Armazenar todas as informações como uma única relação como
banco (número_conta, saldo, nome_cliente, ..)
resultaem
� Repetiçãodeinformações(porexemplo,doisclientespossuemumaúnicaconta)
� A necessidade de valores nulos (por exemplo, representar um cliente sem uma
conta)
� Teoriadanormalizaçãotratadecomoprojetaresquemasrelacionais
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Arelaçãocliente
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Arelaçãodepositante
SistemadeBancodeDados,5/E
Chaves
• È preciso ter umamaneira de especificar como as tuplas
dentrodeumadeterminadarelaçãosãodistinguidas;
• Issoé expressoemtermosdeseusatributos,
• Ou seja, os valores de atributo de um tupla precisam ser
taisquepossamidentificarunicamenteatupla;
• Emoutraspalavras,nenhumpardetuplas emumarelação
podeterexatamenteomesmovalorparatodososatributos
• Uma superchave é um conjunto de um ou mais atributo
que, tomados coletivamente, nos permite identificar
unicamenteumatupla narelação.
• Por exemplo: o çatributo id_cliente da relação cliente é
suficienteparadistinguirumatupla clientedeoutra.
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Chaves
• SejaK⊆ R
• Ké umasuperchave deR seosvaloresparaK sãosuficientesparaidentificar
umatupla únicadecadarelaçãor(R) possível
• Com“r possível”,queremosdizerumarelaçãor quepoderiaexistirna
empresaqueestamosmodelando.
• Exemplo:{nome_cliente,rua_cliente}e
{nome_cliente}
são,ambas,superchaves deCliente,senenhumclientepuderteromesmo
nomedeoutrocliente.
• K é umachavecandidataseK formínimo
Exemplo:{nome_cliente}é umachavecandidataparaCliente,já queelaé
umasuperchave (considerandoquenenhumclientepodeteromesmonome
deoutrocliente),enenhumdeseussubconjuntosé umasuperchave.
• Chaveprimária
• Achaveprimáriadeveserescolhidademodoqueseusvaloresdeatributo,
nunca,ouraramente,sejammodificados:eg endereço;
• Umesquemaderelação,digamosr1,podeincluirentreseusatributosachave
primáriadeoutroesquemaderelação,digamosr2.Esseatributoéchamado
dechaveestrangeirader1,referenciandor2
SistemadeBancodeDados,5/E
Diagramadeesquemaparaa
instituiçãobancária
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
Diagramadeesquemaparaa
instituiçãobancária
• Oesquemadebancodedados,juntamentecomachaveprimáriaeas
dependências da chave estrangeira, pode ser representado
graficamentepelosdiagramasdeesquemas;
• Afiguraanterior,mostraodiagramadeesquemaparaumainstituição
financeira;
• Cadarelaçãoaparececomoumacaixa,comosatributosligadosdentro
eonomedarelaçãoemcima.
• Sehouveratributosdechaveprimária,umalinhahorizontalatravessaa
caixa,comosatributosdechaveprimária listadosacimada linhaem
cinza;
• Asdependênciasdechaveestrangeiraaparecemcomosetasindodos
atributosdechaveestrangeirada relação referenciadora até a chave
primáriadarelaçãoreferenciada
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Linguagensdeconsulta
� Linguagememqueumusuáriorequisitainformaçõesdobancode
dados.
� Categoriasdelinguagens
� Procedural
� Nãoprocedural,oudeclarativa
� Linguagens“puras”:
� Álgebrarelacional
� Cálculorelacionaldetupla
� Cálculorelacionaldedomínio
� Linguagenspurasformambasedaslinguagensdeconsultaqueas
pessoasusam.
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Álgebrarelacional
� Linguagemprocedural
� Seisoperadoresbásicos
� seleção:σ
� projeção:∏
� união:∪
� diferençadeconjuntos:–
� produtocartesiano:x
� renomeação:ρ
� Osoperadoresusamumaouduasrelaçõescomoentradaeproduzem
umanovarelaçãocomoresultado.
SistemadeBancodeDados,5/E
seleção:σσσσ
• A operação seleção seleciona tupla que
satisfazemumdeterminadopredicado;
• Usa-se a letra grega sigma para denotar a
seleção;
• Opredicadoaparece comoumsubscrito de
sigma;
• A relação de argumento está entre
parêntesesapósosigma;
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãoselect
� Notação:σσσσ p(r)
� p é chamadoopredicadodeseleção
– Onde p é umafórmulaemcálculoproposicionalconsistindoem
termos conectadospor:∧∧∧∧ (and),∨∨∨∨ (or),¬¬¬¬ (not)
Cadatermo podeser:
– <atributo> op <atributo>ou<constante>
– ondeop podeser:=,≠≠≠≠,>,≥≥≥≥.<.≤≤≤≤
� Exemplodeseleção:
σσσσ nome_agência=“Perryridge”(conta)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.6:Arelaçãoempréstimo
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.9:Resultadodeσσσσ nome_agência
=“Perryridge” (empréstimo)
SistemadeBancodeDados,5/E
Projeção:∏∏∏∏
• Suponhaquesedesejalistartodososnúmerosde
empréstimoeaquantiadosempréstimos,masonome
daagencianãoimporta;
• Aoperaçãoprojeçãoé umaoperaçãoqueretornasua
relaçãodeargumento,comcertosatributosomitidos;
• Comoarelaçãoé umconjunto,quaisquerlinhas
duplicadassãoeliminadas;
• Aprojeçãoé indicadapelaletragregapi;
• Listamososatributosquedesejamosqueapareçamno
resultadocomosubscritodePI;
• Arelaçãodeargumentosegueentreparênteses;
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãoprojeção:∏∏∏∏
� Notação:
Π A1,A2,...,Ak(r)
– ondeA1,A2 sãonomesdeatributoer é umnomerelacional.
� Oresultadoé definidocomoarelaçãodek colunasobtidas
excluindo-seascolunasquenãoestãolistadas
� Linhasduplicadassãoremovidasdoresultado,demodoqueas
relaçõessejamconjuntos
� Exemplo:Paraeliminaroatributonome_agência deconta
∏número_conta,saldo (conta)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãoprojeção– Exemplo
� Relaçãor:
• ∏∏∏∏A,C (r)
A B C
α
α
β
β
10
20
30
40
1
1
1
2
A C
α
α
β
β
1
1
1
2
=
A C
α
β
β
1
1
2
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.10:Númeroequantia
doempréstimo: ∏∏∏∏número_emprestimo,
quantia(Emprestimo)
SistemadeBancodeDados,5/E
Operaçãounião
• Considereumaconsultaparaencontraros
nomesdetodososclientesdobancoque
possuemumacontaouumempréstimo,ou
ambos;
• Observequearelaçãoclientenãocontéma
informação,já queumclientenãoprecisater
nemumacontanemempréstimonobanco;
• Pararesponderaessaconsulta,precisamos
dasinformaçõesnarelaçãodepositante(fig
2.5)enarelaçãotomador(fig 2.7);
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãounião
� Notação:r ∪ s
� Paraquer ∪ s sejaválido:
– 1.r es precisamserdamesmaaridade (omesmonúmerode
atributos)
– 2.Osdomíniosdeatributoprecisamsercompatíveis(exemplo:2a
colunader lidacomomesmotipodevaloresquea2a colunades)
� Exemplo:encontrartodososclientescomumacontaouum
empréstimo
∏nome_cliente (depositante)∪ ∏nome_cliente (tomador)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãounião– Exemplo
• Relaçõesr,s:
• r∪∪∪∪ s
A B
α
α
β
1
2
1
A B
α
β
2
3
r
s
A B
α
α
β
β
1
2
1
3
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.11:Nomesdetodososclientesque
têmumempréstimoouumaconta :
∏∏∏∏nome_cliente (depositante)∪∪∪∪ ∏∏∏∏nome_cliente (tomador)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Fig 2.5:Arelaçãodepositante
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.7:Arelaçãotomador
SistemadeBancodeDados,5/E
Operaçãodiferença-
• AoperaçãoDiferençadeconjuntos,indicada
por-,permiteencontrartuplas queestejam
emumarelação,masnãoemoutra;
• Aexpressãor-sproduzumarelação
contendoastuplas queestãoemrmasnão
ems.
• Podemosencontrartodososclientesdo
bancoquepossuemumacontamasnãoum
empréstimosescrevendo
• ∏nome_cliente (depositante)- ∏nome_cliente (tomador)
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.12:Clientescomumaconta,mas
semempréstimos
∏∏∏∏nome_cliente (depositante)- ∏∏∏∏nome_cliente (tomador)
SistemadeBancodeDados,5/E
Operaçãodiferença
• Assim como a operação união, é preciso
garantirqueasdiferençasdeconjuntosejam
tomadasentrerelaçõescompatíveis;
• Portanto, para uma operação diferença de
conjuntosr-sserválida;
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãodiferençadeconjuntos–
Exemplo
� Relaçõesr,s:
� r– s
A B
α
α
β
1
2
1
A B
α
β
2
3
r
s
A B
α
β
1
1
SistemadeBancodeDados,5/E
OperaçãoProdutoCartesianox
• Aoperaçãoproduto cartesiano, indicadaporumsinal de vezes (x),
permitecombinarinformaçõesdequaisquerduasrelações;
• Escrevemosoprodutocartesianosdasrelaçõesr1er2comor1xr2;
• Lembrando,queumarelação,é pordefinição,umsubconjuntodeum
produtocartesianodeumconjuntodedomínio;
• Apartirdessadefinição, já devemosterumaideia sobreadefinição
daoperaçãoprodutocartesiano;
• Entretanto, como o nome de atributo pode aparecer tanto rm r1
quanto r2, deve-se criar um esquema de nomeação para distinguir
essesatributos
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãoprodutocartesiano– Exemplo
• RelaRelaRelaRelaçççções ões ões ões rrrr, , , , ssss
• rrrr ×××× ssss A B
α
α
α
α
β
β
β
β
1
1
1
1
2
2
2
2
C D
α
β
β
γ
α
β
β
γ
10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
A B
α
β
1
2
C D
α
β
β
γ
10
10
20
10
E
a
a
b
br
s
SistemadeBancodeDados,5/E
OperaçãoProdutoCartesianox
• Então,fazemosissoanexandoaumatributoonomedarelaçãoda
qualoatributooriginalmenteveio;
• Porexemplo,oesquemaderelaçãoparar=tomadorxempréstimoé apresentadonatabelaaseguir:
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.13:Resultadodetomador ×××× empréstimo
SistemadeBancodeDados,5/E
OperaçãoProdutoCartesianox
• Então o esquema da relação r = tomador x
emprestimo é: (tomador.nome_cliente,
tomador.numero_emprestimo,
emprestimo.numero_emprestimo,
emprestimo.nome_agencia,emprestimo.quantia)
• Com esse esquema, é possível distinguir
tomador.numero_emprestimo de
emprestimo.numero_emprestimo;
• Para atributos que aparecem apenas em um dos
dois esquemas, normalmente omites-e o prefixo
nome_relação
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
OperaçãoProdutoCartesianox
• Outro exemplo: suponha que desejamos
encontrar os nomes de todos os clientes que
possuemumempréstimonaagenciaPerryridge;
• Para isso, são necessárias as informações na
relaçãoempréstimoenarelaçãotomador,então:
• σ nome_agência=“Perryridge”(tomadorxemprestimo)
• Oresultadoé a relaçãoapresentadanopróximo
slide;
• Temos uma relação que pertence apenas a
agenciaPerryridge
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.14
SistemadeBancodeDados,5/E
Operaçãointerseçãodeconjuntos
• Ainterseçãodeconjuntospodemosdefinircomooseguinte
exemplo:Suponhaquedesejamosencontrartodososclientes
quepossuemumempréstimoeumaconta;
• Usandoumainterseçãodeconjuntos,podemosescrever:
• ∏nome_cliente (tomador)∩∩∩∩ ∏nome_cliente (depositante)
• Observe que podemos reescrever qualquer expressão de
álgebrarelacionalqueusainterseçãodeconjuntossubstituindo
aoperação interseçãoporumpardeoperaçõesdediferença
deconjuntoscomo:
� � ∩���������
• Portanto, a interseção de conjuntos não é uma operação
fundamental, apenas uma combinação de comandos
estudadosanterioreseé maisconveniente;
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãointerseçãodeconjuntos
� Notação:r ∩∩∩∩ s
� Nota:r ∩∩∩∩ s =r – (r – s)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Figura2.19:Clientescomumaconta
eumempréstimonobanco
∏∏∏∏nome_cliente (tomador)∩∩∩∩ ∏∏∏∏nome_cliente (depositante)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Operaçãointerseçãodeconjuntos– Exemplo
� Relaçãor,s:
� r ∩∩∩∩ s
AB
α
α
β
1
2
1
AB
α
β
2
3
r s
AB
α 2
SistemadeBancodeDados,5/E
Exercícios
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Exemplodebanking
– agência(nome_agência,cidade_agência,ativo)
– cliente(nome_cliente,rua_cliente,cidade_cliente)
– conta(número_conta,nome_agência,saldo)
– empréstimo(número_empréstimo,nome_agência,quantia)
– depositante(nome_cliente,número_conta)
– tomador (nome_cliente,número_empréstimo)
SistemadeBancodeDados,5/E
Exercicios
1. Encontre todos os empréstimos de mais de US$ 1200
2. Encontre os nomes de todos os clientes que têm um 
empréstimo, uma conta, ou ambos, do banco
3. Encontre os nomes de todos os clientes que têm um 
empréstimo e uma conta no banco
4. Encontre os nomes de todos os clientes que têm um 
empréstimo na agência Perryridge. 
5. Encontre os nomes de todos os clientes que têm um 
empréstimo na agência Perryridge mas não têm uma conta em 
qualquer agência do banco.
6. Encontre os nomes de todos os clientes que têm um 
empréstimo na agência Perryridge.
7. Encontreomaiorsaldodeconta
© Korth • Silberschatz • Sundarshan
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Consultasdeexemplo
1. Encontre todos os empréstimos de mais de US$ 1200
– σσσσquantia>1200(empréstimo)
� Encontre o número de empréstimo para cada 
empréstimo de uma quantia maior que US$ 1200
• ∏número_empréstimo (σquantia > 1200 (empréstimo))
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Consultasdeexemplo
2. Encontre os nomes de todos os clientes que têm um 
empréstimo, uma conta, ou ambos, do banco
• Πnome_cliente (tomador) ∪ Πnome_cliente (depositante)
3. Encontre os nomes de todos os clientes que têm um 
empréstimo e uma conta no banco
• Πnome_cliente (tomador) ∩ Πnome_cliente (depositante)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Consultasdeexemplo
4.Encontre os nomes de todos os clientes que têm um 
empréstimo na agência Perryridge. 
• ∏nome_cliente (σnome_agência =“Perryridge”
(σtomador.número_empréstimo =empréstimo.número_empréstimo(tomadorx
empréstimo)))
5. Encontre os nomes de todos os clientes que têm um 
empréstimo na agência Perryridge mas não têm uma conta 
em qualquer agência do banco.
• ∏nome_cliente(σnome_agência =“Perryridge” (σtomador.número_empréstimo =empréstimo.
número_empréstimo (tomadorxempréstimo)))– ∏nome_cliente
(depositante)
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Consultasdeexemplo
6. Encontre os nomes de todos os clientes que têm 
um empréstimo na agência Perryridge. 
• Consulta 1
• ∏nome_cliente (σnome_agência =“Perryridge”
(σtomador.número_empréstimo =empréstimo.número_empréstimo(tomadorx
empréstimo)))
• Consulta 2
• ∏nome_cliente(σempréstimo.número_empréstimo =tomador.número_empréstimo
((σnome_agência =“Perryridge” (empréstimo))xtomador))
SistemadeBancodeDados,5/E
© Korth • Silberschatz • Sundarshan
Consultasdeexemplo
7.Encontreomaiorsaldodeconta
�Estratégia:
�Encontreossaldosquenão sãoomaior
– Renomeie arelaçãoconta comod demodoquepossamos
compararcadasaldodecontacomtodososoutros
�Usediferençadeconjuntosparaencontrarossaldosdeconta
quenão foramencontradosnaprimeiraetapa.
�Aconsultaé:
• Πsaldo (conta) − Πconta.saldo (σconta.saldo < d.saldo (conta 
×ρd (conta)))
SistemadeBancodeDados,5/E
Fimdocapítulo
© Korth • Silberschatz • Sundarshan

Outros materiais