数据库课程设计实验报告汽车修理信息管理系统Word格式.docx
《数据库课程设计实验报告汽车修理信息管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计实验报告汽车修理信息管理系统Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
3.索引建立........................................(19)
4.索引查询........................................(20)
五,实验总结......................................(21)
六,考看文献........................................(23)
一.设计目的:
数据库原理及应用课程设计是软件工程专业集中实践性环节之一是学习完《数据库原理及应用》及《SQLSERVER数据库》课程后进行的一次全面的综合练习。
其目的在于加深对数据库基础理论和基本知识的理解掌握使用数据库进行软件设计的基本方法提高运用数据库解决实际问题的能力最终实现对于给定的应用环境构造最优的数据库模式建立数据库及其应用系统使之能够有效地存储数据满足各种用户的应用需求信息要求和处理要求。
同时此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
数据库是一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。
数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。
其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。
二.设计任务:
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节对于学生基本程序设计素养的培养和软件工作者工作作风的训练将起到显著的促进作用。
数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。
不同的用户可以按各自的用法使用数据库中的数据;
多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。
数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。
三.设计内容:
(一)需求分析:
1数据登记
把各种手填单据中的数据及时登记到系统中、并要求能进行修改。
这些单据包括修车登单、汽车修理单、零件入库单、零件出库单。
2查询
能查询登记单、修理单、汽车、车主、修理公、零件库存的有关数据。
3编制并显示零件订货计划月报表。
4发票发票中包括顾客姓名、汽车牌号、修理项目、
修车费=修理费+零件费
零件费=∑零件价格×
耗用数量
修理费=小时工资×
修理小时×
3
5统计修理工工资月报表
某修理工的月工资=∑小时工资×
修理小时
(二)系统设计:
1概念结构设计
E-R图是分为两部分实体和属性概念结构设计就是从现实概念中抽象出概念模型,即对信息世界建模,所以概念模型应该能方便,准确的表示信息世界中的常用概念。
概念模型的表示方法以实体--联系为主,在该方法中,实体型用矩形表示,矩形框内写明实体名,,属性用椭圆表示,并用无向边将其与相应的实体连接起来,联系用菱形表示,菱形框内写明联系名,并用无向边与有关实体连接起来,同时在无向边旁边标上联系的类型。
3-2.局部E-R图
陈兵17:
33:
55
数据库物理设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
数据库物理设计主要分为两个步骤:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率;
如果评价结果满足原设计要求,则可以进入到屋里实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑结构设计阶段修改数据模型。
每个实体可以有多个属性,这些属性用来表示实体的性质。
不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。
实体和实体之间的关系有一对一的关系1;
1,
一对多的关系1:
N,和多对多的关系N:
M。
分E-R图及各个实体之间的关系如下图所示。
仓
2逻辑结构设计
数据库逻辑设计的任务是将概念结构转换成特定DBMS所支持的数据模型的过程。
从此开始便进入了“实现设计”阶段需要考虑到具体的DBMS的性能、具体的数据模型特点。
从E-R图所表示的概念模型可以转换成任何一种具体的DBMS所支持的数据模型如网状模型、层次模型和关系模型。
这里只讨论关系数据库的逻辑设计问题,所以只介绍E-R图如何向关系模型进行转换。
关系模型的逻辑结构是一组关系模式的集合。
E-R图则是由实体,实体的属性和实体间的联系三个要素组成。
所以将E-R图转换为关系模型实际上就是要将实体实体的属性和实体间的联系转换为关系模式。
转换原则如下
1.实体类型的转换:
一个实体型转换成一个关系模式。
实体的属性就是关系的属性实体的码就是关系的码。
2.联系类型的转换根据不同的情况做不同的处理。
(1)一个1:
1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端实体对应的关系模式合并则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个N的联系可以转换为一个独立的关系模式也可以与N端对应的关系模式合并。
如果转换为一个独立的关系模式则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性而关系的码为N端实体的码。
(3)一个MN联系转换为一个关系模式。
与该联系相连的各实体的码为各实体码的组合。
(4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实休的码以及联系本身的属性均转换为关系的属性而关系的码为各实体码的组合。
(5)具有相同码的关系模式可合并。
3.根据上述管理系统的E-R图转换为关系模型如下。
将每一个实体转换成一个关系,关系就是给出关系名,属性就是实体属性,并标明该关系的主键用下划线来表示
根据E-R图转换为关系模式,关系的码用下横线标出
客户(客户编号姓名电话车牌号车型)
修理单(修理单号客户编号修理项目修理工零件名称使用数量)修理工(修理工号零件名称姓名电话工资)
零件(编号零件名称库存最低库存单价)
仓库表(编号采购商修理工号管理员入库时间出库时间零件名称)
工作台(编号修理工号修理车型)
业务部(编号修理单号接待时间接待业务)
售后服务(编号客户编号项目负责人)
发票(车牌号编号客户编号)
4.物理结构设计
基本表的建立
客户表
修理单表
修理工表
零件表
仓库表
工作台表
业务部表
售后服务表
发票
四.运行测试
发票表
视图建立
视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。
可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。
视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。
那些用于产生视图的表叫做该视图的
基表。
一个视图也可以从另一个视图中产生。
视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。
通过视图看到的数据存放在基表中。
视图看上去非常象数据库的物理表,对它的操作同任何其它的表一样。
当通过视图修改数据时,实际上是在改变基表中的数据;
相反地,基表数据的改变也会自动反映在由基表产生的视图中。
由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。
发票视图
修理工视图
视图运行结果
发票运行
修理工运行
索引建立
创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
修理工
索引查询
触发器的建立
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
触发器可以从DBA_TRIGGERS,USER_TRIGGERS数据字典中查到
触发器效果
存储过程
调用存储过程
实验总结
一个星期的时间非常快就过去了,这一个星期不敢说自己有多大的进步,获得了多少知识,此次课程设计对我们来说是一次不小的挑战,但起码是了解了项目开发的部分过程。
虽说上过数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。
这次实习证实提供了一个很好的机会。
通过本次课程设计,我们对数据库这门课程有了更加深刻的理解,发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。
亲身体验了一回系统的设计开发过程。
设计的初期,在对数据库系统的分析、设计中,碰到很多概念上很模糊的问题,通过老师的指点以及查阅相关资料,问题得到了解决,设计工作也顺利进行。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。
我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。
因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。
所以以后的课程设计要特别注意这一块的设计。
按照要求,我们做的是汽车维修系统。
说实话,我对这个是一无所知的,没有去汽修厂维修过汽车,也不知道汽车维修是怎么一个流程。
盲目开始设计的下场我已经尝过了,结果就是出来一个四不像的设计方案,没有什么实际用处。
没有前期的调查,仅从指导书上那几条要求着手是不够的。
在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和客户的要求,分析现有情况及问题,汽车维修系统设计出E-R图。
在一周的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题:
通过这次课程设计,我对调试掌握得更加熟练了,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如有一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。
但在数据库的建立过程中我们碰到过好多问题,有些是大家一起讨论可以解决的,但是有些技术问题我们自己很难解决又不能及时请教老师,于是我们就查阅相关书籍和网络资源
经过大量的查阅资料,我们终于解决了各种问题,成功完成了课程设计。
我们学习并应用了SQL语言,对数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表学会了对于表的一些操作,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
很多事情不是想象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。
很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。
在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了避免冗余,尽量按照属性处理了。
物理结构设计基本没有碰到问题,这一块和安全性、完整性不觉就会在物理结构设计中添加一些安全设置:
主键约束等。
最后才做索引的部分,对一些比较经常使用搜索的列,外键上建立索引,这样可以明显加快检索的速度,最后别忘记重要的安全性设置,限制用户访问权限,新建用户并和数据库用户做相应的映射。
数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。
(1)物理数据层。
它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。
这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。
(2)概念数据层。
它是数据库的中间一层,是数据库的整体逻辑表示。
指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。
它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是
数据库管理员概念下的数据库。
(3)逻辑数据层。
它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
数据库不同层次之间的联系是通过映射进行转换的。
主要特点
(1)实现数据共享。
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
(2)减少数据的冗余度。
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。
减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
(3)数据的独立性。
数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
(4)数据实现集中控制。
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。
利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
(5)数据一致性和可维护性,以确保数据的安全性和可靠性。
主要包括:
①安全性控制:
以防止数据丢失、错误更新和越权使用;
②完整性控制:
保证数据的正确性、有效性和相容性;
③并发控制:
使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
(6)故障恢复。
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。
数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。
比如对系统的误操作造成的数据错误等。
种类
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。
而不同的数据库是按不同的
数据结构来联系和组织的。
1.数据结构模型
(1)数据结构
所谓数据结构是指数据的组织形式或数据之间的联系。
如果用D表示数据,用R表示数据对象之间存在的关系集合,则将DS=(D,R)称为数据结构。
例如,设有一个电话号码簿,它记录了n个人的名字和相应的电话号码。
为了方便地查找某人的电话号码,将人名和号码按字典顺序排列,并在名字的后面跟随着对应的电话号码。
这样,若要查找某人的电话号码(假定他的名字的第一个字母是Y),那么只须查找以Y开头的那些名字就可以了。
该例中,数据的集合D就是人名和电话号码,它们之间的联系R就是按字典顺序的排列,其相应的数据结构就是DS=(D,R),即一个数组。
(2)数据结构种类
数据结构又分为数据的逻辑结构和数据的物理结构。
数据的逻辑结构是从逻辑的角度(即数据间的联系和组织方式)来观察数据,分析数据,与数据的存储位置无关。
数据的物理结构是指数据在计算机中存放的结构,即数据的逻辑结构在计算机中的实现形式,所以物理结构也被称为存储结构。
这里只研究数据的逻辑结构,并将反映和实现数据联系的方法称为数据模型。
目前,比较流行的数据模型有三种,即按图论理论建立的层次结构模型和网状结构模型以及按关系理论建立的关系结构模型。
2.层次、网状和关系数据库系统
(1)层次结构模型
层次结构模型实质上是一种有根结点的定向有序树(在数学中"
树"
被定义为一个无回的连通图)。
下图是一个高等学校的组织结构图。
这个组织结构图像一棵树,校部就是树根(称为根结点),各系、专业、教师、学生等为枝点(称为结点),树根与枝点之间的联系称为边,树根与边之比为1:
N,即树根只有一个,树枝有N个。
按照层次模型建立的数据库系统称为层次模型数据库系统,是其典型代表。
(2)网状结构模型
按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是DBTG(DataBaseTaskGroup)。
用数学方法可将网状数据结构转化为层次数据结构。
(3)关系结构模型
关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。
例如某单位的职工关系就是一个二元关系。
由关系数据结构组成的数据库系统被称为关系数据库系统。
在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。
就是这类数据库管理系统的典型代表。
对于一个实际的应用问题(如人事管理问题),有时需要多个关系才能实现。
用建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数据库称为数据库系统。
的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。
因此,可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。
数据库系统可以派生出各种不同类型的辅助文件和建立它的应用系统。
不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来她并没有你以前觉得的那样,自己也是可以的。
如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,大学毕业出去即面临找工作,从学习这个专业,到以后从事这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想!
以上基本是这次实习的体会了,设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。
创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。
这次课程设计我们不但收获了丰富的知识,而且更加认识到团队成员间齐心合作和遇到问题要不退缩、努力解决的重要性。
我相信这些收获会使我们终身受益。
六,参考文献
[1]萨师煊等.数据库系统概论(第四版).高等教育出版社.2006
[2]杨桦等.SQLSerer2000实用教程.清华大学出版社.2007
[3]杜军平.SQLSever2000数据库开发[M].机械工业出版社.2001
[4]陆慧娟等.数据库原理与应用.科学出版社.2006
[5]赵松涛.SQLSever2000应用及实例集锦[M].北京:
北京
欢迎下载,资料仅供参考!
!
资料仅供参考!