公交公司管理系统.docx
合肥师范学院(本科)课程设计说明书课 程数据库原理题 目公交公司管理系统姓 名学 号专业班级指导教师完成日期年月日1 序言22 需求分析32.1内容要求33数据库概念设计43.1公交公司管理系统E-R图44数据库逻辑设计64.1公交公司关系模式(下划线为主码)65数据库物理设计75.1公交公司管理系统建立语句75.2建表结果96数据库系统的实现与结果106.1数据库界面图116.2查询语句111 序言由于现行公交信息越来越复杂,公交线路越来越多,站点越来越复杂,为了 更好的对公交公司进行管理,我们运用所学的知识设计了公交公司管理系统,该 系统可以很好的管理公交公司、车辆、供应商、职工。管理者可以查看车辆出发 的时间、起始站、终点站。员工可以查看到自己的工资等基本信息。整个程序操作简便、灵活、实用,使用人员能够快速简单的进行操作,即时 准确的获得公交信息,及时的作出相关信息的调整和修改。对于内部员工的工资 也有相应的调整政策,让大部分员工工资较为平均,对于车辆的来源以及数量也 有明确的记录,简单明了的统计车辆的数量。2需求分析2.1内容要求该系统重点是公交公司的人员安排,具体路线的安排,员工的基本信息以及管理 员进行具体的管理工作,从而实现管理员管理司机,司机驾驶车辆以及车辆行驶 路径的安排,员工工资发放等。具体过程:(1) 调查现在的公交公司具体的管理模式,以及是否需要一个数据库来对相应的 数据进行管理。(2) 调查公交公司内部具体有哪些人员和部门,以及各部门人员的信息(3) 调查内部人员的具体关系,以及各部门的联系,和各个部门的具体工作分配。本章主要介绍公交公司管理系统在概念设计阶段的各实体的ER图以及总体 的ER图,以便在后期设计能够很好的了解各实体的关系属性等3.1公交公司管理系统E-R图图3-1售票员实体图图3-2公交线路实体图中北车辆供应商供应商地址供应供应商代码图3-3车辆供应商实体图图3-4车辆实体图图3-5司机实体图图3-6公交公司实体图图3-7公交公司管理系统E-R图4数据库逻辑设计在上一章我们已经介绍了公交公司管理系统的各ER图,因此在本章我们将 主要说明其关系模式以及表格的设计,以便后期的数据输入4.1公交公司关系模式(下划线为主码)供应商表(供应商代码供应商地址供应商标)车辆表(车牌号尺寸载客量)公交公司表(公司代码公司商标公司地址)司机表(姓名性别年龄)售票员表(姓名性别年龄)公交线路表(线路代号起始站终点站)供应表(供应商代码车牌号供应量)公司车辆表(车牌号公司代码数量)公司职员表(公司代码姓名工资)线路控制表(公司代码线路代号时间)5数据库物理设计表格的创建可以直接运用sql语句来建立,在本章我们将主要介绍各表格的 语句建立以及对其进行数据的输入。5.1公交公司管理系统建立语句Create database GJGSOn(name= GJGS_dat ,Filename= 'D:dataGJGS_dat.mdf')Create table 供应商表(Sid varchar(20) primary key,Sad varchar(20),Gysb varchar(20);Create table 车辆表(cph varchar(20) primary key,Size varchar(20),Zkl int);Create table公交公司表(cid varchar(20) primary key,Cad varchar(20),Gssb varchar(20);Create table 司机表(cname varchar(20) primary key,Csex varchar(20),Cage varchar(20);Create table售票员表(bname varchar(20) primary key,Bsex varchar(20),Bage varchar(20) );Create table公交线路表(rid varchar(20) primary key,Qsz varchar(20),Zdz varchar(20);Create table 供应表(sid varchar(20) primary key, cph varchar(20) primary key, snum int);Create table公司车辆表(cph varchar(20) primary key, cid varchar(20) primary key, cnum varchar(20);Create table 公司职员表(cid varchar(20) primary key,Bname varchar(20) primary key, Ssla varchar(20);Create table线路控制表 (cid varchar(20) primary key,Rid varchar(20) primary key,Ftime int);5.2建表结果列名数据类型长度允许空51 dvar char20E:=idvar char20gysbvar ehar20列名数据类型长度允许空Eldvar char20Cphv:±r ch:±f20EIlIJITiint4图5-1供应商表气设计表"供应表位置是"GJGS中、"(local)上图5-2供应表列名数据类型长度允许空ci dvar char20gssbv:±r ch:±f20cadvar char20稿 设计表"公交公司表",位置是uGJGSn中、"local"图5-3公交公司表列名数据类型长度允许空»ridV3T i:h:±f20qszvar char20zdzvar char20赁设计表"公交生路表",位置是"GJGS中、"flocair图5-4公交线路表列名数据类型长度允许空8I:i dv:±r ch:±f20tin:diri hvar char20ee1:=lvar char20雀设计表"公司职员表",位置是"GJGS中、"flocair图5-5公司职员表列名数据类型长度允许空2Cphwar char20ci dv:±r ch:di-20cniiiTiv:±r i:h:ai-20笛设计表“公司车辆表r位置是¥G家中、"(local)"图5-6公司车辆表祸设计表“司机表","GGb中."(localr上列名教据类型长度允许空Ti:rL:diri ev:±r i:h:±f20csexwar ehar20c age图var char5-7司机表20福设计表“售票豪”,位置是"GG软中、"1口反厂列名1数据类型长度允许空TbrL:diri ev:±r i:h:di-20b e exwar ehar20bagsv:±r ch:di-20图5-8售票员表福设计表,绑§控制表,位置是"GGb中、"flocair列名数据类型长度允许空揪ci dv:±r i:h:ai-208ridwar char20ftimeint4图5-9线路控制表赁设计表"车辑表",位置是"GJGS中、"(local)上列名数据类型长度允许空TCphvar char20sizevr ch:±f20zklint4图5-10车辆表6数据库系统的实现与结果数据库的建立会形成相应的界面和各表格数据的输入结果,在这一章里我们 将主要展示相应的结果图。6.1数据库界面图-|口|毛控制台根目录'Microsoft SQL ServersSQL Server ®(local) Windows NT)澎据库GJGS佞制含根目录Microsoft SQL Serversid SQL Server 组日 E台(local) (Windows NT)曰缠库日物GJGSW矢票图-"I表视图迭存储过程寒用户修角色J顾企用户定义的数据类型瓦用户定义的函数田植mastermodelmsdbNorth windpubs国田田田E M tempdbs O数据转换田豳管理田B复制s a查全性田O支持服务田 Q Meta Data Services表 30个项目Ld名称听有者创建日期冒 sysco mmentsdbo2000/8/6 1:29:12O sysdependsdbo2000/8/6 1:29:12国 sysfileg roupsdbo菽2000/8/6 1:29:12冒 sysfilesdbo2G00/8/6 1:29:12O sysfilesldbo2G00/8/6 1:29:123 sysfo reign keysdbo成2000/8/6 1:29:120 sysfu 1 Itextcata logsdbo2000/8/6 1:29:12冒 sysfulltextnotifydbo菽2000/8/6 1:29:12冒 sysindexesdbo2000/8/6 1:29:12O sysindexkeysdbo2000/8/6 1:29:120 sysmembersdbo2000/8/6 1:29:12国 sysobjectsdbo敦2000/8/6 1:29:12O syspermissionsdbo2000/8/6 1:29:12冒 syspropertiesdbo2000/8/6 1:29:12冒 sysprotectsdbo成2000/8/6 1:29:120 sysreferencesdbo2000/8/6 1:29:12冒 systypesdbo菽2000/8/6 1:29:12冒 sysu&ersdbo2000/8/6 1:29:12表dbo用户2013/5/28 13:23:25dbo用户2013/5/28 13:38:21二公安公司表dbo用户2013/5/21 21:59:07dbo用户2013/5/21 22:06:00二公司dbo用户2013/5/21 22:12:50士司供sdbo用户2013/5/21 22:11:19晶司腕dbo用户2013/5/21 22:01:38n售票哙dbo用户2013/5/21 22:03:13二妹路控制表dbo用户2013/5/21 22:15:24dbo用户2013/5/21 21:56:38图6-1公交公司管理系统总体图6.2查询语句(1) 查询车牌号为20000车辆的供应商地址select sadfrom供应商表,供应表,车辆表where供应商表.sid=供应表.sid and车辆表.cph=供应表.cph and车辆 表/ph='20000'兰ad30001(2) 查询名为王刚的售票员工资select sslafrom售票员表,公司职员表,公交公司表where 售票员表 .bname二公司职员表 .bname and 公交公司表 .cid= 公司职员 表.cid and售票员表.bname='王刚'(3) 查询车辆由公司号为10001的发车时间select ftimefrom公交公司表,公交线路表,线路控制表where公交公司表.cid二线路控制表.cid and公交线路表.rid二线路控制表.rid and公交公司表.cid= 10001L_l$(4) 触发器:售票员年龄大于0create trigger t1 on 售票员表for insert,update asif(select bage from inserted)<1beginprint bage must be a integer more than zero! Transaction fail rollback transaction endinsert into 售票员表 values( 小红,女,-10)J Jbage must be a integer more than zero! transaction fail 游标:对工资高于5000的售票员扣除300元,对工资低于4000的售票员奖 励300元declare cid varchar(20),ssla varchar(20)declare c1 cursor for select cid,ssla from 公司职员表open c1fetch next from c1 into cid,sslawhile fetch-status=0beginif ssla<4000update 公司职员表 set ssla=ssla+300 where cid=cidif ssla>5000 setupdate 公司职员表 set ssla=ssla-300 where cid=cidfetch next from c1 into cid,sslaendclose cldeallocate cl(所窸响的行数为1行)(所影响的行数为1行)(6) 存储过程:允许以售票员的姓名查询该员工的基本信息 create procedure s1(xm varchar(20)as select distinct * from售票员表where 售票员表.bname=xmexec s1张国荣±Lbnamebsesbagei弓长国荣里 28(7) 内联表值函数:返回公司职员工资create function GZ(gs_cid varchar(20) returns table asreturn (select sslafrom公交公司表,售票员表,公司职员表where 公交公司表.cid二公司职员表.cidand 公司职员表.bname二售票员表.bname and 公交公司表.cid=gs_cid) select * from GZ( 10001 )(8) 标量函数:比较2名职员的工资,返回最大值 create function dbo.max(a int, b int) returns int asbegindeclare max int if a>b set max=a else set max=b return max end select dbo.max(5000,4800) from 公司职员表n(无列名)p50002500035000450007实验总结本次在做公交公司管理系统时遇到了不少的问题,同时也有不小的收获。看 了很多书籍,查阅了很多资料,对于SQL SERVER 2000的运用也更加熟练。在设 计E-R图时通过查阅资料了解很多需要注意的问题,也学会了使用visio2003. 在书写SQL语句时经常出现一些小错误,通过实验,使自己发现并改正了这些错 误,对自己以后的SQL语句书写有了很大的提高。总的来说,这次课程设计不仅提高了我对数据库的理解,还增强了我的动手 能力.