Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何表达;无信息“;在关系代数中?_Database_Relational Database_Relational Algebra - Fatal编程技术网

Database 如何表达;无信息“;在关系代数中?

Database 如何表达;无信息“;在关系代数中?,database,relational-database,relational-algebra,Database,Relational Database,Relational Algebra,我学习关系代数的一项任务是让我找到那些想要免费租赁房产或没有提供信息的客户 关于他们愿意支付多少。该表如下所示: 客户(客户号、姓氏、姓氏、maxRent) 我很难找到任何关于如何表示缺少信息或空数据点的信息。。到目前为止,我已经提出了这个表达式的一半是psuedo代码: σmaxRent=0或[未提供信息](客户端)此表中有哪些行?我们怎么能在不知道的情况下回答呢?谁能在不知道的情况下提出质疑 假设您的表包含“名为[firstname][lastname]的客户[clientid]愿意支付[m

我学习关系代数的一项任务是让我找到那些想要免费租赁房产或没有提供信息的客户 关于他们愿意支付多少。该表如下所示:

客户(客户号、姓氏、姓氏、maxRent)

我很难找到任何关于如何表示缺少信息或空数据点的信息。。到目前为止,我已经提出了这个表达式的一半是psuedo代码:


σmaxRent=0或[未提供信息](客户端)

此表中有哪些行?我们怎么能在不知道的情况下回答呢?谁能在不知道的情况下提出质疑

假设您的表包含“名为[firstname][lastname]的客户[clientid]愿意支付[maxrent]”的行。如果一个特定的客户机没有名字和姓氏,那么这个表中就没有他们的行。你不能用它来回答你的问题。如果他们确实有名字和姓氏,但你不知道他们,那么你就不能设置表格--你不能继续--这个表格不适合你。让我们进一步假设我们有所有的客户机名称。但如果我们不知道他们愿意支付多少,我们同样无法继续

假设您的表中包含“名为[firstname][lastname]的clent[clientid]表示愿意支付[maxrent]”的行。然后,您可以将其用于提供最高租金的客户。但它不能为其他客户录制任何内容。但是,如果您还有一个表,其中包含“名为[firstname][lastname]的client[clientid]的行没有说明他们愿意支付什么”,那么您可以为所有客户进行记录。所以你可以回答你的问题

假设您的表中包含的行“cilent[clientid]named[firstname][lastname]表示愿意支付[maxrent],或者没有表示愿意支付多少,并且[maxrent]='xxx'”。如果您有客户的id和姓名,但他们没有说明他们愿意支付什么,则会与maxrent='xxx'发生冲突。然后您可以编写查询——您的“[未提供信息]”表示maxrent='xxx'

假设没有该表,而是有两个表,“client[clientid]名为[firstname][lastname]”和“client[clientid]愿意支付[maxrent]”。然后,您的表在其含义下是这些新表在其含义下的特定查询。每个新表都可以用旧表来表示。一种设计中的查询与另一种设计中的查询之间存在简单的对应关系。这样我们就可以编写您的查询了

在SQL中,传统的做法是使用NULL作为特殊值,而不是“xxx”。该表的意思是“名为[firstname][lastname]的客户[clientid]表示愿意支付[maxrent],或者没有表示愿意支付多少,并且[maxrent]为空”。SQL中的运算符专门处理NULL——它们与具有相同名称的关系运算符或日常运算符不同

请注意,无空设计有更多但更简单的基表和含义。任何带有NULL的设计都可以重新排列为不带NULL的设计。所有这四种设计都可以重新排列到任何其他设计中。还有其他样式的无空设计更类似于带空的设计

(您的表肯定是从某本教科书中提取的,它允许maxrent为NULL。他们也从不清楚地说出表中的行。但他们的想法是,每个可以为NULL的表都有一个明显的无NULL含义的转换。他们错误地、模糊地说,“如果没有空值,就必须引入假数据来表示此状态,或者添加对用户可能没有意义的附加属性。”他们还说了许多典型的模糊无用的东西,如“空值不是值”。)

(不清楚“未知信息”或“表示”未知的东西或“空数据点”是什么意思。可以表示不知道满足条件的值。但表中的每一行都根据其含义声明语句,而表中的每一行(适当类型)都不声明语句)主张从其意义上否定该陈述。)



null
用于表示无信息。此表中的行是什么?您从哪里获得的?您可以为应用程序设计表吗?您的作业具体说明了什么?您应该使用什么版本的“关系代数”?