时间:2022-11-05 22:30:01 | 来源:信息时代
时间:2022-11-05 22:30:01 来源:信息时代
嵌入式数据库存储 : 在充分考虑存取时间、存储空间利用率和维护代价等因素的基础上,以内存数据库作为底层支持的实时数据库存储模式。
传统的数据库的存储管理主要是基于磁盘存储结构的,数据在存取过程中需要进行频繁的I/O操作,由于I/O操作时间的不确定性,使得传统数据库存储技术无法应用在嵌入式系统中。考虑到存取时间、存储空间利用率和维护代价等因素,通常嵌入式系统的存储结构分为两个层次。第一层为内存,整个嵌入式实时数据库系统的高性能要求就是以内存数据库作为底层支持的,它是嵌入式实时数据库系统的关键,用于程序运行和实时数据的处理,它存取速度快,无需进行磁盘的I/O操作,因此最适合用于实时数据的管理和操作; 第二层为外存,通常采用一些永久存储设备,需要进行读写I/O操作,用于存储系统中的历史数据。这样,对于那些固定不变的数据(如模拟量的工程单位)或存取频率相对较低的数据(如只有在故障恢复时才使用的数据备份或日志备份)放在外存空间内,而把所有的实时数据或当前工作部分的数据驻留在内存中,避免了数据库文件的操作,大大提升了嵌入式实时数据库系统的性能。对于这种两层存储结构中的内存部分,可由嵌入式操作系统自动分配,用户也可指定系统的分配空间,一般由三部分共享内存构成,分别是索引区、数据区和系统信息区,每条记录由表名、段号、段内偏移地址来确定。
而嵌入式数据库中设计存储模型的目的是为了对数据和索引进行压缩。主要有FS、DS和RS三种存储模型:
(1) flat存储(flat storage,FS): 是一种最简单的存储模型,它存储无重复的属性值,元组顺序存储,属性值嵌入到元组中。它的优点是访问的局部性;缺点是空间消耗严重,不能避免重复属性值,而且效率较低,所有的操作顺序计算。可以通过增加索引结构来改善效率问题,但会消耗更多的空间。
(2)基于指针的域存储(domain storage,DS):是对数据的一种压缩模型,它在域中对值进行分组,元组通过指针来引用他们的值,此外,一个域也能在多个属性间进行共享。DS存储模型适合存储包含有重复值的属性,也可以存储可变大小的属性,所有关系的所有元组都变成了固定大小的,便于处理,简化了内存管理。这种模型元组创建、更新和删除的代价大,但由于所写的数据量小,因此效率仍然很高。DS存储模型如图1所示。
图1 DS存储模型
图2 RS存储模型