最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Smartphone类手机数据库设计

IT圈 admin 24浏览 0评论

2024年10月6日发(作者:让晗日)

No.3 

微处理机 

Jun..2013 MICR0PROCESSORS 

第3期 

2013年6月 

Smartphone类手机数据库设计 

刘洲洲 

(西安航空学院,西安710077) 

摘要:通过对Smartphone类型手机的数据库分析,改变原来基于文件系统实现方案而采取基 

于数据库设备,直接面向Flash驱动的方案。论述了该系统的设计和主要模块流程,通过测试证明该 

系统存取速度大大提高且占用内存也会减少,对于后继手机数据库软件开发建立了良好的基础。 

关键词:智能手机;数据库;软件系统 

DOI编码:10.3969/j.issn.1002—2279.2013.03.020 

中图分类号:TP368 文献标识码:A 文章编号:1002—2279(2013)03—0066—03 

Design of Database Software Based Off Smartphone Mobile Phone 

UU Zhou—zhou 

(舡’aftAeronautical University, ’aft 710077,China) 

Abstract:By analysis of database of Smartphone mobile phone,the equipment based on database is 

used instead of the original implementation based on the file system to directly face the Flash driving 

scheme.The design of the system and the flow of main module are discussed in this paper.The test 

results show that the access speed of the system is greatly improved,the occupied memory is also 

reduced,and a good foundation for he ftuture software development of he mobitle phone database is made. 

Key words:SmartPhone;SQL;Software system 

1 引 言 

随着多媒体移动终端(PDA,智能手机)的快速 

发展,手机已经不再只是用于语音通信的手持设备, 

而成为集成了MP3、MP4以及上网移动办公等附加 

司开发的一种嵌入式RTOS产品,其操作系统为 

Nucleus,只需一次性购买Licenses,就可以获得操作 

系统的源码,目前手机行业有很多使用Nucleus操 

作系统。测试平台采用展讯的SC6600基带处理芯 

片,多媒体芯片则采用广达的QCP1880芯片平台, 

音频编解码芯片采用Wolfson 8750芯片。 

数据库设备是这样一个概念,用一块Flash的 

功能的嵌入式通信平台。同时移动通信网络的服务 

能力和承载能力也取得大幅度的提升,其发展也趋 

于智能化,各种功能都将变得更为强劲¨ j。与此 

同时,手机需要管理的数据量也越来越大,传统的手 

机软件系统很难适应新的需要。现在的主流手机都 

是简单地从存储介质上直接读取短信、电话簿和通 

话记录等,也就是基于文件系统实现的,这样的架构 

段连续空间构成数据库存储介质,在此基础上加 

上数据库驱动和一个简单的FMM,就构成了数据库 

设备,它向数据库系统提供一个可逆的连续逻辑地 

址空间。所谓可逆就是在Flash整理的时候,物理 

地址改动而逻辑地址不变。所谓连续指的是数据库 

设备向数据库系统提供的是一个线性连续的地址空 

有一个最大的弊端,那就是数据库受到了文件系统 

的牵制,文件系统的低效率会直接影响到数据库的 间,但是在设备低层,依然是一个块设备,一个块定 

义为一个擦除块的大小,根据Flash的硬件特性可 

能是64K或者16K。 

本中所描述的数据库并不是一个关系数据库, 

每个数据库由一个个数据库名和若干个变长的记录 

外加一个或者多个索引表构成。索引表按照一定的 

存取速度。现在要改为基于数据库设备,直接面向 

Flash驱动的方案进行设计研究。 

2数据库方案设计 

文中的Smartphone是Accelerator Technology公 

作者简介:刘洲洲(1981一),男,山西人,博士研究生,讲师,主研方向:SOC设计开发工作。 

收稿日期:2012—10—25 

3期 刘洲洲:Smartphone类手机数据库设计 ・67- 

规则对记录进行排序。记录主要由一个类别加上一 

Flag=0xC表示该Bank在使用中,其中的记录 

