You are on page 1of 34

*Falta a pgina 505

Antes de seguirmos adiante, devemos deixar claro que, em


nossa opinio (e na opinio de muitos outros autores tambm,
bom acrescentar), nulos e !" so um equ#voco srio e no
t$m lugar em um sistema %ormal limpo como o modelo
relacional&* 'e(a como %or, no seria apropriado excluir de
todo a discusso sobre nulos e !" de um livro desta
nature)a* da# este cap#tulo&
+nto, o plano do cap#tulo o seguinte& Ap,s a introdu-o,
na 'e-o ./&0, suspenderemos a descren-a por algum tempo e
mostraremos (da mel1or %orma poss#vel) as idias bsicas que
regem os nulos e !", sem o%erecer muitas cr#ticas a essas
idias& (2a verdade, no poss#vel criticar as idias de
modo adequado ou (usto sem antes explicar quais so essas
idias&) +m seguida, na 'e-o ./&, discutiremos algumas das
conseq3$ncias mais importantes dessas idias, em uma
tentativa de (usti%icar nossa posi-o de que os nulos so um
equ#voco& A 'e-o ./&4 considera as implica-5es de nulos para
c1aves primrias e estrangeiras& A 'e-o ./&5 %a) um
digresso para considerar uma opera-o que em geral
encontrada no contexto de nulos e de !", ou se(a, a opera-o
de (un-o externa& A 'e-o ./&6 %a) uma breve considera-o
sobre uma abordagem alternativa para o problema da %alta de
in%orma-5es com o uso de valores especiais& A 'e-o ./&7
esbo-a os aspectos relevantes de '8"& Finalmente, a 'e-o
./&/ apresenta um resumo&
9m :ltimo comentrio preliminar; claro que existem muitas
ra)5es pelas quais poder#amos ser incapa)es de inserir um
valor de dados real em alguma posi-o dentro de alguma tupla
< =valor descon1ecido> apenas uma ra)o poss#vel& ?utras
incluem =valor no aplicvel>, =valor no existente>, =valor
no de%inido>, =valor no %ornecido>, e assim por diante
@./&5A&** Be %ato, na re%er$ncia @5&0C Dodd prop5e que o
modelo relacional inclua no um, mas dois nulos distintos, um
signi%icando =valor descon1ecido> e o outro =valor no
aplicvel>, propondo ento que os 'EFBs devem lidar com uma
l,gica de quatro valores em ve) de trivalorada& Dontestamos
essa proposta em outro local @./&5A* neste cap#tulo, vamos
limitar nossa aten-o a uma :nica espcie de nulo, o nulo
=valor descon1ecido>, ao qual muitas ve)es < mas no
invariavelmente < iremos nos re%erir como 92G (signi%icando
descon1ecido < unHnoIn)&
./&0 9JA !K'L? E+MA" BA AF?MBAE+J B+ !"
2esta se-o, tentaremos explicar os componentes principais da
abordagem !" para perda de in%orma-5es& !amos come-ar
considerando o e%eito de nulos < signi%icando especi%icamente
92Gs < em express5es booleanas&
+xpress5es booleanas
C dissemos que qualquer expresso de compara-o escalar em
que algum dos operandos 92G tem valor verdade descon1ecido,
em ve) de verdadeiro ou %also, e portanto que estamos lidando
com l,gica trivalorada (!")& Bescon1ecido (que
%req3entemente, mas no invariavelmente, abreviaremos de
agora em diante como unH) o terceiro valor verdade& +nto,
aqui esto as tabelas verdade de !" para A2B, ?M e 2?N (v O
verdadeiro, % O %also, u O unH);
* Por exemplo, di)er que uma certa tupla de pe-a no contm
nen1um valor de P+'? di)er < por de%ini-o < que a tupla em
questo no absolutamente uma tupla de pe-a& Be modo
equivalente, di)er que essa tupla no uma instancia-o do
predicado aplicado& A verdade que a pr,pria a-o de tentar
enunciar de %orma precisa o signi%icado do esquema de nulos
, ou deve ser, su%iciente para mostrar por que a idia no
muito coerente& 9ma conseq3$ncia que tambm di%#cil
explicQla de modo coerente& Ditando a re%er$ncia @./&.R.;
=Nudo %a) sentido se voc$ usa um pouco de imagina-o e no
complica demais&>
** Porm, observamos que no existe nen1uma =omisso de
in%orma-5es> como tal, em qualquer desses outros casos& Por
exemplo, se dissermos que a comisso =no aplicvel> para o
empregado Coe, estaremos di)endo de modo bem expl#cito que a
propriedade de gan1ar uma comisso no se aplica aCoe* no 1
nesse caso nen1uma perda de in%orma-5es& (Dontudo, ainda o
caso de que, se a =tupla de empregado> de Coe =contiver> um
=nulo no aplicvel> na posi-o da comisso, ento essa tupla
no
506 ser uma tupla de empregado < ou se(a, ela no ser uma
instancia-o do predicado =empregados>&)
A2B v u %
?M v u %
v vu% v vvv
u uu% u vuu u
% %%% % vu% % v
Por exemplo, vamos supor que A O , F O 4 e D 92G& +nto,
as express5es a seguir t$m os valores verdade indicados;
ASFA2BFSD ; %also
ASF?MFSD ; unH
A T F ?M F T D ; verdadeiro
2?N(AOD) ; unH
Porm, A2B, ?Me 2?N no so os :nicos operadores booleanos de
que necessitamos @./&...* outro operador importante JAUF+
(talve)) @./&5A, com a seguinte tabela verdade;
Para ver por que JAUF+ dese(vel, considere a consulta
=?bter empregados que possam ser < mas dos quais no se sabe
positivamente se so < programadores nascidos antes de ./ de
(aneiro de .R7., e com salrio menor que V 50&000W& Dom o
operador JAUF+, a consulta pode ser enunciada de %orma
bastante sucinta, como;
+JP XY+M+ JAUF+ ( C?F O ProgramadorW A2B
B?F T BAN+ Z.R7.Q.Q./W A2B
'A"[MK? T 50000,00
('upomos que os atributos C?F, B?F e 'A"[MK? da varivel de
rela-o +JP so dos tipos DYAM, BAN+ e MANK?2A",
respectivamente&) 'em o operador JAUF+, a consulta poderia
%icar assim;
+JP XY+M+ ( K'92G ( C?F ) A2B
B?F T BAN+ Z.R7.Q.Q./W A2B
'A"[MK? T 50000,00
?M ( C?F O ZProgramadorW A2B
K'92G ( B?F ) A2B
'A"[MK? T 50000,00
?M ( C?F O ZProgramadorW A2B
B?F T BAN+ Z.R7.Q.Q./W A2B
K'92G ( 'A"[MK?
?M ( K'92G ( C?F ) A2B
K'92G ( B?F ) A2B
'A"[MK? T 50000,00
?M ( K'92G ( C?F ) A2B
B?F T BAN+ Z.R7.Q.Q./W A2B
K'92G ( 'A"[MK?
?M ( C?F O ZProgramadorW A2B
K'92G ( B?F ) A2B
K'\92G ( 'A"[MK?
?M ( K'KC2G ( C?F ) A2B
K'KK2G ( B?F ) A2B
. 'KC2G ( 'A"[MK?
v
%
u
JAUF+
%
v
u
%
t
%
507
('upomos a exist$ncia de outro operador de valor verdade,
c1amado K' 92G, o qual toma um :nico operando de expresso
escalar e retorna verdadeiro se esse operando tem o valor
92G, %also em caso contrrio&)
A prop,sito, o que %oi dito no deve ser tomado como sugesto
de que JAUF+ se(a o :nico operador booleano adicional
necessrio para !"& 2a prtica, por exemplo, um operador
NM9+\?M\ JAUF+ (verdadeiro ou talve)) poderia ser muito :til
@./&5A& Donsulte a anota-o ] re%er$ncia @./&ll(, na se-o
=Me%er$ncias e bibliogra%ia>&
+^K'N' e F?MA""
Apesar do %ato de a maioria dos nossos exemplos neste livro
se basear na lgebra e no no clculo, precisamos considerar
as implica-5es da !" para os quanti%icadores de clculo
+^K'N' e F?MA""& Domo explicamos no Dap#tulo 7, de%inimos os
quanti%icadores +^K'N' e F?MA"" como ?M e A2B iterados,
respectivamente& +m outras palavras, se (a) r uma rela-o
com tuplas ti, t0, &&&, tm, e (b) ! uma varivel de
intervalo que percorre essa rela-o e (c) p(!) uma
expresso booleana na qual !ocorre com uma varivel livre,
ento a expresso;
+^K'N' v ( p ( ! ) )
de%inida como equivalente ] expresso
%also?Mp(ti)?M&&&?Mp(tni)
Be modo anlogo, a expresso
F?MA"" ! ( p ( ! ) )
de%inida como equivalente ] expresso
verdadeiro A2B p ( ti ) A2B &&& A2B p ( tm
+nto, o que acontece se p(ti) tem o valor unH para algum i_
Domo exemplo, se(a a rela-o r, contendo exatamente as
seguintes tuplas;
( ., 0,
( ., 0, 92G )
( 92G, 92G, 92G )
Para simpli%icar, supon1a que (a) os tr$s atributos, da
esquerda para a direita, se(am c1amados A, F e D,
respectivamente* (b) todo atributo se(a do tipo K2N+E+M&
+nto, as express5es a seguir t$m os valores indicados;
+^K'N' li ( !&D S . ) ; verdadeiro
+^K'N' ! ( !&F S 0 ) ; unH
+^K'N' ! ( JAUF+ ( l`&A S ) ) ; verdadeiro
+^K'N' ! ( K'92G ( !&D ) ) ; verdadeiro
F?MA"" ! ( !&A S . ) ; %also
F?MA"" ! ( !&F S . ) ; unH
F?MA"" ! ( JAUF+ ( !&D S . ) ) ; %also
50/
+xpress5es calculadas
Donsidere a expresso numrica;
P+'? * 454
onde P+'? representa o peso de alguma pe-a, digamos P7& + se
acontecer de o peso da pe-a P7 ser 92G_
< qual ser ento o valor da expresso_ A resposta que ele
tambm dever ser considerado como 92G& Be %ato, consideramos
em geral que qualquer expresso numrica escalar ten1a o
valor 92G se qualquer dos operandos dessa expresso %or ele
pr,prio 92G& Assim, por exemplo, se acontecer de P+'? ser
92G, todas as express5es a seguir tambm tero o valor 92G;
P+'? a 454 454 a P+'? a P+'?
P+'? < 454 454 < P+'? Q P+'?
P+'? * 454 454 * P+'?
P+'? ` 454 454 ` P+'?
2ota; talve) dev$ssemos di)er logo que o tratamento anterior
para express5es numricas %a) surgirem certas anomalias& Por
exemplo, a expresso P+'? < P+'?, que deveria claramente
resultar em )ero, na verdade retorna 92G, e a expresso
P+'?`?, que claramente deveria gerar um erro =diviso por
)ero>, tambm retorna 92G (supondoQse em ambos os casos que
P+'? se(a 92G, ,bvio)&
Donsidera-5es anlogas se aplicam a todos os outros tipos de
dados e operadores escalares, exceto (a) os operadores de
compara-o (consulte as duas subse-5es anteriores), (b) o
operador K'\92G discutido anteriormente e (c) o operador
KF\92G a ser discutido no pargra%o seguinte& Assim, por
exemplo, a expresso de strings de caracteres A . . F retorna
92G se A 92G ou F 92G, ou ambos& (Be novo, 1 certos
casos anbmalos, cu(os detal1es omitimos aqui&)
? operador KF\92G toma dois operandos de express5es escalares
e retorna o valor do primeiro operando, a menos que esse
operando ten1a o valor 92G* nesse caso, a expresso retorna o
valor do segundo operando (em outras palavras, o operador
e%etivamente %ornece um meio para converter um 92G em algum
valor no 92G)& Por exemplo, supon1a que se(am permitidos
92Gs para o atributo DKBAB+ de %ornecedores& +nto, a
expresso;
+^N+2B F ABB KF92G ( DKBAB+& Didade descon1ecida ) A' FDKBA?+
produ)ir um resultado em que o valor FDKBAB+ =Didade
descon1ecida> para qualquer %ornecedor cu(a cidade se(a dada
como 92G em F&
A prop,sito, observe que NF\92G pode ser de%inido em termos
de K' 92G& Para sermos espec#%icos, a expresso;
KF92G ( expi, exp0 )
(onde as express5es expi e exp0 devem ser do mesmo tipo)
equivalente ] expresso;
KF K'92G ( expi ) NY+2 exp0 +"'+ expi +2? KF
92G no unH
c importante entender que 92G (o nulo =valor descon1ecido>) e
unH (o valor verdade descon1ecido) no so a mesma coisa&* Be
%ato, essa situa-o conseq3$ncia imediata do %ato de unH
ser um valor (especi%icamente, um valor verdade) enquanto que
92G no absolutamente um valor& 'e(amos um pouco mais
espec#%icos& 'upon1a que ^ se(a uma varivel do tipo F??"+A2&
+nto, ^ deve ter um dos valores verdadeiro, %also ou unH&
Assim, a instru-o =^ unH> signi%ica exatamente que o valor
de ^ con1ecido como unH& +m contraste, a instru-o =^
92G> signi%ica que o valor de ^ descon1ecido&
* Porm, a '8" considera que eles so a mesma coisa
(consulte o Ap$ndice F)&
50R
9m dom#nio pode conter um 92G_
Nambm uma conseq3$ncia imediata de 92G no ser um valor o
%ato de que 92Gs no podem apareQ cer em dom#nios (dom#nios
so con(untos de valores)& Be %ato, se %osse poss#vel que um
dom#nio contivesse um nulo, ento as veri%ica-5es de
restri-5es de tipos para um determinado dom#nio nunca
%al1ariamd Por outro lado, como dom#nios na verdade no podem
conter 92Gs, uma =rela-o> que conten1a um 92G < qualquer que
se(a ela < na realidade, no seria de modo algum uma rela-o,
nem pela de%iniQ -o dada no Dap#tulo 5, nem pela de%ini-o
original de Dodd que %oi dada na re%er$ncia @5&.A& !oltaremos
a esse importante assunto na 'e-o ./&6, mais adiante&
+xpress5es relacionais
!amos voltar nossa aten-o agora para o e%eito de 92Gs sobre
operadores da lgebra relacional& Para simpli%icar, nos
limitaremos aos operadores produto, restri-o, pro(e-o,
unio e di%eren-a (o e%eito de 92Gs sobre os outros
operadores pode ser dedu)ido de seu e%eito sobre esses
cinco)&
+m primeiro lugar, o produto no a%etado&
'egundo, a opera-o de restri-o rede%inida (ligeiramente)
para retornar uma rela-o cu(o corpo contm apenas as tuplas
para as quais a condi-o de restri-o avaliada como
verdadeira, isto , no %alsa nem unH& 2ota; %i)emos essa
suposi-o tcita de rede%ini-o em nosso exemplo de JAUF+ na
subse-o anterior =+xpress5es booleanas>&
+m seguida, a pro(e-o& A pro(e-o, claro, envolve a
elimina-o de tuplas duplicadas redundantes& Agora, na l,gica
convencional de dois valores (0!"), duas tuplas so
duplicatas uma da outra se e somente se t$m os mesmos
atributos e os atributos correspondentes t$m valores iguais&
Porm, em !", alguns desses valores de atributos podem ser
92G e 92G, (como vimos), no igual a nada, nem sequer a ele
mesmo& 'omos ento %or-ados a concluir que uma tupla que
conten1a um 92G nunca poder ser uma duplicata de nada, nem
de si mesma_
'egundo Dodd, a resposta a essa pergunta no; dois 92Gs,
embora no se(am iguais entre si, ainda so considerados
=duplicatas> um do outro para %ins de elimina-o de tuplas
duplicadas @.&6A&* A contradi-o aparente explicada desta
%orma
@?s testes de igualdadeA para remo-o de duplicatas esto&&&
em um menor n#vel de detal1e que a veri%ica-o de igualdade
na avalia-o das condi-5es de uma busca& Portanto, poss#vel
adotar uma regra di%erente&
Beixamos para voc$ o trabal1o de (ulgar se essa explica-o
ra)ovel ou no& Be qualquer modo, vamos aceitQla por
enquanto e, em conseq3$ncia disso, aceitar a seguinte
de%ini-o;
e Buas tuplas so duplicatas uma da outra se e somente se (a)
elas t$m os mesmos atributos, e (b) para cada um desses
atributos, as duas tuplas t$m ambas o mesmo valor ou ambas
t$m um valor 92G na posi-o desse atributo&
Dom essa de%ini-o estendida de =tuplas duplicadas>, a
de%ini-o original de pro(e-o se aplica agora sem
altera-5es&
Bo mesmo modo, a unio envolve a elimina-o de tuplas
duplicadas redundantes e a mesma de%ini-o de tuplas
duplicadas se aplica& Assim, de%inimos a unio de duas
rela-5es ri e r0 (do mesmo tipo) como a rela-o r (mais uma
ve) do mesmo tipo) cu(o corpo consiste de todas as tuplas t
poss#veis tais que t uma duplicata de alguma tupla de ri ou
de alguma tupla de r0 (ou de ambas)&
Finalmente < embora no envolva qualquer elimina-o de
duplicatas < a di%eren-a de%inida de modo anlogo* ou se(a,
uma tupla t aparece em ri JK29' r0 se e somente se ela uma
duplicata de alguma tupla de ri e no duplicata de alguma
tupla de r0& (2o caso da interse-o, claro que ela no
pri A re%er$ncia @.&6A %oi o primeiro dos artigos de Dodd a
discutir o problema da perda de in%orma-5es (embora esse
problema no ten1a sido o %oco principal do artigo < consulte
o Dap#tulo .)& +ntre outras coisas, o artigo prop5e vers5es
=talve)> dos operadores de (un-o f, sele-o ? (isto ,
restri-o) e diviso (ve(a o +xerc#cio ./&4), alm de vers5es
=externas> dos operadores
5.0 de unio, interse-o, di%eren-a, (un-o ? e (un-o
natural (consulte a 'e-o ./&5)&
mitiva mas, por complete)a, observamos que ela tambm
de%inida de modo anlogo* assim, uma tupla t
aparece em ri K2N+M'+DN r0 se e somente se ela uma
duplicata de alguma tupla de ri e de alguma tuQ
pia de r0&)
?pera-5es de atuali)a-o
Y dois pontos gerais a en%ati)ar aqui;
.& 'e o atributo A da varivel de rela-o M permite 92Gs e se
uma tupla inserida em M sem valor algum %ornecido para A, o
sistema automaticamente colocar um 92G na posi-o A da
tupla& 'e o atributo A da varivel de rela-o M no permite
92Gs, uma tentativa de criar uma tupla em M atravs de K2'+MN
ou 9PBAN+ na qual a posi-o de A 92G ser um erro ( claro
que estamos supondo em ambos os casos que no %oi de%inido
nen1um valor padro no 92G para A)&
0& 9ma tentativa atravs de K2'+MN ou 9PBAN+ de criar uma
tupla duplicada em r ser um erro, como sempre& A de%ini-o
de =tuplas duplicadas> aqui a que %oi dada na subse-o
precedente&
Mestri-5es de integridade
Don%orme explicamos no Dap#tulo /, uma restri-o de
integridade basicamente uma expresso booleana que no deve
ter o valor %also& Portanto, observe que a restri-o no
considerada como violada se ela tem o valor unH (na verdade,
estamos supondo tacitamente a validade de grande parte das
nossas observa-5es anteriores nesta se-o a respeito de
restri-5es de tipos)& + claro que, tecnicamente, devemos
di)er em tal caso que no se sabe se a restri-o %oi violada
mas, da mesma %orma que unH considerado %also para %ins de
uma clusula XY+M+, ele tambm considerado verdadeiro para
as %inalidades de uma restri-o de integridade (%alandoQse em
termos bastante in%ormais)&
./& A"E9JA' D?2'+8gh2DKA' B? +'89+JA PM+D+B+2N+
A abordagem !" como %oi descrita na se-o precedente tem
vrias conseq3$ncias l,gicas, nem todas imediatamente ,bvias&
Biscutimos algumas delas e seus signi%icados nesta se-o&
Nrans%orma-5es de express5es
Primeiro, observamos que vrias express5es que sempre t$m
valor verdadeiro na l,gica de dois valores (0!") no t$m
necessariamente valor verdadeiro em !"& Bamos aqui alguns
exemplos com comentrios& ?bserve que no pretendemos que a
lista a seguir se(a exaustiva&
e A compara-o x O x no resulta necessariamente em
verdadeiro&
+m 0!", qualquer valor x sempre igual a si mesmo& Porm, em
!", x no igual a ele mesmo, no
caso de ser 92G&
e A expresso booleana p ?M 2?N (p) no resulta
necessariamente em verdadeiro&
2esse caso, p por sua ve) uma expresso booleana& Agora, em
0!", a expresso p ?M 2?N (p) avaliada necessariamente como
verdadeira, qualquer que se(a o valor de p& Dontudo, em !",
se p tiver o valor unH, a expresso global ter o valor unH
?M 2?N (unH), isto , o valor unH ?M unH, que se redu) a unH,
e no a verdadeiro&
+sse exemplo em particular responde por uma propriedade
antiintuitiva bem con1ecida de !", que ilustramos assim; se
emitirmos a consulta =?bter todos os %ornecedores em
"ondres>, seguida pela consulta =?bter todos os %ornecedores
no em "ondres>, e tomarmos a unio dos dois resultados, no
obteremos necessariamente todos os %ornecedores& +m ve)
disso, precisamos incluir =todos os %ornecedores que possam
estar em "ondres&*
* Domo sugere a discusso precedente, uma expresso que
sempre tem o valor verdadeiro em !" < isto , a anloga em
!" da
expresso de 0!" p ?M 2?N (p) Q p ?M 2?N (p) ?M JAUF+ (p)&
5..
c claro que a questo sobre esse exemplo que, embora os
dois estados =cidade "ondres> e =cidade no "ondres>
se(am mutuamente exclusivos e esgotem todas as possibilidades
no mundo real, o banco de dados no contm o mundo real < em
ve) disso, ele contm apenas um con1ecimento sobre o mundo
real& Alm disso, 1 tr$s casos poss#veis, e no dois,
relacionados com o con1ecimento sobre o mundo real; no
exemplo, os tr$s casos so =sabeQse que a cidade "ondres>,
=sabeQse que a cidade no "ondres> e =a cidade no
con1ecida>& + claro que (como menciona a re%er$ncia @./&6A),
evidentemente no podemos %ormular perguntas para o sistema
sobre o mundo real* s, podemos %ormular perguntas sobre seu
con1ecimento do mundo real, representado pelos dados no banco
de dados& Portanto, a nature)a antiintuitiva do exemplo
deriva de uma con%uso sobre remos; o usurio est pensando
em termos do reino que o mundo real, mas o sistema est
operando em termos do reino que seu con1ecimento sobre esse
mundo real&
2ota; contudo, nos parece que tal con%uso sobre remos uma
armadil1a na qual muito %cil cair& ?bserve que cada
consulta isolada mencionada nos cap#tulos precedentes
(exemplos, exerc#cios, etc&) %oi enunciada em termos =do
mundo real>, no em termos de =con1ecimento sobre o mundo
real> < e este livro certamente no di%ere de outros quanto a
esse aspecto&
e A expresso r C?K2 r no retorna necessariamente r&
+m 0!", a %orma-o da (un-o de uma rela-o r com ela pr,pria
sempre produ) a rela-o r original (isto , a (un-o idem
potente)& Porm, em !", uma tupla contendo 92G em qualquer
posi-o no %ar (un-o com ela mesma, porque a (un-o,
di%erente da unio, se baseia em testes de igualdade =tipo
acesso> e no em testes de igualdade de =tipo de duplicata>&
e K2N+M'+DN( no um caso especial deC?K2&
Ksso uma conseq3$ncia do %ato de que (novamente) a (un-o
se baseia em testes de igualdade tipo de acesso, enquanto a
interse-o se baseia em testes de igualdade do tipo de
duplicatas&
e A O F e F O D (untos no implicam necessariamente A O D&
9ma ilustra-o desse ponto particular dada a seguir, na
subse-o =? exemplo de departamentos e empregados>&
+m suma, muitas equival$ncias vlidas em 0!" ( no subsistem
em !"& 9ma conseq3$ncia muito sria dessas quebras dada a
seguir& +m geral, equival$ncias simples como rC?K2 r M esto
no cerne das vrias leis de trans%orma-o usadas com a
%inalidade de converter consultas para alguma %orma mais
e%iciente, como explicamos no Dap#tulo .7& Alm disso, essas
leis so usadas no apenas pelo sistema (ao %a)er a
otimi)a-o), mas tambm pelos usurios (quando tentam decidir
a =mel1or> maneira de enunciar uma determinada consulta)& +
se as equival$ncias no so vlidas, ento as leis no so
vlidas& 'e as leis no so vlidas, ento as trans%orma-5es
no so vlidas& + as trans%orma-5es no so vlidas, ento
receberemos respostas erradas do sistema&
? exemplo de departamentos e empregados
Para ilustrar o problema de trans%orma-5es incorretas,
discutiremos com algum detal1e um exemplo espec#%ico
(retirado da re%er$ncia @./&RA* por ra)5es pouco importantes
aqui, ele se baseia no clculo relacional e no na lgebra
relacional)& !amos supor que nos se(a dado o banco de dados
simples de departamentos e empregados mostrado na Figura
./&.& Donsidere a expresso;
B+PN?&B+PN?i O +JP&B+PN?i A2B +JP&B+PN?i O B+PN?i ( Bl )
(que poderia ser parte de uma consulta, claro)* B+PN? e +JP
so variveis de intervalos impl#citas& Para as :nicas tuplas
existentes no banco de dados, essa expresso tem o valor unH
A2B unH, isto , como unH& Dontudo, um =bom> otimi)ador
observar que a expresso da %orma a O b A2B b O c, e por
essa ra)o ir in%erir que a O c, e ento acrescentar uma
restri-o adicional a O c ] expresso original (como
discutimos no Dap#tulo .7, 'e-o .7&4), gerando a expresso;
5.0
F . E 9 MA . / & . ? banco de dados de departamentos e
empregados
Agora essa expresso modi%icada avaliada como unH A2B unH
A2B %alsa, isto , %alsa (para as duas :nicas tuplas do banco
de dados)& Portanto, decorre que a consulta (por exemplo);
+JP&+JPi XY+M+ +^K'N' B+PN? ( 2?N
( B+PN?&B+PN?i O +JP&B+PN?i A2B +JP&B+PN?i O B+PN?i ( ZBlW )
retornar o empregado +l se =otimi)ada> no sentido anterior e
no %ar isso em caso contrrio& +m outras palavras, a
=otimi)a-o> na verdade no vlida& !emos assim que certas
otimi)a-5es que so per%eitamente vlidas < e :teis < na
l,gica convencional de dois valores ( no so vlidas sob a
l,gica de tr$s valores&
?bserve as implica-5es do que vimos quanto a estender um
sistema 0!" para admitir a !"& 2a mel1or das 1ip,teses, tal
extenso provavelmente exigir uma certa dose de reengen1aria
do sistema existente, ( que por-5es do c,digo otimi)ador
podero ser invalidadas* no pior das 1ip,teses, introdu)iQ r
bugs& Be %orma mais geral, observe as implica-5es para se
estender um sistema que admita a l,gica de n valores a um
sistema que admita a l,gica de (na.) valores, para qualquer n
maior que um* certamente surgiro di%iculdades anlogas para
cada valor discreto de n&
A questo da interpreta-o
!amos examinar agora com mais detal1es o exemplo de
departamentos e empregados& Domo o empregado +l tem algum
departamento correspondente no mundo real, o 92G representa
algum valor real, digamos d& ?ra, ou d Bl ou no & 'e ,
ento a expresso original;
B+PN?&B+PN?i O +JP&B+PN?i A2B +JP&B+PN?i O B+PN?i ( BlW
avaliada (para os dados %ornecidos) como %alsa, porque o
primeiro termo avaliado como %also& Domo outra alternativa,
se d no Bl, ento a expresso tambm avaliada (para os
dados %ornecidos) como %alsa porque o segundo termo tem o
valor %also& +m outras palavras, a expresso original
sempre %alsa no mundo real, qualquer que se(a o valor real
representado por 92G& Assim, o resultado correto segundo a
l,gica trivalorada e o resultado correto no mundo real no
so a mesma coisad +m outras palavras, a l,gica de tr$s
valores no se comporta de acordo com o mundo real* isto , a
!" no parece ter uma interpreta-o ra)ovel em termos de
como %unciona o mundo real&
2ota; a questo de interpreta-o est muito longe de ser o
:nico problema resultante de nulos e da !" (consulte as
re%er$ncias @./&.A a @./&... para ver uma extensa discusso
de vrios outros problemas)& +le no nem mesmo o mais
%undamental (consulte a pr,xima subse-o)& Dontudo, talve)
se(a o :nico problema de signi%ica-o pragmtica maior* em
nossa opinio, na verdade ele um desmanc1aQpra)eres&
Predicados de novo
'upon1a que a rela-o que o valor atual da varivel de
rela-o +JP contm apenas duas tuplas,
(+0,B0) e (+.,92G)& A primeira corresponde ] proposi-o
=+xiste um empregado identi%icado como +0 5.
0!
"
operadores mondicos operadores didicos
4 .6
!
"
07 .R&6/
4!
"
056 4&0R4&R67&0R6
n!
"
(n)**(n) (n)**(n0)
no departamento identi%icado como B0W& A segunda corresponde
] proposi-o =+xiste um empregado identi%icado como +lW&
("embreQse de que di)er que uma tupla =contm um 92G>
realmente di)er que a tupla no contm nada em absoluto na
posi-o em questo* desse modo, a =tupla> (+l, 92G) < se ela
na verdade uma tupla, o que em si mesmo uma no-o
duvidosa < deve ser considerada como da %orma (+l)&) +m
outras palavras, as duas tuplas so instancia-5es de dois
predicados di%erentes e a =rela-o> no em absoluto uma
rela-o, mas sim (em termos in%ormais) uma espcie de unio
de duas rela-5es di%erentes contendo, em particular, dois
cabe-al1os di%erentes&
?ra, poder#amos sugerir que poss#vel salvar a situa-o
a%irmando que, a%inal de contas, s, existe realmente um
predicado, e que esse predicado envolve um ?M;
+xiste um empregado identi%icado como +i no departamento
identi%icado como Bi ?M existe um empregado identi%icado como
+i&
Porm, observe que agora < gra-as ] Yip,tese de Jundo Fec1ado
< a rela-o ter de conter uma =tupla> da %orma (+i,92G) para
todos os empregados +id A generali)a-o dessa tentativa de
salvamento para uma =rela-o> que =contm 92Gs> em vrios
=atributos> di%erentes algo 1orr#vel demais para se
contemplar& (+, em qualquer caso, a =rela-o> que resulta
ainda no ser uma rela-o < ve(a o pr,ximo pargra%o&)
+m outras palavras, se o valor de um determinado atributo
dentro de uma dada tupla de uma certa rela-o = 92G>, ento
(repetindo) a posi-o desse atributo no contm realmente
nada &&& o que implica que o =atributo> no um atributo, a
=tupla> no uma tupla, a =rela-o> no uma rela-o e a
base para o que estamos %a)endo (se(a o que %or) no mais a
teoria de rela-5es matemticas& +m outras palavras, 92Gs e
!" minam toda a base do modelo relacional&
./&4 29"?' + DYA!+'
2ota; agora vamos descartar o termo 92G (em sua maior parte)
e voltar, por ra)5es 1ist,ricas, ] terminologia mais
tradicional de =nulos>&
Apesar da mensagem da se-o anterior, o %ato que nulos e
!" t$m suporte na maioria dos produtos, no momento em que
escrevemos& Alm disso, tal suporte tem implica-5es
importantes para c1aves em particular& Portanto, nesta se-o,
vamos examinar rapidamente essas implica-5es&
D1aves primrias
Domo explicamos na 'e-o /&/, o modelo relacional costumava
exigir que (pelo menos no caso de variveis de rela-5es
bsicas) %osse escol1ida exatamente uma c1ave candidata como
a c1ave primria para a varivel de rela-o em questo& As
c1aves candidatas restantes, caso 1ouvesse alguma, eram ento
consideradas c1aves alternativas& + ento, (untamente com o
conceito de c1ave primria, o modelo inclu#a 1istoricamente a
seguinte =metarrestri-o> ou regra (a regra de integridade de
entidade);
a Kntegridade de entidade; nen1um componente da c1ave
primria de qualquer varivel de rela-o bsica deve poder
aceitar nulos&
As ra)5es para essa regra so mais ou menos as seguintes; (a)
tuplas em rela-5es bsicas representam entidades no mundo
real* (b) entidades no mundo real so identi%icveis por
de%ini-o* (c) portanto, suas contrapartes no banco de dados
tambm devem ser identi%icveis* (d) valores da c1ave
primria servem como esses identi%icadores no banco de dados*
(e) ento, valores da c1ave primria no devem ser
=omitidos>&
'urgem pontos importantes;
.& +m primeiro lugar, %req3entemente se imagina que a regra
de integridade de entidade di) algo como =valores da c1ave
primria devem ser exclusivos>, mas isso no ocorre& (+
verdade que valores da c1ave primria devem ser exclusivos,
claro, mas esse requisito implicado pela de%ini-o bsica
do conceito de c1ave primria em si&)
0& +m seguida, observe que a regra s, se aplica a c1aves
primrias* as c1aves alternativas aparentemente podem ter
nulos permitidos& Porm, se AG %osse uma c1ave alternativa
com nulos permitidos, entoAG no poderia ser escol1ida como
a c1ave primria, devido ] regra de integridade de entidade*
ento, exatamente em que sentido AG seria uma c1ave
=candidata>, a%inal_ Domo outra op-o, se tivermos de di)er
que c1aves alternativas no podem ter nulos permitidos de
modo algum, ento a regra de integridade de entidade se
aplicaria a todas as c1aves candidatas, no apenas ] c1ave
primria& Be qualquer modo, parece 1aver algo errado com a
regra enunciada&
& Finalmente, observe que a regra de integridade de entidade
s, se aplica a variveis de rela-5es bsicas* outras
variveis de rela-5es podem ter aparentemente uma c1ave
primria para a qual nulos se(am permitidos& Domo um exemplo
trivial e ,bvio, considere a pro(e-o de uma varivel de
rela-o M sobre qualquer atributo A que tem nulos permitidos&
Besse modo, a regra viola ? Princ#pio da Permutabilidade (de
variveis de rela-5es bsicas e derivadas)& +m nossa opinio,
esse seria um argumento %orte para re(eitQla (ainda que ela
no envolvesse nulos, um conceito que re(eitamos de qualquer
maneira)&
2ota; vamos supor que concordamos em descartar toda a idia
de nulos e empregamos valores especiais para representar
in%orma-5es perdidas (na verdade, da mesma maneira que
%a)emos no mundo real < consulte a 'e-o ./&6 mais adiante)&
+nto, podemos querer conservar uma verso modi%icada da
regra de integridade de entidade < =2en1um componente da
c1ave primria de qualquer varivel de rela-o bsica pode
aceitar tais valores especiais> < como uma diretri), mas no
como uma lei inviolvel (de %orma muito semel1ante, ] maneira
como as idias de normali)a-o avan-ada servem como
diretri)es mas no como leis inviolveis)& A Figura ./&0
mostra um exemplo (tirado da re%er$ncia @5&7A) de uma
varivel de rela-o bsica c1amada P+'89K'A, para a qual
podemos querer violar essa diretri)* ele representa os
resultados de uma pesquisa de salrios, mostrando o salrio
mdio, mximo e m#nimo por ano de nascimento para uma certa
amostra de popula-o (A2?2A'DKJ a c1ave primria)& + a
tupla com o valor especial de A2?2A'DKJ =____= representa
pessoas que deixaram de responder ] pergunta =8uando voc$
nasceu_>&
FKE9MA ./&0 A varivel de rela-o bsica P+'89K'A (amostra de
valores)
D1aves estrangeiras
Donsidere uma ve) mais o banco de dados de departamentos e
empregados da Figura ./&.& !oc$ pode no ter notado antes,
mas deliberadamente no dissemos que o atributo B+PN?i da
varivel de rela-o +JP naquela %igura era uma c1ave
estrangeira& +ntretanto, vamos supor agora que se(a& +nto,
claro que a regra de integridade re%erencial precisa de algum
re%inamento porque agora as c1aves estrangeiras devem
aparentemente ter permisso para aceitar nulos e valores
nulos de c1aves estrangeiras sem d:vida violam a regra
enunciada originalmente no Dap#tulo /;
e Kntegridade re%erencial (verso original); o banco de dados
no deve conter quaisquer valores de c1aves estrangeiras sem
correspond$ncia&
5.5
P+'89K
'A
A2?2A'
DKJ
'A"J
+B
'A"J
A^
'A"J
K2
.R60
.R6.
.R60
.R6
/5G
/0G
77G
7/G
.0G
.05G
RRG
R7G
G
0G
0G
5G
.R70 _
___
0RG
56G
5G
..7G
.0G
00G
+xaminemos mais de perto esse exemplo& ?bserve a Figura ./&&
2essa %igura, a parte superior contm algumas amostras de
valores de dados, a parte do meio mostra a correspondente
(un-o interna e a parte in%erior mostra a (un-o externa
correspondente& Domo indica a %igura, a (un-o interna =perde
in%orma-5es> < em termos muito in%ormais < re%erentes a
%ornecedores que no %ornecem pe-a alguma (no exemplo, o
%ornecedor F5), enquanto a (un-o externa =preserva> tais
in%orma-5es& 2a verdade, essa di%eren-a toda a ra)o para a
(un-o externa&
F . E 9 MA . / & Cun-o interna e (un-o externa (exemplo)
Agora, o problema que a (un-o externa %oi criada para
resolver < ou se(a, o %ato de que a (un-o interna ]s ve)es
=perde in%orma-5es> < sem d:vida um problema importante&
Alguns autores argumentaQ riam ento que o sistema deve
%ornecer suporte direto, expl#cito, para a (un-o externa, em
ve) de exigir que o usurio empregue circunl,quios para obter
o e%eito dese(ado& Dodd, em particular, considera agora a
(un-o externa como uma parte intr#nseca do modelo relacional
@5&0A& 2o entanto, n,s mesmos no endossamos essa posi-o,
pelas ra)5es seguintes, entre outras;
& Primeiro, claro, porque a opera-o envolve nulos e somos
contrrios a nulos, por numerosas e boas ra)5es&
& +m segundo lugar, observe que existem di%erentes variedades
de (un-o externa < a (un-o j exQ terna ] esquerda, ]
direita e completa e a (un-o natural externa ] esquerda, ]
direita e completa& ( As (un-5es =] esquerda> preservam
in%orma-5es do primeiro operando, as (un-5es ] =direita>
preservam in%orma-5es do segundo operando e as (un-5es
=completas> de ambos* o exemplo da Figura ./& uma (un-o ]
esquerda < mais precisamente, uma (un-o natural externa ]
esquerda&) ?bserve ainda que no 1 um modo direto de derivar
as (un-5es naturais externas das (un-5es j externas @./&7A&
+m conseq3$ncia disso, no claro o modo exato como as
(un-5es externas precisam ter suporte expl#cito&
& Alm do mais, o problema da (un-o externa est longe de
ser to trivial como poderia sugerir o exemplo simples da
Figura ./&& 2a verdade, como mostra a re%er$ncia @./&7A, a
(un-o externa so%re de vrias propriedades desagradveis,
que (untas implicam que a tare%a de acrescentar o suporte
para (un-o externa ] linguagem existente < em particular ]
'8" < tende a ser algo di%#cil de se %a)er com elegkncia&
!rios produtos de 'EFBs tentaram resolver esse problema e
%al1aram lamentavelmente (isto , trope-aram nessas
Propriedades Besagradveis)& !e(a na re%er$n ci @./&7. uma
longa discusso dessa questo& 5.7
. F2?J+ 'NAN9' . DKBAB+ FP . ( Pi 8B+ .
F0 . Cones lo Paris F0 . P. 00
F5 Adams 0 Atenas F0 P0 400
Cun-o (interna) comum;
F2?J+ 'NAN9' DKBAB+ Pi 8B+
=Perde> in%orma-5es
Cones .0 Paris P. 00
sobre o %ornecedor F5
Cones .0 Paris P0 400
Cun-o
externa;
=Preserva>in%orma-5es sobre o
%ornecedor F5
F2?J
+
'NAN9
'
DKBA
B+
Pi 8B+
Cone
s
Cone
s
Adam
s
.0
.0
0
Pari
s
Pari
s
Aten
as
(@
P0
92
G
400
92G
e Finalmente, os atributos com valor de rela-o %ornecem uma
abordagem alternativa para a solu-o do problema < uma
abordagem que no envolve nulos nem (un-o externa e (em
nossa opinio) uma solu-o muito mais elegante& Por exemplo,
considerandoQse a amostra de valores de dados da parte
superior da Figura ./&, a expresso;
XKNY ( F M+2AJ+ Fi A' ^ ) A' U
+^N+2B U ABB ( FP XY+M+ Fi x ) A' P8
produ) o resultado mostrado na Figura ./&4&
F . E 9 MA . / & 4 Preservando in%orma-5es sobre o %ornecedor
F' (um modo mel1or)
+m particular, observe que na Figura ./&4, o con(unto va)io
dc pe-as %ornecidas pelo %ornecedor F5 representado por um
con(unto va)io, e no (como na Figura ./&) por algum
estran1o =nulo>& Mepresentar um con(unto va)io por um
con(unto va)io parece ser uma idia boa& Be %ato, no 1averia
necessidade de nen1uma (un-o externa se os atributos com
valor de rela-o tiQ vessem suporte apropriado&
!amos prosseguir com esse tema um pouco mais; a%inal, como
devemos interpretar os nulos que aparecem no resultado de uma
(un-o externa_ Por exemplo, o que eles signi%icam no exemplo
da Figura ./&_ Dertamente, no querem di)er =valor
descon1ecido> ou =valor no se aplica>* na verdade, a :nica
interpreta-o que %a) algum sentido l,gico exatamente
=valor o con(unto va)io>& Donsulte a re%er$ncia @./&7. para
ver uma discusso mais pro%unda tambm desse problema&
Donclu#mos esta se-o observando que tambm poss#vel
de%inir vers5es =externas> de algumas outras opera-5es da
lgebra relacional < especi%icamente, das opera-5es de unio,
interse-o e di%eren-a @ .&6. < e, de novo, Dodd agora
considera pelo menos uma delas, a unio externa, como parte
do modelo relacional @5&0A& +ssas opera-5es permitem que
uni5es (etc&) se(am executadas entre duas rela-5es, mesmo que
essas rela-5es no se(am do mesmo tipo* basicamente, elas
%uncionam estendendo cada operando de modo a incluir os
atributos peculiares ao outro (de modo que os operandos agora
se(am do mesmo tipo), inserindo nulos em cada tupla para
todos esses atributos acrescentados e depois executando uma
opera-o normal de unio, interse-o ou di%eren-a, con%orme
se(a aplicvel&* Porm, no discutiremos em detal1es essas
opera-5es, pelos seguintes motivos;
e A interse-o externa retornar com certe)a uma rela-o
va)ia, exceto no caso particular em que as rela-5es originais
so do mesmo tipo e, nesse caso, a opera-o se redu) ]
interse-o normal&
* +ssa explica-o se re%ere ]s opera-5es como elas %oram
de%inidas originalmente @.&6.& A re%er$ncia @5&0A mudou um
pouco as 5./ de%ini-5cs; voc$ deve examinar nesse livro os
detal1es espec#%icos (se dese(ar)&
F
i
F2?J
+
'NAN9
'
DKBAB
+
P
8
F
0
Cone
s
.0 Paris i
P
.
8B
+
0
0
40
P
0
0
F
5
Adam
s
0
Atena
s
P
i
8B
+
& A di%eren-a externa retornar com certe)a seu primeiro
operando, exceto no caso particular em que as rela-5es
originais so do mesmo tipo e, nesse caso, a opera-o se
redu) ] di%eren-a norQ mal&
& A unio externa tem problemas importantes de interpreta-o
(eles so muito piores que os problemas que surgem no caso
da(un-o externa)& Donsulte a re%er$ncia @./&0A para ver uma
discusso mais completa&
./&6 !A"?M+' +'P+DKAK'
!imos a questo dos nulos no modelo relacional& Be %ato, vale
a pena assinalar que o modelo relacional %uncionou
per%eitamente bem sem nulos por de) anosd ? modelo %oi
de%inido inicialmente em .R6R @ 5&.., e os nulos s, %oram
acrescentados em .R7R @.&l(&
Por esse motivo, supon1a que < como sugere a 'e-o ./&4 <
concordamos em descartar toda a idia de nulos e, em ve)
disso, usar valores especiais para representar in%orma-5es
omitidas& ?bserve que usar valores especiais exatamente o
que %a)emos no mundo real& Por exemplo, no mundo real,
podemos utili)ar o valor especial =_= para denotar as 1oras
trabal1adas por um certo empregado, se o valor real
descon1ecido por alguma ra)o&* Besse modo, a idia geral
simplesmente usar um valor especial apropriaQ do, distinto de
todos os valores normais do atributo em questo, quando
nen1um valor normal puder ser usado& ?bserve que o valor
especial deve ser um valor do dom#nio aplicvel* ento, no
exemplo de =1oras trabal1adas>, o tipo do atributo
Y?MA'NMAFA"YABA' no simplesmente inteiro, mas sim inteiro
somado a qualquer que se(a o valor especial&
Agora, ser#amos os primeiros a admitir que o esquema
precedente no muito elegante, mas ele tem a vantagem
%undamental de no minar as bases l,gicas do modelo
relacional& Por essa ra)o, no restante deste livro,
simplesmente ignoraremos a possibilidade de suporte para
nulos (exceto em certos contextos espec#%icos de '8", onde
re%er$ncias ocasionais a nulos so inevitveis)& Donsulte a
re%er$ncia @ ./&.0A para ver uma descri-o detal1ada do
esquema de valores especiais&
./&5 M+D9M'?' B+ '8"
? suporte de '8" para nulos e !" segue as lin1as gerais da
abordagem descrita nas 'e-5es ./&. a ./&5 anteriores& Assim,
por exemplo, quando aplica uma clusula XY+M+ a alguma tabela
N, a '8" elimina todas as lin1as de N para as quais a
expresso nessa clusula XY+M+ tem valor %also ou unH (isto
, no verdadeiro)& Bo mesmo modo, quando aplica uma clusula
YA!K2E a alguma =tabela agrupada> E (consulte o Ap$ndice A),
a '8" elimina todos os grupos de E para os quais a expresso
nessa clusula YA!K2E tem valor %also ou unH (ou se(a, no
verdadeiro)& Assim, simplesmente c1amamos sua aten-o para
certos aspectos de !" espec#%icos para a '8" em si, em ve)
de serem uma parte intr#nseca da abordagem de !" que
discutimos anteriormente&
2ota; as implica-5es e rami%ica-5es do suporte de nulos de
'8" so muito complexas& Para obter mais in%orma-5es,
consulte o documento o%icial do padro @4&00A ou o tratamento
tutorial detal1ado na re%er$ncia @4&.RA&
Be%ini-o de dados
Domo explicamos no Dap#tulo 5, 'e-o 5&5, colunas em tabelas
bsicas em geral t$m um valor de%ault associado e esse valor
de%ault %req3entemente de%inido de %orma expl#cita ou
impl#cita, como nulo& Alm disso, colunas em tabelas bsicas
sempre permitem nulos, a menos que 1a(a uma restri-o de
integridade
< provavelmente apenas 2?N 29"" < para a coluna em questo
que os pro#ba expressamente& A representa-o de nulos
dependente da implementa-o* contudo, ela deve ser tal que o
sistema possa distin ?bserve que a :nica coisa que no
%a)emos usar um nulo para esse prop,sito& 2o existe nada
parecido com um nulo no
mundo real& 5.R
guir nulos de todos os valores no nulos poss#veis (embora a
compara-o =nulo \ x> no resulte em verQ dadeirod)&
+xpress5es sobre tabelas
!imos no Dap#tulo 7, 'e-o 7&7, que o suporte expl#cito de
C?K2 %oi acrescentado ] '8" com o padro '8"`R0& 'e a
palavraQc1ave C?K2 tiver o pre%ixo "+FN, MKEYN ou F9""
(seguido opcionalmente pela palavra ?9N+M em cada caso),
ento a (un-o em questo ser uma (un-o externa& Aqui esto
alguns exemplos;
F "+FN C?K2 FP ?2 F&Fi O FP&Fi
F "+FN C?K2 FP 9'"2E ( Fi )
F "+FN 2AN9MA" C?K2 FP
+ssas tr$s express5es so todas e%etivamente equivalentes,
exceto pelo %ato de a primeira produ)ir uma tabela com duas
colunas id$nticas (ambas c1amadas Fi) e as outras duas
produ)irem uma tabela com apenas uma dessas colunas&
A '8" tambm admite uma aproxima-o para a unio externa, que
ela c1ama (un-o de unio (union (oin) ?s detal1es esto alm
do escopo deste livro&
+xpress5es condicionais
Domo observamos no Dap#tulo /, as express5es condicionais so
o anlogo de '8" para aquilo que estivemos c1amando de
express5es booleanas (elas no explicadas em detal1es no
Ap$ndice A)& 2o surpreende que essas express5es se(am a
parte da '8" mais drasticamente a%etada por nulos e a !"&
!amos nos contentar aqui com algumas observa-5es pertinentes&
e Nestes para nulos; a '8" %ornece dois operadores de
compara-o especiais, K' 29"" e K' 2?N 29"", para testar a
presen-a ou a aus$ncia de nulos& A sintaxe ;
Tconstrutor de lin1asS K' @ 2?N A 29""
(consulte o Ap$ndice A para ver os detal1es de Tconstrutor de
lin1asS)& Y uma armadil1a para os no descon%iados; as duas
express5es K' 2?N 29"" e 2?N (r K' 29"") no so
equivalentesd Para ver uma explica-o, consulte a re%er$ncia
@4&.R.&
e Nestes para verdadeiro, %also, descon1ecido; se p uma
expresso condicional entre par$nteses, ento as express5es a
seguir tambm so express5es condicionais;
p K' @ 2?N A NM9+
p K' t 2?N . FA"'+
p K' @ 2?N . 92G2?X2
?s signi%icados dessas express5es so indicados pela tabela
verdade a seguir;
500
P

verdade
iro
%also unH
p

K
'
NM9+
verdade
iro
%also %also
p

K
'
2?N NM9+ %also
verdade
iro
verdade
iro
p

K
'
FA"'+ %also
verdade
iro
%also
p K 2?N verdade %also verdade
' FA"'+ iro iro
p

K
'
92G2?X2 %also %also
verdade
iro
p

K
'
2?N
92G2?X2
verdade
iro
verdade
iro
%also
?bserve, portanto, que as express5es p K' 2?N NM9+ e 2?N p
no so equivalentesd 2ota; a expresso p K' 92G2?X2
corresponde ao nosso JAUF+(p)&
& Dondi-5es de JANDY; a sintaxe de Tcondi-5es de matc1 S <
consulte o Ap$ndice A < inclui uma op-o PAMNKA" us& F9""
(no mostrada e no discutida no Ap$ndice A) que pode a%etar
o resultado se 1ouver nulos presentes;
Tconstrutor de lin1asS JANDY @ 92K89+ .
+ PAMNKA" . F9"" A ( Texpresso de tabelaS
Y ento seis casos di%erentes, dependendo de (a) a op-o
92K89+ ser especi%icada ou no, e (b) a op-o PAMNKA" vs&
F9"" ser especi%icada ou no (e se %or, qual ela)& Porm,
os detal1es so complexos e esto alm do escopo deste livro&
Donsulte a re%er$ncia @4&.RA para ver uma discusso
adicional&
& Dondi-5es de +^K'N'; consulte a anota-o ] re%er$ncia
@./&6A&
+xpress5es escalares
& ="iterais>; a palavraQc1ave 29"" pode ser usada como um
tipo de representa-o literal de nulo ( por exemplo, em uma
instru-o K2'+MN)& Porm, observe que essa palavraQc1ave no
pode aparecer em todos os contextos nos quais os literais
podem aparecer* como di) o padro, =no 1 TliteralS para um
valor nulo, embora a palavraQc1ave 29"" se(a usada em alguns
lugares para indicar que se dese(a um valor nulo> @4&00A&
Assim, por exemplo, no poss#vel especi%icar explicitamente
29"" como um operando em uma compara-o simples < por
exemplo, =XY+M+ ^ O 29""> no vlida& (A %orma correta ,
naturalmente, =XY+M+ ^ K' 29"">&)
& D?A"+'D+; D?A"+'D+ o anlogo de '8" para nosso operador
NF\92G (consulte a 'e-o ./&0)&
& ?peradores de agregados; os operadores de agregados de '8"
'9J, A!E, etc&, no se comporQ tam segundo as regras para
operadores escalares explicadas na 'e-o ./&0* em ve) disso,
simQ plesmente ignoram quaisquer nulos em seu argumento
(exceto no caso de D?92N(*), onde nulos so tratados
exatamente como se %ossem valores comuns)& Alm disso, se o
argumento para um tal operador %or avaliado como um con(unto
va)io, D?92N retornar )ero* todos os outros operadores
retornaro nulo& (Domo observamos no Dap#tulo 7, esse :ltimo
comportaQ mento logicamente incorreto, mas %oi assim que a
'8"& %oi de%inida&)
e ='ubconsultas escalares>; se uma expresso escalar na
verdade uma expresso de tabela entre par$nteses < por
exemplo, ('+"+DN F&DKBAB+ FM?J F XY+M+ F&Fi O ZFiW) < ento,
em geral essa expresso de tabela ter de ser avaliada como
uma tabela contendo exatamente uma coluna e exatamente uma
lin1a& ? valor da expresso escalar ento tomado como,
exatamente, o :nico valor escalar contido dentro dessa
tabela& Porm, se a expresso de tabela %or avaliada como uma
tabela de coluna :nica que no contm nen1uma lin1a, ento a
'8" de%ine o valor da expresso escalar como nulo&
D1aves
As intera-5es entre nulos e c1aves em '8" podem ser resumidas
assim;
e D1aves candidatas; se(a D uma coluna componente de alguma
c1ave candidata G de alguma tabela bsica& 'e G %or uma c1ave
primria, a '8" no permitir que D conten1a nulos (em outras
palavras, ela ir impor a regra de integridade de entidade)&
Porm, se G no %or uma c1ave primria, a '8" permitir que D
conten1a qualquer n:mero de nulos ((untamente com qualquer
n:mero de valores no nulos distintos, claro)&
50.
& D1aves estrangeiras; as regras que de%inem o que signi%ica
(na presen-a de nulos) para um dado valor de c1ave
estrangeira coincidir com algum valor da c1ave candidata
correspondente so bastante complexas* omitimos os detal1es
aqui, exceto para di)er que eles so basicamente os mesmos
detal1es da condi-o de JANDY (ve(a a subse-o anterior)&
?s nulos tambm t$m implica-5es para as a-5es re%erenciais <
DA'DAB+, '+N 29"" etc& < especi%icadas nas clusulas ?2
B+"+N+ e ?2 9PBAN+& ('+N B+FA9"N tambm admitida, com a
interpreta-o ,bvia&) Jais uma ve), os detal1es so bastante
complexos e esto alm do escopo deste texto* consulte a
re%er$ncia @4&.RA para ver detal1es espec#%icos&
'8" embutida
& !ariveis indicadoras; considere o seguinte exemplo de uma
instru-o ='+"+DN unitria> de '8" embutida (uma repeti-o do
exemplo do Dap#tulo 4);
+^+D '8" '+"+DN 'NAN9', DKBAB+
K2N? ;MA2G, ;DKBAB+
FM?J F
XY+M+ Fi O ;EK!+2Fi *
!amos supor que 1a(a uma possibilidade de o valor de 'NAN9'
ser nulo para algum %ornecedor& +nto, a instru-o '+"+DN
anterior %al1ar se o 'NAN9' selecionado %or nulo ('8"'NAN+
ser de%inida como o valor de exce-o 00000)& +m geral, se
%or poss#vel que um valor a ser recuperaQ do se(a nulo, o
usurio dever especi%icar uma varivel indicadora, alm da
varivel de destino comum, assim;
+^+D '8" '+"+DN 'NAN9', DKBAB+
K2N? ;MA2G K2BKDAN?M ;MA2GK2B, ;DKBAB+
FM?J F
XY+M+ Fi O ;EK!+2Fi *
KF MA2GK2B O Q. NY+2 ` 'NAN9' era nulo *` e&& * +2B KF
'e o valor a ser retornado %or nulo e uma varivel indicadora
tiver sido especi%icada, ento essa varivel indicadora ser
de%inida com o valor <. & ? e%eito sobre a varivel de
destino comum ser dependente da implementa-o&
& ?rdena-o; a clusula ?MB+M FU usada para impor uma
ordena-o sobre as lin1as resultantes da avalia-o da
expresso de tabela em uma de%ini-o de cursor& (+ claro que
ela tambm pode ser usada em consultas interativas&) 'urge a
questo; qual a ordena-o relativa para dois valores
escalares A e F se A nulo, F nulo ou ambos_ A resposta de
'8" a seguinte;
.& Para %ins de ordena-o, todos os nulos so considerados
iguais entre si&
0& Para %ins de ordena-o, todos os nulos so considerados
maiores que todos os valores no nulos ou menores que todos
os valores no nulos (a implementa-o de%ine qual das duas
possibilidades se aplica)&
./&/ M+'9J?
Biscutimos o problema da %alta de in%orma-5es e uma abordagem
muito usada atualmente < embora muito ruim < para esse
problema, baseada em nulos e na l,gica de tr$s valores (!")&
+n%ati)amos o ponto de que nulo no um valor, embora se(a
comum %alar como se ele %osse (por exemplo, di)endo que algum
valor de atributo espec#%ico dentro de alguma tupla =
nulo>)& 8ualquer compara-o na qual um comparando nulo
avaliada como =o terceiro valor verdade> descon1ecido
(abreviado como unH), o que (usti%ica o %ato da l,gica ser
trivalorada& Nambm mencionamos que, pelo menos
conceitualmente, podem existir muitos tipos di%erentes de
nulos, e introdu)imos 92G como uma abrevia-o conveniente
500 (e expl#cita) para o tipo =valor descon1ecido>&
+m seguida, exploramos as implica-5es de 92Gs e !" para
express5es booleanas, os quanti%icaQ dores +^K'N' e F?MA"",
express5es calculadas e os operadores relacionais produto,
restri-o, pro(e-o, unio, interse-o e di%eren-a, e tambm
os operadores de atuali)a-o K2'+MN e 9PBAN+& Kntrodu)imos os
operadores K'\92G (que e%etua testes para 92G), KF\92G (que
converte 92G em um valor no 92G) e JAUF+ (que converte unH
em verdadeiro)& Biscutimos a questo de duplicatas na
presen-a de 92Gs e observamos tambm que 92G e unH no so a
mesma coisa&
Bepois, examinamos algumas conseq3$ncias das idias
anteriores& Primeiro, explicamos que certas equival$ncias so
desmembradas em !" < isto , 1 equival$ncias vlidas em
0!"& mas no em !"& +m conseq3$ncia, tanto usurios quanto
otimi)adores provavelmente cometero erros ao trans%ormar
express5es& + mesmo que esses erros no se(am cometidos, a
!" so%re do problema muito srio (=desmanc1aQpra)eres>) de
no se a(ustar ] realidade < ou se(a, resultados corretos de
acordo com a !", ]s ve)es so incorretos no mundo real&
+nto, continuamos a descrever as implica-5es de nulos para
c1aves primrias e c1aves estrangeiras (mencionando a regra
de integridade de entidade e, em particular, a regra de
integridade re%erencial revistada)& +nto, %i)emos uma
digresso para explicar a (un-o externa& Porm, no
recomendamos o suporte direto para essa opera-o (pelo menos
no como ele usualmente entendido), porque acreditamos que
existem solu-5es mel1ores para o problema que a (un-o
externa pretende resolver < em particular, pre%erimos uma
solu-o que %a-a uso de atributos com valor de rela-o&
Jencionamos rapidamente a possibilidade de outras opera-5es
=externas>, em particular a unio externa&
+m seguida, examinamos o suporte de '8" para as idias
anteriores& ? tratamento de '8" para a omisso de in%orma-5es
amplamente baseado em !", mas ele consegue incluir um
grande n:mero de complica-5es adicionais, a maioria delas
alm do escopo deste livro& 2a verdade, a '8" consegue
introdu)ir vrios de%eitos adicionais, alm dos de%eitos
inerentes ] !" em si @./&6, ./&.0A& Jais ainda, esses
de%eitos adicionais servem como mais um inibidor de
otimi)a-o (como mencionamos no %inal do texto do Dap#tulo
.7)&
Finali)amos com as seguintes observa-5es;
& !oc$ perceber que apenas arran1amos a super%#cie dos
problemas que podem surgir de nulos e da !"& Porm, tentamos
cobrir o assunto de maneira a deixar claro que os
=bene%#cios> da abordagem da !" so bastante duvidosos&
& Nambm devemos deixar claro que, mesmo que voc$ no este(a
convencido dos problemas da !" em si, ainda seria
recomendvel evitar os recursos de '8" correspondentes,
devido aos =deQ %eitos adicionais> mencionados&
& 2ossa recomenda-o para usurios de 'EFBs seria ento de
que ignorassem completamente o suporte de !" do %ornecedor e
usassem um esquema disciplinado de =valores especiais>
(permanecendo assim %irmes na adeso ] l,gica de dois
valores)& +sse esquema descrito em detal1es na re%er$ncia
@./&.0A&
Finalmente, repetimos o ponto %undamental a seguir,
mencionado na 'e-o ./&6; se < em termos muitos in%ormais < o
valor de um determinado atributo dentro de uma dada tupla em
uma rela-o espec#%ica = nulo>, ento a posi-o desse
atributo no conter na realidade absolutamente nada &&& o
que implica que o =atributo> no ser um atributo, a =tupla>
no ser uma tupla, a =rela-o> no ser uma rela-o e a base
para o que estamos %a)endo (se(a o que %or) no ser mais a
teoria das rela-5es matemticas&
+^+MDlDK?'
./&. 'e A O 6, F O 5, D O 4 e B 92G, d$ os valores verdade
das seguintes express5es;
a& AOF?M(FSDA2BASB
b& ASFA2B ( FTD?MK'92G (A<B)&)
50
c& ATD?MFTD?M2?N (AOD)
d& F T ? ?M F O B ?M F S B
e& JAUF+(ASFA2BFSD)
%& JAUF+ ( K'92G ( B ) )
g& JAUF+ ( K'\92G ( A a F ) )
1& KF92G(B,A)SFA2BKF92G(D, B)TF
./&0 'e(a a varivel de rela-o r que contm as seguintes
tuplas;
( 6, 5, 4
( 92G 5, 4 )
( 6, 92G, 4 )
( KC2G, 92G 4 )
( 92G, 92G, KC2G )
Domo no texto do cap#tulo, supon1a que (a) os tr$s atributos,
na ordem da esquerda para a direita , so c1amados A, F e D,
respectivamente, e (b) todo atributo do tipo K2N+E+M& 'e !
uma varivel de intervalo que varia sobre r, d$ os valores
verdade das seguintes express5es;
a& +^K'N' ! ( !&F S 5 )
b& +^K'N' ! ( !&F S 0 A2B !&D S 5 )
c& +^K'N' ! ( JAUF+ ( !&D S )
d& +^K'N' ! ( JAUF+ ( K'92G ( !&D
e& F?MA"" ! ( !&A S . )
%& F?MA"" ! ( !&F S . ?M K'92G ( !&F ) )
g& F?MA"" ! ( JAUF+ ( !&A S !&F ) )
./& Falando em termos estritos, o operador K'\92G
desnecessrio& Por qu$_
./&4 2a re%er$ncia @.&6A, Dodd prop5e vers5es =talve)> de
alguns (no todos) dos operadores da lgebra relacional& Por
exemplo, o operador talve)Qrestri-o di%ere do operador
normal de restri-o pelo %ato de retornar uma rela-o cu(o
corpo contm as tuplas para as quais a condi-o de restri-o
tem o valor unH em ve) de verQ dadeiro& Porm, tais
operadores so estritamente desnecessrios& Por qu$_
./&5 2a l,gica de dois valores (0!") 1 exatamente dois
valores verdade, verdadeiro e %also& +m conseq3$ncia disso,
1 exatamente quatro operadores l,gicos mondicos (de um
:nico operando) poss#veis < um que mapeia tanto verdadeiro
quanto %also para verdadeiro, um que mapeia ambos para %also,
um que mapeia verdadeiro para %also e viceQversa (esse 2?N,
claro) e um que deixa os dois valores sem varia-o& + 1
exataQ mente .6 operadores didicos (de dois operandos)
poss#veis, como indica a tabela a seguir;
A /
v v vvvvvvv%%%%%%%%
v % vvvv%%%%vvvv%%%%
v v vv%%vv%%vv%%vv%%
v % v%v%v%v%v%v%v%v%
Prove que, em 0!", todos os quatro operadores mondicos e
todos os .6 didicos podem ser %ormulados em termos de
combina-5es convenientes de 2?N e de A2B ou ?M (e portanto
que no necessrio %ornecer suporte expl#cito para todos os
vinte operadores)&
./&6 8uantos operadores l,gicos 1 em !"_ + em 4!"_ Be modo
mais geral, quantos 1 em n!"_
./&7 (Metirado da re%er$ncia @./&5A&) A Figura ./&5
representa alguns valores de amostra para uma ligeira
varia-o sobre o banco de dados usual de %ornecedores e pe-as
(a varia-o que a varivel de rela-o FP inclui um novo
atributo M+Ji, e o atributo Pi nessa varivel de rela-o
agora tem =92Gs permitidos>* a varivel de rela-o P
irrelevante para o exerc#cio e %oi omitida)& Donsidere agora
a consulta de clculo relacional;
504
F XY+M+ 2?N +^K'N' FP ( FP&Fi O F&Fi A2B
FP&Pi O Pi ( ZP0W )
(onde F e FP so variveis de intervalos expl#citas)& 8ual
das express5es a seguir (se 1ouver) uma interpreta-o
correta dessa consulta_
a& ?bter %ornecedores que no %ornecem P0&
b& ?bter %ornecedores sobre os quais no se sabe se %ornecem
P0&
c& ?bter %ornecedores sobre os quais se sabe que no %ornecem
P0&
d& ?bter %ornecedores sobre os quais ou se sabe que no
%ornecem ou no se sabe se %ornecem P0&
./&/ Pro(ete um esquema de representa-o %#sica para tabelas
bsicas de '8" nas quais as colunas podem conter nulos&
FKE9MA . / & 5 9ma varia-o sobre %ornecedores e pe-as
M+F+Mh2DKA' + FKF"K?EMAFKA
. /& . +& F& Dodd; =Juc1 Ado about 2ot1ing>, em D& C& Bate,
Melational Batabase Xritings . RR. Q. RR4& Meading, Jass&;
AddisonQXeslem (.RR5)&
Nalve) Dodd se(a o mais proeminente de%ensor de nulos e da
!" como uma base para se lidar com in%orma-5es em %alta&
+sse artigo contm o texto de um debate entre Dodd e o autor
deste livro sobre o assunto& +le inclui este comentrio
delicioso; =? gerenciamento de bancos de dados seria mais
%cil se no existissem os valores em %alta> (Dodd)&
./&0 Yug1 BarIen; =Knto t1e 9nHnoIn>, em D& C& Bate
Melational Batabase Xritings .R/5Q.R/R& Meading& Jass&;
AddisonQXeslem (.RR0)&
"evanta vrias outras quest5es com rela-o a nulos e !", das
quais a seguinte talve) se(a a mais pro%unda; se (como dito
na resposta ao +xerc#cio 5&R no Dap#tulo 5) NAF"+B++
corresponde a verdadeiro e NAF"+B9J corresponde a %also, e se
NAF"+\B++ e NAF"+\B9J so as :nicas rela-5es poss#veis de
grau )ero, ento o que corresponde a unH_
./& Yug1 BarIen; =?uter(oin Iit1 2o 2ulls and FeIer Nears>,
em D& C& Bate e Yug1 BarIen, MelationalBatabase Xritings .
R/RQ . RR . & Meading, Jass& ; AddisonQXeslem (.RR0)&
Prop5e uma variante simples de =(un-o externa> que no
envolve nulos e que resolve muitos dos problemas que a (un-o
externa deveria resolver&
./&4 D& C& Bate; =N1e ?uter Coin>, em Melational Batabases;
'elected Xritings& Meading, Jass& ; AddisonQXeslem (.R/6)&
Analisa em pro%undidade o problema da (un-o externa e
apresenta uma proposta para %ornecer suporte ] opera-o em
uma linguagem como '8"&
./&5 D& C& Bate; =2?N Ks 2ot =2otWd (2otes on N1reeQ!alued
"ogic and Melated Jatters)W, em D& C& Bate, Melation Batabase
Xritings .R/5Q.R/R& Meading, Jass&; AddisonQXeslem (.RR0)&
'upon1a que ^ se(a uma varivel do tipo F??"+A2& +nto, ^
deve ter um dos valores; verdadeiro, %also ou unH& Assim, a
declara-o =^ no verdadeiro> signi%ica que o valor de ^
unH ou %also& +m contraste, a declara-o =^ 2?N verdadeiro>
signi%ica que o valor de ^ %also (ve(a a tabela verdade
para 2?N)&
505
F FP
F
i
F2?
J+
'NAN
9'
DKBA
B+
M+Ji . Fi Pi
8B+
M+J. Fi P. ( 00
M+J0 F0 P0 000 M+J F 92G 400
F
i
F
0
F

F
4
'mi
t1
Con
es
Fla
He
Dla
rH
00
.0
0
00
"ondres
Paris
Paris
"ondres
Assim, o 2?N de !" no o no da linguagem comum & & & +sse
%ato ( %e) com que vrias pessoas (mcmsive os pro(etistas da
'8" padro) trope-assem, e com certe)a isso acontecer outra
ve)&
./&6 D& C& Bate; =+^K'N' Ks 2ot =+xistsWd ('ome "ogical FlaIs
in '8"), em D& C& Bate, Melational Batabase Xritings .R/5Q
.R/R& Meading, Jass& ; AddisonQXeslem (.RR0)&
Jostra que o operador de '8" +^K'N' no o mesmo que o
quanti%icador existenciam de !", porque sempre tem o vamor
verdadeiro ou %also, nunca o valor unH, mesmo quando unH a
resposta logicamente correta&
./&7 D& C& Bate; =Xatc1 ?ut %or ?uter Coin>, em D& C& Bate e
Yug1 BarIen, Melational Batabase Xritings
.R/RQ.RR.& Meading, Jass&; AddisonQXesmem (.RR0)&
A 'e-o ./&5 deste cap#tulo mencionou o %ato de a (un-o
externa so%rer de vrias =Propriedades Besagradveis>& +sse
artigo resume tais propriedades da seguinte maneira;
. & A (un-o j externa no uma restri-o do produto
cartesiano&
0& A restri-o no distributiva sobre a (un-o externa&
& =A \ F> no a mesma coisa que =A T F ?MA O F> (em !")&
4& ?s operadores de compara-o t no so transitivos (em
!")&
5& A (un-o natural externa no uma pro(e-o da equi(un-o
externa&
+m seguida, o artigo considera o que est envomvido quando se
acrescenta suporte para (un-o externa ] constru-o de '8"
'+"+DNQFM?JQXY+M+& +le mostra que as Propriedades
Besagradveis anteriores implicam que;
.& +stender a clusula XY+M+ no %unciona&
0& 9sar opera-5es A2B em (un-5es externas e restri-5es no
%unciona&
& +xpressar a condi-o de (un-o na clusula XY+M+ no
%unciona&
4& Cun-5es externas de mais de duas rela-5es no podem ser
%ormuladas sem express5es anin1adas&
5& +stender a cmusula '+"+DN (apenas) no %unciona&
? artigo tambm mostra que muitos produtos existentes no
mercado colidiram com tais considera-5es&
./&/ D& C& Bate; =Domposite Foreign Gems and 2ulls>, em D& C&
Bate e Yug1 BarIen, Melational Batabase Xritings . R/RQ . RR
. & Meading, Jass& ; AddisonQXeslem (.RR0)&
?s valores de c1aves compostas devem ter a possibilidade de
serem total ou parcialmente nulos_ ? artigo discute essa
questo&
./&R D& C& Bate; =N1reeQ!alued "ogic and t1e Meal Xormd>, em
D& C& Bate e Yug1 BarIen, Melational Batabase Xritings . R/RQ
. RR . & Meading, Jass& ; AddisonQXeslem (.RR0)&
./&.0 D& C& Bate; =?1 2o 2ot 2umls Again>, em D& C& Bate e
Yug1 BarIen, Melational Batabase Xritings
.R/RQ.RR.& Meading, Jass&; AddisonQXeslem (.RR0)&
+sse artigo o%erece mais in%orma-5es sobre nulos do que voc$
talve) quisesse saber&
./&.. D& C& Bate; =A 2ote on t1e "ogical ?perators o% '8">,
em Melational Batabase Xritings .RR.Q.RR4& Meading, Jass,;
AddisonQXeslem (.RR5)&
A !" tem tr$s valores verdade; verdadeiro, %also e unH (aqui
abreviados como v, %e u, respectivamente)*
assim, 1 * * O 07 operadores mondicos poss#veis em
!", porque cada uma das poss#veis entradas, v, % e u, pode
ser mapeada para cada uma das tr$s sa#das poss#veis, v, @e u&
Amm disso, 1 R O
.R&6/ operadores didicos poss#veis em !", como sugere a
tabema a seguir;
\\ v u %
v v`u`% v`u`% v`u`%
u v`u`% v`u`% v`u`%
% v`u`% v`u`% v`u`%
506
Be modo mais geral, a l,gica de n valores envolve n elevado ]
pot$ncia n operadores mondicos e n elevado ] pot$ncia n0
operadores didicos;
Para qualquer n!" com n S 0, surgem as seguintes quest5es;
& 8ual um con(unto adequado de operadores primitivos_ (Por
exemplo, qualquer dos con(untos n2?N,A2Bo ou n2?N,?Mo um
con(unto primitivo adequado para 0!"&)
& 8ual um con(unto adequado de operadores :teis_ (Por
exemplo, o con(unto n2?N,A2B,?Mo um con(unto :til adequado
para 0!"&)
+sse artigo mostra que o padro '8" (sob uma interpreta-o
muito generosa) admite pelo menos, direta ou indiretamente,
todos os .R&7.0 operadores de !"& Dontudo, devemos observar
que em l,gica, os operadores operam sobre predicados, tanto
quanto sobre proposi-5es, enquanto em '8" (mesmo sob a
mencionada interpreta-o generosa) os operadores operam
somente sobre proposi-5es&
./&.0 D& C& Bate; =Faults and Be%aults> (em cinco partes), em
D& C& Bate, Yug1 BarIen e Bavid JcEoveran, Melational
Batabase Xritings .RR4<.RR7& Meading, Jass&; AddisonQXeslem
(.RR/)&
Bescreve uma abordagem sistemtica para o problema de
in%orma-5es perdidas baseada em valores esQ peciais e 0!", em
ve) de nulos e !"& ? artigo argumenta com vigor que esses
valores especiais so os que n,s usamos no mundo real < =no
existe coisa nen1uma semel1ante a um nulo no mundo real> < e
conseq3entemente, que seria dese(vel que nossos sistemas de
bancos de dados se comportassem sob esse aspecto do mesmo
modo que o mundo real&
. / & . Bebabrata Bem e 'umit 'arHar; =A Probabilistic
Melational Jodel and Algebra>, ADJ N?B' 0 . , 2:mero
(setembro de .RR6)&
Prop5e uma abordagem para a =incerte)a em valores de dados>
baseada na teoria das probabilidades, em ve) de nulos e !"&
? =modelo relacional probabil#stico> uma extenso
compat#vel do modelo relacional convencional&
./&.4 Dsar A& EalindoQ"egaria; =?uter(oins as Bis(unctions>,
Proc& .RR4 ADJ 'KEJ?B Knt& Don%& on Janagement o% Bata,
Jinneapolis, Jinn& (maio de .RR4)&
o operador de (un-o externa em geral no um operador
associativo @./&4.& +sse artigo caracteri)a (ustamente as
(un-5es externas que so e as que no so associativas, e
prop5e estratgias de implementa-o para cada caso&
./&.5 Dsar EalindoQ"egaria e Arnon Mosent1al; =?uter(oin
'impli%ication e Meordering %or 8uerm ?ptimi)ation>, ADJ N?B'
00, 2:mero . (mar-o de .RR7)&
Apresenta =um con(unto completo de regras de trans%orma-o>
para express5es envolvendo (un-5es exQ ternas&
./&.6 Pimus1 Eoel e Fala Kmer; ='8" 8uerm ?ptimi)ation;
Meordering %or a Eeneral Dlass o% 8ueries>, Proc& .RR6 ADJ
'KEJ?B Knt& Don%& on Janagement o% Bata& Jontreal, Danad
((un1o de .RR6)&
Domo a re%er$ncia @./&.5., esse artigo se relaciona com a
trans%orma-o de express5es que envolvem (un-5es externas;
=@2,sA propomos um mtodo para reordenar @umaA consulta de
'8" contendo (un-5es, (un-5es externas e & & & agrega-5es
&& & @2,sA identi%icamos a necessidade de um primitivo
e%iciente @ para auxiliar em tal reordena-o, que c1amaremosA
sele-o generali)ada&>
./&.7 .& C& Yeat1; memorando interno da KFJ (abril de .R7.)&
o artigo que introdu)iu o termo (e o conceito) =(un-o
externa>&
507
0!
"
operadores
inondicos
operadores
didicos
4 .6
!
"
07 .R&6/
4!
"
056 4&0R4&R67&0R6
&& (n)**(n) (n)**()
./&./ GenQD1i1 "iu e Ma(s1eH1ar 'underraman; =Knde%inite and
Jambe Kn%ormation in Melational Batabases>, ADJ N8B' .5,
2:mero . (mar-o de .RR0)&
Dontm um con(unto de propostas %ormais para estender o
modelo relacional de modo a lidar com in%orma-5es talve) (por
exemplo, =a pe-a P7 talve) se(a preta>) e in%orma-5es
inde%inidas ou dis(untivas (por exemplo, =a pe-a P/ ou a pe-a
PR vermel1a>)& 'o introdu)idas tabelas . como um meio para
representar in%orma-5es normais (de%inidas), in%orma-5es
talve) e in%orma-5es inde%inidas& ?s operadores de restri-o,
pro(e-o, produto, unio, interse-o e di%eren-a so
estendidos para operar sobre tabelas .&
./&.R Bavid Jaier; N1e N1eorm o% Melational Batabases,
MocHville, Jd&; Domputer 'cience Press (.R/)&
./&00 Bavid JcEoveran; =2ot1ing %rom 2ot1ing> (em quatro
partes), em D& C& Bate, Yug1 BarIen e Bavid JcEoveran,
Melational Batabases Xritings .RR4Q.RR7& Meading, Jass&;
AddisonQXeslem (.RR/)&
A Parte . dessa srie de quatro partes explica o papel
crucial da l,gica em sistemas de bancos de dados& A Parte KK
mostra porque essa l,gica deve ser especialmente a l,gica de
dois valores (0!") e porque as tentativas de usar a l,gica
trivalorada (!") so mal direcionadas& A Parte KKK examina
os problemas que a l,gica de tr$s valores supostamente
=resolveria>& Finalmente, a Parte K! descreve um con(unto de
solu-5es pragmticas para os problemas que no envolvem a
!"&
./&0 . 2ic1olas Mesc1er; JanmQ!alued "ogic& 2ova UorH, 2&U&;
JcEraIQYill (.R6R)&
? texto padro&
M+'P?'NA' A +^+MDlDK?' '+"+DK?2AB?'
./&. a& unH& b& verdadeiro& c& verdadeiro& d& unH (observe a
nature)a antiintuitiva desse caso)& e& %also& %& %also
(observe que K' 92G nunca retorna unH)& g& %also& 1&
verdadeiro&
./&0 a& unH& b& unH& c& verdadeiro& d& %also& e& unH& %&
verdadeiro& g& %also&
./& Bevido ] seguinte identidade;
K'92G ( x ) JAUF+ ( x O x )
./&4 Porque (por exemplo) =JAUF+ M+'NMKDN r XY+M+ p> o
mesmo que =r XY+M+ JAUF+(p)>&
./&5 ?s quatro operadores mondicos podem ser de%inidos desta
%orma (A o :nico operando);
A
2?N(A)
A ?M 2?N(A)
A A2B 2?N(A)
?s .6 operadores didicos podem ser de%inidos da seguinte
maneira (A e F so os dois operandos);
A ?M 2?N(A) ?M F ?M 2?N(F?)
A ?M 2?N(A) A2B / ?M 2?N(F)
A
2?N(A)
F
2?N(F)
A ?M F
A A2B F
A ?M 2?N(F)
A A2B 2?N(F)
2?N(A) ?M /
2?N(A) A2B /
2?N(A) ?M 2?N(F)
2?N(A) A2B 2?N(F)
(2?N(A) ?M /) A2B (2?N(F) ?M A)
(2?N(A) A2B F) ?M (2?N(F) A2B A)
A prop,sito, para ver que no precisamos de A2B e ?M, observe
que, por exemplo;
50/ A ?M / 2?N ( 2?N ( A ) A2B 2?N( F )
./&6 !e(a a anota-o ] re%er$ncia @./&..A&
./&7 c& Para ver detal1es adicionais, consulte a re%er$ncia
@./&5A& +xerc#cio complementar; apresente uma %ormula-o de
clculo relacional para a interpreta-o b&
./&/ Bescrevemos rapidamente a representa-o usada no produto
BF0 da KFJ& +m BF0, uma coluna que possa aceitar nulos
representada %isicamente no banco de dados arma)enado por
duas colunas, a pr,pria coluna de dados e uma coluna oculta
de indicadores, com a largura de um bmte, a qual arma)enada
como um pre%ixo para a coluna de dados real& 9m valor da
coluna de indicadores %ormado por valores . em binrio indica
que o valor correspondente da coluna de dados deve ser
ignorado (isto , tomado como nulo)* um valor na coluna de
indicadores %ormado por )eros binrios indica que o& valor
correspondente na coluna de dados deve ser considerado
genu#no& Porm, a coluna de indicadores est sempre ( claro)
oculta do usurio&
50R
Ai

You might also like