SQL:为什么数据库不能包含数据库

时间:2017-04-13 09:18:39

标签: sql

我必须承认我是SQL和rdbms等的新手,但我有以下问题(我认为已经从主题中已经非常清楚了)。

我的问题更像是一个“哲学”问题。允许SQL中的数据库不仅包含表而且包含“子”数据库的缺点是什么?

E.g。外部数据库media,其中包含数据库videoaudio。我知道这是不允许我的问题是,如果有人可以启发我的想法或不允许上述的结果。

对我来说,这样一个更复杂的模式可以提供更好的SQL服务器和数据库组织。

提前谢谢

1 个答案:

答案 0 :(得分:0)

关系数据库不仅仅是一些结构化数据。它是relational modelfirst order predicate logic的实现。表,行,键,每个都有特定的角色。这不是任意的。 "子数据库"在该系统中没有任何作用。

数据库不仅仅是用于组织数据库对象的命名空间。数据库是具有特定特征的单元。它有一个单一的tran日志;它是参照完整性的边界;根据所选择的并发模式协调数据库内的操作。如果数据库可以包含其他数据库,我不确定其中任何一个是如何工作的。

但是除了关系之外还有数据库系统。听起来你可能对Object Oriented Database Management System感兴趣,split列出了它的优点:

  

复合对象和关系:OODBMS中的对象可以存储任意数量的原子类型以及其他对象。因此,可以拥有一个庞大的类,它拥有许多中等大小的类,它们本身就拥有许多较小的类,无限制。在关系数据库中,这必须通过一个具有大量空字段的大表或通过一些通过外键链接的较小的规范化表来完成。拥有大量较小的表仍然是一个问题,因为每次想要根据" Has-a"来查询数据时都必须执行连接。实体之间的关系。对于复杂对象,对象是现实世界实体的更好模型,而不是关系元组。事实上,OODBMS比RDBMS更适合处理复杂,相互关联的数据,这意味着OODBMS可以胜过RDBMS十到一千倍,具体取决于所处理数据的复杂程度。

     

类层次结构:现实世界中的数据通常具有层次结构特征。在大多数RDBMS文本中使用的流行的Employee示例在OODBMS中比在RDBMS中更容易描述。 Employee可以是或不是Manager,这通常在RDBMS中通过具有类型标识符字段或创建另一个使用外键来指示Managers和Employees之间关系的表来完成。在OODBMS中,Employee类只是Manager类的父类。