数据库交通信息资讯Word文件下载.docx
《数据库交通信息资讯Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库交通信息资讯Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。
线的人提供高效、快捷的公交信息查询,让他们可以方便的在网络上得到自己所
需要的各种相关信息,以便减少各种可能产生的不必要的交通流量,提高公交的
运作效率,节约出行时间。
因此,开发一个供人们快速查找公交线路的网络程序
是势在必行的。
2.系统功能结构(需包含功能结构框图和模块说明)
(1)功能结构图
(2)模块说明
交通管理:
维护,添加新的地址
交通工具管理:
添加交通工具,如增加地铁,公交车等。
站台管理:
添加站台信息
时间管理:
用于调节时间信息
信息查询:
查询车辆信息,查询直达路线,一次转车路线,二车转车路线,三次转车路线
3.系统功能简介
用户,通过输入起始地址,目的地址能输出直达路线,一次转车路线,二车转车路线,三次转车路线
输入车辆名称,查询车辆信息
输入地址可查询附近地铁站,公交站。
概念模型
1.基本要素(符号介绍说明)
:
属性
实体
联系
2.E-R图
(注意:
不能少于5个实体;
至少包含多多关系)
逻辑模型
1.关系(逻辑)模型的概念
数据仓库的每个主题都是由多个表来实现的,这些表之间依靠主题的公共码键联系在一起,形成一个完整的主题。
在概念模型设计时,我们就确定了数据仓库的基本主题,并对每个主题的公共码键、基本内容等做了描述。
在这一步里,我们将要对选定的当前实施的主题进行模式划分,形成多个表,并确定各个表的关系模式。
2.基本要素
:
主码
3.关系模型(至少达到3NF)
公交车(公交车名,首班车时间,末班车时间)
地铁(地铁名,首班车时间,末班车时间)
地铁站(地铁站名,开门时间,关门时间)
公交站台(公交站台名,最早班车时间,最晚班车时间)
地铁经过(站台名,地铁名,站点在线路中的位置)(外码:
站台名,地铁名)
公交经过(站台名,公交名,站点在线路中的位置)(外码:
站台名,公交名)
附近(地点,地铁站名,公交站名,范围)(外码:
地点,地铁站名,公交站名)
地点(地点名)
物理模型
列出所有数据表的物理设计
公交车
列名
含义
数据类型
约束
BNANME
公交车名
NCHAR(5)
主码
BFTIME
首班车时间
time(0)
非空
BLTIME
末班车时间
time(0)
地铁
SNANME
地铁名
SFTIME
SLTIME
地址
TNANME
地址名
NVARCHAR(20)
地铁站
SSANME
公交车站名
OTIME
地铁站开门时间
CTIME
地铁站关门时间
公交站
BSNANME
FSTIME
最早首班车时间
LSTIME
最晚末班车时间
地铁经过
SSANME
地铁站名
主码引用(地铁表,地铁站表外码)
STimes
站次
Int
公交经过
BSANME
公交站名
主码引用(公交表,公交站表外码)
公交名
BTimes
TINYINT
附近
数据结构
地点
非空(主码应用地址外码)
Scope
范围
默认500
数据库实施
1.写出创建数据库、数据表的SQL语句,包含主码定义,外码定义,部分字段check约束、unique约束、default约束等。
1.创建数据库
CREATEDATABASE交通线路资讯
on
(NAME=交通线路资讯,
FILENAME='
C:
\交通线路资讯.mdf'
size=10,
maxsize=unlimited
)
logon
(NAME=交通线路质询日志,
c:
\交通线路资讯日志.ldf'
size=3MB,
maxsize=30
2.创建数据表
CREATETABLE公交车(
BNAMENCHAR(5)PRIMARYKEY,
BFTIMEtime(0)NOTNULL,
BLTIMEtime(0)NOTNULL
CREATETABLE地铁(
SNAMENCHAR(5)PRIMARYKEY,
SFTIMEtime(0)NOTNULL,
SLTIMEtime(0)NOTNULL
CREATETABLE地铁站(
SSNAMENCHAR(5)PRIMARYKEY,
OTIMEtime(0)NOTNULL,
CTIMEtime(0)NOTNULL
CREATETABLE公交车站(
BSNAMENCHAR(5)PRIMARYKEY,
FSTIMEtime(0)NOTNULL,
LSTIMEtime(0)NOTNULL
CREATETABLE地址(
TNAMENVARCHAR(20)PRIMARYKEY
CREATETABLE地铁经过(
SSNAMENCHAR(5)notnull,
SNAMENCHAR(5)notnull,
Stimesintnotnull
PRIMARYKEY(SSNAME,SNAME),
FOREIGNKEY(SSNAME)references地铁站(SSNAME),
FOREIGNKEY(SNAME)references地铁(SNAME)
CREATETABLE公交经过(
BSNAMENCHAR(5)notnull,
BNAMENCHAR(5)notnull,
Btimesintnotnull,
PRIMARYKEY(BSNAME,BNAME),
FOREIGNKEY(BSNAME)references公交车站(BSNAME),
FOREIGNKEY(BNAME)references公交车(BNAME)
CREATETABLE附近(
TNAMENVARCHAR(20)primarykey,
BSNAMENCHAR(5),
SSNAMENCHAR(5),
Scopemintdefault'
500'
FOREIGNKEY(TNAME)references地址(TNAME),
FOREIGNKEY(SSNAME)references地铁站(SSNAME)
2.粘贴关系图
维护和运行
1.数据初始化
insertinto地铁values('
地铁1号线'
'
06:
00:
00'
18:
select*from地铁
insertinto地铁values('
地铁2号线'
insertinto公交车values('
张南专线'
龙芦专线'
南南线'
select*from公交车
insertinto地铁站values('
张江地铁站'
龙阳地铁站'
人民广场'
徐经东'
南京西路'
上海南站'
select*from地铁站
insertinto地铁经过values('
1'
2'
3'
4'
insertinto公交车站values('
科苑华佗路'
张衡科院路'
建桥学院'
汇丽集团'
白杨龙汇路'
海关学院'
康桥罗山路'
汤巷'
三八桥'
陈桥'
select*from公交车站
insertinto公交经过values('
5'
6'
select*from公交经过
insertinto地址values('
张江'
insertinto附近values('
insertinto附近(TNAME,BSNAME)values('
select*from附近
2.数据处理
一.直达查询
createprocedure地铁线路查询
@StartStopNCHAR(5),@EndStopNCHAR(5)
as
begin
select
sr1.SSNAMEas启始站点,
sr2.SSNAMEas目的站点,
sr1.SNAMEas乘坐线路,
abs(sr2.Stimes-sr1.Stimes)as经过的站点数
from
地铁经过sr1,
地铁经过sr2
where
sr1.SNAME=sr2.SNAME
andsr1.SSNAME=@StartStop
andsr2.SSNAME=@EndStop
end
createprocedure公交线路查询
sr1.BSNAMEas启始站点,
sr2.BSNAMEas目的站点,
sr1.BNAMEas乘坐线路,
abs(sr2.Btimes-sr1.Btimes)as经过的站点数
公交经过sr1,
公交经过sr2
sr1.BNAME=sr2.BNAME
andsr1.BSNAME=@StartStop
andsr2.BSNAME=@EndStop
End
dropproc地铁线路查询
dropproc公交线路查询
exec公交线路查询'
exec地铁线路查询'
二,两次转车查询
地铁转车:
createview地铁线路
sr1.SSNAMEasStartStop,--启始站点
sr2.SSNAMEasEndStop,--目的站点
sr1.SNAMEasRoute,--乘坐线路
Abs(sr2.Stimes-sr1.Stimes)asStopCount--经过的站点数
createview公交线路
sr1.BSNAMEasStartStop,--启始站点
sr2.BSNAMEasEndStop,--目的站点
sr1.BNAMEasRoute,--乘坐线路
Abs(sr2.Btimes-sr1.Btimes)asStopCount--经过的站点数
createproc地铁换乘
r1.StartStopas启始站点,
r1.Routeas乘坐路线,
r1.EndStopas中转站点,
r2.Routeas乘坐路线,
r2.EndStopas目的站点,
r1.StopCount+r2.StopCountas总站点数
地铁线路r1,
地铁线路r2
r1.StartStop=@StartStop
andr1.EndStop=r2.StartStop
andr2.EndStop=@EndStop
exec地铁换乘'
公交转车
createproc公交换乘
公交线路r1,
公交线路r2
exec公交换乘'
公交地铁互转:
createview交通信息
(select*from公交线路
union
select*from地铁线路)
createproc换乘
交通信息r1,
交通信息r2
exec换乘'
三.三次换乘
r2.EndStopas中转站点,
r3.routeas乘坐路线,
r3.endstopas目的站点,
交通信息r2,
交通信息r3
andr2.EndStop=r3.StartStop
andr3.EndStop=@EndStop
dropproc换乘
修改南南首末班车时间:
uPDATE公交车setBFTIME='
07:
30:
wherebname='
select*from公交车
增加地铁3号线
地铁3号线'
删除地铁3号线
deletefrom地铁whereSNAME='
地铁号线'
查询上海南站附近的地铁站,公交站
selecttname地址,bsname公交站,ssname地铁站,scopem范围from附近whereTNAME='
设计小结
200字左右的小结
在实训前拿到这个课题的时候以为会很难,但是在细心的观察和学习后,发现原来都是有相似的地方的,在解决了地铁直达的问题后,公交车的直达,以及各种各样的转车也就迎刃而解了,主要就是要不停的建立视图