You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关系代数疑问:包含所有塔尔萨客户的分支解法是否正确

关于关系代数解法的疑问:找出包含所有塔尔萨客户的分支

我最近在做一道关系代数的题目,遇到了和教授解法不一致的困惑,想请教大家帮忙理清思路。

给定的关系模式

首先明确题目里的数据库关系模式:

  • Account: bname, acct_no, balance
  • Depositor: cname, acct_no
  • Customer: cname, street, city(备注:这里的Customer是所有客户的集合,包括仅持有贷款的客户和仅持有账户的客户)
  • Loan: loan_no, amount, b_name
  • Borrower: cname, loan_no
  • Branch: bname, b_city, assets

问题要求

找出包含所有居住在塔尔萨(Tulsa)的客户的分支。

教授给出的解法

教授给出的关系代数表达式是:

Π cname, bname (account ⋈ depositor) / Π cname (σ city == ‘Tulsa’ (customers))

我的困惑点

我仔细分析了这个解法,觉得Π cname, bname (account ⋈ depositor)这部分存在明显问题:它只关联了账户和存款人关系,得到的是拥有账户的客户和他们对应的分支信息,完全漏掉了那些只持有贷款、没有开立账户的客户。

但题目要求的是“包含所有塔尔萨客户的分支”,并没有限定是“账户客户覆盖所有塔尔萨客户”,所以我实在想不通教授的解法为什么只考虑了有账户的客户。是不是我忽略了题目里的隐含条件,或者对关系代数的除法操作理解有偏差?

内容的提问来源于stack exchange,提问作者csguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 11:07:27