数据库大作业火车订票系统_第1页
数据库大作业火车订票系统_第2页
数据库大作业火车订票系统_第3页
数据库大作业火车订票系统_第4页
数据库大作业火车订票系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中国地质大学(北京)数据库系统概论火车票网上订票系统实验报告小组成员:董威、韦飞阳、李建同、刘厚今学号:联系方式:使用数据库管理系统:SQL server 2012指导老师:宋莉2013年12月28日目录1 .小组成员及分工 02 . 需求分析 02.1 功能需求 02.1.1 查询 02.1.2 订票 02.1.3 退票 12.1.4 注册 12.1.5 用户登陆 12.1.6 修改密码 12.1.7 添加车次 12.2 数据需求 12.3 性能需求 2错误!未定义书签。错误!未定义书签。错误 !未定义书签。2.4数据流图 32.3.1 顶层数据流图 32.3.2 1层数据流图 33 . 概

2、念结构设计 33.1 系统结构简述 33.2 数据处理 33.3 生成 E-R图 44 逻辑结构设计 44.1 关系模式 45 物理结构设计 56 数据库实施 106.1 建立数据库 106.2 建立基本表 116.3 建立索引 146.4 创建视图 166.5 创建存储过程 166.6 创建触发器 176.7 插入数据 196.8 关系图 206.9 订购车票 206.10 退票 217 实验小结 211. 小组成员及分工董威:数据库的实施,即在查询分析器下编写代码建立数据库,创建基本表,建立基本表之间的关系、索引,创建存储过程等工 作。韦飞阳:主要负责逻辑结构的设计,即确定关系模式。李建同

3、:只要负责物理结构的设计,即确定各个基本表之间的关系,确定主外键。刘厚今:需求分析模块,主要负责寻找需求,绘制数据流图。2. 需求分析2.1 功能需求2.1.1 查询:用户、管理员都可以对车次进行查询:可以按照发车车次进行查询;可以按照出发地、目的地进行查询;可以按照类车类型、座位类型查询。车次信息包括:车次ID ,车号,出发地,目的地,列车类型,座位类型,票价,票数,车次信息只允许用户查询,不能修改。2.1.2 订票:用户登陆后,通过订票系统,根据自己你的需求找到自己的车次, 输入要预订的票数进行订票。要求订票记录应包括:订票记录 ID ,车次 ID ,用户 ID ,订票数量。2.1.3 退

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

5、入信息存入系统数据操作反馈mt 朋库用户输入订票数量检索系统数据库已得到订 票记录,添加用户请求的 订票记录,更新系统数据 库操作反馈用户输入退票数量检索系统数据库已得到订 票记录,删除用户请求的 订票记录,更新系统数据 库操作反馈用户管理员输入新密码更新系统数据库操作反馈管理员输入添加车次信息将新信息存入数据库操作反馈2.3 性能需求系统应能及时准确的根据用户权限及所输入的信息作出响应。由于查询功能对于用户来讲很重要,因为这直接影响了用户的订票决策,所以系统的准确性和及时性很重要。本系统是针对用户直接开放的,所以应该提供良好的接口。网上订票的数据是很重要的信息,系统应该保证用户的权限,对于车

6、次的 信息不能更改。同时还应该保证管理人员进行正常的维护、更新等工作, 保证数据的一致性。2.4 数据流图2.4.1 顶层数据流图2.4.2 1 层数据流图3. 概念结构设计3.1 系统结构简述本系统包括六个实体:订票人,订票单信息,车票信息,车次信息,操作员,余票信息。订票人与订票单、订票单与车票信息这两个关系是一对一的联系;车票信息与车次信息、 订票单信息与操作员这两个关系是1 对多的联系。3.2 数据处理输入:身份证号输出:订票单号,订票人身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号。输入:身份证号输出:车票号,始发站,车次号,发车时间,终点站,车票种类输入:车次号输出

7、:姓名,身份证号,联系电话,目的城市,始发城市。3.2.4查询余票数量输入:乘车区间和车次号输出:余票数量。3.3 生成E-R图车次信息表(车次号,始发站,终点站,途径站)订票单表(订单号,身份证号,订单时间,付款取票与否,车次号,车票号,票价,员工号)车票信息表(车票号,车次号,始发站,发车时间,终点站,车票种类,订 单号,车厢号,座位号)说明:车票种类为:“无座”或“硬座”或“硬卧”或“软 卧”余票信息表(车次号,车票种类,出发站,目的站,出发时间)5物理结构设计订票人表字段特殊属性身份证char(18)主键,非空姓名char(10)NOT NULL联系电话varchar(12)NOT N

8、ULL始发城巾varchar(10)NOT NULL目的城巾varchar(10)NOT NULL订单号char(20)外键订票单表字段特殊属性订单号char(20)主键身份证号char(18)外键订票时间datetimeNOT NULL付款取票与否char(2)NOT NULL 默认'是'或“否”车次号varchar(10)LIKE ' A-Z% '车票号char(20)外键票价intNOT NULL员工号char(20)外键车票表字段字段特殊属性车票号char(20)主键车次号varchar(10)外键始发站varchar(10)NOT NULL发车时间da

9、tetimeNOT NULL车厢号intNOT NULL座位号intNOT NULL终点站varchar(10)NOT NULL车票种类char(20)IN('软卧,硬卧,'软座,硬座,站票)订单号char(20)NOT NULL车次表字段特殊属性车次号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 默认'

10、男'或'女'电话varchar(12)NOT NULL余票信息表字段特殊属性车次号varchar(10)主键车票种类char(10)主键出发站varchar(10)NOT NULL目的站varchar(10)NOT NULL出发时间datatimeNOT NULL余票张数intNOT NULL6数据库实施6.1建立数据库create database 网上订票数据库on primary(name=网上订票数据库,filename = 数据库 网上订票数据库.mdf'size =5MBFILEGROWTH0%)log on( name=网上订票数据库_log ,f

11、ilename数据库 网上订票数据库_log.ldf'size =5MB,FILEGROWT=H2MB)6.2 建立基本表创建订票人表:create table 订票人表( 身份证号 char ( 18) not null primary key,姓名 varchar ( 10) not null,联系电话varchar( 12)notnull,始发城市varchar( 10)notnull,目的城市varchar( 10)notnull,订单号 char ( 20)创建操作员表:create table 操作员表( 员工号 char ( 10) primary key,订票点 var

12、char ( 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)notnull,终点站varchar(10)notnull,途经站varchar(100) )创建订票单表:create table 订票单表

13、( 订单号 char (20) primary key,身份证号 char ( 18) references 订票人表 ( 身份证号 ),订票时间 datetime not null,付款取票与否 char (2) check(付款取票与否in('是,否),车次号 varchar ( 10) check (车次号 LIKE 'A-Z%' ),车票号 char ( 20) not null,票价 int not null,员工号 char ( 10) references 操作员表 ( 员工号 )创建车票信息表:create table 车票信息表( 车票号char (2

14、0) primary key,车次号 varchar ( 10) check (车次号 LIKE 'A-Z%' ),始发站varchar( 10)notnull,发车时间 datetime not null,终点站varchar( 10)notnull,车票种类 char(4) check (车票种类 in( ' 无座 ' , ' 硬座 ' , ' 硬卧 ' , '软卧 ' ),订单号 char ( 20) references 订票单表 ( 订单号 ),车厢号 int not null,座位号 int not n

15、ull)创建余票信息表:create table 余票信息表( 车次号varchar ( 10) check ( 车次号LIKE 'A-Z%' ) primary key,出发站varchar ( 10) not null,目的站 varchar ( 10) not null,余票张数int notnull,车票种类char ( 20)primarykey,出发日期datatime)6.3 建立索引订票人表 :IF exists ( select * from sysindexes where name='pID_index' )drop index 订票人表

16、. pID_indexcreate unique index pID_indexon 订票人表 ( 身份证号 )with fillfactor =30订票单表 :IF exists ( select * from sysindexes where name='piaoDanNO_index' )drop index 订票单表 . piaoDanNO_indexcreate index piaoDanNO_indexon 订票单表 ( 订单号 )车票信息表:IF exists ( select * from sysindexes where name='piaoNO_in

17、dex' )drop index 车票信息表表. piaoNO_indexcreate index piaoNO_indexon 车票信息表( 车票号 )车次信息表:IF exists ( select * from sysindexes where name='cheCiNO_index' )drop index 车次信息表. cheCiNO_indexcreate index cheCiNO_indexon 车次信息表( 车次号 )操作员表 :IF exists ( select * from sysindexes where name='yuanGongN

18、O_index' )drop index 操作员表 . yuanGongNO_indexcreate index yuanGongNO_indexon 操作员表 ( 员工号 )6.4 创建视图create view allInfo_viewasselect 订票人表 . 姓名 , 订票人表 . 身份证号 , 订票单表 . 车次号 ,车票信息表. 车票号 , 车票信息表. 发车时间 , 车票信息表. 始发站,车票信息表. 终点站 , 订票单表 . 票价from 订票人表 inner join 订票单表on 订票人表 . 身份证号 = 订票单表 . 身份证号 inner join 车票信息

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

20、订单号 , 订票人表 . 身份证号 , 订票时间 , 付款取票与否, 车次号 , 车票号 , 票价 , 员工号from 订票单表 inner join 订票人表on 订票人表 . 身份证号 = 订票单表 . 身份证号where 订票单表 . 身份证号 =pID6.6 创建触发器create trigger 余票更新on 车票信息表for insertasdeclare 车次号 varchar(10)select 车次号=车次号from insertedupdate 余票信息表set 余票张数=余票张数-1where 车次号=车次号create trigger 余票更新 2on 车票信息表for

21、 deleteasdeclare 车次号 varchar(10)select 车次号=车次号from deletedupdate 余票信息表set 余票张数 =余票张数 +1where 车次号=车次号6.7 插入数据向操作员表中插入数据:insert into 操作员表values(, ' 洛阳 ' , ' 鲁金龙 ' , ' 男' ,)向车次信息表中插入数据:insert into 车次信息表values( 'K31' , ' 福州 ' , ' 洛阳 ' , ' 商丘、开封、郑州 ' )向订票人表中插入数据:insert into 订票人表values(, ' 鲁金龙 ' , ' 民权 ' ,' 洛阳 ' ,)insert into 订票单表values(, '2011-06-24 14:31:36',' 是' ,'K31' , 12.5,)向车票信息表中插入数据:insert into 车票信息表values(, 'K31' , ' 民权 ' , '2011-06-24 14:31:36','

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论