数据库交通信息资讯.docx
- 文档编号:11971161
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:25
- 大小:176.93KB
数据库交通信息资讯.docx
《数据库交通信息资讯.docx》由会员分享,可在线阅读,更多相关《数据库交通信息资讯.docx(25页珍藏版)》请在冰豆网上搜索。
数据库交通信息资讯
考勤(30分)
报告(40分)
数据库(30分)
总分(100分)
《数据库应用》
实践报告
课题名称:
交通线路资讯
专业:
计算机科学与技术
班级:
B11-1
学生姓名:
朱亚伟
学号:
1121289
需求分析
1.系统背景
随着交通工具的不断革新,距离已经不再是人们足迹的羁绊,庞大复杂的交
通网几乎覆盖了世界的每一个角落,使人们可以到达任何一个想去的地方,然而
当人们面对交通网时却会因为它本身的复杂而显得不知所措,从而感觉到出行的
麻烦。
在过去,当人们在一个不熟悉的城市时,或不清楚本城市的公交线路时,只
能采用打电话咨询,看交通地图,向熟人打听等传统方式查询公交信息,这样会
浪费大家很多时间、精力和财力,而且得到的信息也不一定是可靠的。
这是还没
有公交线路查询系统时所出现的情况。
在互联网普及的今天,交通信息服务的电子化、网络化是已经是必然的趋势,
而提供良好的公交服务是建设和谐社会的基本要求。
以信息化为基础,促进乘客、
车辆、站点设施以及交通环境等要素之间的良性互动,能有效推动公交系统建设。
为了能够为市民特别是为外来旅游、出差、就医、求职等急需了解本地的公交路
线的人提供高效、快捷的公交信息查询,让他们可以方便的在网络上得到自己所
需要的各种相关信息,以便减少各种可能产生的不必要的交通流量,提高公交的
运作效率,节约出行时间。
因此,开发一个供人们快速查找公交线路的网络程序
是势在必行的。
2.系统功能结构(需包含功能结构框图和模块说明)
(1)功能结构图
(2)模块说明
交通管理:
维护,添加新的地址
交通工具管理:
添加交通工具,如增加地铁,公交车等。
站台管理:
添加站台信息
时间管理:
用于调节时间信息
信息查询:
查询车辆信息,查询直达路线,一次转车路线,二车转车路线,三次转车路线
3.系统功能简介
用户,通过输入起始地址,目的地址能输出直达路线,一次转车路线,二车转车路线,三次转车路线
输入车辆名称,查询车辆信息
输入地址可查询附近地铁站,公交站。
概念模型
1.基本要素(符号介绍说明)
:
属性
:
实体
:
联系
2.E-R图
(注意:
不能少于5个实体;至少包含多多关系)
逻辑模型
1.关系(逻辑)模型的概念
数据仓库的每个主题都是由多个表来实现的,这些表之间依靠主题的公共码键联系在一起,形成一个完整的主题。
在概念模型设计时,我们就确定了数据仓库的基本主题,并对每个主题的公共码键、基本内容等做了描述。
在这一步里,我们将要对选定的当前实施的主题进行模式划分,形成多个表,并确定各个表的关系模式。
2.基本要素
:
主码
3.关系模型(至少达到3NF)
公交车(公交车名,首班车时间,末班车时间)
地铁(地铁名,首班车时间,末班车时间)
地铁站(地铁站名,开门时间,关门时间)
公交站台(公交站台名,最早班车时间,最晚班车时间)
地铁经过(站台名,地铁名,站点在线路中的位置)(外码:
站台名,地铁名)
公交经过(站台名,公交名,站点在线路中的位置)(外码:
站台名,公交名)
附近(地点,地铁站名,公交站名,范围)(外码:
地点,地铁站名,公交站名)
地点(地点名)
物理模型
列出所有数据表的物理设计
公交车
列名
含义
数据类型
约束
BNANME
公交车名
NCHAR(5)
主码
BFTIME
首班车时间
time(0)
非空
BLTIME
末班车时间
time(0)
非空
地铁
列名
含义
数据类型
约束
SNANME
地铁名
NCHAR(5)
主码
SFTIME
首班车时间
time(0)
非空
SLTIME
末班车时间
time(0)
非空
地址
列名
含义
数据类型
约束
TNANME
地址名
NVARCHAR(20)
主码
地铁站
列名
含义
数据类型
约束
SSANME
公交车站名
NCHAR(5)
主码
OTIME
地铁站开门时间
time(0)
非空
CTIME
地铁站关门时间
time(0)
非空
公交站
列名
含义
数据类型
约束
BSNANME
公交车名
NCHAR(5)
主码
FSTIME
最早首班车时间
time(0)
非空
LSTIME
最晚末班车时间
time(0)
非空
地铁经过
列名
含义
数据类型
约束
SSANME
地铁站名
NCHAR(5)
主码引用(地铁表,地铁站表外码)
SNANME
地铁名
NCHAR(5)
STimes
站次
Int
非空
公交经过
列名
含义
数据类型
约束
BSANME
公交站名
NCHAR(5)
主码引用(公交表,公交站表外码)
BNANME
公交名
NCHAR(5)
BTimes
站次
TINYINT
非空
附近
列名
含义
数据结构
约束
TNANME
地点
NVARCHAR(20)
非空(主码应用地址外码)
BSANME
公交站名
NCHAR(5)
Scope
范围
Int
默认500
SSANME
地铁站名
NCHAR(5)
数据库实施
1.写出创建数据库、数据表的SQL语句,包含主码定义,外码定义,部分字段check约束、unique约束、default约束等。
1.创建数据库
CREATEDATABASE交通线路资讯
on
(NAME=交通线路资讯,
FILENAME='C:
\交通线路资讯.mdf',
size=10,
maxsize=unlimited
)
logon
(NAME=交通线路质询日志,
FILENAME='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(BSNAME)references公交车站(BSNAME),
FOREIGNKEY(SSNAME)references地铁站(SSNAME)
)
2.粘贴关系图
维护和运行
1.数据初始化
insertinto地铁values('地铁1号线','06:
00:
00','18:
00:
00')
select*from地铁
insertinto地铁values('地铁2号线','06:
00:
00','18:
00:
00')
insertinto公交车values('张南专线','06:
00:
00','18:
00:
00')
insertinto公交车values('龙芦专线','06:
00:
00','18:
00:
00')
insertinto公交车values('南南线','06:
00:
00','18:
00:
00')
select*from公交车
insertinto地铁站values('张江地铁站','06:
00:
00','18:
00:
00')
insertinto地铁站values('龙阳地铁站','06:
00:
00','18:
00:
00')
insertinto地铁站values('人民广场','06:
00:
00','18:
00:
00')
insertinto地铁站values('徐经东','06:
00:
00','18:
00:
00')
insertinto地铁站values('南京西路','06:
00:
00','18:
00:
00')
insertinto地铁站values('上海南站','06:
00:
00','18:
00:
00')
select*from地铁站
insertinto地铁经过values('张江地铁站','地铁2号线','1')
insertinto地铁经过values('龙阳地铁站','地铁2号线','2')
insertinto地铁经过values('人民广场','地铁2号线','3')
insertinto地铁经过values('人民广场','地铁1号线','2')
insertinto地铁经过values('徐经东','地铁2号线','4')
insertinto地铁经过values('南京西路','地铁1号线','4')
insertinto地铁经过values('上海南站','地铁1号线','3')
insertinto公交车站values('张江地铁站','06:
00:
00','18:
00:
00')
insertinto公交车站values('科苑华佗路','06:
00:
00','18:
00:
00')
insertinto公交车站values('张衡科院路','06:
00:
00','18:
00:
00')
insertinto公交车站values('建桥学院','06:
00:
00','18:
00:
00')
insertinto公交车站values('汇丽集团','06:
00:
00','18:
00:
00')
insertinto公交车站values('龙阳地铁站','06:
00:
00','18:
00:
00')
insertinto公交车站values('白杨龙汇路','06:
00:
00','18:
00:
00')
insertinto公交车站values('海关学院','06:
00:
00','18:
00:
00')
insertinto公交车站values('康桥罗山路','06:
00:
00','18:
00:
00')
insertinto公交车站values('汤巷','06:
00:
00','18:
00:
00')
insertinto公交车站values('上海南站','06:
00:
00','18:
00:
00')
insertinto公交车站values('三八桥','06:
00:
00','18:
00:
00')
insertinto公交车站values('陈桥','06:
00:
00','18:
00:
00')
select*from公交车站
insertinto公交经过values('张江地铁站','张南专线','1')
insertinto公交经过values('科苑华佗路','张南专线','2')
insertinto公交经过values('张衡科院路','张南专线','3')
insertinto公交经过values('建桥学院','张南专线','4')
insertinto公交经过values('建桥学院','龙芦专线','4')
insertinto公交经过values('建桥学院','南南线','4')
insertinto公交经过values('汇丽集团','张南专线','5')
insertinto公交经过values('海关学院','龙芦专线','3')
insertinto公交经过values('康桥罗山路','龙芦专线','5')
insertinto公交经过values('汤巷','龙芦专线','6')
insertinto公交经过values('上海南站','南南线','1')
insertinto公交经过values('三八桥','南南线','2')
insertinto公交经过values('陈桥','南南线','3')
insertinto公交经过values('龙阳地铁站','龙芦专线','1')
insertinto公交经过values('白杨龙汇路','龙芦专线','2')
select*from公交经过
insertinto地址values('张江')
insertinto地址values('建桥学院')
insertinto地址values('上海南站')
insertinto附近values('张江','张江地铁站','张江地铁站','500')
insertinto附近(TNAME,BSNAME)values('建桥学院','建桥学院')
insertinto附近values('上海南站','上海南站','上海南站','500')
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公交线路查询
@StartStopNCHAR(5),@EndStopNCHAR(5)
as
begin
select
sr1.BSNAMEas启始站点,
sr2.BSNAMEas目的站点,
sr1.BNAMEas乘坐线路,
abs(sr2.Btimes-sr1.Btimes)as经过的站点数
from
公交经过sr1,
公交经过sr2
where
sr1.BNAME=sr2.BNAME
andsr1.BSNAME=@StartStop
andsr2.BSNAME=@EndStop
End
dropproc地铁线路查询
dropproc公交线路查询
exec公交线路查询'建桥学院','上海南站'
exec地铁线路查询'张江地铁站','人民广场'
二,两次转车查询
地铁转车:
createview地铁线路
as
select
sr1.SSNAMEasStartStop,--启始站点
sr2.SSNAMEasEndStop,--目的站点
sr1.SNAMEasRoute,--乘坐线路
Abs(sr2.Stimes-sr1.Stimes)asStopCount--经过的站点数
from
地铁经过sr1,
地铁经过sr2
where
sr1.SNAME=sr2.SNAME
createview公交线路
as
select
sr1.BSNAMEasStartStop,--启始站点
sr2.BSNAMEasEndStop,--目的站点
sr1.BNAMEasRoute,--乘坐线路
Abs(sr2.Btimes-sr1.Btimes)asStopCount--经过的站点数
from
公交经过sr1,
公交经过sr2
where
sr1.BNAME=sr2.BNAME
createproc地铁换乘
@StartStopNCHAR(5),@EndStopNCHAR(5)
as
begin
select
r1.StartStopas启始站点,
r1.Routeas乘坐路线,
r1.EndStopas中转站点,
r2.Routeas乘坐路线,
r2.EndStopas目的站点,
r1.StopCount+r2.StopCountas总站点数
from
地铁线路r1,
地铁线路r2
where
r1.StartStop=@StartStop
andr1.EndStop=r2.StartStop
andr2.EndStop=@EndStop
end
exec地铁换乘'张江地铁站','南京西路'
公交转车
createproc公交换乘
@StartStopNCHAR(5),@EndStopNCHAR(5)
as
begin
select
r1.StartStopas启始站点,
r1.Routeas乘坐路线,
r1.EndStopas中转站点,
r2.Routeas乘坐路线,
r2.EndStopas目的站点,
r1.StopCount+r2.StopCountas总站点数
from
公交线路r1,
公交线路r2
where
r1.StartStop=@StartStop
andr1.EndStop=r2.StartStop
andr2.EndStop=@EndStop
end
exec公交换乘'张江地铁站','上海南站'
公交地铁互转:
createview交通信息
as
(select*from公交线路
union
select*from地铁线路)
createproc换乘
@StartStopNCHAR(5),@EndStopNCHAR(5)
as
begin
select
r1.StartStopas启始站点,
r1.Routeas乘坐路线,
r1.EndStopas中转站点,
r2.Routeas乘坐路线,
r2.EndStopas目的站点,
r1.StopCount+r2.StopCountas总站点数
from
交通信息r1,
交通信息r2
where
r1.StartStop=@StartStop
andr1.EndStop=r2.StartStop
andr2.EndStop=@EndStop
end
exec换乘'建桥学院','人民广场'
三.三次换乘
createproc换乘
@StartStopNCHAR(5),@EndStopNCHAR(5)
as
begin
select
r1.StartStopas启始站点,
r1.Routeas乘坐路线,
r1.EndStopas中转站点,
r2.Routeas乘坐路线,
r2.EndStopas中转站点,
r3.routeas乘坐路线,
r3.endstopas目的站点,
r1.StopCount+r2.StopCountas总站点数
from
交通信息r1,
交通信息r2,
交通信息r3
where
r1.StartStop=@StartStop
andr1.EndStop=r2.StartStop
andr2.EndStop=r3.StartStop
andr3.EndStop=@EndStop
end
dropproc换乘
exec换乘'三八桥','徐经东'
修改南南首末班车时间:
uPDATE公交车setBFTIME='07:
30:
00'
wherebname='南南线'
select*from公交车
增加地铁3号线
insertinto地铁values('地铁3号线','06:
00:
00','18:
00:
00')
删除地铁3号线
deletefrom地铁whereSNAME='地铁号线'
查询上海南站附近的地铁站,公交站
selecttname地址,bsname公交站,ssname地铁站,scopem范围from附近whereTNAME='上海南站'
设计小结
200字左右的小结
在实训前拿到这个课题的时候以为会很难,但是在细心的观察和学习后,发现原来都是有相似的地方的,在解决了地铁直达的问题后,公交车的直达,以及各种各样的转车也就迎刃而解了,主要就是要不停的建立视图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 交通 信息资讯
![提示](https://static.bdocx.com/images/bang_tan.gif)