个目录信息再加上记录数据构成。目录是一种特别 

有效。 

的记录,它的类别表明它是一个目录,它的数据是一 

Flag=0x8表示该Bank为脏块,需要擦除。 

个字符串表示目录名。索引表以一个记录的形式保 

Flag=其他无效标志,该Bank需要擦除。 

存到数据库里,并用记录类别加以区分。数据库基 

在系统启动,数据库设备初始化时,扫描这32 

于数据库设备,与文件系统以及注册表无关,这可能 

个块ID号,并在内存中动态生成一个映射表,因为 

会对数据库初始化及打开数据库带来不便,但是这 

有一个保留的交换块,所以可以填写的只有31个节 

种独立性有两个好处,一是便于移植,二是其他模块 

点,定义最后一个节点记录保留块的地址信息,其余 

的BUG甚至崩溃都不会直接影响数据库系统。 

各个节点内容除了包含该节点的物理地址信息,还 

2.1数据库设备 

应该包含该Bank的使用情况信息(如:剩余,脏多 

文中采取的方案为数据库设备向下直接面向 

少),这些信息在数据库设备的其他功能中会用到。 

Flash驱动,向上向数据库系统提供线性的寻址空 

数据库设备向数据库系统提供动态分配记录空 

间,它用一个地址映射表来实现将Flash的一个个 

间的功能。为了回收脏块的方便,数据库记录必需 

擦除块映射成为一个连续的可逆逻辑地址空间。逻 

存放在同一个擦除块,不能跨Bank存放。分配的依 

辑地址从0开始编址,如果设备大小是2M,那么逻 

据是地址映射表中的Free字段,为了减少碎片以及 

辑地址就是Ox00000000到Ox00200000。数据库设 均匀使用各个物理块,分配原则是优先分配那些 

备是和数据库相关的,表现在几个方面。第一,虽然 

Free较小的Bank。同时删除、修改记录会产生脏 

逻辑地址是连续的,但是数据库要求每个记录不能 

块,这些脏块需要回收才能再次被利用。回收的触 

跨Bank(注:文中提到的Bank就是一个擦除块,大 发发生在写记录时,当设备空间分配引擎报告没有 

小为64K),也就是说记录必需写在同一个擦除块 剩余空间时,触发脏块回收功能。脏块回收需要先 

中,以便整理脏块;这要求数据库设备要提供动态分 

选中一个回收的目标块,根据地址映射表中的Dirty 

配记录空间的能力。第二,整理脏块时,数据库设备 

字段,原则是Diny越大越优先。选定一个目标块 

不能独立完成,必须依赖于记录索引表,因为已经删 后,需要将该块中的有效记录全部搬至其他Bank, 

除的记录在索引表中有删除标记。第三,为了完成 

这一步可以理解为一个修改记录的过程,修改记录 

动态分配记录空间的功能,数据库设备必需记录每 

可以将记录转存到其他Bank,然后再删除原来的记 

个查处块的使用情况,包括已经用掉多少、剩余多 

录。当该Bank的所有记录转移后,调用Flash驱动 

少、脏块多少等等,这些数据的来源都是数据库操 的块擦除函数,擦除完成后再写入ID号,同时修改 

作。第四,有关掉电保护,块擦除时掉电保护由设备 

地址映射表,Dirty和Free字段清零。 

层独立完成,但是记录在增、删、改等操作时的掉电 

2.2数据块初始化和架构 

保护要靠数据库系统的操作次序保障。 数据库系统初始化分两步,首先是数据库设备 

为了便于描述,假定数据库设备大小为2M,每 初始化,其次才是数据库自身初始化。设备初始化 

个擦除块大小为64K,这样一共有32个擦除块,其 

类似于FMM初始化,它的主要工作是扫描整个设 

中有一个块作为Bank0的交换块,可用的只有31个 备,获得地址映射表的各项数据。首先要扫描各个 

块。为了实现地址映射,给这31个擦除块每个块的 Bank ID,填写Addr字段。然后扫描各个Bank记 

