
官方文档链接地址 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 显示了一种在表段、索引段、表空间、数据文件之间的可能配置。一个表的数据段跨越两个数据文件,这两个数据文件属于同一个表空间。一个段不能跨多个表空间