虽然GBase 8s系统提供了数据的高层视图,但最终数据必须以比特的形式存储在一个或多个存储设备上。如今绝大多数的数据库将数据存储在磁盘上,并将数据装载到内存中进行处理,或者将数据复制到磁带等备份设备上用于存档。因此,数据的存储管理是8s系统的重要组成部分,属于较低层的问题。
1.物理存储介质
主要的物理存储介质包括:高速缓冲存储器、主存储器、快闪存储器、磁盘存储器、光盘、磁带等。最快的存储介质(例如高速缓冲存储器和主存储器)被称为基本存储。基本存储介质的下一层介质(例如磁盘)被称为辅助存储或联机存储。层次结构中最底层的介质(如磁带机和自动光盘机)被称为第三极存储或脱机存储。不同的存储系统除了速度和成本不同,还存在一个存储易失性的问题。易失性存储在设备断电后将丢失所有内容。从主存储器向上的存储系统都是易失性存储,而向下的都是非易失性存储。为了保护数据,必须将数据写到非易失性存储中去。
2.文件的组织
一个数据文件可看作由某种逻辑关系组织起来的记录的序列,这些记录通过文件的组织映射到磁盘块上。将数据库中的数据记录映射到文件的一种方法是使用多个文件,在任意一个文件中只存储一个固定长度的记录。另一种方法是构造文件,使其能够容纳多种长度的记录。
3.文件中记录的组织
在8s数据库中,关系是记录的集合,给定一个记录的集合之后,需要在文件中组织这些记录。在文件中记录的组织方法主要有:堆文件组织、顺序文件组织以及散列文件组织。在通常情况下,每个关系的记录用一个单独的文件存储,但是在多表聚类文件组织中,几个不同关系的记录存储在同一个文件中,而且不同关系中的相关记录存储在相同的块中,于是一个 I/O 操作可以从所有关系中获得相关的记录。
4.数据字典
数据字典记录了8s数据库自身的数据,这些数据同样需要存储在数据库中,构成了一个微型的数据库。一些数据库使用专用的数据结构和代码存储数据字典。数据字典通常存储为非规范化的形式,以便进行快速地存取。
5.数据索引
数据库引入索引的目的是在数据查询过程中通过索引进行定位,找到对应记录所在的磁盘块,从而获取相关的记录。当8s数据库中存储的记录数量庞大时,可以通过构建和维护索引加快查询速度。但是,在很多情况下,由于数据记录数量大,相应的索引规模也非常大,因此,对数据索引需要进行更为复杂的处理。
有两种基本的索引类型:顺序索引和散列索引。索引在实际数据处理中产生的积极效果通常由以下几个因素判定:访问类型、访问时间、插入时间、删除时间、空间开销。可在一个数据文件上建立多个索引,以满足不同的数据处理需求。