前四个字节写入块ID号,ID号由28位Bank号加 

录,获取该Bank已经用掉的空间和删除的记录空 

上4位Flag构成,数据结构如下: 

间,计算出剩余空间(Free)和脏块大小(Dirty)。 

0—27Bits,Bank号 

整个数据库系统由一个记录索引表和数据记录 

28—31Bits.Flag 

区构成,索引表占用一个Bank,并且定义固定在逻 

其中,Bank号是地址映射表的下标序号,取值 辑Bank0(下面提到的都是逻辑Bank号)。交换块 

范围0—30。Flag是掉电保护标志,具体含义如下: 不占地址空间,只是临时存放在所引表的最后一个 

Flag=0xF表示该Bank空闲(Free)。 节点上。记录区占用其余的所有Bank(1~30)。索 

Flag=0xE表示正在整理过程中,该Bank是交 

引表记录每条数据库记录的地址、记录ID、类别、大 

换块,而且数据转存完成,系统正在擦除原来的脏 小、所属目录等信息,每个表项占12字节。每个记 

块。 

录有一个唯一的ID,整个数据库系统的所有数据库 

68・ 微处理机 2013定 

的所有记录,ID号不能冲突,而且ID号可以区分是 

那个数据库以及记录类别。为了便于管理,数据库 

系统有一个自己内定的管理数据库(sysdb),它的每 

这就要求在写操作时,按照一定的步骤,还要依赖于 

相应的标志位。掉点保护有两个必要条件,一是系 

统启动后在初始化时,有能力知道上次关机是正常 

关机还是异常掉电关机。二是系统在任何时候突然 

条记录标识着一个用户建立的数据库,内容包含 

数据库名,索引表的个数、比较函数等信息,数据库 

名不能煎复,大小写不敏感。用户创建、打开数据库 

时就要访问到sysdb。数据库系统有一个自己内定 

的管理数据库sysdb,数据库系统初始化时打开这个 

数据库。 ̄,ysdb没有索引记录,它的记录类别只有一 

掉电,有能力追溯到掉电前的资料信息。 

数据库系统用于掉电保护的信息有两个,分别 

是每个Bank的ID号和Bank0索引表中的每个节点 

的addr。这两个4字节数据的最后4bit是掉电保护 

Flag,其含义基本相同,下面详细介绍。 

种,而且每条记录注册着一个用户创建的数据库。 

索引表在Bank0,由32字节的HEAD和一个索 

引表构成,索引表的每项占l2字节,共有5458项, 

最后剩余4个字节保留。 

数据记录区里面是用户加人数据库的数据信 

息,系统对这样的信息不做任何解析,只是把它当作 

个二进制的数据包,用户必需指明该数据记录所 

在的目录,目录实际上是一种分类信息,目录信息将 

加入到Bank0中记录所引表的目录号字段中。数据 

记录的大小是用户数据包加上时间戳的大小,也就 

是说系统打包后的实际大小,数据库设备在存储时, 

会自动向4字节对齐。数据记录的格式如下: 

4byte时间戳 N byte用户数据 

时间戳用一个DWORD记录,高字表示Date,低 

字表示Time,Size=N+4;并赋值给记录所引表的 

size字段。每个数据库记录有一个目录属性,表明 

该记录属于哪个目录,目录实际上是记录的归类信 

息。目录本身也当作记录存储在数据库中,目录作 

为记录也有一个所属目录的属性,表明自己的父目 

录,由此可见整个是一个树状结构,数据记录是叶子 

节点,树根是sysdb。一个数据库的根目录没有记录 

和它对应,定义根目录的记录ID等于0。 

目录作为记录,它的格式和数据记录的格式是 

~一

样的,也是有一个时间戳加上数据构成。它的数 

据是目录名,是一个null结束的字符串,计算记录大 

小时结束符null也算一个字节。和文件系统一样, 

同一个目录下的子目录名不能有重复。本数据库系 

统对目录的级数以及子目录的个数不做限制,但是 

