1. 物理上看,数据记录是如何存储的
先看 每一条数据项是如何存储的;
然后 看这些数据项组成的记录是如何存储在物理块上的;
之后 看这些物理块在磁盘上是如何分配的;
从而 明白整个数据记录的存储方式。
1.1 数据项的存储方式
(1)定位法
只能表示定长记录的方法。换句话说,不同数据项之间是通过长度来区别分开来的,系统为每个数据项按照最大的标准分配定长的字段,空白部分就用空白字符来填充。
优点:简单,使用最广。
缺点:空间利用率低,尤其是当数据的长度参差不齐时。
(2)相对法
可表示可变长记录的存储方法。不同数据项之间使用分隔符来分开。
优点:空间利用率比定位法高。
(3)索引法
可表示可变长记录的存储方法。每个数据项用一个指针指向其首地址,以此区分不同数据项。
优点:空间利用率高。
(4)标号法
可表示可变长记录的存储方法。没和数据项用一个特定的标号开头。
比如SN WANG FN LING SX MALE YR 1982
其中的斜体SN表示surname,SN表示firstname,SX表示sex,YR表示year of birth。
优点:空间利用率高
缺点:当记录的数据项个数较多时,标号本身也占用了大量的空间。
1.2 记录在物理块上的分配
磁盘与内存交换数据是以物理块为基本单位进行的,也就是说,每次访问磁盘,至少存取一个物理块。
当记录很小时,记录不跨块,全部在一个物理块中,叫做不跨块组织;
当记录很大时,记录跨块存放,分在不同的物理块,叫做跨块组织。
跨块时,物理块的尾部存放下一个物理块的地址。
1.3 物理块在磁盘上的分配
早期的DBMS中,是由操作系统分配数据库的物理块的,逻辑上相邻的数据往往被分配到磁盘的不同区域,在连续访问数据库中的数据时,系统性能会严重下降。现代的DBMS中,系统一次性向操作系统申请所需要的磁盘空间。
(1)连续分配
将一个文件的块分配在磁盘的连续空间,块的次序就是它们存储的次序。
优点:顺序存取非常有效
缺点:不利于文件的扩充和修改
(2)连接分配
逻辑上相邻的物理块之间采用指针链接。
优点:有利于文件的扩充和修改
缺点:存取效率低
(3)簇集分配
把文件分为若干簇集,文件中相关记录存放在一个物理块或相邻的物理块,各簇集之间使用指针链接。
优点:有利于检索速度的提高
缺点:重新分配簇集时会引起大量数据的搬移
(4)索引分配
每个文件有一个逻辑块号与其物理块地址对照的索引。通过索引,可以查询到文件中任一块的地址。
优点:分配方法灵活,扩充、修改方便
缺点:访问增加了逻辑块号到物理块地址映射的开销;连续访问性能不高。
1.4 (附加)数据压缩的方式介绍
(1)消零或空白符法
使用一种特殊符号来表示零或者空白符,比如使用 “#5” 来表示空白符 “bbbbb”。
(2)模式代替法
使用一省略符来代替重复的字符串,比如使用 “@#” 来表示 “东南大学软件学院“ ,然后配套一个模式表:
东南大学:@
软件学院:#
(3)索引法
索引法是模式替代法的一种变种,将经常出现的模式使用指针而非省略符来代替。指针指向模式表。