收藏 分享(赏)

数据库大作业(火车订票系统).doc

上传人:精品资料 文档编号:8498853 上传时间:2019-06-30 格式:DOC 页数:16 大小:538.32KB
下载 相关 举报
数据库大作业(火车订票系统).doc_第1页
第1页 / 共16页
数据库大作业(火车订票系统).doc_第2页
第2页 / 共16页
数据库大作业(火车订票系统).doc_第3页
第3页 / 共16页
数据库大作业(火车订票系统).doc_第4页
第4页 / 共16页
数据库大作业(火车订票系统).doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、中国地质大学(北京)数据库系统概论火车票网上订票系统实验报告小组成员:董威、韦飞阳、李建同、刘厚今学号:1004111120、1004111125、1004111119、1004111113联系方式:18810656994(董威)使用数据库管理系统:SQL server 2012指导老师:宋莉2013 年 12 月 28 日目录1.小组成员及分工 12.需求分析 12.1 功能需求 12.1.1 查询 12.1.2 订票 12.1.3 退票 12.1.4 注册 12.1.5 用户登陆 12.1.6 修改密码 12.1.7 添加车次 12.2 数据需求 12.3 性能需求 22.3.1准确性和及

2、时性 .22.3.2易用性 .22.3.3安全性 .22.4 数据流图 22.4.1 顶层数据流图 22.4.2 1 层数据流图 .23.概念结构设计 33.1 系统结构简述 33.2 数据处理 33.3生成 E-R图 .34逻辑结构设计 .54.1 关系模式 55 物理结构设计 56数据库实施 .76.1 建立数据库 76.2 建立基本表 76.3 建立索引 106.4 创建视图 116.5 创建存储过程 116.6 创建触发器 126.7插入数据 .126.8 关系图 136.9 订购车票 136.10 退票 147 实验小结 1401.小组成员及分工董威:数据库的实施,即在查询分析器下编

3、写代码建立数据库,创建基本表,建立基本表之间的关系、索引,创建存储过程等工 作。韦飞阳:主要负责逻辑结构的设计,即确定关系模式。李建同:只要负责物理结构的设计,即确定各个基本表之间的关系,确定主外键。刘厚今:需求分析模块,主要负责寻找需求,绘制数据流图。2.需求分析2.1 功能需求2.1.1 查询:用户、管理员都可以对车次进行查询:可以按照发车车次进行查询;可以按照出发地、目的地进行查询;可以按照类车类型、座位类型查询。车次信息包括:车次 ID,车号,出发地,目的地,列车类型,座位类型,票价,票数,车次信息只允许用户查询,不能修改。2.1.2 订票:用户登陆后,通过订票系统,根据自己你的需求找

4、到自己的车次,输入要预订的票数进行订票。要求订票记录应包括:订票记录ID, 车次 ID,用户 ID,订票数量。2.1.3 退票:用户登录后,通过退票系统,找到自己的订票信息,输入要退的票 数进行退票。2.1.4 注册:想要订票的用户必须先注册然后登陆订票。用户信息包括:用户ID,用户名,密码,邮箱。2.1.5 用户登陆:主要完成用户和管理员的登陆。用户想订票必须登陆后才能进 行订票,如果没有注册的用户应该与注册页面相连接。2.1.6 修改密码:用户和管理员登陆后可以修改个人信息。2.1.7 添加车次:管理员登陆后可以添加新的车次。2.2 数据需求信息输入 信息处理 信息输出用户输入所需车次 检

5、索系统数据库 符合用户需求的车次及相关信息用户管理员输入用户名、密码进行登录检索系统数据库 成功登陆后的首页用户输入个人信息进行注册将输入信息存入系统数据库操作反馈用户输入订票数量 检索系统数据库已得到订票记录,添加用户请求的订票记录,更新系统数据库操作反馈用户输入退票数量 检索系统数据库已得到订票记录,删除用户请操作反馈中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日1求的订票记录,更新系统数据库用户管理员输入新密码 更新系统数据库 操作反馈管

