AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 160241
Accepted
pC_
pC_
Asked: 2017-01-07 19:33:53 +0800 CST2017-01-07 19:33:53 +0800 CST 2017-01-07 19:33:53 +0800 CST

Número mínimo e máximo de tuplas

  • 772

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)

  1. R união S
  2. R interseção S
  3. RS
  4. SR
  5. R JUNÇÃO NATURAL S
  6. R Esquerda União EXTERNA S
  7. R/S

Meu trabalho

  1. R UNIÃO S

max : n+m ( união adicionamos todas as tuplas de ambas as relações)

min: 0 (tomando m=n=null)

  1. 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)

  1. 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)

  1. SR

max: n (como explicado acima)

min: 0 (como explicado acima)

  1. 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 )

  1. 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)

  1. R/S

max: m (quando n=0)

min: Não consigo tirar uma conclusão

relational-algebra
  • 2 2 respostas
  • 33685 Views

2 respostas

  • Voted
  1. Best Answer
    ypercubeᵀᴹ
    2017-01-08T04:21:58+08:002017-01-08T04:21:58+08:00

    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<nambas 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 pegue ON TRUE.

    • min: 0 (quando m=0)
      Errado , o mínimo é m. O exemplo pode ser o mesmo do NATURALjoin acima (ou apenas take ON FALSE), mas não pode dar como resultado menos do que o número de tuplas em R(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 / 7dá 0em divisão inteira, por exemplo. Tente converter isso em divisão relacional.

    • 4
  2. Well_Wisher
    2021-01-06T03:35:34+08:002021-01-06T03:35:34+08:00

    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)

    1. R união S
    2. R interseção S
    3. RS
    4. SR
    5. R JUNÇÃO NATURAL S
    6. R Esquerda União EXTERNA S
    7. R/S
    8. R PRODUTOS CRUZADOS S
    9. R Direita OUTER Join S
    10. R Junção EXTERNA completa S

    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

    • máx.: n+m

    Motivo: união adicionamos todas as tuplas de ambas as relações. ou seja, quando R e S não têm tupla comum.

    • min: n

    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áx.: m (  m<n )

    Razão: ambas as relações contêm as mesmas tuplas, então podemos obter o máximo de m chaves

    • min: 0

    Razão: se não houver tuplas comuns em ambas as relações


    3. R - S

    • máx.: m

    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

    • min: 0

    Razão: se todas as tuplas em R também estiverem presentes em S


    4. S - R

    • máx.: n

    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

    • min: nm

    Razão: m<n haverá algumas tuplas em S após excluir as tuplas comuns


    5. R natural join S

    • máx.: n*m

    Razão: se não houver restrições de chave correspondentes, a junção natural produzirá um produto cartesiano

    • min: 0

    Motivo : Idêntico ao caso 2 ( INTERSECTION).


    6. R LEFT OUTER JOIN S

    • máx.: m*n

    Razão: se todas as linhas da tabela esquerda corresponderem a todas as linhas da tabela direita

    • min: m (incluindo todas as tuplas da tabela à esquerda)

    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

    • máx.: m

    Razão: quando n=0

    • min: 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 relacional


    8. R CROSS PRODUCT S

    • máx. e mín.: m*n

    Razão: combinando cada linha em R com cada linha em S.


    9. R RIGHT OUTER JOIN S

    • máx.: m*n

    Razão: se todas as linhas da tabela esquerda corresponderem a todas as linhas da tabela direita

    • min: n (incluindo todas as tuplas 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

    • máx.: m*n

    Razão: se todas as linhas da tabela esquerda corresponderem a todas as linhas da tabela direita

    • Caso 1→ min: m+n

    Razão: se nenhuma tupla corresponder entre as duas tabelas, mas ainda assim temos que incluir todas as tuplas da tabela esquerda e direita.

    • Caso 2 → min: max(m,n)

    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)

    • 1

relate perguntas

  • É possível unir relação sem atributo de chave primária?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve