当前位置:文档之家› 数据库课程设计长途汽车信息管理系统

数据库课程设计长途汽车信息管理系统

数据库课程设计长途汽车信息管理系统姓名:李鑫学号:**********数据库原理及Oracle开发课程设计题目汽车信息管理系统系(部) 计算机科学与技术班级12级3班姓名李鑫学号**********指导教师方昕2014年6月9日一.需求分析阶段随着社会的不断发展,技术的不断进步,信息技术和数据处理速度越来越引起人们的重视,因为信息的大量而快速的传递,大批量数据的处理单靠人工是不可靠的,也是不现实的。

各行业都迫切需要高性能的的管理系统。

汽车信息管理数据库系统是面向所有汽车的数据管理系统,其目的是使乘车有序化,规范化,简单化,易于车站人员的管理,查询。

而汽车信息管理系统就是根据车站发展的需要而建立的典型的信息管理系统。

它以处理为中心,其重点是进行查询,打印客户所需信息。

开发主要包括数据库的建立和维护。

模块功能分析:线路模块:用来管理汽车线路号、出发地、目的地、出发时间、所需时间。

汽车模块:用来管理汽车汽车编号、汽车的种类及相应的票价、最大载客量、剩余座位数。

车票模块:用来管理汽车车票编号、售票情况、查询、打印。

乘客模式:用来管理汽车乘客出发地、出发地、目的地。

二、概念结构设计经分析,本系统的e-r图如下:各实体及其属性:各实体间关系的e-r图如下:关系图:三、逻辑结构设计1. 工厂管理基本信息表列名数据类型长度是否为空备注汽车票号char 10 否主码汽车种类char 10 是最大载客量smallint 是属性名类型长度是否为空备注线路号char 10 主码出发地Char 10目的地char 10char 10出发时间所需时datetime 8(3).车票信息表(4).乘客信息表2.汽车管理基本数据信息表(1). 车票信息表(3).线路信息表(4).乘客信息表对应SOL语句如下:(1)建库create database 汽车信息管理系统(2)建表CREATE TABLE 汽车基本信息表(汽车编号 CHAR(10) PRIMARY KEY,汽车种类 CHAR(10),最大载客量 INT,线路号 CHAR(10))CREATE TABLE 车票信息表(车票编号 CHAR(10) PRIMARY KEY,售票情况 CHAR(10),票价 INT,线路号 CHAR(10))CREATE TABLE线路信息表(线路号 CHAR(10) PRIMARY KEY,出发地 CHAR(10),目的地 CHAR(10),出发时间 CHAR(10),所需时间 INT)CREATE TABLE 乘客信息表(汽车编号 CHAR(10) PRIMARY KEY,线路号 CHAR(10),出发地 CHAR(10),目的地 CHAR(10),出发时间 CHAR(10))(3)插入数据INSERTINTO 车票信息表VALUES('20110001','拥挤','85','101')INSERTINTO 车票信息表VALUES ('20110002','良好','90','102')INSERTINTO 车票信息表VALUES ('20110003','稀疏','110','103') INSERTINTO 车票信息表VALUES ('20110004','拥挤','109','104')INSERTINTO 车票信息表VALUES ('20110005','拥挤','120','105')INSERTINTO 车票信息表VALUES ('20110006','良好','160','106')INSERTINTO 汽车基本信息表VALUES ('1','A','35','101')INSERTINTO 汽车基本信息表VALUES ('2','B','50','102')INSERTINTO 汽车基本信息表VALUES ('3','C','45','103')INSERTINTO 汽车基本信息表VALUES ('4','D','55','104')INSERTINTO 汽车基本信息表VALUES ('5','E','45','105')INSERTINTO 汽车基本信息表VALUES('6','F','60','106')INSERTINTO 线路信息表VALUES ('101','南昌市','抚州市','18:00','2')INSERTINTO 线路信息表VALUES ('102','景德镇','鄱阳县','10:20','1')INSERTINTO 线路信息表VALUES ('103','鄱阳县','南昌市','15:40','4')INSERTINTO 线路信息表VALUES ('104','抚州市','南昌市','14:30','2')INSERTINTO 线路信息表VALUES ('105','抚州市','南昌市','13:00','3')INSERTINTO 线路信息表VALUES ('106','南昌市','景德镇','09:00','5')INSERTINTO 乘客信息表VALUES ('18:09','南昌市','抚州市','1','101')INSERTINTO 乘客信息表VALUES ('07:00','南昌市','景德镇','6','106')INSERTINTO 乘客信息表VALUES ('10:23','景德镇','鄱阳县','2','102')INSERTINTO 乘客信息表VALUES('14:30','抚州市','南昌市','5','105')INSERTINTO 乘客信息表VALUES('15:28','鄱阳县','南昌市','3','103')四、功能处理1.索引①建立索引create unique index id_ix on车票信息表(车票编号);create unique index im_in on 汽车基本信息表(汽车编号);create unique index ik_il on 线路信息表(线路号);create unique index ih ig on 乘客信息表(汽车编号);②删除索引Drop index 车票信息表id ix2.视图①创建视图create view view_1as select车票编号,售票情况,票价,线路号from 汽车信息表create view view_2as select汽车编号,汽车种类,最大载客量,线路号from 汽车基本信息表create view view_3as select 线路号,出发地,目的地,出发时间,所需时间from 线路信息表create view view_4as select出发时间,出发地,目的地,汽车编号,线路号from 乘客信息表②视图的撤消drop view view_1;③视图的查询select * from view_3;select * from view_2;④视图的更新insert into view_1values(‘20110001’,’拥挤’’85’’80’);3.存储过程①创建存储过程create proc proc_zgasselect 车票编号,票价from 车票信息表where 线路号='103';②存储过程的查询exec proc_zg;③存储过程的修改alter proc proc_zgasselect车票编号,票价from车票信息表where 线路号='104'4、触发器①创建触发器create trigger z_select on 车票信息表after insertasselect * from 车票信息表select * from insertedgoinsert into 车票信息表(车票编号,票价)values('20110001','80')②触发器的删除drop trigger z_select;5、数据更新①插入(前面已插入)②修改Update 车票信息表Set 票价=90Where 车票编号=’20110001’;③删除delete from车票信息表where 车票编号=’20110002’;6、数据查询SELECT 出发时间,汽车编号FROM 乘客信息表WHERE 汽车编号='2'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='101'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='102'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='103'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='104'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='101'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='102'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='103'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='104'SELECT售票情况,票价FROM 车票信息表WHERE 线路号='106'SELECT 出发时间,线路号,目的地FROM 乘客信息表ORDER BY 线路号SELECT 车票编号FROM 车票信息表WHERE 票价 BETWEEN 90 AND 110五、系统设计、制作小结通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。

相关主题