Sistema banco de dados

Disponível somente no TrabalhosFeitos
  • Páginas : 189 (47020 palavras )
  • Download(s) : 0
  • Publicado : 13 de março de 2012
Ler documento completo
Amostra do texto
SISTEMAS DE 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 ArgentinaColô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 umquantificador 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.PNOMEI 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 deque 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 VERDADEIRApara todas essas tuplas. Isso é necessário porque uma variável de tupla quantificada universalmente, como é x em Q3, precisa evoluir para VERDADEIRO para toda possível tupla designada a ela que torne a fórmula quantificada VERDADEIRA. As primeiras tuplas excluídas (fazendo com que evoluam automaticamente para VERDADEIRO) são aquelas que não estão na relação R de interesse. Em Q3, usando aexpressão NOT(PROJETO(X)) dentro da fórmula quantificada universalmente, evoluirão para VERDADEIRO todas as tuplas x que não

128

129
6.6 O Cálculo Relacional de Tupla 129 estiverem na relação PROJETO. Assim, excluiremos as tuplas de R que não nos interessam. Em Q3, usando a expressão NOT(X.DNUM=5), evoluirão para VERDADEIRO todas as tuplas x que estejam na relação PROJETO, mas que não sejamcontroladas pelo departamento 5. Finalmente, especificamos uma condição F2 que precisa valer para todas as tuplas que permanecerem em R. Portanto, podemos explicar Q3 como segue: 1. Para a fórmula F' = (Vx) (F) ser VERDADEIRA, precisamos que a fórmula F seja VERDADEIRA para todas as tuplas no universo que possam ser designadas para x. Entretanto, em Q3 estamos interessados apenas em F sendo VERDADEIRApara todas as tuplas da relação PROJETO que sejam controladas pelo departamento 5. Portanto, a fórmula F é da forma (NOT(PROJETO(X)) OR Ft). A condição 'NOT(PROJETO(X)) OR ...' será VERDADEIRA para todas as tuplas que não estiverem na relação PROJETO, e tem o efeito de eliminar aquelas tuplas da avaliação do valor verdade de Fj. Para toda tupla na relação PROJETO, F{ deverá ser VERDADEIRA se F' forVERDADEIRA. 2. Usando a mesma linha de raciocínio, não queremos considerar tuplas na relação PROJETO que não sejam controladas pelo departamento número 5, uma vez que estamos interessados apenas nas tuplas PROJETO cujo DNUM = 5. Portanto, podemos escrever: SE (X.DNUM=5) ENTÃO F2 o que é equivalente a (NOT(X.DNUM=5)ORF2) 3. A fórmula F[, portanto, é da forma NOT(x.DNUM=5) ORF2. No contexto de...
tracking img