软件工程毕业论文17415474.doc
《软件工程毕业论文17415474.doc》由会员分享,可在线阅读,更多相关《软件工程毕业论文17415474.doc(45页珍藏版)》请在三一办公上搜索。
1、本科毕业论文(设计)题目: 基于内存数据库SQLite3的MSSQL中间件设计与实现姓 名: 黄* 学号: 2008100* 院(系): 信息工程学院 专业: 软件工程 指导教师: * 职称: 讲师 评 阅 人: 职称: 2012 年 6 月学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日 学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管
2、理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1 保密 ,在_年解密后适用本授权书。2 不保密 。(请在以上相应方框内打“”)作者签名: 年 月 日 导师签名: 年 月 日 摘 要随着嵌入式技的不断发展,嵌入式数据采集系统被广泛应用在电信、工业控制、航空航天、电网监测、电子商务等领域。这些应用领域的共同点是数据具有很强的实时性,要求底层的数据库具有快速可靠的数据处理能力,而传统的磁盘数据库因为磁盘I/O速度的瓶颈造成了整个系
3、统处理能力的下降,对于实时系统来说,这不仅会导致一些事务不能及时完成,甚至还会影响整个系统的稳定和安全。内存数据库(MMDB)解决了磁盘数据库的I/O瓶颈问题,将其应用到上述领域将有效提高系统的处理能力和稳定性。本系统在现有的DBMS上,嵌入高效的SQLite3内存数据库,大幅提高系统的性能。项目针对基于SQL Server的中小型数据库应用系统,在服务器端进行开发。在内存数据库中进行查询,可以极大地减少系统的响应时间,尤其是在系统繁忙时,性能可提升几个数量级。本项目是在目前广泛使用的.NET平台上,通过实现ADO.NET的一个Data Provider for OLE DB,使开发者可以通过
4、统一的ADO.NET接口和类方便的使用高效内存数据库SQLite3。并将为更高层用户提供一个便捷的安装程序,使用户在已搭建好的原始系统上插入本系统成为可能。通过与SQLite的比较分析,可以看到内存数据库较传统磁盘数据库的存取速度有所提高,这样的设计可以更好地解决并发控制的问题。关键词:SQLite3 内存数据库 MS-SQLAbstractWith the continuous development of embedded technology,embedded data acquisition system has been widely used in telecommunicatio
5、ns,industrial control,aerospace,power system monitoring,e-commerce and other fieldsData in these applications are in common real-time data,and these applications requested the database at the bottom layer to have fast and reliable dataprocessing capacity,whereas the traditional disk resident databas
6、e which has the disk I/O speed bottleneck causes the decline in data processing capacity of the entire system,it will not only lead to the result that a number of transactions Can not be completed intime,and even the entire system will also be affected on stability and securityMainmemory database(MM
7、DB)resolves the disk I/O bottleneck problems and if it is deployed to the above-mentioned areas,it will effectively improve the handling capacity and stability in these systemsThis project embeds SQLite3, a memory database which can efficiently and significantly improving system performance, into th
8、e existing database systems. Project is for Small and Medium for SQL Server database based applications, server side development. Querying the database in memory, you can greatly reduce system response time, especially when the system is busy. The performance can be improved by several orders of mag
9、nitude.This project bases on the widely used .NET platform, implements an ADO.NET Data Provider for OLE DB. So that developers can access efficient memory database SQLite3 conveniently by unified ADO.NET interfaces and class. The system will also provide users an installation, which make it possible
10、 to insert the new system into the existing original system.Through a comparative analysis with SQLite,we can see that the MMDB accesses a lot faster compared with the traditional database,so the design could solved the problem of concurrency control betterKeyword: SQLite3 memory database MS-SQL缩略词和
11、术语DRDB Disk Resident Database 磁盘数据库MMDB Main-Memory Database 内存数据库OS Operating System 操作系统SQLite 是没有独立运行的进程,与服务器的应用程序在应用程序进程空间内共生共存,遵循ACID的关联式、嵌入式数据库。MidUnit 是本课题研究实现的中间件系统目录摘 要3Abstract4缩略词和术语1目录2第一章 绪论11.1 系统开发背景11.1.1课题来源11.1.2实时数据库特点11.2 国内外研究现状21.3 研究目的、内容及意义31.3.1研究目的41.3.2研究内容41.3.3研究意义41.4 本
12、文结构4第二章 内存数据库相关基础62.1内存数据库的特点62.1.1内存数据库数据存储的组织和管理62.1.2事务处理62.1.3系统恢复72.2内存数据库与磁盘数据库的差异72.3内存数据库的关键技术92.4 本章小结10第三章 开源数据库SQLite分析113.1 SQLite的特点113.2 SQLite的不足123.3 SQLite的体系结构123.4 SQLite的常见API143.4.1打开数据库143.4.2执行SQL语句143.4.3保存查询结果143.4.4释放空间153.4.5显示错误信息153.4.6关闭数据库153.5 SQLite的使用153.6 本章小结16第四章
13、 系统概要设计174.1系统体系结构174.2中间件174.3 主要功能模块184.4 本章小结19第五章 系统分析及系统实现205.1 基本功能205.2 扩展功能205.3 开发环境205.4 C#下SQLite3的配置及使用205.5 SqlConverter285.5.1 SqlConverter类列表及类视图295.5.2 SqlConverter界面设计315.6 系统现状335.7 本章小结33第六章 总结与展望34致 谢35参考文献36第一章 绪论1.1 系统开发背景1.1.1课题来源数据库理论与技术的发展极其迅速,其应用日益广泛,几乎无处不在。近些年来,基于磁盘的数据库技术获
14、得了空前的发展,并在传统的应用领域获得了极大成功,然而它们在现代的工程和时间关健型应用面前却显得软弱无力,面临新的严峻挑战。随着嵌入式软件技术的发展和内存容量的大幅度提高,嵌入式内存数据库应用而生。众所周知,计算机对内存的读写时间,远远小于对磁盘的读写时间。内存数据库系统,是将数据保存在内存中,在内存中对数据进行管理的数据库系统。使用内存数据库进行查询等常用操作,将使系统性能得到明显提升。做为实时数据解决方案嵌入到传统数据库系统中,可以极大地减少系统的响应时间,使性能提升几个数量级。目前,国内外有大量基于磁盘数据库的信息管理系统,例如学校的选课系统、考试查询系统等。这些系统大都使用传统的磁盘数
15、据库管理系统对数据进行管理,如SQL Server,Oracle等。这些数据库管理系统都比较成熟稳定,但执行效率较低,特别是网络访问人数激增时,系统响应时间更是常让用户无法忍受。大量的数据库应用研究,特别是在电信领域和金融领域,试试内容交付对数据的并发访问有很高要求。这些应用要求在很高的传输率,加上低的传输延迟,它们要求严格的持久性和高的可靠性。如果对事务处理不够迅速,并发操作的互相等待时间过长,都会极大的影响实际的应用,有时会造成巨大的损失,而这些都是人为干预无法解决的问题。 嵌入式内存数据库的特点决定了它有能力处理实时事务。但是它已不是传统的磁盘数据库,因此,传统数据库适用的数据结构、事务
16、处理算法与优化、并发控制及恢复等技术对内存数据库不一定合适。所以,实时内存数据库系统应该打破传统磁盘数据库的设计观念,考虑内存快速读取的特点,以CPU和内存空间的高效利用为目标,来重新设计开发各种策略与算法、技术、方法及机制。1.1.2实时数据库特点实时数据库主要为短暂、易变的数据的维护而设计,强调处理的实时性和正确性。实时数据库的研究方面包括:数据和数据库的组织结构、事务的优先级分派、事务的并发和调度控制、数据库恢复、实时数据查询和优化、数据和事务特性的语义研究等等。实时数据库主要具有以下特征1:(1)及时处理包含时态数据的操作或事务具备时间约束和次序依赖关系。时态数据指有效性随时间而变化的
17、数据,在时态数据上的操作必须在失效前处理完毕。处理时态数据的事务问也隐含了时间依赖关系,包含开始依赖、提交依赖、夭折依赖等。(2)区分硬实时、固实时、软实时和非实时事务的并发控制和调度策略。硬实时事务是指超过截止期会给系统带来灾难的数据库事务;固实时事务是指超过截止期价值立即变为0,不再产生负面影响的数据库事务;软实时事务是指超过截止期价值逐渐下降为O的数据库事务;非实时事务是指无截止期要求的数据库事务。硬实时、固实时、软实时和非实时事务呈现出优先级逐渐下降的层次关系,传统数据库的事务没有明显的层次关系。(3)必需保证事务的ACID性质。与传统数据库一样,事务由有限的操作序列组成,必须具备AC
18、ID准则。如果事务的执行原子性、功能一致性、彼此隔离性和作用持久性不能保证,数据的有效性和操作的可管理性也不能实现。(4)在处理结果地大逻辑精确性和时间正确性上更偏向于时间正确性很多实时场合,如果实时系统不能在截止期内给出逻辑精确的结果但可在截止期内给出相对正确的结果,则应用更倾向与接受后者。过期的处理结果对系统作用不大,在实时场合甚至出现负面影响。实时系统对结果时间正确性的偏向在实时数据库里也一样存在。(5)具备高可靠性和健壮性。实时数据库作为数据管理平台很多情况下处于无人操作的环境中,要求能在时间运行状态中始终正常运转,对可能的异常情况能够采取相应的解决措施。(6)有完善的备份和恢复机制。
19、传统数据库中的备份和恢复机制对实时数据库系统也必不可少。虽然自身具备一定的可靠性和健壮性,但不能保证所有外部环境的正常。在运行过程中必须对历史数据进行备份,以便在灾难发生后能够减少损失,从历史数据上尽快恢复。1.2 国内外研究现状内存数据库的研究始于20世纪80年代中期,两大因素推动了它的研究和发展2,一是一些现代应用对数据库的需求,需要数据库具有实时处理数据的能力,以满足时间限制,如雷达跟踪、证券交易等:工程应用领域如过程控制、CADCAM、CIMS、网络(如电信、电力、数据网等)2;人工智能领域如自然语言处理、专家系统、知识处理、演绎推理或规则系统、机器人与机器人视觉、数据挖掘等等。另一个
20、是容量大、价格低廉的内存。目前以G为量级的内存已经出现,“在十年之内,数据库将使用T为量级的内存缓冲区,几乎最大的数据库都可以驻留内存”。在DRDBS中,磁盘IO是系统的“瓶颈”,系统的算法设计目标是最少的IO和最大的磁盘空问利用率,即访问磁盘的次数最小,磁盘空间的有效使用率最大;而在MMDBS中,外存的IO已不再是“瓶颈”,系统的算法设计目标是CPU和内存空间的高效使用。由于上述因素的作用,数据库研究者考虑将数据库全部或部分驻留内存以获得高性能数据访问。通过将数据库的“工作版本驻留内存可以极大地提高数据库的性能,如减少了磁盘IO、提高事务的执行速度、减少CPU缓存替换次数、提高系统的吞吐率等
21、。内存数据库自出现以来就得到数据库研究者的广泛关注,现在人们对它的体系结构、数据存储方式、存取方法、查询优化、事务处理、并发控制、数据恢复等技术取得了丰富的成果2。在体系结构方面,为了支持内存数据库的数据恢复,从软硬件出发,开发了多种结构形式,如多处理机结构、专用非易失内存存储活动日志等3;在数据组织方面,提出了基于关系模型的区一段式结构、影子内存等6;在存取方法上,研究多种适合内存数据库的索引及存取策略,如多种形式的Hash,T树索引等7;在事务和查询处理上,主要在事务提交和与之关联日志记录、查询优化,尤其是连接(join)优化,进行了多方面的研究,开发了“提前提交”策略6;在并发控制方面,
22、提出了二层封锁方案、乐观并发控制等方法。由于内存速度较快,锁的粒度较大,这样可以减少死锁检测开销,提高吞吐率,降低系统的响应时间;内存数据库安全性更为脆弱,恢复技术显得尤为重要。这方面的研究集中在检验点操作、日志记录、数据库装入和重装技术6,如Fuzzy检验点策略、BlackWhite策略、Copy on Update策略等;有序装入、带优先级的装入、按存取频率的装入、以及优先级和频率组合等装入策略。现阶段国内外有各种各样内存数据库产品,其中Oracle TimesTen, Altibase, eXtremeDB都是十分优秀的内存数据库产品,但其价格也常常让人望而却步。因此便产生了许多开源产品
23、,而SQLite3便是一个高效的开源内存数据库系统,具备实时能力及便利的C+接口。SQLite3通过位图实现对内存进行分配,最小单位块是分配量子(16字节)。如此大大提高了数据引用的局部性(对象数据尽可能分配在连续的内存区域),最小化修改页的数目和减少了事务提交时间。1.3 研究目的、内容及意义1.3.1研究目的本系统主要是利用ADO.NET实现一个Data Provider for SQLite3,从而向程序员提供一个基于ADO.NET的统一接口。向MS SQL Server用户提供一个基于SQLite3的中间件,实现SQL Server中的数据向SQLite3的转移,并利用SQLite3使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 毕业论文 17415474
链接地址:https://www.31ppt.com/p-4069134.html