如何对关系代数中不存在的事物进行建模或查询[关闭]

2023-12-21

我想查询所有从未租过的公寓的id。

我尝试过这样的事情:

    (π a_id (apartments))
-
    (π a_id
    σ from_date Exists ∧ end_date Exists 
    (rental) ⨝ rental.a_id on apartment.a_id (apartment))

但我认为我不能在关系代数中使用 Exists 或 null 。

我怎样才能做到呢?

我附上架构here https://i.stack.imgur.com/cGprt.png


我们如何根据表中的行的含义进行查询和推理

对于最简单的关系代数,其中关系具有设置为标题的属性和设置为主体的元组:

每个查询表达式都有一个关联的(特征)谓词--fill-in-the-(named)-blanks 由属性参数化的语句模板。使谓词变为真的元组主张--声明--处于关系中。如果不知道每个基本关系的谓词,我们就无法更新或查询业务情况。

我们得到的表达式的谓词是关系(值或变量)名称。

令查询表达式 E 具有谓词 e。然后:

  • R ⨝ S有谓词r and s
  • R ∪ S有谓词r or s
  • R - S有谓词r and not s
  • σ p (R)有谓词r and p
  • π A (R)有谓词exists non-A attributes of R [r]

给定一个关系代数查询,我们可以从叶子向上应用上述事实来获取其谓词的表达式。给定一个谓词表达式,我们可以类似地应用上述事实来走另一条路;如有必要,我们首先重新排列为等效表达式,其中每个 & -有 2 个具有相同属性的参数。 (它总是可以重新排列每个Codd 约简算法到一定程度prenex范式.)

重新关系代数查询。 https://stackoverflow.com/a/24425914/3404097

将其应用于您的查询

据推测,Apartment 中的公寓 ID 是针对公寓的,而 Rental 中的公寓 ID 是针对出租公寓的。那么未出租的公寓就是Apartment中的公寓而不是Rentaling中的公寓。它们的 id 是那些基本关系的投影之间的关系差异中的 id。

猜测您的 ERD 的图例/密钥,在引用 Apartment 的 Rental 中有一个 FK(外键)。这证实了 Rental 中的公寓也在 Apartment 中。所以Apartment ⨝ Rental拥有相同的公寓Rental。这确认您不需要加入;您可以仅使用出租来出租公寓。

你提到了 NULL 和 EXISTS。也许您正在谈论 SQL NULL & EXISTS 和/或您正在尝试查找 SQL 查询的关系代数版本和/或您正在 SQL 中进行推理。和/或者您可能正在谈论逻辑 EXISTS 以及值是否存在于列或元组中。

从关于租房的常识以及你没有说的其他方面来看,Rental可能是行occupant O rented apartment A from date F to date T。但你提到了NULL。根据常识&猜测 T 可以为 NULL,Rental似乎是行occupant O rented apartment A from date F to date T OR occupant O rented apartment A from date F ongoing & T is null.

NULL 是由 SQL 运算符和语法特殊处理的值。我们不知道你的代数和语言如何对待 NULL。在数学方面EXISTS X [p] & FOR SOME X [p]假设存在一个我们可以命名为 X 且满足条件 p 的值。 SQLEXISTS (R)表示表 R 中是否存在行。即是否EXISTS t [t IN R]。当R为(X,...)rows其中r时,即是否EXISTS X,... [r].

当 R 是 r 的行时,π x (R)根据定义行,其中EXISTS non-x attributes of R [r]. So π A (Rental)是行,其中EXISTS O,F,T [occupant O rented apartment A from date F to date T OR occupant O rented apartment A from date F ongoing & T is null].

当 R 是 r 的行时,σ p (R)根据定义行,其中r & p。行在哪里occupant O rented apartment A from date F ongoing & T is null是行,其中(occupant O rented apartment A from date F to date T OR occupant O rented apartment A from date F ongoing & T is null) & T is null。那是σ T is null (Rental).

