第五章数据库存储结构在SQL标准中,数据库按三级模式构建,它们是:视图(子模式)、基本表(模式)、存放数据的操作系统文件(存储模式)。这一章我们重点讨论:“DBMS如何把基本表、索引等数据存储到磁盘文件中,以及如何提高查询速度等问题”,学习这些知识的目的是:更好地设计你的数据库及配置你的数据库参数,使系统效率更高。第五章内容•5.1存储介质介绍•5.2存储结构•5.3索引技术5.1存储介质•一个数据库最终要存储到计算机的存储设备中。因此,我们首先介绍一下数据库系统所涉及到的计算机存储设备。5.1.1存储介质层次一个数据库在运行过程中,涉及多种存储设备。我们按存储器中数据被DBMS使用的顺序,把存储器分为三级。⑴内存作为一级存储器,存放DBMS当前正在使用或正要使用的数据库数据。⑵硬磁盘作为二级存储器,存放整个数据库,这些数据可能随时被DBMS调入内存。1、内存⑶磁盘、磁带、光盘等作为三级存储器,存放数据库的备份,当磁盘中的数据库遭到破坏时,用数据库的备份来恢复。如图所示:存储器分三级结构图磁盘中的数据库备份介质中的数据库DBMS数据缓存区DBMS一级二级三级5.1.2内存内存中存放系统正在使用或正要使用的数据。内存由操作系统来管理。操作系统为数据库在内存中开辟一块区域,用来存放数据库的数据和日志。如图所示:5.1.2内存中的数据库示意图数据库的数据缓冲区…数据库的日志缓冲区数据页数据页数据页内存5.1.3硬磁盘硬磁盘又称温切斯特盘(Winchester),它的工作原理是:在一个塑料盘片上涂上小磁粉颗粒,颗粒有磁时表示“1”、无磁时表示”0”结构如图所示:1、磁盘结构读写控制器磁道磁头扇区柱面2、技术指标•盘片:一个硬盘由一组两面涂有磁粉的盘片组成。•磁道:为了在盘片上存储信息,必须把盘片分成若干个同心圆,然后在其上存储信息,我们把这些同心圆称为磁道。•扇区(扇段或盘块):为了读取信息方便,我们用扇形把磁道等分成若干段,我们称它们为扇段(扇区或盘块)。磁盘上的所有扇段(不论扇段的长短)都存储相同容量的信息,盘块大小与操作系统有关,一般是512KB。盘块是OS寻址的最小单位,既OS向磁盘读写数据的最小单位。2、技术指标•柱面:我们把由所有盘面上相同磁道所够成的哪一部分存储空间,称为一个柱面。•磁盘容量:盘片总数×2×每个盘面的磁道数×磁道的盘块数×每个盘块的字节数•在磁盘上定位数据:操作系统通过(柱面号,磁头号,盘块号)三个参数来定位磁盘上的数据。OS对整个盘的盘块进行统一编址,编址的方法是:2、技术指标假如磁盘有20个盘面,每面上有200个磁道。每个磁道上有17个扇段。⑴柱面编号:由内向外依此编为0、1、2...199。⑵磁道编号:磁道编号按柱面号顺序进行编号。0柱面的20个盘面上的磁道从上到下编为:0、1、2、...、19,1柱面的20个盘面上的磁道从上到下编为:20、21、...、39,依此类推。⑶盘块编号:盘块编号按磁道号顺序编写。0号磁道上的17个扇段依此编为0、1、2、...、16,1号磁道上的17个扇段编为17、18、...、33,依此类推。3、磁盘文件操作系统对存储到磁盘中的数据,采用文件形式进行管理。每个文件有一个文件名,数据存储在文件中。操作系统为每个磁盘创建一个文件分配表结构如下:文件名起始盘块号终止盘块号3、磁盘文件3、磁盘文件一个文件包含多个盘块,盘块之间指针链接起来。一个盘块只存储一个文件的数据,既一个盘块不能存储不同文件文件的数据。当用户要访问文件时,操作系统首先从磁盘的文件分配表中找到此文件,然后根据文件分配表的信息将该文件的盘块调入内存,操作系统从磁盘往内存调数据的最小单位是一个盘块(扇区)。5.1.4磁盘阵列目前,数据库中的数据量越来越大,数据的安全性要求越来越高。用单块磁盘存储数据库数据已不满足要求。1987年,Gibson和Katz在加洲大学伯克利分校发表文章,首先提出了“磁盘阵列”概念。5.1.4磁盘阵列独立冗余磁盘阵列最初叫做廉价冗余磁盘阵列(RedundantArrayofInexpensiveDisks),它是由多个类型、容量、接口,甚至品牌一致的小容量、独立的硬盘组成的阵列,而阵列综合的性能可以超过单一昂贵大容量硬盘...