火车票网上购票管理系统数据库系统分析与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1 绪论 (1)
1.1系统简介 (1)
1.2设计目的 (1)
1.3设计内容 (2)
2 需求分析 (2)
2.1.需求分析的任务 (2)
2.2系统数据流程分析 (3)
2.3数据字典 (4)
3 概念模型设计 (8)
3.1概念模型设计的方法和步骤 (8)
3.2系统概念模型 (16)
4 逻辑模型设计 (17)
4.1逻辑模型设计的方法 (17)
4.2逻辑模型实现 (18)
4.3数据完整性约束定义 (19)
5 物理数据库模型设计与实现 (22)
5.1物理数据库模型的图示 (22)
5.2物理数据库模型的详细表示 (24)
5.3物理数据库模型的实现 (27)
总结 (35)
参考文献 (36)
1 绪论
1.1系统简介
1.2设计目的
本火车票网上购票系统考虑到火车站的管理和规范问题以及火车票的管理问题,是一个困扰我们多年的问题,也是政府管理中的一个难点。

虽然订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业
务的一个简单的部分,但是它涉及到管理与客户服务等多方面,因此,过
去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,这就
要求一种全新的订票方式——网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务。

本次设计便是利用开发工具
PowerDesigner,以及结构化的系统设计方法开发的一个火车站网上订票
系统,它能方便快捷地运用在火车站订票业务的营运之中。

然而设计网上购票系统,数据库设计显得尤为重要。

但是在原有的以人工方式进行票务数据管理存在着较多的缺点,如:效率底,保密性差,冗余度大,不便于查找,更新,维护等。

诸如这些情况,给各相关部门工
作人员带来了很大困难,严重影响了他们的工作效率。

运用计算机技术和
数据库技术来实现票务信息的现代化管理,具有手工管理所无法比拟的优
点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,
成本底等。

这些优点能够极大地提高信息管理和业务管理的效率。

在本系统中,系统用户共有两种, 并根据用户权限的不同而实现不同的功能,如管理员具有添加、修改、删除某火车相关信息及修改自己的个
人信息的功能。

而用户有对车票信息、车次信息、订票信息查询功能、改
签功能及退票功能。

所以系统利用计算机中的数据库的高效率大大减轻了学校票点工作人员的劳动强度, 提高了各部门的工作效率。

1.3设计内容
在本次TOS(Train tickets online reservation system)数据库设计中,采用的是结构化的系统设计思想,在概念模型中设计了六个实体,它们分别是:管理员、用户、乘客、车票信息、订单信息、列车信息。

利用PowerDesigner系统分析与建模工具建立CDM(数据概念模型),并同过CDM模型生成LDM和PDM(数据物理模型),并在PDM基础上生成TOS 数据库。

2 需求分析
2.1 .需求分析的任务
在本次TOS数据库设计中在准确地理解用户的要求,进行细致的调查分析的基础上,并且将用户非形式的需求陈述转为完整的需求定义,再由需求定义转换到相应的需求规格说明。

理解客户需求,询问用户如何看待未来需求变化。

让客户解释其需求,而且随着开发的继续,还要经常询问客户保证其需求仍然在开发的目的之中。

具体的分析任务如下:
⑴、功能需求。

对于用户而言,功能需求主要有查询功能,如车票查询,车次查询;
购票功能,对所选的票务进行购买;付款功能;改签功能,退票功能等。

对于铁路管理而言,功能需求主要有票务管理、查询、跟新、修改等功能。

⑵、性能需求。

性能需求主要是要求主要有:软件的运行效率,软件的安全性、软件的可持续性、软件的稳定行等性能要求。

这一性能要求直接决定这软件的
可应用性,如在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段。

⑶、表数据编辑
创建数据字典和ER 图表ER 图表和数据字典可以让任何了解数据库的人都明确如何从数据库中获得数据。

ER图对表明表之间关系很有用,而数据字典则说明了每个字段的用途以及任何可能存在的别名。

对SQL 表达式的文档化来说这是完全必要的。

2.2 系统数据流程分析
火车票网上购票管理信息系统数据库设计与实现-TOS数据库设计的数据流成图(按用户购买火车票流程)如下:
(1)顶层数据流程图如图2.2
图2.2.1 顶层数据流
(2)第一层数据流程图,如图2.2.2:
图2.2.2 第一层数据流程图
2.3 数据字典
在数据流程图中,数据信息和处理过程通过数据字典进行详细描述,在数据字典中主要对数据流程图中的数据流、数据存储和处理过程给出更详细、更准确的说明。

