Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1131868
  • 博文数量: 300
  • 博客积分: 37
  • 博客等级: 民兵
  • 技术积分: 772
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-26 04:46
文章分类
文章存档

2017年(4)

2016年(7)

2015年(19)

2014年(72)

2013年(71)

2012年(127)

分类: Oracle

2014-09-22 20:58:20

模式与对象的关系


模式:是数据库中全体数据的逻辑结构和特征的描述。它仅仅涉及到型的描述不涉及到具体的值

在Oracle中所谓模式就是指一系列逻辑数据结构或者对象的集合。

在Oracle数据库中数据对象都是模式为单位进行组织和管理的。

模式与用户相对应一个模式只能被一个数据库用户所拥有,并且模式的名称与这个用户的名称相同。

通常情况下,用户所创建的数据库对象都保存在与自己同名的模式中。

同一模式中的数据库对象的名称必须唯一而不同模式中的数据库对象可以同名。

例如:

数据库用户名Uop_CEN1和uop_crm1都在数据库中创建了一个名为test的表
因为用户Uop_CEN1和uop_crm1分别对应模式Uop_CEN1和uop_crm1
所以uop_cen1用户创建的test表放在uop_cen1模式中,而uop_crm1用户创建的test表放在uop_crm1模式中
在默认情况下用户引用的对象是同名模式中的对象,
如果要引用其他模式中的对象,需要在该对象名之前指明对象所属模式。
例如:
如果用户uop_cen1要引用uop_crm1模式中test表则必须使用uop_crm1.test的形式来表示;
如果用户uop_cen1要引用uop_cen1模式中的test表则可以使用uop_cen1.test的形式来表示;或者直接引用test都可以

并不是Oracle数据库中的所有对象都是模式对象,表,索引,索引表,分区表,视图,实体化视图,序列,同义词,数据库链接,pl/sql包,存储过程,函数,Java类与其他Java资源等属于特定的模式称为模式对象。
 上下文(Contexts) 目录(Directory) 概要文件(Profile) 角色(Role) 表空间(Tablespaces) 用户(User)的数据库对象
不属于任何模式叫做非模式对象

模式对象是数据的逻辑存储结构。数据对象和磁盘上保存其信息的物理文件并不一一对应。
Oracle在数据库的一个表空间上保存模式对象。每个对象的数据物理的保存在表空间的一个或者多个数据文件上。
对某些对象如表、索引、聚集来说,你可以指定在表空间的数据文件上Oracle可以分配多大的磁盘空间来存储这个对象。

模式和表空间没有什么联系:一个表空间可以包换来自不同模式的对象,模式对象可以包含在不同的表空间上。

模式与用户的关系
在Oracle数据库中,虽然模式与数据库用户相互关联,但是其概念和作用完全不同。
模式作为数据库对象的容器而存在,用于数据库对象的管理。
而用户主要用于数据库登陆以及权限管理
在Oracle数据中创建一个用户时,系统会自动在数据库中创建一个与用户同名的模式

阅读(3724) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~