数据库长途汽车管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)对各模块功能进行描述:
线路模块:用来管理汽车线路号、出发地、目的地、出发时间、所需时间。 汽车模块:用来管理汽车汽车编号、汽车的种类及相应的票价、最大载客量、剩余座位数。
车票模块:用来管理汽车车票编号、售票情况、查询、打印。 乘客模式:用来管理汽车乘客出发地 、出发地、目的地。
图2 设计思路
3、数据库设计
(1)概念设计
经分析,本系统各实体及其属性的E-R 图如下:
图3 车票信息表
线路
汽车
车票 输入 线路信息 各种查询
输入 输入
管理员
各种报表
票价信汽车信息 输入 线路信输入
汽车信
图4 线路信息表
图 5 汽车基本信息表
图 6 乘客信息表
汽车
汽车种类
汽车编号
最大载客量
乘客
出发时
目的地
出发地
图8 创建数据库
(2)表
① CREATE TABLE 汽车基本信息表
( 汽车编号CHAR(10) PRIMARY KEY,汽车种类CHAR(10),
最大载客量INT,
线路号CHAR(10))
图9 创建汽车基本信息表
② CREATE TABLE 车票信息表
( 车票编号CHAR(10) PRIMARY KEY,
售票情况CHAR(10),
票价INT,
线路号CHAR(10))
图10 创建车票信息表③ CREATE TABLE线路信息表
(线路号CHAR(10) PRIMARY KEY,
出发地CHAR(10),
目的地CHAR(10),
出发时间CHAR(10),
所需时间INT)
图11 创建线路信息表
④ CREATE TABLE 乘客信息表
( 汽车编号CHAR(10) PRIMARY KEY,线路号CHAR(10),
出发地CHAR(10),
目的地CHAR(10),
出发时间CHAR(10))
图12 创建乘客信息表(3)索引
①CREATE UNIQUE INDEX im_in
ON 汽车基本信息表(汽车编号)
图13 为汽车基本信息表创建索引② CREATE UNIQUE INDEX ik_il
ON 线路信息表(线路号)
图14 为线路信息表创建索引③ CREATE UNIQUE INDEX id_ix
ON 车票信息表(车票编号)
图15 为车票信息表创建索引
④ CREATE UNIQUE INDEX ih_ig
ON 乘客信息表(汽车编号)
图16 为乘客信息表创建索引(4)视图
①CREATE VIEW view_1
AS
select 汽车编号,汽车种类,最大载客量,线路号from 汽车基本信息表
图17 为汽车基本信息表创建视图
② CREATE VIEW view_2
AS
select 线路号,出发地,目的地,出发时间,所需时间from 线路信息表
图18 为线路信息表创建视图
③CREATE VIEW view_3
AS
select 车票编号,售票情况,票价,线路号
from 车票信息表
图19 为车票信息表创建视图
④ CREATE VIEW view_4
AS
select 出发时间,出发地,目的地,汽车编号,线路号
from 乘客信息表
图20 为乘客信息表创建视图6、录入数据
INSERT
INTO 车票信息表
VALUES('20110001','拥挤','85','101')
VALUES('14:30','抚州市','南昌市','5','105') INSERT
INTO 乘客信息表
VALUES('15:28','鄱阳县','南昌市','3','103') 7、设计存储过程和触发器
(1)创建存储过程
create proc proc_zg
as
select 车票编号,票价
from 车票信息表
where 线路号='103'
图21 创建存储过程(2)创建触发器
① create trigger insert_qi
on 车票信息表
after insert
as
select *
from 车票信息表
insert into 车票信息表(车票编号,票价) Values(‘20110001’,‘80’)
图22 车票信息表创建触发器② create trigger insert_che
on 汽车基本信息表
after insert
as
select *
from 汽车基本信息表
insert into 汽车基本信息表(汽车编号,线路号) Values(‘1’,‘101’)
图23 汽车基本信息表建触发器
③ create trigger insert_xian
on 线路信息表
after insert
as
select *
from 线路信息表
insert into 线路信息表(线路号,所需时间)
Values(‘106’,‘5’)