⑴、数据流定义,如表2.3.1.
表2.3.1 数据流定义
名称代码域数据类型长度乘客姓名PassengerName <None> Characters (10) 10
乘客手机号PassengerTel <None> Characters (11) 11
乘客票种PassengerTicketType <None> Characters (10) 10
乘客证件号码PassengerIDNumber <None> Characters (21) 21
乘客证件类型PassengerIdType <None> Characters (10) 10
乘车人姓名TicketPassengerName <None> Characters (10) 10
乘车人身份证号TicketPassengerID <None> Characters (21) 21
列车历时TrainAllTime <None> Date & Time
列车发车时间TrainSetOutTime <None> Date & Time
列车始发站TrainStart <None> Characters (10) 10
列车类型TrainType <None> Characters (10) 10
列车终点站TrainEnd <None> Characters (10) 10
列车车次TrainNumber <None> Characters (10) 10
发车时间TicketSetoutTime <None> Date & Time
席别PassengerClassify <None> Characters (10) 10
座位号TicketSeat <None> Characters (10) 10
旅客类型UserType <None> Characters (10) 10
用户出生日期UserBirthDate <None> Date & Time
用户地址UserAddress <None> Characters (21) 21
用户姓名UserName <None> Characters (10) 10
用户性别UserSex <None> Characters (1) 1
用户手机号码UserTelNumber <None> Characters (11) 11
用户电子邮件UserEmail <None> Characters (15) 15
用户证件号码UserIdNumber <None> Characters (21) 21
用户证件类型UserIdType <None> Characters (10) 10
用户邮编UserPostl <None> Characters (10) 10
票价TicketPrice 金额Number (8,2) 8
票号TicketNumber <None> Characters (10) 10
票种TicketType <None> Characters (10) 10
管理员住址ManagerAddress <None> Characters (21) 21
管理员姓名ManagerName <None> Characters (10) 10
管理员性别ManagerSex <None> Characters (1) 1
管理员电话ManagerTel <None> Characters (11) 11
管理员编号ManagerNumber <None> Characters (10) 10
管理员邮编ManagerEmail <None> Characters (10) 10
终点站TicketEnd <None> Characters (10) 10
订单应付金额OrderPayMoney 金额Number (8,2) 8
订单座位信息OrderSeat <None> Characters (10) 10
订单支付状态OrderPayState <None> Characters (10) 10
订单支付账户OrderPayNumber <None> Characters (21) 21
订单时间OrderTime <None> Date & Time
订单用户OrderUserName <None> Characters (10) 10
订单用户身份证号OrderUserId <None> Characters (21) 21
订单编号OrderNumber <None> Characters (10) 10
订单车次信息OrderTrainNumber <None> Characters (10) 10
订单车票张数OrderTicketNumber <None> Characters (10) 10
起始站TicketStart <None> Characters (10) 10
车型TicketTrainType <None> Characters (10) 10
车次TicketTrainNumber <None> Characters (10) 10
⑵、数据实体定义,如表2.3.2.
表2.3.2 数据实体定义
名称代码父生成数字乘客TOS_Passenger Conceptual Data Model 'TOS' TRUE
火车信息TOS_TrainInfo Conceptual Data Model 'TOS' TRUE
用户TOS_User Conceptual Data Model 'TOS' TRUE
管理员TOS_Manager Conceptual Data Model 'TOS' TRUE
订单信息TOS_Order Conceptual Data Model 'TOS' TRUE
车票TOS_Ticket Conceptual Data Model 'TOS' TRUE 2)数据存储定义
可以采用如下表格的形式给出系统的主要数据定义,如表2.3.2所示。

表2.3.2 系统主要数据存储定义
编号名称输入输出数据量存取频度存取方式说明
D1 乘客乘车信息查看乘客
信息输出
50000条
10000次/

联机处
理;检索
和更新;
随即检索
乘客身份
证好非空
切唯一
D2 车票信息车票售出
信息显示已售
车票与车
票存于两
50000条10000次/

联机处
理;检索
和更新;
随即检索
票号唯一
且非空
D3 订单信息订单完成
量订单交易
总量及金

50000条10000次/

联机处
理;检索
和更新;
随即检索
订单号唯
一且非空
D4 列车信息乘客数量乘客上下
车信息50000条10000次/

联机处
理;检索
和更新;
随即检索
车次唯一
且非空
3)处理过程
可以采用如下表格的形式给出系统的主要处理过程定义,如表2.3.4所示。

