版权归原作者所有,如有侵权,请联系我们

[科普中国]-小型数据库

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

随着移动计算时代的到来,嵌入式操作系统对微小型数据库管理系统的需求为数据库技术开辟了新的发展空间。传统的数据库系统其结构和算法都是基于磁盘的,它需要大量的RAM和磁盘存储空间,并且使用了缓冲及异步I/O技术来减少磁盘存取的开销。然而,移动设备大多只有很小的存储空间、较低的处理速度以及很低的网络带宽,因此需要对传统数据库进行裁减以适应移动设备的需求。微小型数据库管理系统是一个只需很小的内存来支持的数据库管理系统内核。针对便携式设备,微小型数据库管理系统占用的内存空间大约为2MB,而对于掌上设备和其他手持设备,它占用的内存空间只有50KB左右。2

移动设备的计算能力小、存储资源不多、带宽有限以及Flash存储上写操作速度慢等特性,影响了微小型数据库系统的设计。在设计微小型数据库系统时,应该考虑如下设计原则:

压缩性原则。数据结构和代码都要精简。

RAM原则。最小化RAM的使用。

写原则。最小化写操作以减少写代价。

读原则。充分利用快速读操作。

存取原则。利用低粒度和稳定内存的直接访问能力进行读和写。

安全原则。保护数据不受意外和恶意破坏,最小化算法的复杂性以避免安全漏洞。

背景与意义数据库系统自从20世纪60年代末产生以来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。本文参照数据库实现原理,构造一具有数据库某些子功能的系统,称之为小型数据库系统,对其实现进行分析设计,进而应用到实际软件开发中去,并以此为例让学生做一次综合课程实践。

软件开发需要创新思维实际开发中经常面对数据文件处理问题,一般我们采用数据库系统进行开发应用系统.但一般数据库系统开发出的软件,不是真正编译生成的真正机器代码,生成的程序比较庞大效率也较低,系统中数据安全保密问题不容易解决.还有一些繁琐的问题需要解决,如生成exe文件的发布、安装比较困难,且没有独立的版权.面向对象的高级语言Delphi以及Visual系列通过ODBC提供数据库接口,使用起来也比较复杂。软件开发是创造性工作,我们不应因循守旧,而应创新思维,另辟蹊径。我们利用Pascal的记录类型可做出实用的小软件。

软件开发讲模块化思想方法,初学者不可能从大的系统开始,应从基础做起,从小处着眼,逐步提高,也有利于培养学生的兴趣,提高自信心.

在实践中创新、提高现行大多数软件专业的教学计划中,程序设计与软件工程分属不同的教材,之间缺少关联,学生缺乏软件开发的实践.只有通过实践才能证明理论.因此在保障基本教学计划的情况下,压缩程序设计课程授课时间,把主要知识讲授完毕,指导学生接触实际问题,提高学生的动手能力,是理论与实践相结合的重要形式,也是对软件开发过程有初步了解的最好途径.这也是对传统教学模式的改革尝试,对教材体系不足的补充。

小型数据库设计分析开发的小型系统应具有交互能力和易用的程序接口。做成单元形式使之用于程序接口.系统应该是一个由多个小模块构成的函数、过程体的集合。

目标与总体思想基本目标:具有能生成数据库文件结构、定义记录、打开文件、追加记录、显示记录、修改记录、查找、排序等基本功能.

较高目标:具有支持丰富数据类型、提供数据运算的功能,能进行交互式应用,给用户提供良好易用的界面.

总体思想:建立通用的文件结构,建立用户的表结构信息,采用随机存取机制,用记录数组做文件的缓冲,对文件的操作转到对记录数组的操作;把各种数据类型的输入、存储都借用Turbo中的串类型,对于数据处理,提供处理用接口函数;对文件大小加以限制,由于不用指针,只能用静态数据结构,文件行数、字段数限制数目.对于基本功能都可以进行扩展,如要处理大的文件可借助于文件的调入调出的算法对文件的打开及回写功能进行扩展.

系统应提供的基本功能函数或过程

文件存在判断函数.

根据用户给定文件名及字段列表信息串生成库结构.

显示文件结构信息.

打开文件到缓冲区,设置记录数、当前记录数.

修改库结构.

追加记录.

显示文件结构.

保存文件到磁盘.

返回给定字段序号.

修改指定记录的字段为新值.

系统提供较强的常用的功能函数

分析条件表达式,定位给定条件的记录.

修改符合条件的记录集合.

排序与索引功能.

数据处理函数.

安全加密问题.

详细设计本系统应采用层次模型,把与文件底层访问相关的基础子功能做为最底层模块.自底向上设计其它模块,各模块之间分层调用,只允许上层调用下层,这样有利于以后的对子功能的修改和扩充.

粗略分析系统底层模块

把与文件操作相关的需直接与操作系统打交道的功能模块做为最底层,分析底层模块的基本数据类型,底层的数据结构.给出如下形式的子功能清单:模块功能详细说明,入口参数,返回值,局部数据结构.

分层设计高层模块

基于底层及下层模块,设计高层模块及相应的数据结构.给出如下形式的子功能清单:模块功能详细说明,入口参数,返回值,局部数据结构,调用模块.在此基础上分析设计全局的基础数据结构,画出模块层次调用关系图.

详细设计算法

实现及提高根据详细算法就可进行编码,分别写出以上基本过程,通过组装进行单元测试和集成测试,来验证各算法的正确性.在此基础上,利用面向对象的方法,可以构造成一个类,来供其它应用来复用.为了进一步提高本系统功能,可用动态数据结构,增强系统处理能力.开发高层应用函数,提高运算功能.

小型数据库技术随着科学技术的不断进步,在微小型数据库系统需求方面,嵌入式操作系统为数据库技术开辟了新的空间。目前,微小型数据库技术逐渐从研究领域延伸到应用领域。对于微小型数据库系统来说,通常情况下,可以将其定义为:数据库系统的内核仅需一个很小的内存就可以支持。在微小型数据库系统中,对于便携式设备来说,其内存空间一般只有2MB,对于掌上设备或者其他手持设备来说,其内存空间通常只有50KB。内存空间的大小在一定程度上影响和制约着微小型数据库系统的运行速度。根据占用内存的大小,可以将微小型数据库系统分为:超微DBM SCpico-DBMS)、微小DBMS(micro一DBMS)和嵌入式DBMS。

在各种智能型嵌入设备或移动设备上,通过将微小型数据库系统与操作系统进行集成,进而确保设备的征程运行。目前,微小型数据库技术逐渐从研究领域延伸到应用领域,同时涌现出各种微小型数据库产品。在各种智能设备中,随着移动数据处理和管理需求的不断提高,在学术界、工业界、军事领域和民用部门等给予了嵌入式移动数据库技术高度重视,并且不断实用化。

常见数据库管理系统AccessAccess是Office办公套件中一个极为重要的组成部分。3刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在Office中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到Office 97中,成为Office套件中的一个重要成员。现在它已经成为Office办公套件中不可缺少的部件了。自从1992年开始销售以来,Access已经卖出了超过6 000万份,现在它已经成为世界上最流行的桌面数据库管理系统。后来微软公司通过大量地改进,将Access的新版本功能变得更加强大。不管是处理公司的客户订单数据、管理自己的个人通讯录,还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。

随着版本的升级,Access的使用也变得越来越容易。过去很繁琐的工作现在只需几个很简单的步骤就可以高质量地完成了。

Xbase系列及FoxPro数据库理论的研究在20世纪70年代后期进入较为成熟的阶段,随着20世纪80年代初IBM/PC及其兼容机的广泛使用,数据库产品的代表作之一Ashton.Tate公司开发的dBASE很快进入微机世界,成为一个相当普遍而且受欢迎的数据库管理系统。用户只需键入简单的命令,即可轻易完成数据库的建立、增添、修改、查询、索引以及产生报表或标签,或者利用其程序语言开发应用系统程序。由于它易于使用,功能较强,很快成为20世纪80年代中期的主导数据库系统。继dBASE II之后,dBASE III、dBASE III Plus以及dBASE IV相继诞生,其功能逐渐增强。

但是,dBASE存在的一些缺陷使其应用受到越来越大的限制。首先,它运行速度慢,这在建立大型数据库时显得尤为突出。其次,早期的dBASE不带编译器,仅是解释执行,后来虽然增加了编译器,但编译与解释执行时存在许多差异。再就是它的设计标准,随着dBASE增强版本的出现,由于各版本之间不相兼容,其标准变得越来越模糊,Ashton.Tate公司不再定义dBASE标准,就连dBASE IV本身也未按标准设计。后来,人们常用Xbase来表示各种数据库管理系统的程序设计语言。

致力于改进dBASE语言,软件公司的着眼点则放在兼顾挂靠速度与友好性。其做法是:继续保有如dBASE般以交互式与用户双向通信的用户界面,以维持其友好性;对于程序,将其转成非常接近机器码的中间码,以节省汇编时间增快其执行速度。