当 R 是行,其中 r & S 是行,其中 s,R - S根据定义行,其中r & NOT s。认为Apartment是行,其中apartment A has S square feet ...。你想要的行在哪里EXISTS S,... [apartment A has S square feet ...] & NOT EXISTS O,F,T [occupant O rented apartment A from date F to date T OR occupant O rented apartment A from date F ongoing & T is null]。那是π A (Apartment) - π A (Rental)。这就是本节开头的关系差异。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对关系代数中不存在的事物进行建模或查询[关闭] 的相关文章

  • Rails 中的多列主键

    我正在尝试将桌面应用程序迁移到rails 还处理相当老式的现有数据库 问题是我在一列中没有唯一的 ID 但表的三列保证了记录的唯一性 鉴于我有三个表 authors author name author letter author nr1
  • 在源代码管理中管理我的数据库

    由于我正在处理一个新的数据库项目 在 VS2008 中 而且我从未从头开始开发数据库 因此我立即开始研究如何在源代码管理 在本例中为 Subversion 中管理数据库 我找到了一些关于SO的信息 包括这篇文章 保持多个环境中的开发数据库同
  • django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块

    我在尝试连接 mysql 数据库时遇到的问题 我还给出了我使用过的数据库设置 Traceback most recent call last File manage py line 10 in
  • 使用 SQL Server 作为具有多个客户端的数据库队列

    给定一个充当队列的表 如何最好地配置表 查询 以便多个客户端同时处理队列 例如 下表指示了工作人员必须处理的命令 当worker完成后 它会将处理后的值设置为true ID COMMAND PROCESSED 1 true 2 false
  • 如何跟踪数据库连接泄漏

    我们有一个应用程序似乎存在连接泄漏 SQL Server 表示已达到最大池大小 我独自一人在我的开发机器上 显然 只需导航应用程序 我就会触发此错误 SQL Server 活动监视器显示大量正在使用我的数据库的进程 我想查找哪些文件打开连接
  • 如何杀死Mysql“show processlist”中的所有进程?

    因为我在那里看到了很多进程 并且 时间 列显示了所有进程的大值 大规模屠杀操作节省时间 在 MySql 本身中执行此操作 运行这些命令 mysql gt select concat KILL id from information sche
  • Node.js 和代码优先

    我使用代码优先方法开发实体框架 现在我正在学习 Node js 我想知道是否有一种方法可以使用 Node js 和一些库来实现相同的代码优先方法 我正在考虑使用MySql作为数据库 你可以看看续集 http docs sequelizejs
  • 如何对 mongodb/mongoid 脚本进行基准测试,以比较两种不同的查询技术

    您对如何测试两种不同的 mongoid mongodb 查询实现的性能有什么建议吗 要比较的实现与以前的相关 问答 https stackoverflow com questions 10121977 extracting modellin
  • 可以使用两个独立的 SQLite 数据库吗?

    我有一个 sqlite 数据库 其中存储用户定义的信息和用户只读的信息 我觉得将来可能需要修改只读信息 并且我不想进行整个数据迁移 有没有一种方法可以使用单独的 sqlite 数据库来存储只读信息 该数据库可以轻松替换 如果是这样 您能否就
  • MS Access:在列中搜索星号/星号

    我正在寻找一种方法来搜索包含字符串数据类型的列 问题是星号或星号是保留符号 以下查询无法正常工作 select from users where instr pattern 如何编写 Access 查询来搜索列中的星号 您可以使用方括号在
  • 如何在Oracle数据库11g中创建新模式/新用户?

    我已经申请了一家公司的实习机会 作为一个问题 他们要求我为他们的公司创建一个具有一定要求的架构 并将DDL文件 我已经安装了 Oracle 数据库 11g Express 版本 但如何在 Oracle 数据库 11g 中创建新架构 我在网上
  • 如何在SQLite中的两个表之间复制数据?

    我有两个具有不同列的表 如下所示 table1 id title name number address table2 id phone name address 如何将数据 名称 地址 从表 1 复制到表 2 我的问题有两种情况 第一 t
  • 如何在数据库中对 (Java) 枚举进行建模(使用 SQL92)

    您好 我正在使用名为 性别 的列对实体进行建模 在应用程序代码中 性别应该是一个 Java 枚举类型 有 2 个值 男性和女性 知道作为数据类型的枚举不是通用 SQL 语言 92 的一部分 您将如何建模它 数据模型必须是可移植的 以便由多个
  • Python 中的 Firebase 身份验证时出现 KeyError:“databaseURL”

    相信你做得很好 我是 firebase 的新手 正在尝试进行用户身份验证 我已经安装了pyrebase4并在firebase控制台上创建了一个项目 我还启用了使用 电子邮件和密码 登录并尝试连接我的应用程序 下面是我正在尝试的代码 impo
  • 使用 Spring Boot 的 Flyway Core 给出错误 'delayedFlywayInitializer' 和 'entityManagerFactory' 之间的循环依赖关系

    我想在 SQL Server 数据库上导入一些数据 我使用的是 Spring Boot 2 3 4 我还使用 Hibernate 来生成表 我在pom中添加了flyway核心
  • 无法更改 MS Access 2007 上的数据类型

    我有一个巨大的数据库 800MB 其中包含一个名为 上次修改日期 的字段 目前该字段作为文本数据类型输入 但需要将其更改为日期 时间字段以执行一些查询 我有另一个完全相同的数据库 但其中只有 35MB 的数据 当我更改数据类型时 它工作正常
  • PHP 数据库显示在具有不同锚标记的相同字段中

    我四处寻找 看看这是否可行 但却空手而归 首先 这是我的代码 div style display none div ul li li li li li li ul
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • 显示包含特定表的所有数据库名称

    我的 SQL Server 中有很多数据库 我必须只搜索包含特定表名的数据库名称Heartbitmaster 我有很多数据库 例如Gotgold DVD等 我只想从包含此表的查询中查找数据库名称Heartbitmaster 我搜索我尝试查询
  • iOS 解析如何通过 URL 下载文件

    我正在将 parse 用于我的聊天应用程序 当我上传文件时 我保留该 url 并将该 url 发送给其他用户 然后其他用户可以通过该 URL 下载文件 这是我上传文件的代码 void uploadBlob NSData blob fileN

