数学与统计学学院
综合性实验报告
课程 题目 年级 专业 指导教师
数据库原理及应用 长途汽车信息管理系统
2011级 信息与计算科学
曾广平
学号 11151155 11151158 姓名 张生廷 马骏 主要工作 数据库建立与维护 数据库界面设计 评分 评语
2014年6月10日
一.需求分析阶段
随着社会的不断发展,技术的不断进步,信息技术和数据处理速度越来越引起人们的重视,因为信息的大量而快速的传递,大批量数据的处理单靠人工是不可靠的,也是不现实的。各行业都迫切需要高性能的的管理系统。长途汽车信息管理数据库系统是面向所有汽车的数据管理系统,其目的是使乘车有序化,规范化,简单化,易于车站人员的管理,查询。。而长途汽车信息管理系统就是根据车站发展的需要而建立的典型的信息管理系统。它以处理为中心,其重点是进行查询,打印客户所需信息。开发主要包括数据库的建立和维护。
模块功能分析:
线路模块:用来管理汽车线路号、出发地、目的地、出发时间、所需时间。 汽车模块:用来管理汽车汽车编号、汽车的种类及相应的票价、最大载客量、剩余座位数。
车票模块:用来管理汽车车票编号、售票情况、查询、打印。
二、概念结构设计
经分析,本系统的E-R图如下:
各实体及其属性:
售票情况车票编号票价车票
目的地出发地出发时间所需时间线路线路编号
汽车汽车种类汽车编号最大载客量
各实体间关系的E-R图如下:
目的地出发地出发时间所需时间售票情况车票编号线路线路编号票价行驶车票供应汽车汽车种类汽车编号最大载客量
关系图:
三、逻辑结构设计
1. 工厂管理基本信息表
(1)汽车基本信息表 列名 数据类型 汽车票号 汽车种类 最大载客量 char char smallint 长度 10 10 是否为空 否 是 是 备注 主码 (2)线路信息表 属性名 类型 char 线路号 Char 出发地 长度 10 10 是否为空 备注 主码 char 目的地 char 出发时间 datetime 所需时间 (3)车票信息表 属性名 类型 char 车票编号 char 售票情况 smallint 票价 10 10 8 长度 10 10 是否为空 备注 主码
2.长途汽车管理基本数据信息表
(1)车票信息表 车票编号 20110001 20110002 20110003 20110004 20110005 20110006 售票情况 拥挤 良好 稀疏 拥挤 拥挤 良好 票价 85 90 110 109 120 160 线路号 101 102 103 104 105 106 (2)汽车基本信息表 汽车编号 汽车种类 1 A 2 B 3 C 4 D 5 E 6 F (3)线路信息表 最大载客量 35 50 45 55 45 60 线路号 101 102 103 104 105 106 线路号 101 102 103 104 105 106 出发地 南昌市 景德镇 鄱阳县 抚州市 抚州市 南昌市 目的地 抚州市 鄱阳县 南昌市 南昌市 南昌市 景德镇 出发时间 18:00 10:20 15:40 14:30 13:00 09:00 所需时间 2 1 4 2 3 5
对应SOL语句如下:
(1) 建库
create database 长途汽车信息管理系统
(2) 建表
CREATE TABLE 汽车基本信息表 (
汽车编号 CHAR(10) PRIMARY KEY, 汽车种类 CHAR(10), 最大载客量 INT,
线路号 CHAR(10) )
CREATE TABLE 车票信息表 (
车票编号 CHAR(10) PRIMARY KEY, 售票情况 CHAR(10), 票价 INT,
线路号 CHAR(10) )
CREATE TABLE线路信息表 (
线路号 CHAR(10) PRIMARY KEY, 出发地 CHAR(10), 目的地 CHAR(10), 出发时间 CHAR(10), 所需时间 INT )
(3) 插入数据 INSERT
INTO 车票信息表
VALUES('20110001','拥挤','85','101')
INSERT
INTO 车票信息表
VALUES ('20110002','良好','90','102')
INSERT
INTO 车票信息表
VALUES ('20110003','稀疏','110','103')
INSERT
INTO 车票信息表
VALUES ('20110004','拥挤','109','104')
INSERT
INTO 车票信息表
VALUES ('20110005','拥挤','120','105')
INSERT
INTO 车票信息表
VALUES ('20110006','良好','160','106')
INSERT
INTO 汽车基本信息表 VALUES ('1','A','35','101')
INSERT
INTO 汽车基本信息表 VALUES ('2','B','50','102')
INSERT
INTO 汽车基本信息表 VALUES ('3','C','45','103')
INSERT
INTO 汽车基本信息表 VALUES ('4','D','55','104')
INSERT
INTO 汽车基本信息表 VALUES ('5','E','45','105')
INSERT
INTO 汽车基本信息表 VALUES('6','F','60','106')
INSERT
INTO 线路信息表
VALUES ('101','南昌市','抚州市','18:00','2')
INSERT
INTO 线路信息表
VALUES ('102','景德镇','鄱阳县','10:20','1')
INSERT
INTO 线路信息表
VALUES ('103','鄱阳县','南昌市','15:40','4')
INSERT
INTO 线路信息表
VALUES ('104','抚州市','南昌市','14:30','2')
INSERT
INTO 线路信息表
VALUES ('105','抚州市','南昌市','13:00','3')
INSERT
INTO 线路信息表
VALUES ('106','南昌市','景德镇','09:00','5')
四、功能处理
1.索引
①建立索引
create unique index id_ix on车票信息表(车票编号); create unique index im_in on 汽车基本信息表(汽车编号); create unique index ik_il on 线路信息表(线路号); ②删除索引
Drop index 车票信息表id ix
2.视图
①创建视图
create view view_1
as select车票编号,售票情况,票价,线路号
from 车票信息表
create view view_2
as select汽车编号,汽车种类,最大载客量,线路号
from 汽车基本信息表
create view view_3
as select 线路号,出发地,目的地,出发时间,所需时间 from 线路信息表 ②视图的撤消
drop view view_1; ③视图的查询
select * from view_3; select * from view_2; ④视图的更新
insert into view_1
values(‘20110001’,’拥挤’’85’’80’);
3.存储过程
①创建存储过程 create proc proc_zg as
select 车票编号,票价 from 车票信息表 where 线路号='103'; ②存储过程的查询 exec proc_zg; ③存储过程的修改 alter proc proc_zg as
select车票编号,票价 from车票信息表 where 线路号='104'
4、触发器
①创建触发器
create trigger z_select on 车票信息表 after insert as
select * from 车票信息表 select * from inserted go
insert into 车票信息表(车票编号,票价) values('20110001','80') ②触发器的删除
drop trigger z_select;
5、数据更新
①插入(前面已插入) ②修改
Update 车票信息表 Set 票价=90
Where 车票编号=’20110001’;
③删除
delete from车票信息表
where 车票编号=’20110002’;
6、 数据查询
SELECT 售票情况,票价 FROM 车票信息表 WHERE 线路号='101'
SELECT 售票情况,票价 FROM 车票信息表 WHERE 线路号='102'
SELECT 售票情况,票价 FROM 车票信息表 WHERE 线路号='103
'
SELECT 售票情况,票价 FROM 车票信息表 WHERE 线路号='104'
SELECT 汽车种类,最大载客量 FROM 汽车基本信息表 WHERE 线路号='101'
SELECT 汽车种类,最大载客量 FROM 汽车基本信息表 WHERE 线路号='102'
SELECT 汽车种类,最大载客量 FROM 汽车基本信息表 WHERE 线路号='103'
SELECT 汽车种类,最大载客量 FROM 汽车基本信息表 WHERE 线路号='104'
SELECT售票情况,票价 FROM 车票信息表 WHERE 线路号='106
'
SELECT 车票编号 FROM 车票信息表
WHERE 票价 BETWEEN 90 AND 110
五、系统设计、制作小结
通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。几天的数据库课程设计很快就结束了,在这短暂的几天的的时间里,发现自己学会了很多课外的东西,特别是和同学们一起讨论分析,以及复习了我们所学过的相关数据库知识,进一步了解了数据库的实践应用过程,增强了课外的动手实践能力。
数据库设计主要讨论数据库设计的方法和步骤应注意的事项。概念结构设计采用的是实体属性分析法。实体属性分析法是从总体的概念入手,从分析一个单位的事务活动开始,首先识别需求分析中所提供的实体及实体间的联系,建立一个初步的数据模型框架,然后在逐步的求精的方法加上必需的描述属性,形成一个完整的局部模型,称为用户视图,最后在加上这些视图集成一个统一的数据模式,称为用户视图的集成,这种统一的数据模式(即全局信息结构)通常用E-R图表示。逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。
总而言之,这次的课程设计我学到了很多有用很有实践意义的课外知识并体会了一个真理:实践是检验真理的唯一标准!在这里感谢老师和同学的帮助!
因篇幅问题不能全部显示,请点此查看更多更全内容