oracle数据库表空间与数据文件的关系

时间:2021-08-15 12:19:55

 

数据库的物理结构是由数据库的操作系统文件所决定,

 

每一个

Oracle

数据库是由三种类型的

文件组成:

 

数据文件和控制文件。

 

数据库的文件为数据库提供真正的物理存储。

 

每一个

Oracle

数据库有一个或多个物理的数据文件

(data file)

。一个数据库的数据文件包含全

部数据库数据。逻辑数据库结构(如表,

 

索引等)的数据物理地存储在数据库地数据文件中。

 

数据

文件通常为

*.dbf

格式,

 

例如

: userCIMS.dbf.

数据文件有一下特征:①、一个数据文件仅与一个数据

库联系

;

②、一旦建立

,

数据文件只增不减

;

③、一个表空间

(

数据库存储地逻辑单位

)

由一个或多个数

据文件组成。

 

其次

,

我们再来叙述一下

Oracle

的逻辑结构

: Oracle

的逻辑结构包括表空间

(tablespace),

(segment),

数据块

(data block)

以及模式对象

(schema object)

 

Oracle

数据库在逻辑上是由多个表空间组成的

,

表空间在物理上包含一个或者多个数据文件。

而数据文件大小是块大小的整数倍

;

表空间中存储的对象叫段

,

比如数据段

,

索引段和回退段。段由区

组成

,

区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大

小的整数倍,

 

取得大小可以不同;数据块是数据库中的最小的

I/O

单位,

 

同时也是内存数据缓冲区

的单位,

 

及数据文件存储空间单位。块的大小由参数

DB_BLOCK_SIZE

设置,

 

其值影设置为操作系

统块大小的整数倍。

 

 

表空间(

TABLESPACE)

表空间是数据库中最大的逻辑单位,每一个表空间由一个或多个数据文件组成,

 

一个数据文

件只能与一个表空间相联系。每一个数据库都有一个

SYSTEM

表空间,

 

该表空间是在数据库

创建或数据库安装时自动创建的,

 

用于存储系统的数据字典表,

 

程序系统单元,

 

过程函数,

 

包和触发器等,

 

也可用于存储用户数据表,

 

索引对象。表空间具有在线

(online)

和离线

(offline)

属性,

 

可以将除

SYSTEM

以外的任何表空间置为离线。

 

 

段(

SEGMENT)

数据库的段可以分为

4

类:数据段,

 

索引段,

 

回退段和临时段。

 

 

 

区是磁盘空间分配的最小单位。磁盘按区划分,

 

每次至少分配一个区。区存储在段中,

 

它由

连续的数据块组成。

 

 

数据块

 

数据块是数据库中最小的数据组织单位与管理单位,

 

是数据库文件磁盘存储空间单位,

 

也是

数据库

I/O

的最小单位,

 

数据块大小由

DB_BLOCK_SIZE

参数决定,

 

不同的

ORACLE

版本

BD_BLOCK_SIZE

的默认值是不同的。

 

 

 


查询

DB_BLOCK_SIZE

可以使用

sql

 

select

 

name,

 

value

 

from

 v$parameter

where

 

name

 

=

 

'db_block_size'

;

 

 

模式对象

 

模式对象是一种应用,

 

包括:表、

 

聚簇、

 

试图、

 

索引序列生成器、同义词、哈希、程序单

元、数据库链的等。

 

 

 

 

最后说一下

ORACLE

的用户、表空间和数据文件的关系:

 

一个用户可以使用一个或多个表空间,

 

一个表空间也可以提供多个用户使用。用户和表空间

没有隶属关系,

 

表空间是一个用来管理数据存储的逻辑概念,

 

表空间只是和数据文件发生关系,

 

数据文件是物理的。

 

一个表空间可以包含多个数据文件,

 

而一个数据文件只能隶属于一个表空间。

 

总结一下:解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的

柜子。数据库其实就是柜子,

 

柜中的抽屉是表空间,

 

抽屉中的文件夹是数据文件,

 

数据夹中的纸

是表,

 

写在纸上的信息就是数据。