6、理员输入添加车次信息将新信息存入数据库 操作反馈2.3 性能需求2.3.1准确性和及时性系统应能及时准确的根据用户权限及所输入的信息作出响应。由于查询功能对于用户来讲很重要,因为这直接影响了用户的订票决策,所以系统的 准确性和及时性很重要。2.3.2易用性本系统是针对用户直接开放的,所以应该提供良好的接口。2.3.3安全性网上订票的数据是很重要的信息,系统应该保证用户的权限,对于车次的信息不能更改。同时还应该保证管理人员进行正常的维护、更新等工作,保证数据的一致性。2.4 数据流图2.4.1 顶层数据流图2.4.2 1 层数据流图中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论

7、班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日23.概念结构设计3.1 系统结构简述本系统包括六个实体:订票人,订票单信息,车票信息,车次信息,操作员,余票信息。订票人与订票单、订票单与车票信息这两个关系是一对一的联系;车票信息与车次信息、订票单信息与操作员这两个关系是 1 对多的联系。3.2 数据处理3.2.1. 查询所有订票人信息:输入:身份证号输出:订票单号,订票人身份证号,订单时间,付款取票与否,车次号,车票号 ,票价,员工号。3.2.2. 查询订票人的已定车票的信息:输入:身份证号输出:车票号,始

8、发站,车次号,发车时间,终点站,车票种类。3.2.3. 查询某一车上乘坐的乘客的信息:输入:车次号输出:姓名,身份证号,联系电话,目的城市,始发城市。3.2.4 查询余票数量输入:乘车区间和车次号输出:余票数量。3.3生成 E-R图中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日3订票人身份证号姓名始发站 目的站联系电话订单号属于订票信息车票号员工号身份证号车次号订单号票价订单时间取票与否操作 操作员订票点号员工号电话性别姓名属于车票信息订单号车

9、票号始发站终点站车次号发车时间车票种类车厢号座位号属于 车次信息车次号 始发站 终点站途径车站票价查询余票信息车次号订票人表(身份证号,姓名,联系电话,始发城市,目的城市,订单号)操作员表(员工号,订票点号,姓名,性别,电话)车次信息表(车次号,始发站,终点站,途径站)订票单表(订单号,身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号)车票信息表(车票号,车次号,始发站,发车时间,终点站,车票种类,订单号,车厢号,座位号)说明:车票种类为:“无座”或“硬座”或“硬卧”或“软卧”余票张数出发站 目的站 出发日期11111n1n11车次号订票人表(身份证号,姓名,联系电话,始发城市,

10、目的城市,订单号)操作员表(员工号,订票点号,姓名,性别,电话)车次信息表(车次号,始发站,终点站,途径站)订票单表(订单号,身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号)车票信息表(车票号,车次号,始发站,发车时间,终点站,车票种类,订单号,车厢号,座位号)说明:车票种类为: 无座 或硬座或 硬卧或 软卧车次号订票人表(身份证号,姓名,联系电话,始发城市,目的城市,订单号)操作员表(员工号,订票点号,姓名,性别,电话)车次信息表(车次号,始发站,终点站,途径站)订票单表(订单号,身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号)车票信息表(车票号,车次号,始发

11、站,发车时间,终点站,车票种类,订单号,车厢号,座位号)说明:车票种类为: 无座 或硬座或 硬卧或 软卧车次号订票人表(身份证号,姓名,联系电话,始发城市,目的城市,订单号)操作员表(员工号,订票点号,姓名,性别,电话)车次信息表(车次号,始发站,终点站,途径站)订票单表(订单号,身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号)车票信息表(车票号,车次号,始发站,发车时间,终点站,车票种类,订单号,车厢号,座位号)说明:车票种类为: 无座 或硬座或 硬卧或 软卧车票种类中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:10041111

12、20 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日44逻辑结构设计4.1 关系模式订票人表(身份证号,姓名,联系电话,始发城市,目的城市,订单号)操作员表(员工号,订票点号,姓名,性别,电话)车次信息表(车次号,始发站,终点站,途径站)订票单表(订单号,身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号)车票信息表(车票号,车次号,始发站,发车时间,终点站,车票种类,订单号,车厢号,座位号)说明:车票种类为:“无座”或“硬座”或“硬卧”或“软卧”余票信息表(车次号,车票种类,出发站,目的站,出发时间)5 物理结构设计订票人表字段 类型 特殊属性