表2.3 .4系统主要处理过程定义
序号处理过程名称输入输出处理说明
P1.1 乘客管理乘客基本情况乘客乘车记录对乘客乘车信息进行统计
P1.2 订单管理订单基本信息
及订单完成情
况订单总交易量
及金额
统计订单的信息
P1.3 列车管理列车基本信息列车运营情况统计列车运行效益
3 概念模型设计
3.1 概念模型设计的方法和步骤
在本次数据库设计中采用的是PowerDesigner设计软件进行概念模型设计具体步骤如下:
⑴打开PowerDsigner软件爱你选择 File→New Model 命令,弹
出如图 3.1.1所示的窗口,在该窗口中选择要建立的模型类型-----Conceptual Data Model(概念模型)
图3.1.1 New Model 窗口
⑵单击“确定”按钮,打开如图2所示的CDM工作区。

工作区包
括左侧的浏览窗口、右侧的设计窗口、下侧的输出窗口和浮动的工具窗口,可以利用工具窗里的图标在设计窗口中设计E-R图。

图3.1.2 CDM工作区
⑶单击工具窗口中的“实体”图标,光标变为该图标形状,在设计器窗口中的适当位置单击,再单击的位置上将出现一个实体符号,如图3所示。

图3.1.3 创建实体
⑷在设计窗口的空白区域右击使得光标变为箭头形状,然后选中该实体并双击打开如图4所示的Entity Properties(实体属性)窗口。

图3.1.4 Entity Properties(实体属性)窗口
⑸定义的五个实体及其属性。

图3.1.5管理员实体及其属性
图3.1.6乘客实体及其属性
图3.1.7火车信息实体及其属性
图3.1.8用户实体及其属性
图3.1.9订单信息实体及其属性
图3.1.10车票实体及其属性
⑹单击工具窗口中的“联系”图标,单击第一个实体“管理员”,保持鼠标左键按下的同时将光标拖动到第二个实体“用户”上然后释放鼠标左键,建立联系。

并逐步完成其它联系的建立。

图3.1.11建立联系
⑺设置定义域,选择Model→Domains命令,打开List of Domains(域列表)窗口,在其中新增加一个域,如图3.1.12所示。

图3.1.12 List of Domains窗口
⑻、双击要引用的实体图形符号,在Domain栏中单击,则显示所有预先定义好的域的名称,选择合适的域“金额”,然后单击Apply按钮,即可看到属性的数据类型变为域的数据类型。

如下图。

图3.1.13 车票实体增加公用域“金额”
图3.1.14 订单信息实体增加公用域“金额”
⑼、选择Tools→Check Model命令,打开Check Model Parameters 窗口,如图3.1.15所示。

图3.1.15 Check Model Parameters窗口
⑽、设置检查选项后,单击“确定”按钮,开始执行检查。

完毕后,弹出Result List 窗口,如图3.1.16。

图3.1.16 Result List窗口
⑾、查看结果并根据提示进行修该,由图3.1.16可知,本CDM模型有警告但无错误,CDM模型建立完毕。

3.2 系统概念模型
图3.2.1 TOS—火车票网上购票CDM模型
4 逻辑模型设计
4.1 逻辑模型设计的方法
LDM是PowerDesigner用于完成信息系统的逻辑设计。

虽然LDM仍然是独立于DBMS的,但可以进行外部键、索引、视图等对象的设计工
作。

CDM生成LDM的具体方法如下:
⑴、打开所建的CDM模型,选择Tools→Generate Logical Data
Model命令,打开如图4.1.1所示的LDM Generation Options(生成
LDM的选项设置)窗口。

图4.1.1 LDM Generation Options窗口
⑵、选择Detail选项卡,进行其他选项的设置如图
图4.1.2 Detail 选显卡
⑶、选择Selection选项卡,可以选择CDM、实体,如图4.1.3.
图4.1.3 Selection 选项卡
⑷、单击“确定”按钮,开始生成LDM。

TOS(火车票网上购票系统)LDM
生成的LDM。

4.2 逻辑模型实现
图4.2.1 PDM模型
4.3 数据完整性约束定义
根据上面的关系模式,数据库的完整性约束如下所示:
1)实体完整性约束
①、管理员表中的主键是管理员编号。

图4.3.1 管理员表列
②、乘客表中主键为乘客姓名。

图4.3.2 乘客表列
③、火车信息表中的主键为:
图4.3.3 火车信息表表列④、用户表中的主键为用户姓名
图4.3.4 用户表表列
⑤、订单信息表的主键为订单号
图4.3.5 订单表表列⑥、车票表的主键为票号
图4.3.6 车票表表列
2)参照完整性约束
由1)实体完整性约束中的图可以得到如下的参照完整性:
①、管理员表由于没有用到其它表中的数据,所一其外键为空。

