Pergunta

Acabei de ler sobre operadores em álgebra relacional e tentei resolver esse problema.Mas eu nem entendo o que a primeira afirmação está fazendo.Pelo que eu sei, $π$ (projeto) é um operador unário que pega uma única relação e seleciona alguns atributos de todos os atributos (colunas) dessa relação.Então o que faz $\pi_{RS,S}(r)$ significar?Além disso, por que eles usaram $r$ como argumento para o operador do projeto?Não deveria ser $R$ já que esse é o nome da relação dada no problema?Sejam R e S esquemas relacionais tais que $R={a,b,c}$ e $S={c}$.Agora considere as seguintes consultas no banco de dados:

  1. $\pi_{R-S}(r) - \pi_{R-S} \left (\pi_{R-S} (r) imes s - \pi_{R-S,S}(r) ight )$
  2. $\left\{t \mid t \in \pi_{R-S} (r) \wedge \forall u \in s \left(\exists v \in r \left(u = v[S] \wedge t = v \esquerda[R-S\direita]\direita )\direita )\direita\}$
  3. $\left\{t \mid t \in \pi_{R-S} (r) \wedge \forall v \in r \left(\exists u \in s \left(u = v[S] \wedge t = v \esquerda[R-S\direita]\direita )\direita ) \direita\}$
  4. Select R.a,R.b From R,S Where R.c = S.c

Quais das consultas acima são equivalentes?

1 e 2
1 e 3
2 e 4
3 e 4

Foi útil?

Solução

Lembre-se da definição de esquema:O nome de uma relação e o conjunto de atributos de uma relação são chamados de esquema.Um exemplo de esquema de uma relação Filmes é:

Movies(title, year, length, genre)

Na pergunta, $r$, $s$ representam nomes de relações; $R$, $S$ representar esquema.Assim, temos $R = r(a,b,c)$ e $S = s(c)$.Um esquema consiste em um conjunto de atributos.Notação $R-S$ significa a diferença definida entre $R$conjunto de atributos e $S$conjunto de atributos.Assim, temos $R -S = \{a,b\}$.Agora temos $\Pi_{R-S,S}(r) = \Pi_{a,b,c}(r)$.

Voltando à pergunta que temos, vamos trabalhar com o seguinte exemplo:suponha $r$ tem duas tuplas: $(1,3,5)$ e $(2,4,8)$ com o primeiro valor corresponde a $a$, o segundo valor corresponde a $b$, e o terceiro valor corresponde a $c$. $s$ tem duas tuplas: $(5)$, $(5)$.Observe que usamos a semântica bag, que se alinha com a semântica SQL.

Vamos considerar a opção 1 primeiro.

$$ Begin {align*} Pi_ {rs} (r) - pi_ {rs} ( pi_ {rs} (r) times s - pi_ {rs, s} (r)) & = pi_ {a, b} (r) - pi_ {a, b} ( pi_ {a, b} (r) times s - pi_ {a, b, c} (r)) & = pi_ {a, b} (r) - pi_ {a, b} ( pi_ {a, b} (r) times s - r) end {align*} $$

Avalie $\Pi_{a,b}(r)\vezes s$ levará a tuplas: $(1,3,5)$, $(1,3,5)$, $(2,4,5)$, $(2,4,5)$.Então, $\Pi_{a,b}(r)\vezes s - r$ significa retirar todas as tuplas que aparecem em $r$, o que leva a $\{(2,4,5),(2,4,5)\}$.Então $\Pi_{a,b}(\Pi_{a,b}(r)\vezes s - r)$ leva a $\{(2,4),(2,4)\}$. $\Pi_{a,b}(r)$ é $\{(1,3),(2,4)\}$.A diferença definida entre $\{(1,3),(2,4)\}$ e $\{(2,4),(2,4)\}$ é $\{(1,3)\}$, que é o resultado após avaliar a opção 1.

Agora, vamos considerar a opção 2.

$$ {t | t in pi_ {rs} (r) land forall u in s ( existe v em r (u = v [s] land t = v [rs]) } $$

temos a seguinte notação

  • $v$ é uma tupla em $r$
  • $t\in\Pi_{a,b}(r)$ significa que $t$ pode ser $(1,3)$ ou $(2,4)$
  • $u$ é uma tupla em $s$

Vamos nos concentrar em $\forall u \in s (\existe v \in r (u = v[S] \land t = v[R-S]))$ papel.Porque é para todos $u$, Nós temos

  • quando $você = (5)$, existe um $v$: $(1,3,5)$ que satisfaz o requisito:$v[S] = v[c] = (5) = u$ e $v[RS] = v[\{a,b\}] = (1,3) = t$ onde $t = (1,3) \in \Pi_{R-S}(r)$.Por isso $(1,3)$ pertence ao conjunto de resultados da opção 2.
  • agora olhamos para o segundo $você = (5)$ em $u$ e pela mesma análise acima, vemos $(1,3)$ pertence ao conjunto de resultados da opção 2.

Assim, o conjunto de resultados da opção 2 é $\{(1,3),(1,3)\}$.

Vamos considerar a opção 3.

$$ {t | t em pi_ {rs} (r) land forall v em s ( existe u em r (u = v [s] land t = v [rs]) } $$

A opção 3 tem o mesmo conjunto de notações da opção 2.Vamos nos concentrar em $\forall v \in s (\existe você \in r (u = v[S] \land t = v[R-S]))$:

  • para $v = (1,3,5)$, existe um $você = (5)$ tal que o requisito seja satisfeito:$v[S] = v[c] = (5) = u$ e $v[RS] = (1,3) = t$.Por isso, $(1,3)$ pertence ao conjunto de resultados finais da opção 3
  • para $v = (2,4,8)$, não existe tal $u$ satisfaz a restrição.

Assim, o conjunto de resultados finais da opção 3 é $\{(1,3)\}$.

Vamos considerar a opção 4.O SQL é avaliado para $\{(1,3),(1,3)\}$.

Pelo exemplo acima, podemos ver que

  • a opção 1 e a opção 2 não são equivalentes
  • a opção 2 e a opção 3 não são equivalentes

Agora, vamos considerar outro exemplo onde $r$ tem tuplas $\{(1,3,5),(2,4,6)\}$ com o primeiro valor corresponde a $a$, o segundo valor corresponde a $b$, e o terceiro valor corresponde a $c$. $s$ tem tuplas $\{(5),(6),(7)$}.

Ao repetir a mesma avaliação como fizemos no primeiro exemplo, podemos ver que a opção 1 é avaliada para $\emptyset$ enquanto a opção 3 é avaliada para $\{(1,3),(2,4)\}$.Assim, a opção 1 e a opção 3 não são equivalentes.

Assim, mostramos que a opção 2 e a opção 4 são equivalentes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top