oracle数据库中用户、表空间和模式的区别
表空间
表空间是oracle对物理数据库上相关数据文件的逻辑映射。
一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为 system 表空间)。每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据库文件(datafile)。一个数据文件只能属于一个表空间。
用户
用户是建立在实例下的,不同实例中可以建相同名字的用户
实例是“内存”和“后台进程”的集合。数据库是数据的物理存储。特别注意,一个实例可以用于一个数据库,多个实例也可以同时用于一个数据库,实例和数据库的关系是一对多的关系。
表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。由于 Oracle 的数据库不是普通的概念,oracle 是由用户和表空间对数据进行管理和存放的。但是表不是由表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!
模式
模式是数据库对象的集合。模式对象是数据库数据的逻辑结构。
(把数据库对象用模式分开成不同的逻辑结构)。
Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决
schema名字同user名字一一对应并且相同,所有我们可以称schema为user的别名,虽然这样说并不准确,但是更容易理解一些。
所以总结一下表空间、模式、用户之间的关系可以类比成房间的关系,
表空间-------一栋房子
模式----------房子里的一个房间
用户----------房间的主人
数据表------房间里的物品
一栋房子里可以有很多个房间,但是房间的主人,只有一个,在房间里也可以有很多物品。物品其他人也可以使用。
链接: 本文很多地方都有参考这篇文章.