Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50912
  • 博文数量: 21
  • 博客积分: 550
  • 博客等级: 中士
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-28 20:50
文章分类

全部博文(21)

文章存档

2011年(21)

我的朋友

分类: IT业界

2011-11-27 21:11:04

数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。在逻辑上,Oracle将保存的数据划分为一个个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组织。Oracle的逻辑存储单元从小到大依次为:数据块、盘区、段和表空间。

Oracle数据库由多个表空间组成,而表空间又由许多段组成,段由多个盘区组成,盘区又由多个数据块组成。

 

 

  1. 数据块

     数据库是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作的最小单元。相对应地,操作系统执行输入输出操作最小单位为一个操作系统块的大小。在操作系统中,执行I/O操作以操作系统块为单位,而在Oracle中,执行的I/O操作以Oracle数据块为单位。

   

  Oracle块的大小是操作系统块大小的整数倍。以Window NT操作系统为例,NTFS格式的磁盘分区一般为4KB大小,因此Oracle块的大小为8KB等。数据块的标准大小由初始化参数DB_BLOCK_SIZE确定,具有标准大小的块被称为标准块。Oracle支持同一个数据库中使用多种大小的块,与标准块大小不同的块称为非标准块。

  可以通过查询V$parameter数据字典获得参数DB_BLOCK_SIZE的值,该参数值同时也是数据库的尺寸大小

例如:

在数据块中可以存储各种类型的数据,如表数据、索引数据、簇数据等。无论数据块中存放何种类型的数据,块都具有相同的结构。

数据块的基本结构

块头部--包含块中一般的属性信息,如块的物理地址、块所属的段的类型(如数据段、索引段、回退段等)

表目录--如果块中存储的数据是表数据(表中一行或多行记录),则在表目录中存储有关该表的相关信息。

行目录--如果块中存储的数据为表数据(表中一行或多行记录),则在行目录中保存这些记录的相关信息。

空闲空间--块中尚未使用的存储空间。当向数据库中添加新数据时,将减小空闲空间。

行空间--块中已经使用的存储空间,在行空间中存储了数据库对象的数据。例如,表中的一行或多行记录。

块头部、表目录、行目录共同组成块的头部信息区。块的头部信息区中并不存放实际的数据库数据,它只起到引导系统读取数据的作用。因此,如果头部信息区被损坏,则整个数据块将失效,数据块中存储的数据将丢失。而空闲空间和行空间则共同构成块的存储区,空闲空间和行空间的总和即是块的总容量。

 

 

阅读(1682) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~