schema对象介绍

1、schema对象简介

数据库schema为一组数据结构的逻辑集合,称之为schema对象,schema对象最贱的为表和索引,schema对象由SQL创建和维护。

一个数据库用户拥有一个用户名和各种数据库权限,每个用户属于一个schema,这个schema的名称和用户的名称相同,这个schema包含的数据也就是这个用户所属的schema。例如,hr用户用一个hr的schema,这个schema包含的schema对象例如employee表。在一个生产环境的数据库中,一个schema的拥有者相当于一个数据库应用程序的一个用户。

在一个schema中,每个不同类型的schema对象有一个唯一的名称,例如:hr.employee表示表employee在hr这个schema中。

总结就是:一个用户有一个schema,在这个schema中包含着很多的schema对象,例如表、索引等

2、schema对象的类型:

在一个关系型数据库中,最重要的schema对象就是表,表是用行存储来保存数据

A、indexes(索引)

索引是一个schema对象,包含表中的每个索引列的入口,提供一种快捷的方式找到相关行,

B、partitions(分区)

partitions是一个大表或者一个索引的部分,每个partition有它自己的名称,也可以有它自己的存储特征

C、views(视图)

视图是将几个表或者视图中的数据的一种展现方式,可以当成是存储了一种查询,视图不会真正的存储数据

D、sequences(序列)

序列是由用户创建的对象,用来共享给多个用户生成整数,典型的是,序列可以当做用户主键值

E、dimensions(维度)

一个维度定义了一种父子关系在一对列的集合当中,所有的列必须来源于同一个表

F、synonyms(同义词)

同义词是表示其他schema对象的别名,所以,同义词相当于一个简单的别名,同义词不需要存储除了在数据字段中定义它

G、PL/SQL subprograms and packages

PL/SQL是oracle提供的对SQL的扩展


其他类型的对象同样存储在数据库中,并且由SQL创建和维护,但是不包含在schema之中,这些对象包括:数据库用户、角色、上下文、目录对象


3、schema对象的存储

一些schema对象存储在逻辑存储结构segment上,例如:一个未分区的堆组织的表或者一个索引会占用一个segment,而其他的schema对象,例如视图和序列,仅由一些元数据组成。

oracle数据库将schema对象存在在逻辑对象tablespace之中,要分清楚的是,schema和tablespace之间是没有关系的;一个表空间可以存储来自多个schema中的对象;schema对象也可以存储在不同的表空间中。各个对象的数据在物理上存储在一个或者多个数据文件之中。

一个segment可以跨多个数据文件,多个数据文件必须属于同一个表空间;一个segment不能跨多个表空间,只能包含在一个表空间之内。


4、schema对象的依赖性

一些schema对象引用了其他的对象,从而造成了schema对象的依赖性。例如:一个view中的查询引用了其他的表或者是视图,

查询依赖性的时候,使用下面语句即可:

select object_name,status from user_objects where object_name='object_name'.

状态有valid和invalid。


5、SYS和SYSTEM schema

所有的oracle数据库都有一个缺省的管理账户,管理员账户有最高的权限,并且具有DBA的义务,例如:启动关闭数据库,管理内存和存储,创建和管理数据库用户等

管理员账户SYS是在数据创建的时候自动创建的,这个账户可以管理oracle数据库的所有功能。

SYS schema用来存储数据的基表和数据字典视图,这些基表和视图是oracle数据库最重要的。在SYS schema中的表,只能由数据库自己进行维护,并且不能被任何用户修改。

SYSTEM账户是在数据库创建的时候自动创建的,SYSTEM schema用来存储额外的表和视图来展现管理信息和内部的表和视图用来其他的数据库管理信息。

用来不要使用SYSTEM schema用来存储无关管理员用户的表。




posted @ 2013-08-11 16:25  KEL  阅读(709)  评论(0编辑  收藏  举报