受到数据结构的限制,目录的最大个数等于记录的 

最大个数5458,实际可用5400。 

3关于掉电保护 

掉电保护是数据库设备层的基本功能之一,要 

做到在突然掉电的情况下,资料的完整性不受破坏, 

数据库的完整性包括三个方面:①各个擦除块 

的完整,也就是逻辑地址空间完整、连续、有效;②记 

录索引表的完整;③记录的完整。只有在写操作过 

程中突然掉电,才可能对数据库的完整性造成破坏, 

这些写操作包括记录脏块的整理、Bank0的整理、增 

加删除修改记录等。 

另外,除了数据库设备层的掉电保护,数据库系 

统还要做好数据库本身的数据相关性保护,保证数 

据的完整。这些相关性包括目录名不得冲突、排序 

方法不能相同、排序表必需和排序方法一一对应,排 

序记录要完整有效等,当然这些都与掉电保护没有 

关系,它依赖于数据库本身的鲁棒性。 

4测试环境 

通过在SC6600(ARM9)+nucleus+QCP1880 

的平台上进行测试,比原来的方案存取速度提高10 

倍以上,而且占用内存也大大减少,仅需要几十个字 

节。本软件模组在PC机上开发,经过编译工具em— 

bedded Visual C++编译后,可在CPU为ARM920T 

的硬件平台下运行 J。 

编程语言:c语言 

操作系统:Nucleus 

Nucleus内核版本:2.4.20 

交叉编译工具:VC++&ADS 

编译环境:Visual C++ 

硬件平台:SC6600或ARM920T 

参考文献: 

[1]龚星宇,许佳,龚尚福.嵌入式数据库的研究[J].现代 

电子技术,2007(9):46—49. 

[2] 张永.嵌人式数据库系统的设计与实现[D].北京:清 

华大学,2004. 

[3] 

吴飞,王昕.嵌入式移动数据库SQL Server for Windows 

CE的应用研究[J].微计算机信息,2006(17): 

56—59. 

2024年10月6日发(作者:让晗日)

No.3 

微处理机 

Jun..2013 MICR0PROCESSORS 

第3期 

2013年6月 

Smartphone类手机数据库设计 

刘洲洲 

(西安航空学院,西安710077) 

摘要:通过对Smartphone类型手机的数据库分析,改变原来基于文件系统实现方案而采取基 

于数据库设备,直接面向Flash驱动的方案。论述了该系统的设计和主要模块流程,通过测试证明该 

系统存取速度大大提高且占用内存也会减少,对于后继手机数据库软件开发建立了良好的基础。 

关键词:智能手机;数据库;软件系统 

DOI编码:10.3969/j.issn.1002—2279.2013.03.020 

中图分类号:TP368 文献标识码:A 文章编号:1002—2279(2013)03—0066—03 

Design of Database Software Based Off Smartphone Mobile Phone 

UU Zhou—zhou 

(舡’aftAeronautical University, ’aft 710077,China) 

Abstract:By analysis of database of Smartphone mobile phone,the equipment based on database is 

used instead of the original implementation based on the file system to directly face the Flash driving 

scheme.The design of the system and the flow of main module are discussed in this paper.The test 

results show that the access speed of the system is greatly improved,the occupied memory is also 

reduced,and a good foundation for he ftuture software development of he mobitle phone database is made. 

Key words:SmartPhone;SQL;Software system 

1 引 言 

随着多媒体移动终端(PDA,智能手机)的快速 

发展,手机已经不再只是用于语音通信的手持设备, 

而成为集成了MP3、MP4以及上网移动办公等附加 

司开发的一种嵌入式RTOS产品,其操作系统为 

Nucleus,只需一次性购买Licenses,就可以获得操作 

系统的源码,目前手机行业有很多使用Nucleus操 

作系统。测试平台采用展讯的SC6600基带处理芯 

片,多媒体芯片则采用广达的QCP1880芯片平台, 

音频编解码芯片采用Wolfson 8750芯片。 

