Sistema banco de dados
•EDIÇÃO
Ramez Elmasri Shamkant B. Navathe
Tradução Marília Guimarães Pinheiro Cláudio César Canhette, Glenda Cristina Valim Melo, Claudia Vicei Amadeu e Rinaldo Macedo de Morais
Revisão Técnica Luis Ricardo de Figueiredo Mestre em ciências da computação e doutorando pela USP-Ribeirão Preto
, •«•""»*lo.
PEARSON
Addison Wesley
São Paulo Brasil Argentina Colômbia Costa Rica Chile Espanha Guatemala México Peru Porto Rico Venezuela
«sói '••:.'.3 não aparece com a^.
118
118 Capítulo 6 A Álgebra Relacional e o Cálculo Relacional A operação de DIVISÃO pode ser expressa como uma seqüência de operações TT, x, e —, como segue: U(3x)(P(x)) NOT (3 x) (P(x)) => NOT (V x) (P(x))
6.6.6
Usando o Quantificador Universal
Se usarmos um quantificador universal, é inteiramente judicioso seguir umas poucas regras para garantir que nossa expressão tenha sentido. Discutiremos essas regras com respeito à Consulta 3.
CONSULTA 3
Encontre os nomes dos empregados que trabalhem em todos os projetos controlados pelo departamento número 5. Um meio para especificar essa consulta é usar o quantificador universal, como mostrado. Q3: {e.UNOME, e.PNOME I EMPREGADO(e) AND ( (V x) (NOT(PROJETO(X) OR NOT (X.DNUM=5) OU ( (3w) (TRABALHA_EM(W) AND w.ESSN=e.ssN AND X.PNUMERO=W.PNO) ) ) )} Podemos quebrar Q3 em seus componentes básicos, como segue: Q3: {e.UNOME, e.PNOME I EMPREGADO(e) AND F }
F' = ( (V x) (NOT(PROJETO(X) OR Fi) ) F, = NOT (X.DNUM=5) OR F2
F2 = ( (3w) (TRABALHA_EM(W) AND w.ESSN=e.ssN AND X.PNUMERO=W.PNO) ) Queremos ter a certeza de que um empregado selecionado e trabalhe em todos os projetos controlados pelo departamento 5, mas a definição de quantificador universal diz que, para tornar a fórmula quantificada VERDADEIRA, a fórmula interna deverá ser VERDADEIRA para todas as tuplas do universo. O truque é excluir da quantificação universal todas as tuplas que não nos interessarem, fazendo com que a condição torne-se VERDADEIRA