首页 / ORACLE / oracle中的一些基本概念
oracle中的一些基本概念
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle中的一些基本概念,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3382字,纯文字阅读大概需要5分钟。
内容图文
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> Oracle数据库的物理文件是存储在磁盘上的数据文件、控制文件和日志文件的总称。数据文件和日志文件是数据库中最重要的文件。数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间由数据块组成。那么,数据在数据文件中是如何组织的呢?要了解这些内容我们首先必须理解什么是表空间(tablespace)、段(segment)、区(extent)、块(block),这些都是oracle数据库在数据文件中组织数据的基本单元。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 块(block)是数据存储的物理单位,也是数据文件中最基础的单位。数据直接存储在块上,块是oracle空间分配的最小单位。oracle中的块大小常见的有三种:2KB、4KB、8KB。块的大小在数据库创建时就已经固定下来,数据库中每个块的大小都是相同的,而且所有的块都有相同的格式,由“块头+表目录+行目录+空闲空间+数据空间”组成。块头包含着块类型(比如是表块、还是索引块)的信息、磁盘上块的位置等信息。表目录(table directory),如果有的话,包含着此块中存储各行的表的信息(如果一个块中存有多个表中的数据)。行目录(row directory)包含着数据行的描述信息,它是一个指针数组,指示了每一行在数据块中的物理位置。块头、表目录、行目录统称为块开销(block overhead),是oracle用来统计、管理块本身的。剩下的两部分很简单,已经存有数据的就是数据空间,暂时没存的就是空闲空间。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 区(extent)又叫盘区,是数据文件中一个连续的分配空间,它比块要大,由块组成。有些对象分配空间时可能至少需要两个盘区,比如回滚段,而这两个盘区不一定要求相连。区的大小从一个块到2GB不等。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 段(segment)是oracle数据库中的分配单位,对象如表、索引等都是以段为单位进行分配。当创建一个表时将创建一个表段,创建一个索引时就创建一个索引段。每一个消耗存储空间的对象最终被存储到一个单一的段中。如回滚段、临时段、聚簇段、索引段等。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 1)数据段:每个不在簇中的表都有一个数据段。表中的所有数据都存储在数据段的区间中。每一个簇都有一个数据段,簇中每个表的数据都存储在簇的数据段中。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 2)索引段:每个索引都有一个索引段,存储所有的索引数据。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 3)临时段:当执行SQL语句需要临时工作区时,Oracle将创建临时区。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 4)回滚段:如果当前系统处于自动重做管理模式,则数据库服务器使用表空间来管理重做的空间。如果使用手动重做管理模式,则数据库管理员需要创建一个或多个回滚段,用于临时存储重做信息。回滚段中的信息将在数据库恢复过程中使用到。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 但是oracle11g中加入了新的特性:为了节省存储空间,对空表不建立段,这可能会导致我们导出数据库的时候空表无法导出,关于解决方法请参考文章Oracle 11g导出空表、少表的解决办法。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 表空间(tablespace)是一个逻辑容器,是为了统一Oracle物理和逻辑的结构而专门建立的。从物理上来说,一个表空间是由具体的一个或多个物理文件构成的;从逻辑上来说一个表空间是由具体的一个或多个用户模式下的表、索引等数据构成。在Oracle中表不可能单独存在,一定隶属于某一个用户,而某用户的数据必定存在于某个表空间中。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 方案(schema)又叫模式,是比表空间小一级的逻辑概念,它也是一个逻辑容器。多个用户可能共用一个表空间,那如何区分开每一个用户?那么在表空间中对每个用户都有一个对应的方案,用于保存单个用户的信息。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> oracle中存储的层次结构总结如下:
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 1)数据库由一个或多个表空间组成;
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 2)表空间由一个或多个数据文件组成,一个表空间包含多个段;
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 3)段由一个或多个区组成;
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 4)区是数据文件中一个连续的分配空间,由一个或多个块组成;
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 5)块是数据库中最小、最基本的单位,是数据库使用的最小的I/O单元;
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘> 6)每个用户都有一个对应的方案。
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘>参考资料:
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘>http://www.cnblogs.com/gsk99/archive/2011/04/14/2016216.html
<SPAN style=‘font-family: "courier new", courier; font-size: 14px;‘>http://m.oschina.net/blog/76768
原文:http://www.cnblogs.com/ningvsban/p/3604545.html
内容总结
以上是互联网集市为您收集整理的oracle中的一些基本概念全部内容,希望文章能够帮你解决oracle中的一些基本概念所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。