数据库设备是这样一个概念,用一块Flash的 

功能的嵌入式通信平台。同时移动通信网络的服务 

能力和承载能力也取得大幅度的提升,其发展也趋 

于智能化,各种功能都将变得更为强劲¨ j。与此 

同时,手机需要管理的数据量也越来越大,传统的手 

机软件系统很难适应新的需要。现在的主流手机都 

是简单地从存储介质上直接读取短信、电话簿和通 

话记录等,也就是基于文件系统实现的,这样的架构 

段连续空间构成数据库存储介质,在此基础上加 

上数据库驱动和一个简单的FMM,就构成了数据库 

设备,它向数据库系统提供一个可逆的连续逻辑地 

址空间。所谓可逆就是在Flash整理的时候,物理 

地址改动而逻辑地址不变。所谓连续指的是数据库 

设备向数据库系统提供的是一个线性连续的地址空 

有一个最大的弊端,那就是数据库受到了文件系统 

的牵制,文件系统的低效率会直接影响到数据库的 间,但是在设备低层,依然是一个块设备,一个块定 

义为一个擦除块的大小,根据Flash的硬件特性可 

能是64K或者16K。 

本中所描述的数据库并不是一个关系数据库, 

每个数据库由一个个数据库名和若干个变长的记录 

外加一个或者多个索引表构成。索引表按照一定的 

存取速度。现在要改为基于数据库设备,直接面向 

Flash驱动的方案进行设计研究。 

2数据库方案设计 

文中的Smartphone是Accelerator Technology公 

作者简介:刘洲洲(1981一),男,山西人,博士研究生,讲师,主研方向:SOC设计开发工作。 

收稿日期:2012—10—25 

3期 刘洲洲:Smartphone类手机数据库设计 ・67- 

规则对记录进行排序。记录主要由一个类别加上一 

Flag=0xC表示该Bank在使用中,其中的记录 

个目录信息再加上记录数据构成。目录是一种特别 

有效。 

的记录,它的类别表明它是一个目录,它的数据是一 

Flag=0x8表示该Bank为脏块,需要擦除。 

个字符串表示目录名。索引表以一个记录的形式保 

Flag=其他无效标志,该Bank需要擦除。 

存到数据库里,并用记录类别加以区分。数据库基 

在系统启动,数据库设备初始化时,扫描这32 

于数据库设备,与文件系统以及注册表无关,这可能 

个块ID号,并在内存中动态生成一个映射表,因为 

会对数据库初始化及打开数据库带来不便,但是这 

有一个保留的交换块,所以可以填写的只有31个节 

种独立性有两个好处,一是便于移植,二是其他模块 

点,定义最后一个节点记录保留块的地址信息,其余 

的BUG甚至崩溃都不会直接影响数据库系统。 

各个节点内容除了包含该节点的物理地址信息,还 

2.1数据库设备 

应该包含该Bank的使用情况信息(如:剩余,脏多 

文中采取的方案为数据库设备向下直接面向 

少),这些信息在数据库设备的其他功能中会用到。 

Flash驱动,向上向数据库系统提供线性的寻址空 

数据库设备向数据库系统提供动态分配记录空 

间,它用一个地址映射表来实现将Flash的一个个 

间的功能。为了回收脏块的方便,数据库记录必需 

擦除块映射成为一个连续的可逆逻辑地址空间。逻 

存放在同一个擦除块,不能跨Bank存放。分配的依 

辑地址从0开始编址,如果设备大小是2M,那么逻 

据是地址映射表中的Free字段,为了减少碎片以及 

辑地址就是Ox00000000到Ox00200000。数据库设 均匀使用各个物理块,分配原则是优先分配那些 

备是和数据库相关的,表现在几个方面。第一,虽然 

Free较小的Bank。同时删除、修改记录会产生脏 

逻辑地址是连续的,但是数据库要求每个记录不能 

块,这些脏块需要回收才能再次被利用。回收的触 

