你的位置:首页 > 数据库

[数据库]数据库的逻辑结构


前面已经提到,数据库服务器包括实例和数据库两部分。

其中数据库是用来存储数据的,而实例是用来访问数据库中的数据的。
实例包括一组内存结构和后台进程,而数据库的结构需要从逻辑结构和物理结构两个方面来理解
数据库的逻辑结构是指数据的逻辑组织形式,是Oracle内部用来管理数据的机制。
数据库的物理结构是从用户角度感觉到的结构,是在操作系统中存储和管理数据的机制。
从逻辑结构上来讲,一个数据库包含若干个表空间,不同类型的数据存储在不同的表空间中,如系统数据、用户数据、临时数据和回滚数据等分别存储在不同的表空间中。
表空间中包含若干个段,同一个表空间中的数据又可进一步根据类型不同而存储在不同的段中,如数据段、索引段、临时段等。

一个段中又可以包含若干个区,区是Oracle分配存储空间和回收存储空间的基本单位。
区是由连续的多个数据块组成的,数据块是Oracle读写数据库的基本单位。

表空间、段、区和数据块组成了数据库的逻辑结构
逻辑结构是指数据的组织形式,而从物理形式上讲,数据是以数据文件的形式存储在磁盘上的。
在操作系统中,能使用户真正感觉到数据库存在的是数据文件。
数据文件是存储在磁盘上的,它需要占用若干个操作系统块。

逻辑结构和物理结构并非毫无关系,而是紧密联系的。
表空间中的数据是存放在数据文件中的,因此一个表空间对应一个或多个数据文件。
数据块是Oracle中存储数据的基本单位,一个数据块对应若干个操作系统块,数据最终是存储在操作系统块中的, Oracle对数据块的访问最终转化为对操作系统块的访问。
数据库的逻辑结构与物理结构之间的关系如下图所示:

表空间

表空间是数据库中数据的逻辑组织形式,一个数据库在逻辑上由多个表空间组成。

表空间用于将不同类型的数据组织在一起,就像一个公司里的员工是按照不同部门组织在一起一样。
表空间中的数据在物理上是存储在数据文件中的,一个表空间对应一个或多个数据文件,就像一个部门对应若干个办公室一样。
当表空间中的存储空间紧张时,可以向表空间中添加数据文件,一个数据文件只能属于一个表空间
如果表空间中只包含一个数据文件,那么所有数据都将存储在这个数据文件中。

如果表空间对应多个数据文件,那么数据将被分割成几部分,分别存放在这些数据文件中。
表空间与数据文件的关系如图所示。

在数据库中引入表空间的好处有以下几点:
·将系统数据和用户数据分开,有利于保护重要的数据。

·可以限制用户对磁盘存储空间的使用。
·将临时数据与用户数据分开,从而减少用户数据存储区的碎片,提高数据库的性能。
·能够将不同类型的数据分别存放在不同的磁盘上,以减少磁盘的读写冲突。

可以将访问频繁的数据存储在速度相对较快的磁盘上,从而在整体上提高数据库的性能。
·各个表空间可以被单独设置为联机或脱机状态,这样可以在数据库正常运行的情况下,将单个表空间置于脱机状态,并对其进行备份或恢复。
在一个数据库中有五种类型的表空间,即SYSTEM表空间、SYSAUX表空间、UNDO表空间、临时表空间和普通表空间。
其中前四种表空间是必不可少的,在创建数据库时就需要创建它们,普通表空间是根据需要才创建的。