数据库设计报告书
摘要
当前我国交通网上信息系统的发展处于一个较高的水平,广大乘客可以通过
许多的方式获得交通信息,例如:通过使用火车、飞机时刻表,或者是到各个旅
游网站、地图网站去查询。
在此背景下,本文首先考虑了我国交通的现状和不同乘客的实际要求,分析
了此系统应该具有的功能;其次对系统的主要功能模块进行了详细地描述,其中
主要包括各列车查询模块和列车信息管理更新模块,最后结合系统开发阶段和调
试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得的经
验和体会。
列车时刻查询系统主要功能是:通过列车时刻查询系统,管理人员可以对车
站设置、列车类型进行新建和修改,及列车的调整;对车次进行增加和维护;用
户可以对列车的查询进行站站查询,及车次查询。在查询当中可以查询到任意车
次始发站和终点站两站之间的所有车次,并且可以查询出所要查询的两站之间距
离公里数、经过的时间、行驶总时间、票价和车次类型等各种信息。
本系统使用mySQL来设计与开发的列车信息查询系统,具有良好的用户界
面。系统中实现了通过车次、路线、发站及到站信息来查询列车详细信息的功能。
关键词:mySQL 数据库; 查询系统
ABSTRACT
I
数据库设计报告书
At present, the development of China's transportation network
information system at a high level, the majority of passengers can get
traffic information through a number of ways,For example: through
the use of the train, aircraft schedule, or to the various tourist sites,
map sites to check.
In this firstly consider the practical requirements of
traffic of our country current situation and different passengers,
analyzed the function of this system should have; followed by the
main function of the system modules are described in detail,
including train each query module and train information
management update module. Finally, according to the problems
found in the system development and debugging phase,the system
needs to perfect place, and summed up the experience that gained
from the development of this schedule inquiry system
main function is: through the train schedule inquiry system,
managers can of the station, train type to create and modify, and
train the adjustment; on the trips to the increase and maintenance;
the user can query on the train station inquiries, trips inquiries. In
the query can query to any trips originating station and the end of all
trips between the two stations, stations, and can query to query
between two stations distance kilometers, elapsed time, driving time,
II
数据库设计报告书
fares and type vehicles etc. all kinds of information.
This system uses the MYSQL database and
development of the train information query system, with a good user
system realizes to query the detailed information
through train, train route, station and station information function.
Key words: mySQL; database; query system
III
数据库设计报告书
目录
摘要…………………………………………………………………………………………………I
目录………………………………………………………………………………………………IV
第1章 概述....................................................................................................................................... 1
第2章 需求分析………………………………………………………………………………… 3
第3章 概念结构设计 ..................................................................................................................... 4
第4章 数据库表设计……………………………………………………………………………6
第5章 系统主要模块详解………………………………………………………………………7
第6章 系统调试与测试 ............................................................................................................... 11
第7章 总结 …………………………………………………………………………13
附录1……………………………………………………………………………………………14
附录2……………………………………………………………………………………………15
IV
数据库设计报告书
第1章概述
1.1
当今一个信息技术发展的时代,人们发生了日新月异的变化,特别是计算机
的应用及普及到经济和社会生活的各个领域。当今世界正在向信息时代迈进,信
息已经成为社会、经济发展的"血液"、"润滑剂";现代信息技术广泛地渗透到和
改变着人们的生活学习和工作;信息产业正逐步成为全球最大的产业。在这股席
卷全球的信息化浪潮的冲击下,城市发展的诸多方面也无一例外地受到了现代信
息技术的强大影响,城市正面临着新的发展契机。使原本的旧的管理方法越来越
不适应现在社会的发展。许多人还停留在以前的手工操作,这大大地阻碍了人类
经济的进步,影响了生产的发展。因此,本次设计我们选择了具有一定实际应用
价值且是各阶层人民众都必不可少的课题——列车车次信息查询系统。
随着计算机技术的发展,人们对计算机智能化的需求越来越大,对软件的实
用性、速度等性能的要求也越来越高。未来火车站的发展趋势是完全自动化的售
票、信息查询、网络订票、智能化订票,而且随着计算机的普及,信息处理量的
逐渐扩大,手工处理方式已经远远不能满足人们管理活动的需要,各种工作都逐
渐由手工转为自动化,将使许多复杂、繁琐、且需要很多人力的工作变得简单。
在本此系统设计中,由于时间与技术的关系,当然不可能做到这样的程度,只是
基本实现列车车次信息的查询。
列车车次信息查询系统是一个供旅客查询列车详细信息的系统,可以为旅客
提供包括列车时刻、列车运行路线、列车票价等信息的查询服务。
1
数据库设计报告书
1.2
列车时刻查询系统,就是将各列车车次的出发时间、经过城市、所需价格等
相关信息放在WEB服务器中,并通过网络上的计算机终端通过特定的条件将其检
索出来。随着国内经济的不断发展,交通条件的发展呈现出无法比拟的优势:数
量上的海量化、繁多的种类、分布开放、时效性、高增值性等。
当前我国交通网上信息系统的发展处于一个较高的水平,广大乘客可以通过
许多的方式获得交通信息,例如:通过使用火车、飞机时刻表,或者是到各个旅
游网站、地图网站去查询。但国内目前类似的系统比较多的是单一的城市的列车
时刻查询系统,而同时包含列车站站查询、列车车次查询、列车车站查询的交通
查询系统并不多见,由于交通工具单一,一个系统只支持列车时刻或列车站站查
询,加之服务与成本意识较为薄弱,使城际间的列车交通信息查询常常给旅客带
来困绕。
列车时刻查询功能是本系统的根本任务,通过实现票务信息的计算机管理,
以提高工作效率。实现计算机管理的最佳技术就是数据库技术。我们可以利用数
据库将整个火车站的票务情况存入计算机,再配置上功能丰富的用户接口,以满
足用户需求。
列车时刻查询系统是便民类的系统。该系统能够为用户提供有关列车时刻充
足的信息和快捷的查询手段。在计算机普及的信息时代,用电脑软件来查询列车
时刻已经替代了一直以来人们使用传统的方式查询列车时刻,用传统的方式存在
着许多缺点,如:效率低、时间长、繁琐,给用户带来了诸多不便。使用电脑软件
进行查询,具有很多优点,例如:查询迅速、方便、清晰、信息存储量大等。因此
有利于人们快速、方便的查到所需的相关列车时刻信息。从真正意义上做到了
“便民”。
2
数据库设计报告书
第2章 需求分析
2.1功能需求分析
系统开发的总体任务是实现旅客对列车车次查询的系统化、规范化和自动
化。系统功能分析是在系统开发的总体任务的基础上完成。本旅客列车车次查询
系统需要完成功能主要有:
(1)系统管理:火车站能够对相关列车的车次信息(包括车次、起点、始
发时间、到各个站的时间、到达终点站的时间等)和站名信息进行录入、修改、
删除等操作。
(2)路线查询:要求当旅客输入查询起始站名和终点站进行查询名后计算
机屏幕会显示出所有可以到达目的火车站的列车车次,然后点击相应的车次,链
接到该车次的详细信息。
(3)车次查询:要求当旅客输入查询车次进行查询后计算机屏幕上会显示
出该列车的车次、起点站、始发时间、到各个站的时间、到达终点站的时间。
2.2 系统需求分析
系统的工作总体规划由该系统管理人员在系统中完成对各种所需的基本数
据的维护,包括相关列车信息的增加、修改以及对各项信息的变动都将在这进行
操作。
后台管理主要由系统建设人员和系统管理员进行操作。他们可以进行各种列
车信息以及各城市车站信息的录入、修改和删除等。
前台主要是让旅客了解各种列车信息以及车站最新动态情况,还有实现对旅
客所需信息的查询和最新的新闻动态等功能。
3
数据库设计报告书
第3章 概念结构设计
数据流图简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系
统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用
于表示软件模型的一种图示方法。
列车信息管理系统顶层数据流图如图3.1所示。
管理员
列车信息
列车信息管理系统列车信息客户
图3.1列车信息管理系统顶层数据流图
管理员、客户作为被分配不同权限的两个角,登录系统后可以实现不同的
功能。 管理员登录系统后可以添加、删除、修改列车信息等。客户进入系统后
可以查询列车信息,并且对列车的票价排序查等。
列车信息管理系统第一层层数据流图如图3.2所示。
添加
列车信息
修改
列车信息
管理员列车信息表查询票价排序客户
列车信息
查询
列车信息
删除
图3.2列车信息管理系统一层数据流图
管理员可以添加、修改、删除、查询数据信息,客户可以对数据信息进行查
询。
4
数据库设计报告书
E-R模型中,包含实体、联系和属性三个基本成分。
⑴实体
实体是客观世界存在的且可相互区分的事物。它可以是人也可以是动物;可
以是具体事物也可以是抽象概念。
⑵联系
联系是指客观世界中各事物彼此间的联系。联系分为三类:一对一的关系,
一对多的关系,多对多的关系。
⑶属性
属性是实体或联系所具有的性质,通常一个实体用若干属性来刻画。人们通
常就是用实体、联系和属性这三个概念来理解现实问题,因此,ER模型比较接
近人的思维方式。此外,ER模型使用简单的图形符号表示系统分析员对问题的
理解,不熟悉计算机的人也能理解它,因此,ER模型可以作为用户与系统分析
员之间的交流工具。
根据系统功能,确定实体、联系、属性,构建E-R图,如下图所示:
系统结构分析:
根据系统功能分析,按分析中系统功能的要求,画出列车车次查询系统的系统结
构图。列车车次查询系统结构图如图:
5
数据库设计报告书
第4章 数据库表设计
4.1管理员图
字段名 关键字设置 数据类型 字段说明
userID 主关键字 Varchar 管理员ID
password Varchar 密码
userame Varchar 名称
长度 允许空
10 否
20 否
20 否
4.2 Travel图
字段名 关键字 数据类型 字段说明
no 主关键字 Varchar 车次
beginSta Varchar 始发站
endSta Varchar 终点站
bedinTime dataTime 发车时间
endTime dataTime 到达时间
stopTime
Varchar
长度 允许空
10 否
50 否
50 否
0 否
0 否
20 否 本站停车时
间时间
6
数据库设计报告书
4.3PriceTable图
字段名 关键字 数据类型 字段说明
no
TrainType
SeatType
price
Varchar 10 否 车次
主关键字 varchar 50 是 火车类型
主关键字 varchar 50 是 车票座位类型
Varchar 10 是 票价
长度 允许空
关系模式:
管理员(管理员ID,密码,名称)
Travel表(车次,始发站,终点站,发车时间,到达时间,本站停车时间)
Pricetable表(车次,火车类型,车票座次类型,票价)
第5章 系统主要模块详细讲解
在本查询系统的主页面中,可直接将要查询的信息输入相应的快速查询文本
框,提交以后,查询系统将根据不同的查询方法和种类,跳转到不同的页面,然
后再根据输入信息进行处理。该系统主页面的主要输入页面如下:
7
数据库设计报告书
(一)系统管理员模块
(二)
列车信息查询模块
本模块主要是为了从数据库中,根据所要求的列车查询条件以及查询方法,
在数据库中进行列车信息的查询和筛选,并以表格的方式表现出来。
设计的总体思路为:为实现该模块的功能设计了两张表,用来存放列车相关
信息。其中travel表用来存放所有火车的车次,始发站,终点站,始发时间,
到达时间,该站停车时间;pricetable表存放由于一个列车班次包含多条信息,
如果要在每条路线信息中都输入该车次的基本信息,则显得比较重复,而且会使
数据库录入时的工作量变得繁重,为了解决这一麻烦,设计了一个pricetable
表用来专门存放列车价格以及火车类型,座位类型,以及车次。
车次查询:输入查询的车次以及时间,点击搜索,将信息提交给后台服务器
程序,程序执行后,将查询到的结果返回给前台界面,显示出所需信息
8
数据库设计报告书
站站查询:输入站站查询界面的内容,点击搜索,将信息提交给后台服务器程序,
程序执行后,将查询到的结果返回给前台界面,显示出所需信息
9
数据库设计报告书
10
数据库设计报告书
第6章 系统调试与测试
系统调试与测试主要是指通过对系统的反复调试与测试,出系统还存在的
错误或不足,最后纠正错误或不足,期望系统达到最优效果。
6.1系统调试
调试是软件开发过程中最艰巨的脑力劳动,软件调试是程序的一种执行过
程,目的是尽可能发现系统中的错误并改正,调试过程主要是运行编制好的程序,
然后遇到错误后根据系统的提示,到相关的问题所在,这是调试过程中最关键
的技术问题。
本系统调试过程中遇到问题、原因和解决方法如下面介绍。
范围查询时查询错误,将函数改为contains,且前面的为被查询的对象。
6.2系统测试
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的
错误,提高软件的可靠性。
6.2.1测试方案
测试类型有:功能测试,性能测试,界面测试。
在测试工作中占的比例最大,功能测试也叫黑盒测试。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来
对系统的各项性能指标进行测试。
区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每
个可能存在的功能问题。性能测试主要关注于产品整体的多客户并发下的稳定性
和健壮性。做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功
能是没问题的,然后再考虑该功能点的性能测试。
6.2.2系统黑盒测试
系统功能的黑盒测试,将功能细分后,分别测试。如表6.1所示。
11
数据库设计报告书
输入正确客户名密码
客户名及密码201311865 进入管理主页
123456
输入错误客户名密码 提示客户名或密码
客户名及密码mile,111 错误!!
在管理员主页面中选择添
加列车各项信息
在添加主页面中输入重复
列车信息
在管理员主页面中输入重
复的列车编号
在管理员主页面中输入车
次k1
在管理员主页面中输入空提示列车编号不可提示列车编号不可
的列车编号 以为空 以为空
在管理员主页面中输入车
次k1
在客户主界面中 能正确显示查询内将车次的信息显示
填写车次 容 在界面中
在客户主界面中 能正确显示查询内将系统中所有列车
未填写内容 容 信息显示出来
进入管理管理员界
面
添加成功 显示添加成功
1
登录模块
错误提示
2 基本信息
添加模块
基本信息 3
修改模块
基本信息
删除模块
基本信息
查询模块
提示已有此列车 查到车次
提示列车已存在 提示列车已存在
显示修改成功 修改成功
显示删除成功 显示删除成功
4
5
12
数据库设计报告书
第7章 总结
本次课程设计的题目是《列车时刻查询系统设计与实现》,刚开始选题的
时候觉得这个题目不算很难,也就和平时做的练习差不多但真正开始做的时候才
发现,这个题目要真正做得很好的话是很麻烦的。因为这个系统需要实现的功能
比较多,所以在做的时候需要做很多工作。参考网上的一些交通信息查询系统,
可以发现各类交通系统所包含的信息都是海量的,这就首先要求我们设计数据库
的时候,要考虑各种状况,尽可能的减少数据库录入时的工作量。
本系统基本功能都已经全部实现,总共设计了两个功能模块,各模块具体实
现的功能如下:
(1)列车信息查询:此功能模块包括了两种基本的查询操作,用户在进入了
此模块后,可根据具体需要,选择进行车次查询或者是车站查询。在车次查询中,
用户只需输入所要查询的车次就可以查询出该车次的具体情况。在车站查询中,
用户只需输入要查询的车站名就可以查询出所有途经该车站的列车详情。
(2)后台管理:包括对各种交通信息的添加、修改、删除和查看几部分操作。
此功能模块是要求在管理员通过相应的管理员ID和密码进入该系统后,能够对
各种交通信息以及管理员信息进行相关操作。
本系统主要采用HTML网页编程和MySQL技术制作页面,语言简明易懂,
没有设计太多过于复杂的算法,通过调用业务逻辑层里的函数来实现简单的查
询、增加、删除、和修改操作,使得整个系统既美观又实用,操作简单,功能全
面实用,即便是些对计算机不熟的人也不会有太大的难度操作。
虽然系统没有设计特别难的算法或者编程代码技术,但是里面每一句代码每
一个页面都是我们组成员经过深思熟虑、努力完成的。在编程的过程中,遇到了
很多很多的困难。为了更好的完成毕业设计,在程序全面开发之前,需要将MYSQL
数据库与编程平台进行连接。在详细的设计数据库过程中,最开始设计的一些表
都包含了外键或者双主键之类的约束,但由于对外键这个约束条件平时接触的
少,所以出现了很多以前都没有见过的一些错误。
由于我们实践经验很少,在编写程序的实现过程中遇到了不少的问题,但是
都我们不断地翻查书籍、以前的笔记、上网查解决方法,或者请教同学、老师,
最后终于将问题解决。
13
数据库设计报告书
附录2:实现源代码
package ;
import Manager;
import tion;
/*
* 操作数据库
*
*
* */
public class BaseDao {
public Connection GetConnect() {
//数据库连接对象
Connection conn = null;
// 注册驱动类
//其他数据不同连接字符串
try {
e("");
} catch (Exception e) {
tackTrace();
}
// 数据库字符串jdbc:mysql://127.0.0.1是localhost:端口3306/数据库名
String url = "jdbc:mysql://127.0.0.1:3306/test";
// 与数据库取得连接
try {
conn = (Connection) nection(url, " ", " ");
} catch (Exception e) {
tackTrace();
}
return conn;
}
}
14
数据库设计报告书
Connection cn = (Connection) dao.GetConnect();
//按照车次查询
PreparedStatement pstSelect1 = (PreparedStatement) cn
.prepareStatement("select beginSta,endSta,beginTime,"
+ "endTime,stopTime,trainType,seatType,price from
+ "inner jion pricetable =
pstSelect1.setString(1, no);
ResultSet result = pstSelect1.executeQuery();
travel where no=? "
");
request.getRequestDispatcher("/WEB-IF/jsp/
trainumber
.jsp").forward(request,response);
}
//管理员的update,insert,delete
PreparedStatement pstUpdate=(PreparedStatement)
cn.prepareStatement("update travel set stopTime=?
pstUpdate.setString(1, "78min");//1,2表示?
pstUpdate.setString(2, "k5034");
int dataCount=pstUpdate.executeUpdate();
System.out.println(dataCount);
PreparedStatement pstInsert=(PreparedStatement)
cn.prepareStatement("insert into
pstInsert.setString(1, "k5124");
pstInsert.setString(2,"普快");
pstInsert.setString(3,"软卧");
pstInsert.setString(4,"998");
int dataCount1=pstInsert.executeUpdate();
System.out.println(dataCount1);
PreparedStatement pstDelete=(PreparedStatement)
cn.prepareStatement("delete from travel where no=?");
pstDelete.setString(1, "k5124");
int data=pstDelete.executeUpdate();
System.out.println(data);
}
} catch (Exception e) {
e.printStackTrace();
}
}
where no=?");
pricetablevalues(?,?,?,?)");
15
数据库设计报告书
<%@ page contentType="text/html; charset=utf-8" language="java"
import=".*" errorPage="" %>
onclick="('')" /> onclick="('')" /> onclick="管理员.html" />