②、乘客表中的数据用到用户表、火车信息表、车票表的信息,
且乘客一定存在于用户表中,乘客一定在某一火车上和乘客与车票是一对一的联系所以其外键为:客户姓名、列车车次、票号。

③、火车信息表中的数据没有用到其它表中的数据,所以其外键
为空。

④、管理员表与用户表是一对多的联系,且一个用户一定有管理
员,所用户表的外键为管理员编号。

⑤、订单一定是由用户都买车票而形成,且由管理员管理,所以
其外键为管理员编号和用户姓名。

⑥、车票由乘客持有,由订票产生,并对应确定的列车所以其外
键为乘客姓名、订单编号和列车车次。

由以上分析可知,TOS_PDM模型符合参照完整性约束。

5 物理数据库模型设计与实现
5.1 物理数据库模型的图示
⑴、通过已建立的LDM模型,生成TOS(火车票网上购票)的PDM
模型建立过程如下图。

图5.1.1 TOS_PDM模型建立
图5.1.2 TOS_PDM模型
5.2 物理数据库模型的详细表示
本环节将以车票表为模型进行详细表示,具体表如下:
①、车票表的图像表示,如图5.2.1。

图5.2.1 车票表图像表示
②、车票表General选项,如图5.2.2。

图5.2.2 车票表“General”选项
③、车票表的Columns选项,如图5.2.3。

图5.2.3 车票表“Columns”选项④、车票表的Index选项,如图5.2.4.
图5.2.4 车票表“Index”选项⑤、车票表的Keys选项,如图5.2.5.
图5.2.5 车票表“Keys”选项⑥、车票表的Physical Options选项,如图5.2.6。

图5.2.6 车票表“Physical Options”选项
⑦、车票表的Preview选项,如图5.2.7。

图5.2.7 车票表“Preview”选项
5.3 物理数据库模型的实现
在本次TOS(火车票网上购票)系统设计中,在连接数据库是,使用的是ODBC接口连接数据库,具体步骤及所建数据库结果如下:
⑴在PDM模型中选择Database→Connet命令,打开Connect to a
DataSourse窗口,如图5.3.1所示。

图5.3.1 Connect to a Data Sourse 窗口
⑵、在ODBC machine data source下拉列表中选择一个建立的数据源,并在ODBC中建立一个数据库,在本设计中已经建立好数据库即TOS数据库,如图5.3.2所示。

图5.3.2 数据库建立
⑶、查看连接信息选择Database→Connection Information命令,可以查看有关连接数据库的信息,如图5.3.3所示。

图5.3.3 TOS数据库连接信息
⑷、选择Database→Generate Database命令,打开Database Generation窗口,如图3.3.4所示。

图5.3.4 Database Generation窗口
⑸、选择Option选项卡,如图5.3.5所示,在次选项卡中可以对各类PDM对象生成参数,选择Seclect选项卡,如图5.3.6所示,可以选择需要生成的对象。

图5.3.5生成数据库格式设置图5.3.6生成数据库对象选择
⑹、选择Preview选项卡进行预览或单击“确定”生成数据库。

从此选项卡中可以看到生成数据库所需的代码。

图5.3.7 Preview选项卡
⑺、点击“确定”按钮后生成的数据库如图5.3.8所示,共生成六个表:TOS_Manager、TOS_Order、TOS_Passenger、TOS_Ticket、TOS_TrainInfo、TOS_User。

图5.3.8 生成数据库六个表
⑻、其中TOS_Order表中各列如图5.3.9。

