新闻稿




关系闭合可以将任何SQL选择成马赛克


在关系数据库管理系统内,主持久的数据结构被认为是一个逻辑关系。对RDBMS内的数据执行的操作也在逻辑关系中导致逻辑关系。换句话说,一切都是表。从术语“桌子”一句话,让我们使用“网格”这个词。表是网格,类似于具有行,列和标头的电子表格。在处理关系数据库时,一切都是网格。显然,表是网格,视图是网格,并且任何查询的结果都是网格。该网格一致性是由DBMS支持的名为“关系闭合”的术语的一个方面。关系闭合是将数据库管理系统定义为真正关系的那些特征之一和关系关闭的最有趣方面是“网格是一切。“有关有关的关系封闭的其他方面,具有最低冗余量,但其他方面并不差别很有趣。

一切都是网格

由于一切都是网格,因此任何网格都可以用于代替任何网格。表格,视图和查询可以模糊。这方面是为什么可以将视图描述为简单的“命名”查询。由于一个组成SQL SELECT语句,作者可以使用另一个查询代替任何表或视图。即使是各个列也可以用不同复杂性的查询替换 - 如果结果适合数据类型。这些替换的列可以是SELECT子句中的那些,或者在Anywhere中可以找到列或值的Where子句内的列。由于这种易于更换,可以无限地建立任何查询,类似于墙壁中的分层砖。墙是另一个由砖块组成的网格,也包括网格本身​​。较大的网格可以消耗大量的块,或者任何元素都可以分为越来越多的网格。查询可以轻松包围新的查询。 In doing this wrapping and replacing of columns and tables在需要时,可以将许多页面串起来创建一个非常复杂的单个语句。但是,不广泛推荐实例化复杂SQL的这种做法。

编织一个互锁的SQL的大型网是利用RDBMS内的数据的强大方法。旋转这种代码可以用于良好,例如在向用户的尴尬数据请求提供非常定制的解决方案时。这种相同的力量可以用于生病,例如创建如此狂野和深深分层的SQL陈述,试图取消诺纳的事情来进行小型变革需要一些重型分析和SQL技能。经常既有好的和生病在一起。

较长路线的好处

当然,许多数据库都有限制SQL语句的长度,但您可能会感到惊讶地才能走得更远。当数据需求既具有特定和复杂时,关系闭合的这种特性是有用的。然而在考虑沿着这个兔子洞跳下来时,工程师应该小心。如果一个人发现自己在缝合在一起的许多查询的牛犊时,请扯掉一只胳膊仍然是一个很好的方法。

您必须步入将较大的查询解析为包含它的较小查询元素,然后将其放回返回,并且如您所以,确定需要进行更改的位置。这种方式的详细分析有助于开发人员对怪物查询中发生的许多事情进行了解。或者,初始编码器可以选择保持许多元素分开,并逐一迭代步骤,或许使用沿途来保持中间结果的临时表。虽然以这种方式踩过所需的逻辑可能有点繁琐,但这种较长的路线允许其他人遵循的维护路径。