Oracle的逻辑存储结构

孤人 提交于 2020-01-08 07:13:21

1:概述

逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织、管理数据.

Oracle的逻辑存储结构如下图所示:

     
                                                     图4 逻辑结构

从逻辑上来看:

  1>   数据库是由一个或者多个表空间等组成

  2>   一个表空间(tablespace)由一组段组成

  3>   一个段(segment)由一组区组成

  4>   一个区(extent)由一批数据库块组成

  5>   一个数据库块(block)对应一个或多个物理块

  6>   表空间是最大的逻辑单位,块是最小的逻辑单位

  因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的.

1.1  数据库块

       数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。块的大小是操作系统块大小的整数倍。以Win2K为例,操作系统块(OS block)的大小为4kb,所以Oracle Block的大小可以是4kb,8kb,16kb等等。如果块的大小为4kb,某表每行的数据是100 bytes.,如果某查询语句只返回1行数据,那么,在将数据读入到数据高速缓存时,读取的数据量时4kb而不是100 bytes.

数据块由以下五部分组成 

       标题        :包括通用的块信息,如块地址/段类型等,最佳大小为85-100bytes。
       表目录     :存储聚集中表的信息,这些信息用于聚集段。
       行目录     :包括这块中的有效行信息,允许使用每行开头的2bytes。 
       自由空间  :这块中能插入或修改的一组空间。
       行数据     :存储表或索引的数据。

 1.2.

        区(Extent)是数据库存储空间分配的逻辑单位,一个区由一组数据库块组成,区是由段分配的,分配的第一个区称初始区,以后分配的区称增量区。

 1.3.

        段(Segment)是表空间中一个指定类型的逻辑存储结构,它由一个或多个区组成,段将占用并增长存储空间。
        引导段(Bootstrap Segment) :  存储数据字典表的定义
        临时段(Temporary Segment): 存储表排序操作期间简历的临时表的数据
        回滚段(Rollback Segment)    :  存储修改之前的位置和值
        索引段(Index Segment)        :  存储表上最佳查询的所有索引数据
        数据段(Date Segment)         :   存储表中所有数据

1.4. 表空间

       表空间(tablespace)是最大的逻辑单位,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。 

     
                                         图6 表空间和数据块的关系

Oracle 10g自动创建的表空间有:
       Example(实例表空间)
       Sysaux(辅助系统表空间)
       System(系统表空间)
       Temp(临时表空间)
       Undotbs(重做表空间)
       Users(用户的表空间)
      

  System : 系统表空间,存放关于表空间的名称、控制文件、数据文件等管理信息,是最重要的表空间.它属于Sys、System两个schema(方案),仅被这两个或其他具有足够权限的用户使用。但是均不可删除或者重命名System表空间.
      Temp: 临时表空间存放临时表和临时数据,用于排序
      Users: 用户表空间,永久存放用户对象和私有信息,也被成为数据表空间
      Sysaux:辅助系统表空间,用于减少系统负荷,提高系统的作业效率
      一般地:系统用户使用system表空间,非系统用户使用Users表空间

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!