图5.3.10 TOS_表中各列显示
⑼、生成数据库部分代码:
go
/*========================================================== ====*/
/* Table: TOS_TrainInfo */ /*========================================================== ====*/
create table TOS_TrainInfo(
TrainNumber char(10)not null,
TrainType char(10)not null,
TrainSetOutTime datetime not null,
TrainStart char(10)not null,
TrainEnd char(10)not null,
TrainAllTime datetime not null,
constraint PK_TOS_TRAININFO primary key nonclustered (TrainNumber)
)
go
/*==========================================================
====*/
/* Table: TOS_User */
/*========================================================== ====*/
create table TOS_User(
UserName char(10)not null,
ManagerNumber char(10)not null,
UserSex char(1)not null,
UserAddress char(21)not null,
UserPostl char(10)not null,
UserBirthDate datetime not null,
UserIdType char(10)not null,
UserIdNumber char(21)not null,
UserTelNumber char(11)not null,
UserEmail char(15)not null,
UserType char(10)null,
constraint PK_TOS_USER primary key nonclustered (UserName) )
go
/*========================================================== ====*/
/* Index: Management_FK */ /*========================================================== ====*/
create index Management_FK on TOS_User(
ManagerNumber ASC
)
go
alter table TOS_Order
add constraint FK_TOS_ORDE_MAKE1_TOS_USER foreign key (UserName)
references TOS_User(UserName)
go
alter table TOS_Order
add constraint FK_TOS_ORDE_MANAGEMEN_TOS_MANA foreign key (ManagerNumber)
references TOS_Manager(ManagerNumber)
go
alter table TOS_Passenger
add constraint FK_TOS_PASS_HAVE1_TOS_TRAI foreign key (TrainNumber)
references TOS_TrainInfo(TrainNumber)
go
alter table TOS_Passenger
add constraint FK_TOS_PASS_HAVE3_TOS_TICK foreign key (TicketNumber)
references TOS_Ticket(TicketNumber)
go
alter table TOS_Passenger
add constraint FK_TOS_PASS_MAKE2_TOS_USER foreign key (UserName)
references TOS_User(UserName)
go
alter table TOS_Ticket
add constraint FK_TOS_TICK_HAVE2_TOS_TRAI foreign key (TrainNumber)
references TOS_TrainInfo(TrainNumber)
go
alter table TOS_Ticket
add constraint FK_TOS_TICK_HAVE4_TOS_PASS foreign key (PassengerName)
references TOS_Passenger(PassengerName)
go
alter table TOS_Ticket
add constraint FK_TOS_TICK_INCLUDE_TOS_ORDE foreign key
(OrderNumber)
references TOS_Order(OrderNumber)
go
alter table TOS_User
add constraint FK_TOS_USER_MANAGEMEN_TOS_MANA foreign key (ManagerNumber)
references TOS_Manager(ManagerNumber)
总结
通过本次火车票网上购票管理信息系统的设计与实现,即TOS数据库设计,我了解到了很多也学到了很多,下面是我对这次课设所做的总结。

我们这次课设时间为17-18周,从时间上来说原本是很充裕的,但是由于在17周我们还有两门重要的考试,所以在17周里,我们把大部分时间都用在了备考上,这对于我们来说时间就显得很紧凑、任务很重了,在接下来的几天里我先是确定了本次课设的题目:学生选课管理信息系统数据库的设计与实现,但是在第二天被学委告知题目与其他同学重复,所以我又改了课设题目即TOS数据库的相关设计。

进行此次设计,我主要考虑到,购买火车票是我们学生所比较关心的问题。

所以我觉的进行火车票网上购票数据库的设计比较有实际意义。

在具体的设计中,首先是收集相关资料,确定自己的设计方向,然后根据实际情况和已有的资源如:本学期相关教材,PowerDesigner 系统分析与建模软件,来进行具体的设计。

本次设计采用的是结构化的系统分析建模思想,利用PowerDesigner软件进行数据库的CDM(数据概念模型)、LDM(数据逻辑模型)、PDM(数据物理模型)的设计与生成,并且通过PDM连接数据库,与数据库同步实现数据库的建立与实现。

通过这几天紧张而有序的课程设计工作,我体会到了仔细、细致的重要性,并且学会了如何更加有效的利用资源。

在软件使用方面我认为要充分利用软件给我们设计带来的有利方面,但是也并不是说我们所有的任务的完成都依靠软件,这是不可能也是无法实现的。

同时在建立模型,虽然有些知识在理论上是可以的,但是在实际操作中有一定的局限性。

例如:乘客与车票在理论上是一对一的关系,而且也是Must与Must的关系,在软件中这样设置应该说是没有问题的,但
是通过我的实践发现,这样的设定在检查模型时会发出警告,而且由于这个问题,在PDM模型生成数据库是有错误的,所以,我认在遵循理论的同时也要结合实际情况进行适当的修改,然后完成设所需。

此外,本次的课程设计也让我体会到了所学知识的用处,在以前总认为我们所学的知识是没有什么用处的,但是通过本次课程设计,我体会到了不是没有用,而是我不了解,也不会用。

相信在以后的学习生活中我会以更加积极的状态学习知识,努力的实践知识。

参考文献
[1] 王珊, 萨师煊. 数据库系统概论(第4版). 北京:高教出版社,2006年5月.
[2] 赵韶平等.PowerDesigner系统分析与建模(第2版). 北京:清华大学出版
社,2010.
[3] Data Modeling and Relational Database Design. Oracle Inc. 2001.
[4] 幕静,檀百红,任立肖.管理信息系统开发方法、工具与应用.清华大学出版社,2010.09.
[5] 孟宪虎,马雪英,邓绪斌. 大型数据库管理系统技术应用与实例分析—SQL Server 2005(第2版) .电子工业出版社,2009.。

相关文档
最新文档