摘要本文论述的汽车客运站班次查询系统是每一个汽车客运站必不可少的管理查询系统,该系统主要解决了查询班车信息在实践的问题。
本文论述了汽车客运站班次查询系统开发的目标和实现的功能,并重点介绍了需求分析、概念结构设计、逻辑结构设计和系统实施的全过程。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充。
基本功能全面,系统可读性好,易于维护、更新,安全性好。
在描述需求分析和系统设计过程中,为了使该系统的开发过程具有规范化,为此,本文确定了开发系统的指导思想:一、运用了规范化的设计思想。
二、从实际应用出发,为求实用。
三、以mysql设计和开发为主,建立了汽车表、路线表、车票表以及为了建立联系创建的汽车路线表、汽车车票表等5个表,利用相应语句,把汽车、路线、车票的信息插入表中,利用各种查询、修改、删除等命令来完成题目要求的各种功能。
关键词表;数据库;查询管理目录摘要 (2)目录 (2)一、选题背景 (5)1.1系统开发背景 (5)二、需求分析 (5)2.1信息需求分析 (5)2.2对象需求分析 (5)2.3处理功能及分析 (5)2.4安全性和完整性要求 (6)2.5业务流程分析 (6)三、概念结构设计 (7)3.1E-R图的设计 (7)3.2实体类型结构 (8)四、逻辑结构设计 (8)4.1关系模式的转化 ...................................................................................... (8)4.2数据库模式定义 .............................................................................................. .9五、创建数据库及相关操作 (10)5.1创建相关表 (10)5.2插入相关数据 (11)5.3相关查询操作 (12)5.4修改操作 (14)5.5创建视图 (14)5.6删除操作 (15)5.7授权语句 (16)5.8导入导出语句 (17)六、总结 (18)七、课程设计心得体会 (19)参考文献 (20)源程序 (21)创建表 (21)插入数据 (22)查询数据 (24)更新数据 (25)删除数据 (25)创建视图 (25)授权语句 (25)导入导出数据 (26)一、选题背景1.1用户需求:现今,汽车客运以其比火车方便也比较快捷,比飞机便宜的优势,深受中长途旅客的青睐.随着交通运输越来越繁忙和拥挤,汽车客运站所承受的压力也越来越大.在繁冗的交通运输业务之下,一个能够及时方便地提供班车信息的查询管理系统,无论对客运站本身的管理或对顾客来说都是必要的.但是,很多汽车客运站的网上查询系统都十分落后,甚至没有。
如果能够有一个完善的班次查询系统,将会给旅客带来更大的方便,以吸引更多旅客。
数据库是数据管理的最新技术,是计算机科学的重要分支。
今天,信息资源已经成为各个部门的重要财富和资源。
建立一个满足各个部门的信息处理要求的行之有效的信息系统也成为一个企业生存和发展的重要条件。
因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用,越来越多的新的应用领域采用数据库技术来存储和处理信息资源。
二、需求分析2.1信息需求分析:从题目中抽出各栏目名称等系统要保存使用的相关事项,得到所要的组织数据库基表中的信息。
列举如下:车牌号、汽车型号、票价、载客量、驾驶员编号、车牌号、驾驶员姓名、性别、生日、路线编号、出发时间、出发地、目的地、所需时间、路程。
2.2对象需求分析:驾驶员表:驾驶员编号、车牌号、驾驶员姓名、性别、生日。
汽车表:车牌号、汽车型号、票价、载客量。
线路表:路线编号、出发时间、出发地、目的地、所需时间、路程。
汽车线路表:车牌号、线路编号。
2.3处理功能及要求:1.能够对一定数量的驾驶员、汽车数据,线路信息进行相应的信息存储与管理,这其中包括:1) 驾驶员信息的登记、删除及修改。
2)汽车数据信息的增加、删除及修改。
3)线路信息的增加、删除及修改。
4)信息的统计与查询。
2.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。
3.对查询、统计的结果能够列表显示。
2.4安全性和完整性要求:1. 安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过授权机制,不同的授权用户只能进行不同的操作,这样可提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2. 完整性要求系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外码来达到关系数据库的完整性约束条件。
2.5业务流程分析:系统的业务初步定为:客运站管理人员在客运站班次的信息有所改动时及时而且方便地对数据系统进行更新,顾客可在买票之前对班车的详细信息进行查询.初步的业务流程图如下:图1三、概念结构设计3.1 E-R图的设计:在长途汽车管理系统中应包括汽车的线路,汽车的基本信息,车票的基本信息等。
因此,需要设计三个模块。
可设三个实体:汽车线路,汽车,车票。
联系类型有汽车和线路之间的联系,驾驶员和汽车之间的联系。
他们之间关系为:一条线路上可以有多辆汽车行驶,但一辆汽车只能行使在一条线路上;一辆汽车可以对应多个驾驶员,但一个驾驶员只能开一辆汽车。
实体与联系应具有的属性见E-R 图。
图23.2实体的类型结构:驾驶员:Driver(Dno,Bno,Dname,Dsex,Dbirthday);汽车:Bus(Bno,Btype,Bcapacity,Bprice);线路:Line(Lno,Ldestination,Lstart_address.Ltake_time,Lstart_time,Ldistance);汽车线路:BusLine(Bno,Line);四、逻辑结构设计4.1关系模式的转化:实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。
所以可把上述E-R图转换成4个关系模式,从而实现E-R模型向关系数据模型的转换,具体如下:驾驶员表:(驾驶员编号,车牌号,姓名,生日,性别)汽车表:(车牌号,型号,载客量,票价)路线表:(路线编号,出发时间,出发地,目的地,所需时间,路程)汽车路线表:(车牌号,路线编号)4.2数据库模式定义:表1.驾驶员表Driver字段含义字段名称字段类型驾驶员编号Dno CHAR(10)汽车编号Bno CHAR(10)姓名Dname V ARCHAR2(20) 生日Dbirthday DATE性别Dsex CHAR(6)表2.汽车表Bus:字段含义字段名称字段类型汽车编号Bno CHAR(10)类型Btype V ARCHAR(20) 载客量Bcapacity V ARCHAR(20) 票价Bprice SMALLINT表3.创建线路表字段含义字段名称字段类型路线编号Lno CHAR(9)出发时间Lstart_time TIME出发地Lstart_address V ARCHAR(20)目的地Ldestination V ARCHAR(20)所需时间Ltake_time V ARCHAR(20)路程Ldistance V ARCHAR(20)表4.汽车线路表字段含义字段名称字段类型车牌号Bno CHAR(10)路线编号Lno CHAR(9)五、创建数据库及相关操作5.1创建相关表:1.创建驾驶员表CREATE TABLE Driver(Dno char(10) PRIMARY KEY,Bno char(10),Dname varchar(20),Dbrithday DATE,Dsex char(6));2.创建汽车表表CREATE TABLE Bus(Bno char(10) PRIMARY KEY,Btype varchar(20) ,Bcapacity varchar(20) ,Bprice SMALLINT);3.创建线路表CREATE TABLE Line(Lno char(9) PRIMARY KEY, Ldestination varchar(20),Lstart_address varchar(20),Ltake_time varchar(20),Lstart_time time,Ldistance varchar(20));4.创建汽车路线表CREATE TABLE BusLine(Bno char(10) not null ,Lno char(9) not null);5.2插入相关数据:1.插入汽车表数据insert into Bus(Bno,Btype,Bcapacity,Bprice) values ('闽F0001','奔驰','45','100'); insert into Bus(Bno,Btype,Bcapacity,Bprice) values ('闽F0002','大众','56','20'); insert into Bus(Bno,Btype,Bcapacity,Bprice) values ('闽F0003','东风','47','75');2.插入驾驶员表insert into Driver (Dno,Bno,Dname,Dbrithday,Dsex)values ('B1','闽F0001','张三','1983-01-01','男');insert into Driver (Dno,Bno,Dname,Dbrithday,Dsex)values ('B2','闽F0002','李四','1985-10-26','男');insert into Driver (Dno,Bno,Dname,Dbrithday,Dsex)values ('B3','闽F0003','李娇','1984-12-28','女');3.路线表数据Insert into Line (Lno,Ldestination,Lstart_address,Ltake_time,Lstart_time, Ldistance) values ('001','厦门','漳平','3小时','08:00:00','194');insert into Line (Lno,Ldestination,Lstart_address,Ltake_time,Lstart_time, Ldistance) values ('002','龙岩','漳平','2小时','07:00:00','79');insert into Line (Lno,Ldestination,Lstart_address,Ltake_time,Lstart_time, Ldistance) values ('003','连城','漳平','3小时','11:00:00','140');4.汽车路线表数据insert into BusLine (Bno,Lno) values ('闽F0001','001');insert into BusLine (Bno,Lno) values ('闽F0002','002');insert into BusLine (Bno,Lno) values ('闽F0003','003');5.3相关查询操作:1.查询汽车信息图3 2.查询驾驶员信息图43.查询线路信息图5 4.查询汽车线路信息图65.查询到厦门的一些信息图75.4修改数据:UPDATE LineSET Ldestination='佛山'WHERE Lno='012';修改前图8修改后图95.5创建视图:Create view view_2ASSELECT Bus.bno,btype,bprice,line.lno,Lstart_address,Ldestination,Lstart_time FROM Bus,Line,BusLineWHERE Ldestination='福州' ANDbus.bno=busline.bno ANDline.lno=busline.lno;图105.6删除数据:Deletefrom Driverwhere Dno='B1';删除之前图11删除之后图125.7授权语句:1.创建custom用户create user custom identified by '---'; 给custom查询的权限grant selecton table driverto custom;grant selecton table lineto custom;grant selecton table busto custom;grant selecton table buslineto custom;2.创建worker用户create user custom identified by '-----'; 给worker所有的权限grant all privilegeson table driverto worker;grant all privilegeson table busto worker;grant all privilegeson table lineto worker;grant all privilegeson table buslineto worker;5.8导入导出数据:1.导出mysqldump -u root -p chenfeng>D:\\cf.sql 2.导入Mysql –uroot –p text<D:/cf.sql六、总结1.这次课程设计使我熟悉了系统设计的整体步骤。