1、线的人提供高效、快捷的公交信息查询,让他们可以方便的在网络上得到自己所需要的各种相关信息,以便减少各种可能产生的不必要的交通流量,提高公交的运作效率,节约出行时间。因此,开发一个供人们快速查找公交线路的网络程序是势在必行的。2系统功能结构(需包含功能结构框图和模块说明)(1)功能结构图(2)模块说明交通管理: 维护,添加新的地址交通工具管理:添加交通工具,如增加地铁,公交车等。站台管理:添加站台信息时间管理:用于调节时间信息信息查询: 查询车辆信息,查询直达路线,一次转车路线,二车转车路线,三次转车路线3.系统功能简介用户,通过输入起始地址,目的地址能输出直达路线,一次转车路线,二车转车路线,
2、三次转车路线输入车辆名称,查询车辆信息输入地址可查询附近地铁站,公交站。概念模型1.基本要素(符号介绍说明):属性实体联系2.E-R图(注意:不能少于5个实体;至少包含多多关系)逻辑模型1.关系(逻辑)模型的概念数据仓库的每个主题都是由多个表来实现的,这些表之间依靠主题的公共码键联系在一起,形成一个完整的主题。在概念模型设计时,我们就确定了数据仓库的基本主题,并对每个主题的公共码键、基本内容等做了描述。在这一步里,我们将要对选定的当前实施的主题进行模式划分,形成多个表,并确定各个表的关系模式。2.基本要素 : 主码3.关系模型(至少达到3NF)公交车(公交车名,首班车时间,末班车时间)地铁(地
3、铁名,首班车时间,末班车时间)地铁站(地铁站名,开门时间,关门时间)公交站台(公交站台名,最早班车时间,最晚班车时间)地铁经过(站台名,地铁名,站点在线路中的位置)(外码:站台名,地铁名)公交经过(站台名,公交名,站点在线路中的位置) (外码:站台名,公交名)附近(地点,地铁站名,公交站名 ,范围 )(外码:地点,地铁站名,公交站名) 地点( 地点名)物理模型列出所有数据表的物理设计公交车列名含义数据类型约束BNANME 公交车名NCHAR(5)主码BFTIME首班车时间time(0)非空BLTIME末班车时间time(0) 地铁SNANME 地铁名SFTIMESLTIME地址TNANME地址
4、名NVARCHAR(20)地铁站SSANME 公交车站名OTIME地铁站开门时间CTIME地铁站关门时间公交站BSNANME FSTIME最早首班车时间LSTIME最晚末班车时间地铁经过SSANME地铁站名主码引用(地铁表,地铁站表外码)STimes站次Int公交经过BSANME公交站名主码引用(公交表,公交站表外码)公交名BTimesTINYINT附近数据结构地点非空(主码应用地址外码)Scope范围默认500数据库实施1. 写出创建数据库、数据表的SQL语句,包含主码定义,外码定义,部分字段check约束、unique约束、default约束等。1.创建数据库CREATE DATABASE
5、 交通线路资讯on (NAME = 交通线路资讯,FILENAME = C:交通线路资讯.mdf,size = 10,maxsize = unlimited)log on (NAME = 交通线路质询日志,c:交通线路资讯日志.ldf size = 3MB,maxsize = 302创建数据表CREATE TABLE 公交车 (BNAME NCHAR(5) PRIMARY KEY,BFTIME time(0) NOT NULL,BLTIME time(0) NOT NULLCREATE TABLE 地铁 (SNAME NCHAR(5) PRIMARY KEY,SFTIME time(0) NO
6、T NULL,SLTIME time(0) NOT NULLCREATE TABLE 地铁站 (SSNAME NCHAR(5) PRIMARY KEY,OTIME time(0) NOT NULL,CTIME time(0) NOT NULLCREATE TABLE 公交车站 (BSNAME NCHAR(5) PRIMARY KEY,FSTIME time(0) NOT NULL,LSTIME time(0) NOT NULLCREATE TABLE 地址(TNAME NVARCHAR(20) PRIMARY KEYCREATE TABLE 地铁经过 (SSNAME NCHAR(5) not
7、null,SNAME NCHAR(5) not null,Stimes int not nullPRIMARY KEY (SSNAME,SNAME),FOREIGN KEY (SSNAME) references 地铁站(SSNAME),FOREIGN KEY (SNAME) references 地铁(SNAME)CREATE TABLE 公交经过 (BSNAME NCHAR(5) not null,BNAME NCHAR(5) not null,Btimes int not null,PRIMARY KEY (BSNAME,BNAME),FOREIGN KEY (BSNAME) refer
8、ences 公交车站(BSNAME),FOREIGN KEY (BNAME) references 公交车(BNAME)CREATE TABLE 附近 (TNAME NVARCHAR(20) primary key,BSNAME NCHAR(5),SSNAME NCHAR(5),Scopem int default500FOREIGN KEY (TNAME) references 地址(TNAME),FOREIGN KEY (SSNAME) references 地铁站(SSNAME)2.粘贴关系图维护和运行1.数据初始化insert into 地铁 values ( 地铁1号线,06:00:
9、0018: select * from 地铁 insert into 地铁 values ( 地铁2号线 insert into 公交车 values ( 张南专线龙芦专线南南线 select * from 公交车 insert into 地铁站 values ( 张江地铁站龙阳地铁站人民广场徐经东南京西路上海南站 select * from 地铁站 insert into 地铁经过 values ( 1234 insert into 公交车站 values ( 科苑华佗路张衡科院路建桥学院汇丽集团白杨龙汇路海关学院康桥罗山路汤巷三八桥陈桥 select * from 公交车站 insert
10、into 公交经过 values ( 56 select * from 公交经过 insert into 地址 values ( 张江 insert into 附近 values ( insert into 附近(TNAME,BSNAME) values ( select * from 附近2.数据处理 一直达查询create procedure 地铁线路查询StartStop NCHAR(5),EndStop NCHAR(5)asbegin select sr1.SSNAME as 启始站点, sr2.SSNAME as 目的站点, sr1.SNAME as 乘坐线路, abs(sr2.St
11、imes -sr1.Stimes) as 经过的站点数 from 地铁经过 sr1, 地铁经过 sr2 where sr1.SNAME =sr2.SNAME and sr1.SSNAME =StartStop and sr2.SSNAME =EndStopendcreate procedure 公交线路查询 sr1.BSNAME as 启始站点, sr2.BSNAME as 目的站点, sr1.BNAME as 乘坐线路, abs(sr2.Btimes -sr1.Btimes ) as 经过的站点数 公交经过 sr1, 公交经过 sr2 sr1.BNAME =sr2.BNAME and sr1
12、.BSNAME =StartStop and sr2.BSNAME =EndStopEnddrop proc 地铁线路查询drop proc 公交线路查询exec 公交线路查询 exec 地铁线路查询 二,两次转车查询 地铁转车:create view 地铁线路 sr1.SSNAME as StartStop, -启始站点 sr2.SSNAME as EndStop, -目的站点 sr1.SNAME as Route, -乘坐线路 Abs( sr2.Stimes -sr1.Stimes ) as StopCount -经过的站点数create view 公交线路 sr1.BSNAME as S
13、tartStop, -启始站点 sr2.BSNAME as EndStop, -目的站点 sr1.BNAME as Route, -乘坐线路 Abs(sr2.Btimes -sr1.Btimes ) as StopCount -经过的站点数create proc 地铁换乘 r1.StartStop as 启始站点, r1.Route as 乘坐路线, r1.EndStop as 中转站点, r2.Route as 乘坐路线, r2.EndStop as 目的站点, r1.StopCount+r2.StopCount as 总站点数 地铁线路 r1, 地铁线路 r2 r1.StartStop=S
14、tartStop and r1.EndStop=r2.StartStop and r2.EndStop=EndStopexec 地铁换乘 公交转车create proc 公交换乘 公交线路 r1, 公交线路 r2exec 公交换乘 公交地铁互转:create view 交通信息(select * from 公交线路unionselect * from 地铁线路)create proc 换乘 交通信息 r1, 交通信息 r2exec 换乘 三三次换乘 r2.EndStop as 中转站点, r3.route as 乘坐路线, r3.endstop as 目的站点, 交通信息 r2, 交通信息 r
15、3 and r2.EndStop=r3.StartStop and r3.EndStop=EndStopdrop proc 换乘修改南南首末班车时间:uPDATE 公交车 set BFTIME = 07:30:where bname = select * from 公交车增加地铁3号线地铁3号线删除地铁3号线delete from 地铁 where SNAME = 地铁号线查询上海南站附近的地铁站,公交站select tname 地址,bsname 公交站,ssname 地铁站 ,scopem 范围 from 附近 where TNAME = 设计小结200字左右的小结 在实训前拿到这个课题的时候以为会很难,但是在细心的观察和学习后 ,发现原来都是有相似的地方的,在解决了地铁直达的问题后,公交车的直达,以及各种各样的转车也就迎刃而解了,主要就是要不停的建立视图
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2