随机推荐

  • 使用分类数据的Python堆积条形图

    我有一个 Pandas 数据框 1800 obs 看起来像这样 A B C D 1 CL0 CL1 CL2 CL0 2 CL2 CL1 CL1 CL3 3 CL3 CL2 CL0 CL1 n CL2 CL1 CL0 CL3 我想创建一个堆叠
  • 映射到 PetaPoco 中的集合?

    有没有办法将以下内容映射到Dictionary
  • 如何将“无”分配给 std::Optional

    阅读有关std optional http en cppreference com w cpp utility optional 我对分配值的标准方法感到困惑某物 and nothing to an optional I guess ope
  • 字典(键,值)顺序

    假设我有以下代码 var dictionary cat 2 dog 4 snake 8 mutable dictionary var keys dictionary keys var values dictionary values for
  • 良好的 Haskell 编码标准

    有人可以提供一个良好的 Haskell 编码标准的链接吗 我发现了this http urchin earth li ian style haskell html and this http www haskell org haskellw
  • 如何从 Linux x64 主机到 Linux arm64 交叉构建 flutter 应用

    我正在尝试从 linux x64 编译到 linux arm64 当我打字时flutter build linux target platform linux arm64我收到此错误 Cross build from Linux x64 h
  • PHP 星期几数字到星期几文本

    这可能真的很简单 但我找不到 PHP 函数来做到这一点 OK so dow numeric date w 给出星期几的数字 0 6 表示星期日到星期六 And dow text date D 给出文本星期几的 3 个字母缩写 Sun Mon
  • 将 ggplot 保存在函数中

    我正在尝试使用图形设备在函数中保存 ggplot 但我发现代码生成空图 下面是一个非常非常简单的例子 library ggplot2 ff lt function jpeg a jpg qplot 1 20 1 20 dev off ff
  • 怎样才能让海龟认出一个圆圈呢?

    我正在尝试使用 Turtle Graphics 制作一个 Python 程序 在矩形内绘制两个重叠的圆圈 如维恩图 并在维恩图上绘制随机点 我已经成功地做到了这一点 但现在我想让程序识别一个点是在其中一个圆中还是在维恩图的交点中 然后我想根
  • 当两个路径可能是相对的时,将路径与 Windows API 结合起来

    我需要能够将两个不同的 Windows 路径 这两个路径都可能是相对的 组合成一个路径 通过将第二个路径应用为第一个路径的扩展 文件系统上是否实际存在任何一条路径都无关紧要 例子 C abc def gt C abc def C abc d
  • 在编写 Tkinter 文本小部件时更新它,而不是在课程结束后更新

    我陷入困境 因为这是在机密机器上编写的 所以我无法在此处复制 粘贴 作为一个新手 我的方法可能是非正统的 我有一个用 Tkinter 编写的 GUI 带有几个按钮 每个按钮都链接到一个类 该类实际上运行一个简短的脚本 单击按钮时 我初始化一
  • redux-saga:对回调返回做出反应的 eventChannel 和侦听器

    在反应原生中后处理程序 https facebook github io react native docs backhandler侦听器对回调函数做出反应并采取适当的行动 我需要读取我的商店并根据它返回 true 或 false 但我无法
  • 在 Swift 中逐行淡入 UITableViewCell

    我是 swift 的新手 我试图拥有一个 UITableView 并且单元格将被动画化以一一出现 我怎样才能做到这一点 另外 如果新出现的单元格行不在屏幕上 隐藏在表格下方 当每个单元格出现时如何向上移动表格 var tableData1
  • 创建效果 上滑时顶部图片被内容覆盖

    I have to create an effect like in the images but I don t know how to do it and also don t know how to call this effect
  • SQL 语句中文字前面的冒号是什么意思?

    使用 在变量之前 例如 userId在这段代码中 public function removeUser userId command Yii app gt db gt createCommand command gt delete tbl
  • AX 形式的图像

    在 Dynamics AX 中 我们在自定义表单中出于各种目的使用大量图像和图标 目前 我们必须在每台客户端计算机上单独安装图像 图标包才能使一切正常工作 有没有一种方法 或最佳实践 来处理 Dynamics 中的图像和图标 这样就不需要在
  • 使用StreamWriter实现滚动日志,并从顶部删除

    我的 C winforms 4 0 应用程序一直使用线程安全的流编写器来执行内部调试日志记录信息 当我的应用程序打开时 它会删除该文件并重新创建它 当应用程序关闭时 它会保存文件 我想做的是修改我的应用程序 以便它进行附加而不是替换 这是一
  • Grails 2.x schema-export 或类似命令能否为给定数据源的模式更新生成 DDL?

    Grails schema export 在生成 DDL 来为特定数据库创建数据库模式方面做得很好 然而我想做的是让 grails 只输出用于更新已创建模式的 DDL 而不是从头开始创建它的 DDL 我认为这应该是可能的 因为 grails
  • 如何获取 PDF 格式的 UITableView 快照

    我有一个UITableView其中填充了一些数据 但由于它包含的数据的单元格数量多于屏幕的可视区域 我只能获取它的快照 我想知道是否有其他方法可以获取整个表格视图pdf快照 这是我尝试过的谢谢 IBAction clickMe id sen
  • 如何对关系代数中不存在的事物进行建模或查询[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想查询所有从未租过的公寓的id 我尝试过这样的事情 a id apartments a id from date Exists end d