日期:2014-05-16  浏览次数:20612 次

Oracle数据库、实例、用户、表空间的关系

一、数据库、实例、表空间等概念

数据库:

Oracle数据库是数据的物理存储,包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库就是位于硬盘上实际存放数据的文件,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库。因此在Oracle看来,“数据库”是硬盘上文件的逻辑集合,必须要与内存里的实例合作,才能对外提供数据管理服务。

实例:

Oracle实例(Oracle Instance)是位于物理内存里的数据结构,它由一个共享的内存池和多个后台进程(Backgrounnd Processes)所组成,共享的内存池可以被所有进程访问。用户若要存储数据库中的数据,比粗通过实例才能实现,不能直接读取硬盘上的文件。一个数据库可以有N个实例。

用户:

用户是在实例下建立的。不同实例可以建相同名字的用户。

表空间:

表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。

数据文件(ORA、DBF):

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

?

注:表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个文件中。由于oracle是有用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以再同一个表空间建立同一个名字的表,这里就得区分用户查询了!

二、关系图

关系示意图:

?

Oracle数据库可以创建多个实例,每个实例可以创建多个表空间,每个表空间下可以创建多个用户和数据库文件,同时用户也属于表空间对应的实例。用户可以创建多个表,每个表随机存储在一个或多个数据库文件中。



?