13、身份证 char(18) 主键,非空姓名 char(10) NOT NULL联系电话 varchar(12) NOT NULL始发城市 varchar(10) NOT NULL目的城市 varchar(10) NOT NULL订单号 char(20) 外键订票单表字段 类型 特殊属性订单号 char(20) 主键身份证号 char(18) 外键订票时间 datetime NOT NULL付款取票与否 char(2)NOT NULL,默认是或“否”车次号 varchar(10)LIKEA-Z%车票号 char(20) 外键票价 int NOT NULL员工号 char(20) 外键车票表字段 字

14、段 特殊属性车票号 char(20) 主键车次号 varchar(10) 外键始发站 varchar(10) NOT NULL中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日5发车时间 datetime NOT NULL车厢号 int NOT NULL座位号 int NOT NULL终点站 varchar(10) NOT NULL车票种类 char(20)IN(软卧,硬卧,软座,硬座,站票)订单号 char(20) NOT NULL车次表字段 类

15、型 特殊属性车次号 char(20) 主键始发站 varchar(10) NOT NULL终点站 varchar(10) NOT NULL途径站 varchar(10) NOT NULL操作员表字段 类型 特殊属性员工号 char(20) 主键订票点号 char(20) NOT NULL姓名 varchar(10) NOT NULL性别 char(2)NOT NULL,默认男或女电话 varchar(12) NOT NULL余票信息表字段 类型 特殊属性车次号 varchar(10) 主键车票种类 char(10) 主键出发站 varchar(10) NOT NULL目的站 varchar(1

16、0) NOT NULL出发时间 datatime NOT NULL余票张数 int NOT NULL中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日66数据库实施6.1 建立数据库create database 网上订票数据库on primary(name=网上订票数据库, filename=E:数据库网上订票数据库.mdf,size=5MB,FILEGROWTH=10%)log on(name=网上订票数据库_log, filename=E:数

17、据库网上订票数据库_log.ldf,size=5MB,FILEGROWTH=2MB)6.2 建立基本表创建订票人表:create table 订票人表(身份证号 char(18) not null primary key,姓名 varchar(10) not null,联系电话 varchar(12) not null,始发城市 varchar(10) not null,目的城市 varchar(10) not null,订单号 char(20)中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师

18、: 宋莉 日期:2013 年 12 月 28 日7创建操作员表:create table 操作员表(员工号 char(10) primary key,订票点 varchar(10) not null,姓名 varchar(10) not null,性别 char(2) check(性别 in(男,女),电话 varchar(12) not null)创建车次信息表:create table 车次信息表( 车次号 varchar(10) check (车次号 LIKE A-Z%) primary key ,始发站 varchar(10) not null,终点站 varchar(10) not

19、null,途经站 varchar(100) )创建订票单表:create table 订票单表(订单号 char(20) primary key,身份证号 char(18) references 订票人表(身份证号),订票时间 datetime not null,中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日8付款取票与否 char(2) check(付款取票与否 in(是,否),车次号 varchar(10) check (车次号 LIKE

20、A-Z%),车票号 char(20) not null,票价 int not null,员工号 char(10) references 操作员表(员工号)创建车票信息表:create table 车票信息表(车票号 char(20) primary key,车次号 varchar(10) check (车次号 LIKE A-Z%),始发站 varchar(10) not null,发车时间 datetime not null,终点站 varchar(10) not null,车票种类 char(4) check(车票种类 in(无座,硬座,硬卧,软卧),订单号 char(20) referen

21、ces 订票单表(订单号),车厢号 int not null,座位号 int not null)创建余票信息表:create table 余票信息表(车次号 varchar(10) check (车次号 LIKE A-Z%) primary key,出发站 varchar(10) not null,目的站 varchar(10) not null,余票张数 int not null,车票种类 char(20) primary key,中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日

22、期:2013 年 12 月 28 日9出发日期 datatime)6.3 建立索引订票人表:IF exists (select * from sysindexes where name=pID_index)drop index 订票人表.pID_indexcreate unique index pID_indexon 订票人表(身份证号)with fillfactor=30订票单表:IF exists (select * from sysindexes where name=piaoDanNO_index)drop index 订票单表.piaoDanNO_indexcreate index

23、piaoDanNO_indexon 订票单表(订单号)车票信息表:IF exists (select * from sysindexes where name=piaoNO_index)drop index 车票信息表表.piaoNO_indexcreate index piaoNO_indexon 车票信息表(车票号)车次信息表:IF exists (select * from sysindexes where name=cheCiNO_index)drop index 车次信息表.cheCiNO_indexcreate index cheCiNO_indexon 车次信息表(车次号)操作员

24、表:IF exists (select * from sysindexes where name=yuanGongNO_index)drop index 操作员表.yuanGongNO_index中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日10create index yuanGongNO_indexon 操作员表(员工号)6.4 创建视图create view allInfo_viewasselect 订票人表.姓名, 订票人表.身份证号,

25、订票单表.车次号,车票信息表.车票号,车票信息表.发车时间,车票信息表.始发站,车票信息表.终点站,订票单表.票价from 订票人表 inner join 订票单表on 订票人表.身份证号= 订票单表.身份证号 inner join 车票信息表on 订票单表.车票号= 车票信息表.车票号 inner join 车次信息表on 车票信息表.车次号= 车次信息表.车次号6.5 创建存储过程创建存储过程,通过身份证号查询订票人信息:create procedure pInfo_procpID char(18)asselect 身份证号,姓名,联系电话,始发城市,目的城市,订单号from 订票人表 w

26、here 身份证号=pID创建存储过程,通过身份证号查询订票人订票信息:create procedure ticket_procpID char(18)asselect 姓名,订票单表.订单号,订票人表.身份证号,订票时间,付款取票与否,车次号,车票号,票价,员工号from 订票单表inner join 订票人表on 订票人表.身份证号= 订票单表.身份证号where 订票单表.身份证号=pID中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日11

27、6.6 创建触发器create trigger 余票更新on 车票信息表for insert asdeclare 车次号 varchar(10)select 车次号=车次号 from insertedupdate 余票信息表set 余票张数=余票张数-1where 车次号=车次号create trigger 余票更新2on 车票信息表for delete asdeclare 车次号 varchar(10)select 车次号=车次号 from deletedupdate 余票信息表set 余票张数=余票张数+1where 车次号=车次号6.7插入数据向操作员表中插入数据:insert into

28、 操作员表values(2011060001,洛阳,鲁金龙,男,15138725528)向车次信息表中插入数据:insert into 车次信息表values(K31,福州,洛阳,商丘、开封、郑州)向订票人表中插入数据:insert into 订票人表values(411421199005112071,鲁金龙,15138725528,民权,洛阳,20110624093806000001)中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日12向订票单

29、表中插入数据:insert into 订票单表values(20110624093806000001,411421199005112071,2011-06-24 14:31:36,是,K31,20110624093806037901,12.5,2011060001)向车票信息表中插入数据:insert into 车票信息表values(20110624093806037901,K31,民权,2011-06-24 14:31:36,洛阳,硬座,20110624093806000001,12,021)想余票信息表中插入数据:insert into 车票信息表values(K31,民权,洛阳,135

30、,2011-06-24 13:24:00,硬座)6.8 关系图6.9 订购车票insert into 车票信息表values中国地质大学(北京) 期末考试论文专用课程名称:数据库系统概论 班号:10041111 学号:1004111120 等 姓名:董威等 成绩: 任课教师: 宋莉 日期:2013 年 12 月 28 日13(20130013,T90,南京,2013-07-09 13:23:13,河南,硬座,20130013,06,23)6.10 退票delete 车票信息表where 车次号=T907 实验小结通过这次大作业的设计,我们团队经过了几次的激烈讨论,由组长带领组员,通过对火车订票

31、系统的需求分析,概念结构设计,逻辑结果设计,物理结构设计,建立数据库、基本表,创建存储过程、创建触发器以保证订票时对余票数量的修改,我们对数据库有了进一步的理解,同时也为期末考试进行了一个粗略的复习,对基本概念的理解更加深刻,对本书中的重点,如模式的分解等内容理解加深。在时间的过程中,发现对 SQL语言的掌握还远远不够,这也是在大作业的设计过程中遇到的一个大难题,尤其是在做存储过程和触发器的时候,没有掌握代码的格式和方法,所以花了很长时间来熟悉创建存储过程和触发器的代码上。在周四上机掩饰的时候由于没有做出触发器所以没有演示订票的过程,课下我们有进行了修改,能够进行订票的操作。最后感谢老师这一学期的悉心教导,我们收获很多。谢谢老师

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报