基于C++的小型关系型数据库计算机毕业设计论文.docx
- 文档编号:23380488
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:77
- 大小:1.13MB
基于C++的小型关系型数据库计算机毕业设计论文.docx
《基于C++的小型关系型数据库计算机毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于C++的小型关系型数据库计算机毕业设计论文.docx(77页珍藏版)》请在冰豆网上搜索。
基于C++的小型关系型数据库计算机毕业设计论文
基于C++的小型关系型数据库的设计与实现
摘要
数据库是按一定结构组织的,各种应用相关的所有数据的集合。
它包含了数据库管理系统处理的全部数据。
其内容主要分为两个部分:
一是物理数据库,记载了所有数据;二是数据字典,描述了不同数据之间的关系和数据组织的结构。
数据库技术自产生以来,发展到今日已形成了坚实的理论基础和独特的数据处理技术,并获得了广泛的应用。
数据库技术是信息社会的重要基础之一,是计算机科学领域中发展最为迅速的分支。
关系型数据库是目前最流行的数据库系统。
数据库管理系统已经成为软件产业的重要组成部分,是信息化过程中最重要的技术基础之一。
我国要振兴软件产业,就必须发展自己的数据库软件产业。
本系统运用计算机程序来实现关系型数据库的数据管理,建立一个模拟的关系型数据库,并能够解析SQL语句,并执行相应的数据操作。
关键词:
关系型数据库;数据库技术;系统设计
BasedontheC++ASmallRelationalDatabaseDesignandImplementation
Abstract
Databaseisorganizedaccordingtocertainstructure,acollectionofalldatarelatedtoallkindsofapplication.Itcontainsadatabasemanagementsystemtodealwithallthedata.Themaincontentisdividedintotwoparts:
oneisthephysicaldatabase,alldatarecorded;Second,datadictionary,describestherelationshipbetweenthedifferentdataanddatastructureoftheorganization.Databasetechnologysincetheproduce,developmenttothisdayithasformedasolidtheoreticalfoundationandtheuniquedataprocessingtechnology,andaccesstoawiderangeofapplications.Databasetechnologyisoneoftheimportantbasisofinformationsociety,isthemostrapiddevelopmentintheareaofcomputerscience.Arelationaldatabaseisbyfarthemostpopulardatabasesystem.Databasemanagementsystemhasbecomeanimportantpartofthesoftwareindustry,isoneofthemostimportanttechnologyintheprocessofinformatization.Totherevitalizationofsoftwareindustryinourcountry,itmustdevelopitsowndatabasesoftwareindustry.Thissystemusecomputerprogramstoimplementtherelationaldatabasedatamanagement,establishingasimulationoftherelationaldatabasesystem,andbeabletoparseSQLstatements,andperformthecorrespondingdataoperation.
Keywords:
arelationaldatabase;Databasetechnology;Systemdesign
1绪论
1.1课题研究背景
数据库(Databases,简称DB)是指长期保存在计算机的存储设备上、并按照某种模型组织起来的、可以被各种用户或者应用共享的数据的集合。
数据库管理系统(DatabaseManagementSystems,简称DBMS)是指提供各种数据管理的服务的计算机软件系统,这种服务包括数据对象定义、数据存储和备份、数据访问和更新、数据统计和分析、数据的安全保护、数据库运行管理及数据库建立与维护等。
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。
这种数据集合具有如下特点:
尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。
从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
数据库是数据管理的最新技术,是计算机科学的重要分支之一。
今天信息资源已经成为各个部门的重要财富,建立一个能够满足各级部门信息处理要求的,行之有效的信息系统已经成为一个企业或组织生存和发展的重要条件。
因此作为信息系统核心和基础的数据库技术也将得到越来越广泛的应用,从小型的单项事务处理系统到大型的信息系统,从联机的事务处理到联机的分析处理,从一般企业管理到计算机的辅助设计与制造,计算机集成制造系统,电子政务,电子商务地理信息系统等,越来越新的应用领域采用数据库技术来存储和处理信息资源。
数据库系统的出现使信息系统从加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
这样既便于数据的集中管理,也有利于应用程序的研制与维护,提高了数据的利用率与相容性,提高了决策的可靠性。
数据库已成为现代信息系统的重要组成部分。
关系型数据库是目前应用最广泛的数据库,它通过提供完善的结构化查询语言(SQL)和功能强大的数据检索功能,被广泛的应用到各个方面的项目开发中。
但因其与系统的关联紧密度很大,所以数据库本身的性能也是被大家所关注的主要问题之一,如何保证项目应用中使用高效的SQL语句,是保障数据库的服务性能的主要手段。
目前关系型数据库是项目中使用的最常见的一种数据库,特别是商业产品中因其业务的实现比较复杂,对关系型数据库的依赖会更加的紧密。
但关系型数据库的一个比较大的缺点就是它的扩展方面比较差,实施扩展的成本也是比较高。
所以为了追求高的性能,就得保证与关系数据库的交互是高效的。
除了对数据库表结构上进行较优的设计外,还需要确保在SQL语句的使用上,避免那些低效的编写方案。
但对于如何保障SQL语句编写是高效的,在实施上就变得非常困难,单纯的通过人为保障的可行性比较低。
所以能很好的使用高效SQL语言进行系统编写实现,可以很大程度上提升系统运行性能,确保商业产品可以更好的为商业用户提供服务。
由于企业信息化的目的是要以现代信息技术为手段,对伴随着企业生产与经营过程而产生的数据进行收集、加工、管理以及利用,以改善企业的生产经营的整体效率,增强企业的竞争力。
所以,作为常用的数据库之一的关系型数据库已经是企业信息化不可缺少的工具,是绝大部分企业信息系统的核心。
纵观整个数据库行业的发展,三大数据库巨头公司纷纷推出自己的最新产品,数据库市场竞争日益加剧。
从最新的IDC报告可以看出,在关系型数据库管理系统(RDBMS)的软件市场上,Oracle继续领先对手IBM与微软,但是微软在2006年取得了更快的销售增长率……
1.2课题研究现状
数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
数据库管理系统历经了30多年的发展演变,已经取得了相对辉煌的成就,发展成了内容丰富的学科之一,形成了总量达到数百亿美元的一个软件产业。
根据GartnerDataquest公司的调查报告显示,2000年的国际数据库市场销售总额达到88亿美元,比1999年增长了10%。
根据CCID的报告显示,2000年的中国数据库管理系统市场销售总额达到24.8亿元,比1999年增长了41.7%,占软件市场总销售额的10.8%。
由此可见,数据库已发展成为一个巨大规模、迅速增长的市场。
目前,软件市场上具有代表性的数据库产品有Oracle公司的Oracle与IBM公司的DB2以及微软的SQLServer等。
在某种意义上,这些产品的特征也反映了当前数据库产业界的最高水平与发展趋势。
目前,关系数据库技术依然是主流的数据库技术。
关系数据库技术出现在20世纪70年代、经过80年代的发展,到了90年代已经相对成熟,在90年代初期曾经一度受到面向对象数据库的严峻挑战,但是软件市场最后还是选择了关系数据库。
不管是Oracle公司的Oracle9i以及IBM公司的DB2、还是微软的SQLServer等都是关系型数据库。
GartnerDataquest的报告显示了关系数据库管理系统(RDBMS)的市场份额已经最大,2000年RDBMS的市场份额占整个数据库市场的80%,这个比例比1999年增长15%。
这组数据充分说明了RDBMS仍然是当今最为流行的数据库软件。
1.3课题研究的意义
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
关系模型是由埃德加·科德于1970年首先提出的,並配合“科德十二定律”。
现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。
标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。
关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
关系型数据库技术出现在20世纪70年代,经过80年代的发展到90年代已经比较成熟,在90年代初期曾一度受到面向对象数据库的巨大挑战,但是市场最后还是选择了关系数据库,而且关系型数据库有一个很好地安全性,一个关系数据库的访问权限,允许数据库的管理员的实施需要为基础的权限来访问数据库表中的数据。
关系型数据库支持的概念,用户和用户权限,从而满足数据库的安全需求。
关系相关的特权,如创建权限,授予特权,选择,插入,删除权限,授权不同的用户对数据库的相应的操作。
关系型数据库的另外一个重要优势,包括其性能,功耗,并支持新的硬件技术的灵活性和能力,以满足所有类型的数据的需求。
由于自身的优势和应用程序的数据存储和检索的操作中,已经彻底改变了关系型数据库的数据库管理系统。
但是,许多商业数据库功能非常强大,相应的占用资源也很大,很多嵌入式设备无法移植,更重要的是嵌入式设备并不需要性能如此强大的数据库,所以设计简单而又高效的小型关系型数据库迫在眉睫,使它在嵌入式等设备上能发挥巨大的优势!
1.4本文主要研究工作和章节安排
根据现有的知识水平只能做一些比较简单的关系型数据库设计与实现,本系统要实现的功能包括实现控制台命令词法分析,语法分析,语义响应;实现通过文件批处理命令。
提高了输入效率;实现对表建立数据字典;为了提高数据字典的读取速度,对数据字典使用索引文件;实现记录的插入,删除,修改;实现数据字典索引文件查看以及数据字典文件查看;实现数据表文件查看。
本文通过第一章绪论对数据库研究的背景和现状以及意义进行了阐述,分析了当今研究关系型数据库的必要性,在第二章介绍了需求分析,主要包括开发内容,基本功能需求,可行性分析与系统用例分析以及开发环境和核心技术以及开发语言的介绍。
在第三章介绍了总体设计,主要包括总体设计原则和总体设计方案。
在第四章介绍了用户前台模块设计,后台数据解析模块设计以及系统实现。
在第五章介绍了系统的调试与测试,组要包括程序调试,测试概要以及系统测试用例。
2需求分析
2.1需求分析的任务
从数据库设计的设计角度来看,需求分析的任务是对现实世界中要处理的对象进行详细的调查,明确用户的各种需要,在此基础上确定系统功能调查分析用户的活动:
调查组织结构情况,调查用户业务活动的情况、收集和分析需求数据。
确定系统边界:
保护用户的信息需求、处理需求、安全性和完整性的需求等。
信息需求:
目标范围内涉及的所有实体、实体的属性以及实体间的联系等数据对象。
处理需求:
用户为了得到需求的信息而对数据进行加工处理的要求。
安全性和完整性需求:
在定义信息需求和处理需求的同时必须给出相应完全性和完整性约束收集各种需求数据后,对前面调查结果进行初步分析,确定哪些功能由计算机完成,哪些由人完成。
由计算机完成的功能即是新系统应该实现的功能。
2.2需求分析的方法
包括自顶向下和自底向上两种方法。
自顶向下的结构和方法是最简单实用的方法,采用逐层分解的方法,用数据流图是数据字典来描述系统。
数据流图表达了数据和处理过程的关系。
数据字典是对系统中数据的详细描述,是各类数据结构和属性的清单。
它与数据流图互为注释。
数据字典的内容:
数据项、数据结构、数据流、数据存储、处理过程
1、数据项:
不可再分的数据单位。
对数据项的描述。
数据项描述={数据项名,含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}。
2、数据结构:
反映了数据之间的组合关系。
一个数据结构可以由若干个数据项组成。
数据结构描述={数据结构名,含义说明,组成}。
3、数据流:
数据结构在系统内传输的路径。
数据流描述={数据流名,说明,来源,去向,组成:
{数据结构},平均流量,高峰期流量}。
4、数据存储:
数据结构停留或保存的地方。
数据存储描述={名字,说明,编号,流入的数据流,流出的数据流,组成:
{数据结构},数据量,存取方式}。
5、处理过程:
处理过程的具体处理逻辑一般用判定表或判定树来描述。
处理过程描述={名字,说明,输入:
{数据刘},输出:
{数据刘},处理:
{简要说明}}。
经过这个过程,需求分析人员应该已经了解了对象的组织结构,对象中的业务处理活动。
明确了用户的信息要求(实体、属性、联系),处理要求(处理过程),安全性、完整性要求。
然后按照自顶向下的需求分析方法,用数据流图和数据字典来描述这系统,分离用户完成功能和计算机完成功能,明晰系统功能。
2.3主要开发内容
关系数据库,是建立在关系数据库模型基础上的数据库,它借助于集合代数等概念与方法来处理数据库中的数据,同时它也是一个被组织成一组拥有正式的描述性的表格,这种形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能够以许多不同的方式被存取或重新召集,而不需要重新组织数据库表格。
关系数据库的定义造成原数据的一张表格或者造成表格、列、范围和约束的正式描述。
每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。
每行包含一个唯一的数据实体,这些数据是被列定义的种类。
当创造一个关系数据库的时候,用户能够定义数据列的可能值的范围与可能应用于那个数据值的进一步约束。
而SQL语言是标准用户和应用程序到关系数据库的接口。
它的优势是容易扩充,且在最初的数据库创造之后,一个新的数据种类能够被添加而不需要修改所有的现有的应用软件。
在关系数据模型中,现实世界中的实体以及实体与实体之间的联系均可用关系来表示。
从逻辑或者用户的观点来看,关系就是二维表。
本系统主要是根据关系数据模型来创建数据库,实现数据库数据的增删改查。
项目开发要求:
(1)项目开发要规范统一,模块划分、代码编写等均按照命名规范文档;
(2)程序执行速度快,数据安全。
系统要具有良好的可扩展性;
(3)用户界面简单明了,操作简单实用;
(4)具有一定的鲁棒性,能够处理大部分异常。
2.4基本功能需求
作为关系型数据库,最基本的功能就是存储数据。
该关系型数据库系统能够解析输入的标准SQL语句命令,并执行相关操作,实行数据库数据存储,查找,修改,删除。
从关系型数据库的安全性来考虑,数据库系统需要进行用户管理,并进行权限设置。
2.5可行性分析
该阶段通过对系统目标的初步调研与分析,提出可行性方案并且进行论证。
我们在这里主要从经济可行性、技术可行性、操作可行性等方面进行分析。
2.5.1经济可行性
开发该系统所需要的相关资料可以通过已存在的相关系统进行采集调查,所需要的其他应用软件、硬件系统也比较易于获得。
因此,开发成本较低。
所以,从经济的角度来看,该系统可行。
2.5.2技术可行性
技术可行性需要考虑现有的技术条件是否能够顺利的完成开发工作,软硬件配置是否满足开发的需求等。
本系统用的是C++开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。
软件方面:
由于目前单机模式相对发展成熟,因此软件的开发平台成熟可行,它们速度快、容量大、可靠性能强、价格低,完全能够满足系统的需求。
2.5.3操作可行性
本系统使用命名规范的文档,程序执行速度快,数据安全,具有良好的可扩展性,用户界面简单明了,操作简单实用,由于当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在操作运行上是可行性的。
综上所述,本系统的开发从经济上、从技术上、从操作上都是完全可靠的。
2.6系统用例分析
以下是小型关系型数据库的用户操作用例图。
它包括了用户进行的创建表、插入数据、修改数据、查找数据、删除数据以及删除表,创建用户、规定用户身份以及用户权限。
如图2-1所示:
用户
图2-1用户操作用例图
2.7开发平台及核心技术简介
2.7.1开发环境
本系统使用的是Microsoft的VisualC++6.0作为开发工具。
VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000、WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为平台。
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
主要部分:
DeveloperStudio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“MicrosoftVisualC++”,所以很多人理所当然的认为,那就是VisualC++了。
其实不然,虽然DeveloperStudio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。
我们也知道,DeveloperStudio并不是专门用于VC的,它也同样用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。
所以不要把DeveloperStudio当成VisualC++,它充其量只是VisualC++的一个壳子而已。
MFC从理论上来讲,MFC也不是专用于VisualC++,BorlandC++,C++Builder和SymantecC++同样可以处理MFC。
同时,用VisualC++编写代码也并不意味着一定要用MFC,只要愿意,用VisualC++来编写SDK程序,或者使用STL,ATL,一样没有限制。
不过,VisualC++本来就是为MFC打造的,VisualC++中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC++而不用MFC就等于抛弃了VisualC++中很大的一部分功能。
但是,VisualC++也不等于MFC。
PlatformSDK,这才是VisualC++和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。
大致说来,PlatformSDK是以MicrosoftC/C++编译器为核心(不是VisualC++,看清楚了),配合MASM,辅以其他一些工具和文档资料。
上面说到DeveloperStudio没有编译程序的功能,那么这项工作是由谁来完成的呢?
是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成VisualStudio的基石。
MicrosoftVisualC++6.0使用方法:
打开MicrosoftVisualC++6.0后,选择:
文件|新建,在打开的对话框中选择“工程”,
在选择“Win32ConsoleApplication”->填写“工程名称”->选择“位置”->“确定”,然后在选择:
文件|新建,在打开的对话框中选择“文件”,在选择“C++Sourcefile”->填写“文件名称”->“确定”,这样就建好了一个.cpp文件。
然后你在.cpp文件中写入你的c++语言代码就可以了。
代码写好以后你看一下工具里有一个图标,依次点,编译,连接,运行就可以了。
换句话说VC++是Windows平台上的C++编程环境,MFC借助C++的优势为Windows开发开辟了一片新天地,同时也借助ApplicationWizzard使开发者摆脱离了那些每次都必写基本代码,借助ClassWizard和消息映射使开发者摆脱了定义消息处理时那种混乱和冗长的代码段。
利用C++的封装性开发者可以更容易理解和操作各种窗口对象;利用C++的派生性开发者可以减少开发自定义窗口的时间和创造出可重用的代码;利用虚拟性可以在必要时更好的控制窗口的活动。
而且C++本身所具备的超越C语言的特性都可以使开发者编写出更易用,更灵活的代码。
由于C++是由C语言发展起来的,也支持C语言的编译。
6.0版本是使用最多的版本,很经典。
最大的缺点是对于模版的支持比较差。
现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态和有些功能不可用的情况。
同时,6.0版本对windows7和windows8的兼容性较差。
现在的最新版C++编译器集合在MicrosoftVisualStudio2013软件里面,包含C++(支持面向对象程序设计的大型语言),Visualbasic(支持名面向对象程序设计的语言),Java(适用网络的语言),C#,J#,.net。
其中,VC开发环境的版本已经升级至MicrosoftVisualC++2013,对C++的支持更加全面稳定,建议电脑性能好的可以使用此版本。
2.7.2核心技术
MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windowsAPI函数,vc++是微软公司开发的c/c++的集成开发环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C+ 小型 关系 数据库 计算机 毕业设计 论文