跨Bank(注:文中提到的Bank就是一个擦除块,大 发发生在写记录时,当设备空间分配引擎报告没有 

小为64K),也就是说记录必需写在同一个擦除块 剩余空间时,触发脏块回收功能。脏块回收需要先 

中,以便整理脏块;这要求数据库设备要提供动态分 

选中一个回收的目标块,根据地址映射表中的Dirty 

配记录空间的能力。第二,整理脏块时,数据库设备 

字段,原则是Diny越大越优先。选定一个目标块 

不能独立完成,必须依赖于记录索引表,因为已经删 后,需要将该块中的有效记录全部搬至其他Bank, 

除的记录在索引表中有删除标记。第三,为了完成 

这一步可以理解为一个修改记录的过程,修改记录 

动态分配记录空间的功能,数据库设备必需记录每 

可以将记录转存到其他Bank,然后再删除原来的记 

个查处块的使用情况,包括已经用掉多少、剩余多 

录。当该Bank的所有记录转移后,调用Flash驱动 

少、脏块多少等等,这些数据的来源都是数据库操 的块擦除函数,擦除完成后再写入ID号,同时修改 

作。第四,有关掉电保护,块擦除时掉电保护由设备 

地址映射表,Dirty和Free字段清零。 

层独立完成,但是记录在增、删、改等操作时的掉电 

2.2数据块初始化和架构 

保护要靠数据库系统的操作次序保障。 数据库系统初始化分两步,首先是数据库设备 

为了便于描述,假定数据库设备大小为2M,每 初始化,其次才是数据库自身初始化。设备初始化 

个擦除块大小为64K,这样一共有32个擦除块,其 

类似于FMM初始化,它的主要工作是扫描整个设 

中有一个块作为Bank0的交换块,可用的只有31个 备,获得地址映射表的各项数据。首先要扫描各个 

块。为了实现地址映射,给这31个擦除块每个块的 Bank ID,填写Addr字段。然后扫描各个Bank记 

前四个字节写入块ID号,ID号由28位Bank号加 

录,获取该Bank已经用掉的空间和删除的记录空 

上4位Flag构成,数据结构如下: 

间,计算出剩余空间(Free)和脏块大小(Dirty)。 

0—27Bits,Bank号 

整个数据库系统由一个记录索引表和数据记录 

28—31Bits.Flag 

区构成,索引表占用一个Bank,并且定义固定在逻 

其中,Bank号是地址映射表的下标序号,取值 辑Bank0(下面提到的都是逻辑Bank号)。交换块 

范围0—30。Flag是掉电保护标志,具体含义如下: 不占地址空间,只是临时存放在所引表的最后一个 

Flag=0xF表示该Bank空闲(Free)。 节点上。记录区占用其余的所有Bank(1~30)。索 

Flag=0xE表示正在整理过程中,该Bank是交 

引表记录每条数据库记录的地址、记录ID、类别、大 

换块,而且数据转存完成,系统正在擦除原来的脏 小、所属目录等信息,每个表项占12字节。每个记 

块。 

录有一个唯一的ID,整个数据库系统的所有数据库 

68・ 微处理机 2013定 

的所有记录,ID号不能冲突,而且ID号可以区分是 

那个数据库以及记录类别。为了便于管理,数据库 

系统有一个自己内定的管理数据库(sysdb),它的每 

这就要求在写操作时,按照一定的步骤,还要依赖于 

相应的标志位。掉点保护有两个必要条件,一是系 

统启动后在初始化时,有能力知道上次关机是正常 

关机还是异常掉电关机。二是系统在任何时候突然 

条记录标识着一个用户建立的数据库,内容包含 

数据库名,索引表的个数、比较函数等信息,数据库 

名不能煎复,大小写不敏感。用户创建、打开数据库 

时就要访问到sysdb。数据库系统有一个自己内定 

的管理数据库sysdb,数据库系统初始化时打开这个 

数据库。 ̄,ysdb没有索引记录,它的记录类别只有一 

掉电,有能力追溯到掉电前的资料信息。 

