Considere as relações R e S onde R tem m tuplas e S tem n tuplas. m<=n. Qual seria o número mínimo e máximo de tuplas em cada um dos seguintes casos (suponha que nada seja mencionado sobre restrições de chave)
- R união S
- R interseção S
- RS
- SR
- R JUNÇÃO NATURAL S
- R Esquerda União EXTERNA S
- R/S
Meu trabalho
- R UNIÃO S
max : n+m ( união adicionamos todas as tuplas de ambas as relações)
min: 0 (tomando m=n=null)
- R INTERSEÇÃO S
max: m (m < n ambas as relações contêm as mesmas chaves, então podemos obter o máximo de m chaves)
min: 0 (tomando m=n=null se não houver chaves comuns em ambas as relações)
- R - S
max : m (se eles são disjuntos então em RS vamos obter todas as tuplas de R )
min: 0 (se todas as tuplas em R também estiverem presentes em S)
- SR
max: n (como explicado acima)
min: 0 (como explicado acima)
- R junção natural S
max: n*m (se nenhuma restrição de chave correspondente, a junção natural produzirá um produto cartesiano)
min: m ( m < n quando as principais restrições são levadas em consideração )
- R JUNÇÃO EXTERNA ESQUERDA S
max : m (tudo da tabela esquerda será exibido mesmo se não houver correspondência)
min: 0 (quando m=0)
- R/S
max: m (quando n=0)
min: Não consigo tirar uma conclusão
Sim, suas respostas estão quase todas certas, exceto alguns erros:
1.
R UNION S
max : n+m ( união adicionamos todas as tuplas de ambas as relações)
Correto , quando R e S não possuem tupla comum.
min: 0 (tomando m=n=null)
Errado, o mínimo é
n
(o maior dos dois tamanhos, me n). Quando todas as tuplas de R também existem em S.E m e n não podem ser nulos, são os tamanhos das relações, são números (inteiros).
2.
R INTERSECTION S
max:m (
m<n
ambas as relações contêm as mesmas chaves, então podemos obter o máximo de m chaves)Correto, mas o raciocínio está errado . Você compara tuplas das duas relações, não chaves.
min: 0 (tomando m=n=null se não houver chaves comuns em ambas as relações)
Correto, mas o raciocínio está errado . O resultado pode ser 0 porque as duas relações podem não ter tuplas comuns ).
3.
R - S
max : m ( se eles são disjuntos então em RS vamos obter todas as tuplas de R )
Correto
min: 0 (se todas as tuplas em R também estiverem presentes em S)
Correto
4.
S - R
max: n (como explicado acima)
Correto
min: 0 (como explicado acima)
Errado, o mínimo é
n - m
.5.
R natural join S
max: n*m (se nenhuma restrição de chave correspondente, a junção natural produzirá um produto cartesiano)
Correto
min: m ( m < n quando as principais restrições são levadas em consideração )
Errado, o mínimo é
0
. Você pode facilmente encontrar um exemplo, idêntico ao caso 2 (INTERSECTION
).6.
R LEFT OUTER JOIN S
max : m (tudo da tabela esquerda será exibido mesmo se não houver correspondência)
Errado, o máximo é
m * n
, o mesmo que para a junção natural. Ou apenas pegueON TRUE
.min: 0 (quando m=0)
Errado , o mínimo é
m
. O exemplo pode ser o mesmo doNATURAL
join acima (ou apenas takeON FALSE
), mas não pode dar como resultado menos do que o número de tuplas emR
(a relação esquerda na junção).7.
R / S
max : m ( quando n=0 )
Correto , mas não precisa ser n=0 ou m=0. Você pode encontrar outro exemplo.
min: Eu não sou capaz de fazer uma conclusão .
Mínimo é
0
Considere que a divisão relacional é semelhante à divisão inteira.3 / 7
dá0
em divisão inteira, por exemplo. Tente converter isso em divisão relacional.Eu recompilei a resposta acima com mais lucidez e adicionei mais algumas operações de álgebra relacional. Espero que seja útil :)
Considere as relações R e S onde R tem m tuplas e S tem n tuplas. m<=n. Qual seria o número mínimo e máximo de tuplas em cada um dos seguintes casos (suponha que nada seja mencionado sobre restrições de chave)
Esses resultados foram determinados considerando tabelas genéricas sem nenhuma chave candidata envolvida.
Nota: se forem fornecidas chaves candidatas para uma determinada tabela, os resultados serão diferentes.
1.
R UNION S
Motivo: união adicionamos todas as tuplas de ambas as relações. ou seja, quando R e S não têm tupla comum.
Razão: O mínimo é
n
(o maior dos dois tamanhos, m e n). Quando todas as tuplas de R também existem em S.2.
R INTERSECTION S
m<n
)Razão: ambas as relações contêm as mesmas tuplas, então podemos obter o máximo de m chaves
Razão: se não houver tuplas comuns em ambas as relações
3.
R - S
Razão: se eles são disjuntos (se eles não têm elemento em comum), então em RS vamos obter todas as tuplas de R
Razão: se todas as tuplas em R também estiverem presentes em S
4.
S - R
Razão: se eles são disjuntos (se eles não têm elemento em comum), então em SR vamos obter todas as tuplas de S
Razão: m<n haverá algumas tuplas em S após excluir as tuplas comuns
5.
R natural join S
Razão: se não houver restrições de chave correspondentes, a junção natural produzirá um produto cartesiano
Motivo : Idêntico ao caso 2 (
INTERSECTION
).6.
R LEFT OUTER JOIN S
Razão: se todas as linhas da tabela esquerda corresponderem a todas as linhas da tabela direita
Razão : se nenhuma tupla corresponder entre as duas tabelas, mas ainda assim temos que incluir todas as tuplas da tabela esquerda.
O mínimo é 1 quando m=1 , mínimo é 2 quando m=2, mínimo é 0 quando m=0
7.
R / S
Razão: quando n=0
Razão: Considere que a divisão relacional é semelhante à divisão inteira.
3 / 7
dá 0 na divisão inteira, por exemplo. Tente converter isso em divisão relacional8.
R CROSS PRODUCT S
Razão: combinando cada linha em R com cada linha em S.
9.
R RIGHT OUTER JOIN S
Razão: se todas as linhas da tabela esquerda corresponderem a todas as linhas da tabela direita
Razão : se nenhuma tupla corresponder entre as duas tabelas, mas ainda assim temos que incluir todas as tuplas da tabela correta.
O mínimo é 1 quando n=1 , mínimo é 2 quando n=2, mínimo é 0 quando n=0
10.
R FULL OUTER JOIN S
Razão: se todas as linhas da tabela esquerda corresponderem a todas as linhas da tabela direita
Razão: se nenhuma tupla corresponder entre as duas tabelas, mas ainda assim temos que incluir todas as tuplas da tabela esquerda e direita.
Motivo: quando cada tupla em uma das tabelas combina com tuplas em outra tabela.
explicação elaborada para min: max(m,n) para Full Outer Join:
Considere a relação R com 4 tuplas e S com 8 tuplas.
Portanto, min de junção externa seria se não houver correspondência. isto é, m+n = 4+8 = 12 tuplas.
mas este não é o caso para obter o mínimo absoluto.
Para obter min. em junção externa completa:
Considere, 4 de 4 tuplas em R combinam com tuplas de S (4 de 8 é o mesmo que R)
desta vez, a relação resultante teria: tupla 4(combinada) + 4(não correspondida) = 8 tuplas. (que é inferior a 12)