数据库的物理结构是由数据库的操作系统文件所决定,
每一个
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
的用户、表空间和数据文件的关系:
一个用户可以使用一个或多个表空间,
一个表空间也可以提供多个用户使用。用户和表空间
没有隶属关系,
表空间是一个用来管理数据存储的逻辑概念,
表空间只是和数据文件发生关系,
数据文件是物理的。
一个表空间可以包含多个数据文件,
而一个数据文件只能隶属于一个表空间。
总结一下:解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的
柜子。数据库其实就是柜子,
柜中的抽屉是表空间,
抽屉中的文件夹是数据文件,
数据夹中的纸
是表,
写在纸上的信息就是数据。