长途汽车信息管理系统设计报告.docx
《长途汽车信息管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《长途汽车信息管理系统设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
长途汽车信息管理系统设计报告
烟台南山学院
商学院管理科学与工程系
实训实习报告
项目:
数据库课程设计
姓名:
专业:
信息管理与信息系统
班级:
学号:
指导教师:
完成时间:
2015-7-17
实训实习报告
课程
名称
数据库课程设计
课程代码
09120352
实训地点
姓名
专业班级
学
号
时间
2015年7月6—17日
一、实训目的:
数据库课程设计实验是一门独立开设的实验课程。
数据库课程设计实验对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程设计实验主要围绕两方面内容:
数据库设计和基本数据库编程实践。
通过本实验,使学生了解数据库系统的理论,掌握数据库的设计方法及数据库的运用和开发技术。
1、掌握数据库设计的基本方法,熟悉数据库设计的步骤;
2、通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力;
3、学习数据库应用系统开发方法。
培养学生初步的软件设计能力,形成良好的编程风格。
二、实训内容:
1.系统分析与数据库设计阶段
(1)选择一个实际应用数据库系统的课题。
建议通过社会调查获得用户需求,
(2)进行系统需求分析和系统设计,写出系统分析和设计报告。
(3)设计数据模型并进行优化,确定数据库结构、功能结构和系统安全性和完整性要求。
2.应用程序设计阶段
(1)完成数据库定义工作,实现系统数据的数据处理和数据录入。
(2)实现应用程序的设计、编程、优化功能,实现数据安全性、数据完整性等功能,并针对具体课题问题提出解决方法。
3.系统集成调试阶段
对系统的各个应用程序进行集成和调试,进一步优化系统性能,改善系统用户界面。
4.课程设计报告撰写阶段
该阶段应完成以下文档资料的撰写:
(1)课程设计的题目、系统的总功能和各子模块的功能。
(2)系统的总功能和各子模块功能构成和描述。
(3)e-r图、主要界面设计图、程序处理流程图等。
(4)使用的数据库表结构的详细情况。
(5)课程设计的总结,主要包括以下内容。
课程设计中遇到的主要问题和解决方法,创新和得意之处。
课程设计中存在的不足,需进一步改进的设想。
课程设计的感想和心得体会。
以上内容要求干净整洁,符合课程设计的要求和规范。
实训题目:
长途汽车信息管理系统
实训要求:
1.需求分析阶段:
通过个人体会对用户(学生、老师)的需求进行分析,对系统功能进行分类,绘画数据流图,并制作数据字典,以便后面建立数据库而用
2.概念设计阶段:
主要是通过绘制e-r图进行概念结构结构
3.逻辑结构设计阶段:
主要是将概念结构进行转化,从而实现从图到关系模型的一种转变
4.物理设计阶段:
5.数据库的实施与维护:
主要进行创建数据库,建表,建立数据库之间的联系,以及视图的创建
1、需求分析
长途汽车信息管理系统是长途汽车车站信息汇总和管理的重要组成部分,是一种典型的信息管理系统,囊括了对长途汽车车站相关信息的管理,可以化简繁琐的工作过程,使车站的管理更加合理化和科学化,大大提高工作效率和节省运营成本。
本系统主要包含了乘客信息管理,汽车线路信息管理,汽车基本信息管理,车票信息管理四大模块,可以实现对汽车线路信息,汽车基本信息和车票信息的录入,查询,修改,删除等功能,用户为管理员和乘客,能满足长途车站汽车管理工作方面的基本要求。
1.1用户的需求
(1)车票信息的查询功能
用户需要查询汽车的票价、时间、出发地、到达地,预订,销售乘客所需的车票,显示订票成功信息或订票出错的原因。
(2)退票及退票信息查询功能
查找车票信息进行退票,显示可退金额信息。
1.2管理员的需求
(1)乘客信息的录入、查询功能
录入乘客的基本信息(包括:
姓名、身份证号、行李信息)
(2)汽车线路信息管理
查询汽车出发及到达城市,里程
(4)汽车基本信息管理
包括汽车的载重,使用年限,最大里程,油耗等
(3)车票信息管理
查询票价、出发时间
1.3系统功能的设计和划分
根据如上得到的用户需求,各部分完成的功能如下:
1.3.1用户部分
(1)用户注册
(2)用户登录
(3)用户可以查询机票信息。
(4)用户可以修改用户自己密码。
1.3.2管理员部分
(1)管理员可以查询乘客信息。
(2)管理员可以更新机票信息。
(3)管理员可以修改与查询信息。
(4)管理员可以修改登陆密码。
1.4数据字典
数据结构名
含义说明
组成
乘客信息表
描述乘客信息
姓名,身份证号,所购票价
车辆信息表
描述车辆信息
编号,,使用年限,最大里程,油耗,载重,座位数
汽车线路信息信息表
描述了乘客所购的车票信息
里程,出发地,到达地,时间
2、概念结构设计
2.1分e-r图
(1)车辆e-r图
(2)乘客e-r图
(3)汽车路线e-r图
(4)车票e-r图
2.2总e-r图
3、逻辑结构设计
3.1关系模型
将概念结构e-r图转化成关系模型:
乘客(身份证号,姓名,)
车辆(编号,载重,座位数,最大里程,使用年限,油耗)
车票(票价)
行车路线(里程,时间,出发地,到达地,票价)
3.2关系图
车辆信息
列名
数据类型
长度
主键
编号
nchar
10
primarykey
使用年限
nchar
3
最大里程
nchar
8
油耗
float
3
载重
float
3
座位数
nchar
3
乘客信息
列名
数据类型
长度
主键
身份证号
nchar
18
primarykey
姓名
nchar
8
票价
float
5
汽车线路信息
路线编号
nchar
3
primarykey
里程
float
4
出发地
nchar
10
到达地
nchar
10
行车时间
float
3
车票信息
列名
数据类型
长度
主键
编号
nchar
7
primarykey
票价
float
4
4、物理结构设计
4.1索引
1)乘客信息表
(身份证号,姓名)身份证号为主键
身份证号->姓名
2)行车路线信息表
(编号,里程,出发地,到达地,时间,票价)里程为主键
路线编号->里程里程->时间出发地->到达地时间->票价
3)车辆信息表
(编号,载重,座位数,最大里程,使用年限,油耗)编号为主键
编号->载重编号->座位数编号->最大里程编号->使用年限编号->油耗
4.2存储结构
由于本系统建立的数据库较小,因此数据存储采用磁盘的一个分区。
5、数据库的实施和维护
5.1创建数据库
createdatabase长途汽车信息管理系统数据库
on
primary(name=长途汽车信息管理系统数据库_data,
filename='f:
\长途汽车信息管理系统数据库.mdf',
size=10mb,
maxsize=50mb,
filegrowth=10%)
logon
(name=长途汽车信息管理系统数据库_log,
filename='e:
\长途汽车信息管理系统数据库.ldf',
size=5mb,
maxsize=10mb,
filegrowth=2mb)
go
use长途汽车信息管理系统数据库
5.2建表
1)创建车辆信息表
createtable车辆
(编号nchar(10)primarykey,
使用年限nchar(3),
最大里程nchar(8),
油耗float(3),
载重float(3),
座位数nchar(3),
);
2)建乘客信息表
createtable乘客
(身份证号nchar(18)primarykey,
姓名nchar(15),
票价float(5),
);
3)建汽车线路表
createtable汽车线路
(线路编号nchar(3)primarykey,
里程float(4),
出发地nchar(10),
到达地nchar(10),
行车时间float(3),
);
4)建车票信息表
createtable车票
(编号nchar(7)primarykey,
票价float(4),
);
5.3数据库的插入、查询、删除、更新等基本操作
5.3.1、插入表格信息
insertinto车辆values('001','10','100000','9','50','40')
insertinto车辆values('002','15','150000','8.5','45','45')
insertinto车辆values('003','10','100000','8.5','45','50')
insertinto车辆values('004','10','100000','9','55','55')
insertinto车辆values('005','10','100000','9.5','55','40')
insertinto车辆values('006','15','150000','8.5','45','55')
insertinto车辆values('007','15','150000','8','45','45')
insertinto车辆values('008','10','100000','8','50','50')
insertinto车辆values('009','10','100000','7.5','50','45')
insertinto车辆values('010','10','100000','8.5','50','55')
insertinto乘客values('1041700101','王一','50')
insertinto乘客values('1452525402','李二','51')
insertinto乘客values('1145254223','张三','72')
insertinto乘客values('1727277274','周华','80')
insertinto乘客values('1271227225','广分','29')
insertinto乘客values('4528757886','王如','70')
insertinto乘客values('1875863334','李加','86')
insertinto乘客values('1278527228','李小','64')
insertinto乘客values('8587271209','许飞','82')
insertinto乘客values('7527827820','刘易','95')
insertinto汽车线路values('012','100','廊坊','北京','4')
insertinto汽车线路values('013','120','南京','上海','4')
insertinto汽车线路values('014','130','北京','承德','4.5')
insertinto汽车线路values('015','150','北京','沧州','5')
insertinto汽车线路values('016','220','沈阳','大连','5.5')
insertinto汽车线路values('017','150','石家庄','保定','3')
insertinto汽车线路values('018','160','烟台','青岛','3.5')
insertinto汽车线路values('019','320','济南','烟台','5')
insertinto汽车线路values('020','220','苏州','上海','4.5')
insertinto汽车线路values('021','190','合肥','安庆','5')
insertinto车票values('0011','50')
insertinto车票values('0021','51')
insertinto车票values('0031','72')
insertinto车票values('0041','80')
insertinto车票values('0051','29')
insertinto车票values('0061','70')
insertinto车票values('0071','86')
insertinto车票values('0081','64')
insertinto车票values('0091','82')
insertinto车票values('0101','95')
5.3.2查询
1)查询座位数在以上的车辆编号
select编号
from车辆
where座位数>50
2)查询票价在以上的乘客姓名
select姓名
from乘客
where票价>40
3)查询里程在公里以上的线路编号
select线路编号
from汽车线路
where里程>200
4)查询票价在以上的车票编号
select编号
from车票
where票价>80
5.3.3删除
1)删除油耗在以上的车辆编号
deletefrom车辆where油耗>8
2)删除票价在70以下的乘客
delectfrom乘客where票价<70
3)删除行车时间小于4的线路
delectfrom汽车线路where行车时间<4
4)删除票价在75以下的车票
delectfrom车票where票价<75
5.3.4插入
1)在车辆中插入一行编号为0011的数据
insertinto车辆values('0011','10','100000','9','50','41')
2)在乘客中新插入一行数据
insertinto乘客values('1271227285','李分','39')
3)在汽车线路中插入新数据
insertinto汽车线路values('022','130','北京','邯郸','5')
4)在车票中插入新数据
insertinto车票values('0102','78')
5.3.5更新
1)将车辆中油耗为8的车辆改为7.5
update车辆set油耗=7.5where油耗=8
2)将汽车线路中行车时间缩短10%
update汽车线路set行车时间=行车时间*0.9
3)将乘客中票价降低20%
update乘客set票价=票价*0.8
5.3.6排序
1)按最大里程排序
select*
from车辆
orderby最大里程
2)按票价排序
select*
from乘客
orderby票价
3)按行车时间排序
select*
from汽车线路
orderby行车时间
5.4数据关系图
5.5创建视图
1)车辆视图
createview编号
as
select*
from车辆
go
2)乘客视图
createview姓名
as
select*
from乘客
go
3)汽车线路视图
createview线路编号
as
select*
from汽车线路
go
4)车票视图
createview票价
as
select*
from车票
go
5)综合视图
createview[dbo].[综合]
as
select车辆.编号,汽车线路.线路编号
from车辆,乘客,汽车线路,车票
where车辆.编号=乘客.姓名and汽车线路.线路编号=车票.票价
go
5.6创建一个新的用户角色
5.7用户映射
5.8权限的设置
(1)用户的权限
(2)管理员的权限
5.9建立触发器,存储过程
createtriggerchufaqi
on车辆
afterinsert
as
declare@atinyint
select@a=使用年限frominserted
if@a<10
begin
print'输入值太低'
rollbacktransaction
end
6、结论:
这个长途汽车信息管理系统,主体是用户、管理员。
最终将它们一些列的信息相联系,从而实现对车票信息、车辆信息、路线信息的记录与修改。
管理员能够对车票、车辆、等信息进行插入、删除、修改、更新,对路线信息的查看。
用户对车票、路线的查询功能等。
系统中整理了e-r图,视图等信息,方便用户和管理员的查看和修改,方便清晰。
7、不足:
此数据库功能较为简单,约束数量不多,安全性较差,还有许多需要完善的地方。
考虑的方面较为单一,不具有普遍性。
三、实训总结:
为期一周的实训已经结束,从这一周中,有了很多的感悟。
从学到和掌握到的东西来说,在书本上学到的东西非常不牢固,然而实训让我受益匪浅!
对于sqlserver数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在试训开始时,真的不知道该干些什么?
有一种无从下手的感觉!
但随着摸索与讨论,再结合自己所知道的知识和老师所发放下的课程内容,根据这些实际的情况,我对自己将要做的事也有了兴趣和信心。
所以在接下来的时间中,我们在老师的帮助下开始了数据库相关的实训。
在这次的长途汽车信息管理系统的设计过程中,我根据该系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;第二部分是各种插入、删除、查看、更新;第三部分是建立关系试图与触发器等。
我掌握了insertinto、eleted、from、updateset以及selectfrom语句的的相关知识和运用。
还学到了分页查询以及多表查询。
从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。
通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。
实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。
教师:
宋晓萍成绩: