天津农学院计算机科学与信息工程系《SQL Server》教学实习报告实习名称:SQL Server专业:计算机科学与技术班级: 2010级农信班学号: ***********名:**指导教师:***成绩:2012年9 月目录目录 (1)1系统需求分析报告 (2)1.1概述 (2)1.2系统功能分析 (2)1.3数据流图 (3)1.4数据字典 (4)2概念及逻辑结构设计 (6)2.1 E-R图 (6)2.2关系模型 (7)2.3数据库结构 (8)3数据库设计 (9)3.1建立表—车票和顾客 (9)3.2 建立触发器 (11)4 系统软件结构 (13)4.1系统功能设计 (13)4.2其他需求 (14)4.3说明 (14)5 总结与体会 (16)6 参考文献 (17)1系统需求分析报告1.1概述汽车售票管理系统主要用于车站日常的票务处理。
车售票管理系统在正常运行中需要对使用该系统的主要是汽车站售票人员、汽车站售票工作的管理人员与系统管理员。
为达到操作过程中的直观、方便、实用、安全等要求,我们组在这个系统中采用模块化程序设计的方法,便于系统功能的组合和修改,以及扩充和维护。
1.2系统功能分析根据需求分析,本系统要实现以下的基本功能。
1.登录功能:分为汽车站售票人员和系统管理员两种权限登陆。
用户通过输入不同用户名和密码进行身份验证,系统通过用户名和密码判断不同用户的权限,从而确定该用户可以执行的操作。
2.车票信息查询功能:由汽车站的普通售票人员通过不同的检索入口,查询车票信息,并进行排序。
3.修改功能:汽车站售票人员、汽车站售票工作的管理人员能够修改自身的用户名和密码,系统管理员则能实现系统用户与普通用户的添加,修改普通用户与系统管理员的密码,以此确保该系统能够安全操作,避免不必要的损失。
4.汇总功能:对当天车票的信息进行汇总。
1.3数据流图图1-1 顶层图 图1-3 售票1层图顶层0层图售票记录1层图车票记录订票记录车票记录退票记录图1-5 退票1层图1.4数据字典1.数据项票号、票价、车次、日期、车型、开车时间、票种、座位号、起始站、终点站、身份证号、银行卡号、数量、退票时间、退票手续费、订票时间、订票手续费2.数据结构表1.1 车票的数据结构3.数据流数据流编号:DS1数据流名称:车票简述:车票有关信息数据流来源:用户执行售票操作结果数据流去向:购票旅客数据流组成:车票编号+车票类型+车次信息+座位信息+票价信息4.数据存储售票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,售出时间退票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,退票时间订票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,订票时间,顾客身份证号缺票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种车票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,售出时间,票数5.处理过程车票汇总:工作人员将一天所售出的票进行统计,包括票数,票类,形成确定的车票记录。
查询:将顾客需要的车票信息输入系统,并查询其是否可供应。
查询顾客信息:为订票所设,将顾客的准确信息记录,为其预定所车票。
处理买票:进行买票交易,把顾客需要的票(可供应)售出,并在系统中作相应记录,确定车票记录。
处理订票:进行订票交易,工作人员为顾客预定其所需车票,并在系统中作相应记录,确定订票记录。
处理退票:进行退票交易,工作人员为顾客办理退票手续,并在系统中作相应记录,确定退票记录。
2概念及逻辑结构设计2.1 E-R图本系统根据以上的设计规划出的实体有:车票实体、车站实体、顾客实体。
各个实体具体的描述E-R图如下:图2-1车票ER图图2-2 顾客ER图2.2关系模型车票与顾客之间的联系售票 1:N车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(身份证号,银行卡号,票号)退票1:N车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(身份证号,银行卡号,票号,退票时间,退票手续费)订票1:N车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(身份证号,银行卡号,票号,日期,交易时间,交易金额,数量,起始站,终点站)2.3数据库结构表2.3 PriceDiscount表详细设计表2.4 Price表详细设计字段名数据类型是否主键是否必填字段说明TerminalID 字符是是终点站编号OutStation 字符否否起始站TerminalName 字符否是终点站TNPYCode 字符否是拼音码TrainID 字符否是车次编号TicketPrice 单精度否是票价表2.5 Type表详细设计字段名数据类型是否主键是否必填字段说明RecordID 自动编号是是记录号TicketTypeID 单精度否是车票类型编号TicketType 字符否是车票类型3数据库设计本车站售票系统有两个实体,分别是车票和顾客,利用SQL建表如下:3.1建立表—车票和顾客车票顾客系统实现的具体功能和创建的各类代码如下所示:create database 练习on primary(name=trainticket,filename='E:\my.mdf',size=10mb,maxsize=30mb,filegrowth=2mb)log on(name=trainlog,filename='E:\my.ldf',size=10mb,maxsize=20mb,filegrowth=26%)Create table 车票(票号 nchar(10) primary key not null,日期 nchar(10) not null, 车次 nchar(10) not null, 座位号 nchar(10) Not null, 开车时间 nchar(10) not null,车型 nchar(10) not null, 检票口 nchar(10) not null, 起始站 nchar(10) not null,终点站 nchar(10) not null, 票价 nchar(10) not null, 票种 nchar(10) not null)Create table 顾客(身份证号 float primary key not null,银行卡号 float not null)3.2 建立触发器Trigger1create trigger 顾客_insert on 顾客for insert,updateasdeclare @_身份证号as floatselect @_身份证号=i.身份证号 from inserted iif not exists (select * from 顾客where 身份证号=@_身份证号) beginprint'该用户不存在!'rollback tranendelserollback tranprint'插入成功'Trigger2create trigger insead_of_inserton 车票instead of insertasdeclare@_票号 nchar(10),@_日期 nchar(10),@_车次 nchar(10),@_座位号 nchar(10),@_开车时间 nchar(10),@_车型 nchar(10)@_检票口 nchar(10)@_起始站 nchar(10)@_终点站 nchar(10)@_票价 nchar(10)@_票种 nchar(10)set @_票号=(select 票号from inserted)set @_日期=(select 日期from inserted)set @_车次 =(select 车次from inserted)set @_座位号=(select 座位号from inserted)set @_开车时间=(select 开车时间from inserted)set @_车型=(select 车型from inserted)set @_检票口=(select 检票口from inserted)set @_起始站=(select 起始站from inserted)set @_终点站=(select 终点站from inserted)set @_票种=(select 票种from inserted)set @_身份证号=(select 身份证号from inserted)set @_银行卡号=(select 银行卡号from inserted)insert 顾客values(@_身份证号, @_银行卡号)insert 车票values(@_票号, @_日期,@_车次,@_身份证号码,@_座位号,@_开车时间,@_车型,@_检票口,@_起始站,@_终点站,@_票种,@_银行卡号)4 系统软件结构4.1系统功能设计火车站售票管理系统主要设有五个主要功能模块:分别是车次管理、票价管理、票务管理、用户管理和查询管理。
1.车次管理模块该模块主要实现车次信息的编辑。
车次管理中的数据源为Access数据库中Train表,在此管理部分中,能够使用界面操作实现车次信息的编辑,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。
2.票价管理模块该模块主要实现票价信息的录入、修改与删除以及票价折扣信息的录入、修改与删除。
票价详细信息的录入、修改、删除,它的数据源为Access数据库的Price表。
在此管理部分中,通过票价管理(FrmPriceManage)界面来选择记录并决定执行何种操作,是修改、添加或删除。
当命令为修改或者添加时则自动跳转到票价编辑窗体(FrmPriceEdit)实现票价信息的编辑并更新数据库中相应数据记录。
3.票务管理模块票务管理部分实现前台售票、前台退票功能。
主要完成售票、远程售票、废票、取消废票功能、改签票、退票、取消退票功能、补票、售票查询和票款结算单填写等功能。
4.用户管理模块该模块主要实现用户添加,用户信息修改与用户的删除。
所有系统用户的管理,包括系统普通用户与系统管理员。
此管理模块数据源为Access数据库的Users表。
在系统主界面中首先进入的是名称为FrmUserMan的用户管理主窗体,通过提取用户名、用户类型来查看用户具体信息,选择添加或删除用户进入名为FrmUserEdit的用户编辑界面进行操作,操作完成便更新数据库数据。
5.查询管理模块该模块主要实现拥护通过查询界面可以根据条件进行车次时刻、车次票价查询。