数据库模式与数据库表空间?

时间:2016-01-31 22:17:48

标签: database database-design

阅读时我的数据库读数...

架构:是对象的容器

表空间:对象的逻辑存储单元

有谁可以解释这些之间的区别?

3 个答案:

答案 0 :(得分:21)

架构是命名空间 - 逻辑事物。它用于组织数据库对象的名称。它与数据的存储方式无关。

表空间是物理的东西。它是数据的容器,与数据库对象的逻辑组织无关。

单个对象(例如表)可以分布在多个表空间中(取决于所使用的DBMS),但它只能在单个模式中定义。表schema_1.table_1与<{1}}不同的表 - 尽管&#34; plain&#34; name是相同的,完全限定名称是不同的,因此它们是两个不同的表。

在同一模式中组织的对象不一定存储在同一个表空间中。单个表空间可以包含来自不同模式的对象。

模式(和目录,是另一级别的命名空间)是SQL语言的一部分,在SQL标准中定义。

表空间是物理存储的一部分,并且是特定于DBMS的(尽管几乎所有DBMS都支持这样的概念),并且不是SQL查询语言的一部分(由SQL标准定义)。但是,它们是通过特定于供应商的SQL / DDL语句定义和管理的。

答案 1 :(得分:1)

模式和表空间之间没有关系:表空间可以包含来自不同模式的对象,模式的对象可以包含在不同的表空间中。

来自ORACLE文件。 https://docs.oracle.com/cd/B10500_01/server.920/a96524/c11schem.htm

答案 2 :(得分:0)

架构操作逻辑结构表空间操作构成数据库的物理数据文件。

来自 Oracle 文档:

  

<强>模式
  架构是数据库对象的集合。架构由...拥有   数据库用户,并且与该用户具有相同的名称。 架构对象   是直接引用数据库数据的逻辑结构。   架构对象包括视图等结构   的索引即可。 (表空间和模式之间没有关系。同一模式中的对象可以位于不同的表空间中,   并且表空间可以保存来自不同模式的对象。)

     

<强>表空间
  数据库分为一个或多个称为的逻辑存储单元   表空间。表空间分为逻辑存储单元   称为段,进一步划分为范围。范围是一个   连续块的集合。   表空间的大小是构成表空间的数据文件的大小。数据库的大小是构成数据库的表空间的总大小。

     

您可以通过三种方式扩大数据库:

Add a datafile to a tablespace

Add a new tablespace

Increase the size of a datafile