逻辑存储结构

    数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。 Oracle 在逻辑上将保存的数据划分成一个个小单元进行存储和管理,高一级的存储单元由一个或多个低一级的存储单元组成。 Oracle 的逻辑存储凌单元从小到大依次为:数据块 (DATA BLOCKS) 、盘区 (EXTENT) 、段 (SEGMENTS) 和表空间 (TABLE SPACES) 也说是Oracle 数据库由多个表空间组成,而表空间又由许多段组成,段由多个盘区组成,盘区又由多个数据块组成。

1   数据块

数据块是Oracle用来管理存储空间的最基本单元,也是最小的逻辑存储单元。Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。数据块的大小由初始化参数DB_BLOCK_SIZE确定,在创建数据库之后不可以修改。、

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

数据块的各组成部分分别介绍如下:

l         块头部  块头部包含块中一般的属性信息,如块的物理地址、块所属的段的类型等。

l         表目录  如果块中存储的数据是表数据(表中一行或多个记当前),则表目录存储关于该表的信息。

l         行目录  存储该块中有效的行信息。

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

l         行空间  行空间是块中已经使用的存储空间,在行空间中存储了表或索引的数据。

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

可使用SHOW PARAMETER DB_BLACK_SIZE命令获取参数DB_BLACK_SIZE的值,该值同时也是数据块的尺寸大小。在创建数据库后,该值不能改变。

2   盘区

盘区是由一系列物理上连续的数据块所构成的存储结构,它也是磁盘空间分配的最小单元。一个或从个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。

在创建表时,Oracle将为表创建一个数据段,为并数据段分配一个称为初始区的盘区。这时由于表中不包含任何记录,所以初始区中的每个数据块都是未使用的。但随着向表中添加数据,初始区中的块将逐渐被写满。当初始区中所有的数块都被定满后,Oracle将为数据段再分配一个新的盘区。分配的新区大小由创建表时STORAGE子句中的存储参数决定。

3  

段是不是存储空间的分配单位,而是一个独立的逻辑存储结构。段位于表空间中,并且由盘区组成。按照段中据存数据的特征,可以将段分为几种类型:数据段、索引段、回退段、LOB段和临时段。
        1.数据段
    数据段是数据库中用于存储数据库表中的数据。当用户创建表时,则系统将自动在相应的表空间创建数据段。表中数据的增加就是数据段的变大,段的增大过程是通过添加新盘区实现的。在一个表空间中创建了多少个表,相应地在该表空间就有多个数据段,且数据段的名称与表名相同。
        2.索引段
索引段用于存储用户在表中建立的索引信息。在创建索引时,Oracle将为索引创建一个索引段。Oracle中所有未分区的索引都使用一个索引段来保存数据,而分区的索引将为每个索引创建它的索引段。
        3.临时段
    当用户使用SQL语句进行排序或汇总时,则在用户的临时表空间中自动创建一个临时段。当用户操作完毕后,临时段将自动消除。
        4LOB
    如果表中含有如CLOBBLOB等大对象类型数据时,系统将创建LOB段以存储相应的大型对象数据。LOB段独立于保存表中其他数据的数据段。
        5.回退段
    回退段用于存储用户数据被修改之前的值,以便在特定条件下回退用户对数据的修改。Oracle利用回退段来恢复被回退事务对数据库所做的修改,或者为事务提供读一致性保证。每个数据库都至少拥用一个回退段。
4
  表空间

表空间是在Oracle中用户可以使用的最大的逻辑存储结构,用户在数据库中建立的所有内容都被存储在表空间中。Oracle使用表空间将相关的逻辑结构组合在一起,表空间在物理上与数据文件相对应,每一个表空间是由一个或多个数据文件组成的,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。所以存储空间在物理上表现为数据文件,而在逻辑上表现为表空间。数据库管理员可以创建若干个表空间,也可以为表空间增加或删除数据文件。表空间通过数据文件来扩大,表空间大小等于构成该表空间的所有数据文件大小之和。
    在每一个数据库中,都有一个名为
SYSTEM的表空间,即系统表空间。该表空间是在创建数据库时自动创建的,用于存储系统的数据字典以及系统的管理信息,也用于存储用户数据表、索引、等对象。  
    除了系统表空间外,
Oracle数据库系统还创建了其他的表空间。如SYSAUX表空间、TEMP表空间、USERS表空间和UNDO表空间。其中,SYSAUX表空间是Oracle 10g 新增的表空间,作为SYSTEM表空间的辅助表空间,SYSAUX表空间一般不用于存储用户数据,并由Oracle系统内部自动维护。UNDO表空间则专门用来在自动撤销管理方式下存储撤消信息,除了回退段外,在撤消表空间中不能建立任何其他类型的段,这也就是说,用户不能在UNDO表空间中创建数据库对象。TEMP表空间主要用于存储在执行SQL语句时所产生的临时数据(主要是排序或汇总时产生的临时数据)。临时表空间一般通用,所有用户都使用TEMP作为临时表空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值