第09章 数据库逻辑结构管理.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
第09章 数据库逻辑结构管理.pdf

第九章 数据库逻辑结构管理 逻辑数据库结构是用户所涉及的数据库结构。它描述数据库在逻辑上是如何存储数据的。 一个 Oracle 数据库的逻辑结构由下列因素决定: 一个或多个表空间; 数据库模式对象(即表、视图、索引、聚集、序列、存储过程)。 逻辑存储结构如表空间(dataspace)、段(segment)和范围将支配一个数据库的物理空间如何 使用。模式对象(schema object)用它们之间的联系组成了一个数据库的关系设计。 各逻辑结构的详细含义请见第 3.5 节。 当创建一个数据库时,把数据库分成叫做表空间(tablespace)的多个逻辑区段。SYSTEM 表空间是创建的第一个表空间,然后创建另外的表空间以分别存储不同种类的数据。 创建一个表空间时,会相应地创建数据文件(数据文件) 以存储数据。这些文件立即分配在 它们创建时指定的空间。因此,在数据库与表空间之间就存在着一对多的关系,并且在表空 间与数据文件之间也存在一对多的关系。 一个数据库可以有多个用户,其中的每个用户都拥有一个模式(schema)。每个用户模式是 表和索引等数据库逻辑对象的集合。这些对象表示存储在表空间的物理数据结构。用户模式 中的对象可以存储在多个表空间中,并且一个表空间可以包含多个模式中的对象。 当创建一个数据库对象(如表或索引)时,可以通过用户缺省值或特殊指令将其赋予一个表 空间。这样就会在该表空间中创建一个段(segment) 以存储与该对象相关的数据。分配给这个 段的空间会一直保留着,直到该段被撤消、人工收缩或截断。 9.1 数据块、范围和段管理 Oracle 通过段、范围和数据块逻辑数据结构可更细地控制磁盘空间的使用。 段(SEGMENT )包含表空间中一种指定类型的逻辑存储结构,是由一组范围组成。一 个段是一个用户建立的逻辑结构,它占有一定的存储空间,并能够增长,但一个段不能横跨 多个表空间。 Oracle 对所有段的空间分配,以范围为单位。 一个范围(EXTENT )是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。 每一个段是由一个或多个范围组成。当一段中间所有空间已完全使用时,Oracle 为该段分配 一个新的范围。 数据库中每个段至少要使用一个范围来保存数据;对于回滚段,则至少要有两个范围。 分配给段的第一个范围称为初始范围。若段的初始范围的数据块用完了,且需要更多的空间 保存新数据,则 Oracle 自动为该段分配一个增量范围(Incremental extent )。如果一个段由多 个范围组成,则无法保证这些范围的连续性。 为了维护的目的,在数据库的每一段含有段标题块(segment header block)说明段的特征 以及该段中的范围目录。 269 数据块(data block )是Oracle 管理数据文件中存储空间的单位,为数据库使用的 I/O 的 最小单位,其大小可不同于操作系统的标准 I/O 块大小。数据块大小应该是操作系统块大小 的倍数。标准的块大小被初始化参数DB_BLOCK_SIZE 指定。另外 Oracle9i 版本 1(9.0.1), 允 许定义不超过 5 个非标准的块大小。 9.1.1 数据块的管理 一.数据块的格式 Oracle 中存放数据的数据块的格式都是类似的,数据块的格式如下: 公用的变长标题 表目录 行目录 未用(空闲)空间 行数据 图9-1 数据块的格式 标题(Common and Variable Header):它包含一般的块信息,如块地址和段的类型(如: 数据段、索引段、回滚段和临时段)。 表目录(Table Directo

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档