官方文档链接地址 http://docs.oracle.com/cd/E11882_01/server.112/e40540/tablecls.htm#CNCPT010
Introduction to Schema Objects
-
数据库 schema 是存储数据结构的逻辑容器,被称为
schema objects
。例如,表和索引是schema objects
-
schema objects
通过 SQL 来创建和操作 -
数据库用户具有口令并拥有各种数据库的权限,每个用户拥有一个单独的
schema
,schema 与用户具有相同的名字 -
schema 包含相应用户的全部数据。 例如,hr 用户拥有 hr schema,包含如雇员表之类的对象。在生产数据库中,一个数据库 schema 的拥有者通常表示一个数据库应用程序,而不是一个人
-
在一个 schema 里,某一特定类型的每个 scheme 对象都有一个唯一的名字。例如
hr.employees
是指 hr schema 中的 employees 表。图 2-1 描述了一个名为 hr 的 schema 拥有者,及其在 hr schema 内的 schema对象
Schema Object Types
-
在关系型数据库中,最重要的 schema 对象是表,表在行上存储数据
-
Oracle SQL 使你能够创建和操作许多其他类型的 schema 对象,包括以下这些:
对象 | 描述 |
---|---|
索引 Indexes | 对于每一个被索引的表行或表簇行,索引都包含一个条目 ,以提供直接、快速的行访问 Oracle 数据库支持多种类型的索引 |
分区 Partitions | 大型表和索引的分片,每个分区有其自己的名称,并可能有其自己的存储特征 |
视图 Views | 视图是对一或多个表、或其他视图中的数据的自定义表示,可以把它们看作存储的查询 视图实际上并不包含数据 |
序列 Sequences | 序列是一个由用户创建的对象,可以被多个用户共享,用来生成整数 序列通常用于生成主键值 |
维度 Dimensions | 维度定义多个列集之间的父子关系,列集中的所有列必须都来自同一个表 维度通常用于对客户、产品、时间之类的数据进行分类 |
同义词 Synonyms | 同义词是另一个 shema 对象的别名;因为同义词只是一个别名,在数据字典中只存储它的定义信息 |
PL/SQL subprograms and packages | PL/SQL 是 Oracle 对 SQL 的过程化扩展。PL/SQL 子程序是命名的 PL/SQL 块,可以使用参数进行调用;PL/SQL 包用于将逻辑上相关的 PL/SQL 类型、变量、子程序进行分组 |
- 还有一些其他类型的对象也存储在数据库中,并可以使用 SQL语句来创建和操作,但不包含在 shemale 中。这些对象包括数据库用户、角色、上下文、目录对象
Schema Object Storage
-
一些 schema 对象将数据存储在段(segments)中。例如,一个未分区的堆表或索引会创建一个段。其他 schema 对象,如视图和序列,则只包含元数据
-
这一节仅描述有段的 schema 对象
-
Oracle 数据库逻辑上将 schema 对象存储在表空间中。在 schema 和表空间之间没有任何的关系:一个表空间可以包含不同 schema 中的对象,一个schema 中的对象也可以包含在不同的表空间中。每个对象的数据在物理上存储在一或多个数据文件中
-
图 2-2 显示了一种在表段、索引段、表空间、数据文件之间的可能配置。一个表的数据段跨越两个数据文件,这两个数据文件属于同一个表空间。一个段不能跨多个表空间