设计报告 长途汽车信息管理系统.docx
- 文档编号:29668603
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:29
- 大小:287.99KB
设计报告 长途汽车信息管理系统.docx
《设计报告 长途汽车信息管理系统.docx》由会员分享,可在线阅读,更多相关《设计报告 长途汽车信息管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
设计报告长途汽车信息管理系统
《数据库》课程设计报告
学生姓名:
张学阳
学号:
1009300132
学院:
理学院
班级:
数学101
题目:
题目22长途汽车信息管理系统
指导教师:
尚宝欣职称:
讲师
朱振菊实验师
方向实验师
2012年06月05
目录
目录I
一、选题背景1
二、需求分析2
2.1功能分析2
2.2数据字典2
三、概念结构设计4
四、逻辑结构设计6
五、创建数据库及相关操作7
六、总结12
七、课程设计心得体会14
参考文献15
源程序16
创建数据库16
插入数据17
查询数据19
更新数据19
删除数据20
授权语句20
一、选题背景
长途汽车信息管理系统运用在汽车站和火车站等车站部门的系统工具,方便此系统部门的工作人员的工作,该系统主要根据此部门的特点建立的,是记录和查询汽车站信息的的依据。
早期的长途汽车站信息主要是人工记录和人工管理的,不仅不容易记录,而且还不容易保存。
随着计算机的不断普及和软件系统的不断发展加上信息系统开发的迫切需求,计算机长途汽车站信息管理系统应运而生了。
随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,长途汽车站信息管理系统在人们的日常生活中发挥着越来越重要的作用。
本系统实现了汽车线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。
线路信息管理:
车站管理员可以在线路信息管理模块对车站线路信息进行管理。
管理员首先建立汽车线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。
管理员也可以通过本模块查询到所有需要查询的线路的详细信息。
汽车信息管理:
管理员可以在汽车信息管理模块实现对汽车信息的管理。
管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。
管理员也可以在整个数据库中查寻相关汽车信息。
车票信息管理:
管理员可以在车票管理模块实现对线路车票信息的管理。
管理员根据相应的汽车线路信息来设置相应的车票详细信息。
当有新的线路添加的时候,要把相应的车票信息添加到数据库中,管理员还可以对某条线路的车票信息进行修改,删除和查询操作。
二、需求分析
2.1功能分析
长途汽车信息管理系统主要是由路线信息表、汽车信息表、票价信息表三部分组成,通过对这三个表的添加、删除、查找、修改等操作来实现对长途汽车的管理。
各部分的功能可用下面的图形表示:
2.2数据字典
(1)数据项
线路信息
表名称
线路信息表(Line)
数据项名
别名
数据类型
长度
取值范围
是否为空
说明
线路编号
Lnum
char
10
线路编号
否
主码
出发地
Ldepar
char
10
地点名称
是
目的地
Ldes
char
10
地点名称
是
出发时间
Lstim
char
10
具体时间
是
所需时间
Ltoltim
char
10
具体时间
是
汽车信息
表名称
汽车信息表(Bus)
数据项名
别名
数据类型
长度
取值范围
是否为空
说明
汽车编号
Bnum
char
10
编号名
否
主码
汽车种类及相应票价
Bspepr
char
10
汽车种类和票价值
是
最大载客量
Btol
char
10
载客数量
是
票价信息
表名称
票价信息表(Price)
数据项名
别名
数据类型
长度
取值范围
是否为空
说明
车票编号
Pnum
char
10
否
主码
售票情况
Psitu
char
10
已售\未售
是
查询
Psear
char
10
可行\否
是
打印
Pprint
char
10
能\否
是
汽车线路
表名称
汽车线路表(Busline)
数据项名
别名
数据类型
长度
取值范围
是否为空
说明
汽车编号
Bnum
char
10
汽车编号
否
主码
线路编号
Lnum
char
10
线路编号
否
主码
余票
Lfnum
char
10
是
(2)数据结构
线路信息数据结构
数据结构名
线路
含义说明
线路信息表存放汽车行驶线路的信息,主码为线路号
组成
线路编号、出发地、目的地、出发时间、所需时间
汽车信息数据结构
数据结构名
汽车
含义说明
汽车信息表存放汽车的相关信息,主码为汽车编号
组成
汽车编号汽车的种类及相应的票价最大载客量
票价信息数据结构
数据结构名
票价信息
含义说明
票价信息表存放票价信息,主码为车票编号
组成
车票编号售票情况查询打印
(3)数据流图:
三、概念结构设计
概念结构是对现实世界的一种抽象,指对实际的人、物、事和概念进行人为处理,抽取所关心的共同特征,忽略非本质的细节,并把这些特征用各种概念精确的加以描述,这些概念组成某种模型。
如线路信息模型,汽车信息模型,票价信息模型。
前面选好的数据流程图中,每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中,现在就是要将这些数据从数据字典中抽出来,参照数据流图,标定局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型。
数据库概念设计分成两步:
第一,局部概念模式设计,既将各部分的数据流图分别转化为局部E-R图。
第二,全局概念模式设计,既将各局部E-R图合并为一个整体。
(1)局部E-R图
线路信息:
汽车信息:
票价信息:
(2)整体E-R图
(3)各类冲突、减少冗余等
通过调整消除了属性冲突、命名冲突和结构冲突,得到了统一的概念模型。
四、逻辑结构设计
(1)E-R图向关系模式的转换
将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模型,由于本模型是一个m:
n联系转换为关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
同时,具有相同码的关系模式可合并。
线路实体对应的关系模式:
线路(线路编号,出发地,目的地,出发时间,所需时间),线路编号为主码;
汽车实体对应的关系模式:
汽车(汽车编号,汽车的种类及相应的票价,最大载客量),汽车编号为主码;
票价实体对应的关系模式:
票价(车票编号,售票情况,查询,打印),车票编号为主码
联系的关系模式:
汽车线路(汽车编号,线路编号,余票),汽车编号,线路编号为主码。
(2)数据模型优化
通过检查、反复修改上述的各个表的结构,都满足第二范式,而且冗余较小,因此得到的模型是较优化的模型。
五、创建数据库及相关操作
1.创建表
创建模式:
使用模式:
线路表:
汽车表:
票价表:
汽车线路表:
2.数据操作:
线路表插入数据:
汽车表插入数据:
票价表插入数据:
汽车线路表插入信息:
查询数据:
查询由北京到福州的发车时间
查询汽车编号为“京A3215”长途汽车的汽车类型和票价
查询剩余票为74的线路运行所需时间
查询所有未售出的票的数值
查询汽车编号为“京B2645”线路编号为“k2474”的出发地,目的地,出发时间,余票,所用时间,汽车种类及相应票价。
查询剩余票为23的路线出发地点:
创建线路信息的线路编号、出发地、目的地的视图:
更新数据:
把线路编号为k7334的出发时间由“07:
59”改为“07:
32”
把汽车编号为“京B2215”的汽车票价改为“200”
将编号为“1009300101”的票Psitu的信息改为“未售”。
线路编号为“t4256”汽车编号为“京E5375”信息的余票减一。
删除数据:
将路线编号为“t4250”的路线信息删除
将汽车编号为“京E5375”的所有信息删除。
将票价已售出的票的信息删除。
将汽车编号为“京D2353”路线编号为“k2474”的路线信息删除。
给汽车信息表的最大载客量建立索引
授权语句:
创建3个用户:
将Bus表的查看权限给用户p1
将Bus表和line表的所有权限给用户p2
把对表Busline的insert权限给用户p3,并允许将此权限在给其他用户。
收回用户p2对Bus表的insert权限
显示用户p2的权限
用户p1登录
用户p1被授权后对Bus表查询
导入sql文件:
六、总结
虽然做课程设计时间比较分散,做的时候效率比较低花了不少时间,但通过努力,还是很好的完成了这次课内实验,并让我在课程设计中学会了规范、严谨、创新的态度。
在此次长途汽车信息管理系统的开发过程中,遇到了许多的问题比如:
数据库代码错误,对象方法名搞不清,不过通过认真思考顺利完成了本次设计,这次设计有很多东西值得我思考并总结。
开发过程大体可分为以下几个步骤:
(1)了解长途车站信息系统分析:
如需求分析,数据字典,功能分析。
思考要实现整个程序大体需要的几个模块和其中用到的mysql基本操作符、语句等。
(2)画设计方案流程图并具体化:
用E-R图的形式展现基本编程思想。
将流图中的大模块的具体实现思考清楚,并想好实现的代码。
(3)逻辑结构设计阶段:
这部分主要是E-R图向关系模式转化,并对数据模型优化,这部分是是一个至关重要复杂而且需要反复修改的环节。
(4)编辑程序代码:
这部分主要是通过对创建的表进行插入、删除、查找、修改等操作来实现对线路信息、汽车信息、票价信息、汽车线路信息的控制,创建用户,并授予相应的权限。
(5)代码的调试:
在mysql下输入代码并进行调试和正确运行。
在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。
虽然学过mysql语言,但通过这次课程设计,使我更加熟悉的掌握了java语言的运用。
帮助我熟悉了更多mysql语言的功能,提高了我的动手能力,从中学到了许多解决实际问题的宝贵经验.使我对自己更有自信,对编程的兴趣更深了。
七、课程设计心得体会
刚看到题目时,心里一片茫然不知该如何下手,因为数据库的课程设计和之前做的课程设计有很大的不同,特别是不知论文该写哪些东西,后来通过查阅书籍和网络搜索同类论文了解了它的写作内容。
总是有很多的问题存在,只是大多时候都隐藏了起来,当我们发现问题时,应该以平常的心态去对待,着急是没有用的,我们要做的就是在最短的时间内找出解决的办法。
在学习数据库课程的时候,发现它确实不好学,只是应付考试就尚且有些费劲,要想真正弄精就更是困难了,不过这也是没有办法的事,毕竟就是有很多东西很难理解甚至是理解不了的,要想比别人更厉害,就得花些时间在难以理解的问题上。
在做课设时有些同学用了PHP、C#现在一想还急火攻心,开始自己也想着做一下界面,可是有难度,不得不佩服那些能人,既然那东西不会,就只能乖乖用自己会的了。
有时候我不得不再次钦佩自己的团队协作能力,同样又是和不同的人组队,依旧是碰撞出激情的火花,我只想说团结就是力量。
我们最大的敌人是我们自己,我一直深信,在做的过程中,脑海中一直在想别人做的怎么样了,是不是比自己做的更好,当静下心来时,才恢复过来,管别人干什么,尽自己最大的努力把东西最好不就可以了吗,相信自己一定能做好。
有一个伟人曾说过如果给他一把斧头用六个小时去砍柴,他会用四个钟头取磨这把斧头,课设前的准备是很重要的,还好,通过学习数据库了解了许多数据库的知识和一些基本的sql语句。
我们学习的知识有很多是模糊的,当在规定的时间去完成任务是,我们所要做的就是把可能用到的知识拾起来或是尽快学会一种方法来解决它,这是一种能力,是需要我们通过锻炼去提高的。
参考文献
[1]王珊等.数据库系统概论.北京:
高等教育出版社,2006
[2]杨冬青等译.数据库系统概念.北京:
机械工业出版社,2003
[3]滕永昌编著.Oracle10g数据库系统管理.北京:
机械工业出版社,2006
[4]岳付强.SQLServer2005从入门到实践.北京:
清华大学出版社,2009
[5]唐汉明等.MySQL数据库开发、优化与管理维护.北京:
人民邮电出版社,2008
源程序
创建数据库
线路表:
createtableLine
(Lnumchar(10)primarykey,
Ldeparchar(10),
Ldeschar(10),
Lstimchar(10),
Ltoltimchar(10)
);
汽车表:
createtableBus
(Bnumchar(10)primarykey,
Bspeprchar(10),
Btolchar(10)
);
票价表:
createtablePrice
(Pnumchar(10)primarykey,
Psituchar(10),
Psearchar(10),
Pprintchar(10)
);
汽车线路表:
createtableBusline
(Bnumchar(10),
Lnumchar(10),
Lfnumchar(10),
primarykey(Bnum,Lnum),
foreignkey(Bnum)referencesBus(Bnum),
foreignkey(Lnum)referencesLine(Lnum)
);
插入数据
线路表插入数据:
insertintoLine
values('k2474','北京','福州','05:
39','13.27');
insertintoLine
values('r5275','北京','海洋','02:
45','18.52');
insertintoLine
values('t2521','北京','深圳','21:
55','14.32');
insertintoLine
values('t4256','北京','上海','03:
43','12.21');
insertintoLine
values('t2321','北京','广州','21:
54','16.32');
insertintoLine
values('t4250','北京','深圳','23:
47','22.41');
insertintoLine
values('k7334','北京','天津','7:
59','23.34');
汽车表插入数据:
insertintoBus
values('京D2353','大型-43元','64');
insertintoBus
values('京B3252','中型-53元','45');
insertintoBus
values('京E5375','中型-25元','43');
insertintoBus
values('京B2235','小型-159元','32');
insertintoBus
values('京A3215','中型-104元','42');
insertintoBus
values('京B2645','大型-59元','67');
insertintoBus
values('京B2215','小型-259元','33');
票价表插入数据:
insertintoPrice
values('1009300101','已售','可行','否');
insertintoPrice
values('1009300102','已售','可行','否');
insertintoPrice
values('1009300103','未售','可行','能');
insertintoPrice
values('1009300104','已售','否','否');
insertintoPrice
values('1009300105','未售','可行','能');
insertintoPrice
values('1009300106','未售','可行','能');
insertintoPrice
values('1009300107','未售','可行','能');
汽车路线表插入数据:
insertintoBusline
values('京D2353','k2474','74');
insertintoBusline
values('京B3252','k2474','23');
insertintoBusline
values('京B2235','t2321','45');
insertintoBusline
values('京E5375','t4256','35');
insertintoBusline
values('京B2645','r5275','45');
insertintoBusline
values('京B2645','k2474','32');
insertintoBusline
values('京D2353','t4250','76');
查询数据
查询由北京到福州的发车时间
selectLstim
fromline
whereLdepar='北京'andLdes='福州';
创建线路信息的线路编号、出发地、目的地的视图
createviewL_Line
AS
selectlnum,Ldepar,Ldes
fromline;
给汽车信息表的最大载客量建立索引
createuniqueindexL_Lfnumonbus(btol);
查询汽车编号为“京A3215”长途汽车的汽车类型和票价
selectBspepr
fromBus
whereBnum='京A3215';
查询所有未售出的票的数值
selectcount(Pnum)
fromPrice
wherePsitu='未售';
查询汽车编号为“京B2645”线路编号为“k2474”的出发地,目的地,出发时间,余票,所用时间,汽车种类及相应票价。
selectLdepar,Ldes,Lstim,Lfnum,Ltoltim,Bspepr
fromLine,Bus,Busline
whereBus.Bnum=Busline.Bnumandline.Lnum=Busline.LnumandBusline.Bnum='京B2645'andBusline.Lnum='k2474';
查询剩余票为74的线路运行所需时间
selectLtoltim
fromLine
whereLnumin(selectLnum
fromBusline
whereLfnum=74);
查询剩余票为23的路线出发地点
selectLdepar
fromLine
whereLnumin(selectLnum
fromBusline
whereLfnum=23);
更新数据
把线路编号为k7334的出发时间由“07:
59”改为“07:
32”
updateline
setLstim='07:
32';
whereLnum='k7334';
把汽车编号为“京B2215”的汽车票价改为“200”
updateBus
setBspepr='小型-200';
whereBnum='京B2215';
将编号为“1009300101”的票Psitu的信息改为“未售”。
updateprice
setPsitu='未售'
wherepnum='1009300132';
线路编号为“t4256”汽车编号为“京E5375”信息的余票减一。
updateBusline
setLfnum=lfnum-1
whereBnum='京E5375'andLnum='t4256';
删除数据
将路线编号为“t4250”的路线信息删除
delete
fromBusline
whereLnum='t4250';
delete
fromline
whereLnum='t4250';
将汽车编号为“京E5375”的所有信息删除。
delete
fromBusline
whereBnum='京E5375';
delete
fromBus
whereBnum='京E5375';
将票价已售出的票的信息删除。
delete
fromPrice
wherepsitu='已售';
将汽车编号为“京D2353”路线编号为“k2474”的路线信息删除。
delete
fromBusline
whereBnum='京D2353'andLnum='k2474';
授权语句
将Bus表的查看权限给用户p1
grantselect
ontableBus
top1;
将Bus表和line表的所有权限给用户p2
grantallprivileges
ontableBus
top2;
grantallprivileges
ontableline
top2;
把对表Busline的insert权限给用户p3,并允许将此权限在给其他用户。
grantinsert
onBusline
top3
withgrantoption;
收回用户p2对Bus表的insert权限
revokeinsert
onBus
fromp2;
显示用户p2的权限
showgrantsforp2
注:
设计报告撰写说明
一、正文内容要求:
正文内容层次序号为:
1、1.1、1.1.1……。
正文内容一般为:
1、选题背景:
说明本课题应解决的主要问题及应达到的技术要求;简述本设计的指导思想。
2、方案论证(设计理念):
说明设计原理(理念)并进行方案选择,阐明为什么要选择这个设计方案以及所采用方案的特点。
3、过程论述:
对设计工作的详细表述。
要求层次分明、表达确切。
4、结果分析:
对研究过程中所获得的主要的数据、现象进行定性或定量分析,得出结论和推论。
5、结论或总结:
对整个研究工作进行归纳和综合。
6、课程设计心得体会。
二、图纸要求:
图面整洁,布局合理,线条粗细均匀,圆弧连接光滑,尺寸标注规范,文字注释必须使用工程字书写;必须按国家规定标准或工程要求绘制。
课程设计说明书(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计报告 长途汽车信息管理系统 设计 报告 长途汽车 信息管理 系统