数据库系统用于掉电保护的信息有两个,分别 

是每个Bank的ID号和Bank0索引表中的每个节点 

的addr。这两个4字节数据的最后4bit是掉电保护 

Flag,其含义基本相同,下面详细介绍。 

种,而且每条记录注册着一个用户创建的数据库。 

索引表在Bank0,由32字节的HEAD和一个索 

引表构成,索引表的每项占l2字节,共有5458项, 

最后剩余4个字节保留。 

数据记录区里面是用户加人数据库的数据信 

息,系统对这样的信息不做任何解析,只是把它当作 

个二进制的数据包,用户必需指明该数据记录所 

在的目录,目录实际上是一种分类信息,目录信息将 

加入到Bank0中记录所引表的目录号字段中。数据 

记录的大小是用户数据包加上时间戳的大小,也就 

是说系统打包后的实际大小,数据库设备在存储时, 

会自动向4字节对齐。数据记录的格式如下: 

4byte时间戳 N byte用户数据 

时间戳用一个DWORD记录,高字表示Date,低 

字表示Time,Size=N+4;并赋值给记录所引表的 

size字段。每个数据库记录有一个目录属性,表明 

该记录属于哪个目录,目录实际上是记录的归类信 

息。目录本身也当作记录存储在数据库中,目录作 

为记录也有一个所属目录的属性,表明自己的父目 

录,由此可见整个是一个树状结构,数据记录是叶子 

节点,树根是sysdb。一个数据库的根目录没有记录 

和它对应,定义根目录的记录ID等于0。 

目录作为记录,它的格式和数据记录的格式是 

~一

样的,也是有一个时间戳加上数据构成。它的数 

据是目录名,是一个null结束的字符串,计算记录大 

小时结束符null也算一个字节。和文件系统一样, 

同一个目录下的子目录名不能有重复。本数据库系 

统对目录的级数以及子目录的个数不做限制,但是 

受到数据结构的限制,目录的最大个数等于记录的 

最大个数5458,实际可用5400。 

3关于掉电保护 

掉电保护是数据库设备层的基本功能之一,要 

做到在突然掉电的情况下,资料的完整性不受破坏, 

数据库的完整性包括三个方面:①各个擦除块 

的完整,也就是逻辑地址空间完整、连续、有效;②记 

录索引表的完整;③记录的完整。只有在写操作过 

程中突然掉电,才可能对数据库的完整性造成破坏, 

这些写操作包括记录脏块的整理、Bank0的整理、增 

加删除修改记录等。 

另外,除了数据库设备层的掉电保护,数据库系 

统还要做好数据库本身的数据相关性保护,保证数 

据的完整。这些相关性包括目录名不得冲突、排序 

方法不能相同、排序表必需和排序方法一一对应,排 

序记录要完整有效等,当然这些都与掉电保护没有 

关系,它依赖于数据库本身的鲁棒性。 

4测试环境 

通过在SC6600(ARM9)+nucleus+QCP1880 

的平台上进行测试,比原来的方案存取速度提高10 

倍以上,而且占用内存也大大减少,仅需要几十个字 

节。本软件模组在PC机上开发,经过编译工具em— 

bedded Visual C++编译后,可在CPU为ARM920T 

的硬件平台下运行 J。 

编程语言:c语言 

操作系统:Nucleus 

Nucleus内核版本:2.4.20 

交叉编译工具:VC++&ADS 

编译环境:Visual C++ 

硬件平台:SC6600或ARM920T 

参考文献: 

[1]龚星宇,许佳,龚尚福.嵌入式数据库的研究[J].现代 

电子技术,2007(9):46—49. 

[2] 张永.嵌人式数据库系统的设计与实现[D].北京:清 

华大学,2004. 

[3] 

吴飞,王昕.嵌入式移动数据库SQL Server for Windows 

CE的应用研究[J].微计算机信息,2006(17): 

56—59. 

发布评论

评论列表 (0)

  1. 暂无评论