从事该项工作之一的Fox Software正是看到了dBASE在性能与速度上存在的问题,也预见到了PC平台上DBMS的巨大潜力,在成立后的第2年(1984年)便推出了与dBASE全兼容的FoxBASE,其速度大大快于dBASE,并且在FoxBASE中第一次引入了编译器。

1986年,与dBASE III Hus兼容的FoxBASE+推出后不久,FoxPro/LAN也投入市场,一时间引起轰动。

1987年之后相继推出了FoxBASE+2.0和2.10,这两个产品不仅在处理速度上超越其前期产品,而且还扩充了对开发者极其有用的语言,并提供了良好的界面和较为丰富的工具。

人们预测,随着软件技术的快速发展,PCDBMS(数据库管理系统)必将发生巨大的变化。它将越来越易于使用,为各个层次的用户完成底层复杂的工作;它将提供更完整、更标准的Xbase语言和丰富的工具,并且具有面向对象的特点;多媒体技术将引入,人们可以建立其上的分布式数据库来存取各种数据而无需考虑这些数据的物理位置。为了顺应这一发展趋势,FoxPro诞生了,它旨在创建Xbase语言的标准,它的每一个版本都向这一方向努力,其功能越来越完善和丰富。

1989年下半年,FoxPro 1.O正式推出,它首次引入了基于DOS环境的窗口技术COM(面向字符的窗口),用户使用的界面再也不是圆点,而是能产生圆点提示下等效命令的菜单系统。它支持鼠标,操作方便,是一个与dBASE,FoxBASE全兼容的编译型集成环境式的数据库系统。

1991年,FoxPro 2.0推出。由于使用了Rushmore查询优化技术、先进的关系查询与报表技术以及整套第四代语言工具,FoxPro 2.0在性能上大幅度地提高了。它面向对象与事件,其扩展版本充分使用全部现存的扩展内存,是一个真正的32位产品。它除了支持FoxPro先前版本的全部功能外,还增加了100多条全新的命令与函数,从而使得FoxPro的程序设计语言逐步成为Xbase语言的标准。

1992年微软收购了Fox公司,把FoxPro纳入自己的产品中。它利用自身的技术优势和巨大的资源,在不长的时间里开发出FoxPro 2.5,FoxPro 2.6等大约20个软件产品及其相关产品,包括DOS,Windows,Mac和UNIX 4个平台的软件产品。1995年6月,微软推出了Visu.al FoxPro 3.0版。接着又很快推出Visual FoxPro 5.0及其中文版。1998年发布了可视化编程语言集成包Visual Stadio 6.0,它是可运行于Windows 95/98/NT平台的32位数据库开发系统。它是能充分发挥32位微处理器的强大功能、直观易用的编程工具。

小型数据库的发展随着科技的发展,对数据管理提出新的要求和挑战,研究和开发工作出现一片繁忙的景象。研究的重点依然是更高的性能,以及更为复杂、多样的数据。

面向云平台的数据管理技术通过对计算、存储、网络等硬件资源进行整合,云平台为用户提供了虚拟化技术,进而在一定程度上为用户使用这些资源提供了便利性,同时确保了经济性。对于云计算来说,虚拟化和动态伸缩性是其主要的特点。在管理面向操作型应用数据、分析型应用数据的过程中,采用云平台还需面对许多的挑战,例如,在具有动态伸缩性的云平台上,如何支持事务处理,如何在云平台上部署新的存储模型,如何放置数据,如何对数据进行容错,以及如何将新的索引结构部署到云平台上等,以及如何在云平台上将数据库当作一个服务进行部署,随着时代的不断发展,上述问题需要继续进行深入研究分析。节能、隐私保护和安全等关键问题还需要面向云平台的数据管理进行解决和处理,进而赢得用户的信任,进一步实现产业化。

大数据统一处理平台通过对上文进行分析,围绕RDBMS和Hadoop技术分别产生了一个分析生态系统,以及正在产生一个分析生态系统。在某些方面这两个系统是重叠的,在这种情况下,能否采取相应的措施,将两项技术和生态系统融合到一起。在理论界、工业界的共同努力下,一定会形成一个统一的大数据处理框架以及生态系统。但是需要深入的研究某些问题,例如,如何在一个存储层上数据组织方式)上整合多类型的数据;如何采取措施建立智能的存储层;如何改进和优化查询的调度算法,以及执行算法等,进而在一定程度上与多核、GPU、异构环境等相应的硬件环境相互适应,并且在云平台上能够正常运行;如何确保服务和功能超越SQL,对编程和应用接口进行扩展,针对普通用户、高级用户、统计学家,以及数学家等不同类型的用户,进而提供个性化的数据分析环境和分析工具;如何对大数据的处理结果进行可视化。