16.2  数据库逻辑存储结构

数据库的物理存储结构对应一系列的物理文件,这部分内容主要描述的是数据存储的实际位置,不过数据如何存储,以什么结构存储到数据文件中,则取决于数据库的逻辑存储结构。

不会有人认为Oracle数据库执行的每次操作,都是以数据文件为单位进行的吧?虽然修改最终反映到物理文件中,但Oracle数据库在执行操作时,并不是以数据文件为单位,而是从逻辑上定义出一组结构,操作的数据可以一步步被细分为不同的存储单元,Oracle操作数据的过程,实际上就是对这些不同级别的存储单元进行维护和管理的过程。

16.2.1  逻辑存储结构概述

按照由小到大的顺序,逻辑存储单元可以做如下划分:

(1)块(Block)。块是Oracle逻辑存储结构中个头最小的存储单元,所有数据的存取都是以块为单位进行的。初始化参数文件中有一个参数叫BLOCK_SIZE,就是专门用来指定这个小家伙个头的。天哪,初始化参数文件,那可是传说中作用于整个Oracle数据库的存在啊,想不到"块"这个家伙个头虽小,地位这么崇高。不错,Oracle数据库的块大小在数据库创建时指定,一经指定就无法修改,除非重建数据库。

(2)区(Extent)。区是Oracle数据库的最小分配单位,由一组连续的块组成,这些块物理上可能并不连续,但是必须都存在于同一个物理文件,单个区在分配时不能跨文件分配。创建对象时,最少会为该对象分配一个区,初始分配的空间叫做初始区(Initial Extent),随着对象的不断扩展,超出初始区后,Oracle就会再为其分配扩展区(Incremental Extent),扩展区不一定要与初始区连续存放,甚至大小也可以与初始区不同(基本上同一个对象中的每一个区的大小都可以不同),不过扩展区也必然是由连续的块组成。

(3)段(Segment)。很久很久一前,段可以直接被理解成对象,不过随着软件版本的变化,功能的提升,关于段的定义也越来越复杂,如果仍用一句话来形容的话,可以将段看作是对象的全部或者某个部分。从逻辑的角度看,段由一个或多个区组成,它是一个真正的逻辑结构,很难将其对应到某个物理对象上去。例如,创建一个普通的堆组织表(不含分区、LOB类型及索引等),那么该表就对应一个段,不管这个表中被存放多少记录,它都仍然只对应这一个段,不过如果为该表创建了索引,那么索引数据会存储到专门的索引段,如果该表有LOB类型,LOB数据也会被存入单独的数据段等。

(4)表空间(Tablespace)。一个表空间从逻辑上定义,是由一个或多个段组成,从

【责任编辑:董书 TEL:(010)68476606】

点赞 0

oracle的逻辑存储结构中由大到小的顺序,16.2 数据库逻辑存储结构相关推荐

  1. c语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,从键盘上输入3个数,将它们按由大到小的顺序排列好输出...

    vb中从键盘上输入10个数,判断有几个偶数,有几个奇数? 我给你写了,挺简单的.窗体上添加两个label控件一个command控件Dima(1To10)DimbDimcAsIntegerDimdAsI ...

  2. C语言学习之用指针处理,输入a和 b两个整数,按先大后小的顺序输出a和 b

    用指针方法来处理这个问题,输入a和 b两个整数,按先大后小的顺序输出a和 b. int main(){int a,b;//定义两个整型变量int *max,*min;//定义整型指针变量scanf(& ...

  3. 求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序。

    已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位 ...

  4. [Hash应用问题] 例3.2 给出n个整数,按从大到小的顺序输出前m大的数

    题目描述: 给出n个整数,请按从大到小的顺序输出前m大的数. 输入: 每组测试数据又两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500 ...

  5. c语言中输入大数,如何使用C语言实现输入10个数按从大到小的顺序排序输出

    本文主要向大家介绍了如何使用C语言实现输入10个数按从大到小的顺序排序输出,通过具体的内容向大家展示,希望对大家学习C语言有所帮助. 用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序 ...

  6. 【问题描述】建立一个通讯录的结构记录,包括姓名、生日、电话号码。输入n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序依次输出其信息

    [输入形式]先输入朋友数n(整型,n<10),再依次输入每个朋友的姓名(字符串).生日(整型).和电话号码(字符串). [输入输出样例](下划线部分表示输入) Input n:3 Input t ...

  7. C语言 有a,b,c,d4个数,要求按从大到小的顺序输出。

    C语言 有a,b,c,d4个数,要求按从大到小的顺序输出. 代码如下: #include <stdio.h> void main(){ int a,b,c,d,t; scanf(" ...

  8. 赵钱孙李称体重,按照由大到小的顺序,打印出四人的姓氏的首字母和体重数(中间用空格隔开,每人一行)

    题目 - 称体重 描述 赵.钱.孙.李四个人中既有大人也有小孩,给他们称体重时发现,他们每个人的体重都不一样,且体重(单位:公斤)恰好是10的整数倍,且他们的体重都不高于50公斤,已知赵.钱两人的体重 ...

  9. 输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。

    输入n个朋友的信息,包括姓名.生日.电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录.题目保证所有人的生日均不相同. 输入格式: 输入第一行给出正整数n(<10).随后n行,每行 ...

最新文章

  1. STM32的SPI时钟
  2. Vue3、TypeScript 实现图片数量及大小随宽度自适应调整
  3. linux 网络在线升级,linux在线升级
  4. ajax为什么有时候不行,为什么不能用ajax调用
  5. 热传递物理模型matlab,简单传热学计算机分析MatlabPDE二维不稳态焊接热传导求解.PPT...
  6. 网络爬虫与HTTP协议
  7. 简单网页设计模板html代码
  8. matlab gui双音拨号,电子信息毕业设计---双音多频拨号系统的MATLAB仿真实现
  9. Unity图片闪烁效果
  10. Unity给手加入圆柱骨骼
  11. 用python画箱体图
  12. 一步一步带你爬天猫,获取杜蕾斯评论数据
  13. 给阿里云域名解析添加CAA记录,防止你的域名证书被劫持
  14. 没有时间进行测试? —有关在Python中对AWS Lambda进行单元测试的12条建议
  15. 地图可视化“一网打尽“
  16. DNS解析与域名服务安全防护策略
  17. css画钟表_如何使用css3绘制出圆形动态时钟
  18. jq和js的关系_jQuery与JavaScript有什么关系?
  19. 计算机考研如何寻找调剂信息?我这有最全的!
  20. 2.6.36.2 s3c6410 触摸屏驱动移植。

热门文章

  1. 配置mpls vpn基本组网-intranet
  2. 4. DBSCAN方法及其应用
  3. libpng warning: iCCP: cHRM chunk does not match sRGB
  4. ET、LT、EPOLLONESHOT
  5. python中setup是什么意思_python中setuptools指的是什么
  6. JDBC-----什么是JDBC
  7. c++读取wav音频方法
  8. python-docx 设置Table 边框样式、单元格边框样式
  9. linux 基金会 认证,Linux基金会宣布新的Linux认证计划
  10. 圆锥的表面积和体积计算