版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大型数据库课程设计设计报告题 目:火车站票务管理系统后台数据库学 号: gggg 学生姓名: ddd 指导教师: fgg 提交时间: 2013-11-23 目录第1章需求分析21.1需求调查21.2系统功能分析21.3面对用户需求分析3第2章面向对象分析和设计4类和对象设计如下:4第3章逻辑结构设计63.1类和对象向关系模式转换9第4章数据库物理结构设计94.1存取方法设计94.2存储结构设计94.3物理设计9第5章数据库完整性设计95.1主键及唯一性索引125.2参照完整性设计125.3check约束135.4default约束135.5触发器设计13第6章 数据库视图设计13第7章 数据库
2、存储过程设计15第8章 权限设计17总结19参考文献:20教务管理系统后台数据库第1章需求分析通过对火车站客运量、旅客和业务员的调查,该火车站票务管理系统有如下需求:1) 系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码, 数据备份,数据还原,注销等功能。2) 票务管理:实现对火车运行站点及时间的管理、对业务员的管理、对余票的更新及退票的管理。3) 基本信息:实现显示火车及业务员的基本信息。4) 售票:在有剩余座位的情况下自动更新剩余的座位数,控制不超员。5) 查询:包括实现车次查询,业务员查询。可以查询火车的车种、编号、车厢数等;查询售票员工作的车站名,及其年龄、性别等;6
3、) 服务器配置:对它进行配置可以使得在其他电脑上也照常使用。这样不必每次都到数据库中去更改。7) 帮助系统:帮助系统为用户指明方向。1.2系统功能分析1、车次管理:用于对火车基本信息的录入、查询、修改、维护、删除等常用功能。2、车次及价格管理(含到各站的价格):可以按照车次或始发站、终点站两种方式进行查询,只需要输入关键信息即可查到所需的车次的有关信息,包括车的类型、所剩票的类型、数量、票价等。3、实现业务员管理:用于对业务员基本信息的录入、查询、修改、维护、删除等常用功能,并提供工作地点变动、奖惩登记等功能。4、实现车票销售管理:车票销售时不能超员,并自动修改剩余的座位数(用触发器实现);5
4、、创建存储过程统计指定车次指定发车时间的车票销售情况;6、创建存储过程统计指定日期各业务员车票的销售收入; 7、实现退票管理:由于一些原因,可能造成客户要求退票,系统根据具体 的情况判定是否可以退票,进行退票。退票时自动修改相应车次的剩余座位数。1.3面对用户需求分析在火车站票务管理系统中,最主要的功能就是进行一系列的查询和各类数据的管理。因此,可以将火车站票务管理系统分为管理系统(有数据变化)和查询系统两个子系统。而在所设计的火车站票务管理系统中,主要有三类用户,即旅客用户、业务员用户、系统管理员。各类用户在该系统中的需求不同,权限也不同。因此,为了更明确,更系统的了解用户需求,我们还可以将
5、管理系统再细分为旅客管理系统,业务员管理系统,系统管理员管理系统。同样,将查询系统也按用户职能进行细分。这样细分后,看似把系统需求繁杂化了。其实不然,细分后使各用户需求更加明确了,并且能更好的把握系统需求。下面从细分后的各个子系统分析子系统的需求: 火车站票务管理系统车次管理子系统车次及价格管理子系统业务员管理子系统车票销售管理子系统退票管理子系统1) 车次管理系统,旅客可以通过该系统查询相关车次的基本信息,火车途经站点、出发时间、车的种类等。2) 车次及价格管理系统,旅客可以按照相关车次及车站查询相对票价及时间。3)业务员管理系统,该系统中,主要显示业务员的各项基本信息以及对业务员信息的管理
6、。 4)车票销售管理系统,该系统主要是可以自动更新各个车次的剩余票数。 5) 退票管理系统,对由于各种原因需要退票的旅客提供退票服务,系统根据具体的情况判定是否可以退票,进行退票。退票时自动修改相应车次的剩余座位数。第2章 面向对象分析和设计类和对象设计如下: 第3章逻辑结构设计局部er图1、 车次管理终点站终点站车次号开车时间到达时间始发站终点站 车站经过火车始发站1n 途径车站座位数发车时间相对距离2、售票员管理业务员始发站工作姓名业务员车站性别员工编号n1年龄途径车站号终点站3、 车票销售系统售票日期座位种类票价车票退票售票业务员性别年龄员工编号姓名车次号nm座位号发车时间nm退票日期车
7、票编号4、车票销售超员管理车票编号号车次号座位剩余数终点站 座位种类票价发车时间对应座位号号车票火车1n车次号发车时间始发站时座位数车种座位号车厢号号总体er图车种车次号到达时间开车时间始发站终点站 终点站车站经过火车m始发站1 途径车站名座位数1发车时间相对距离1车厢号对应工作座位剩余数座位号 n售票日期n票价车票编号员工编号售票姓名车次号号 n车票业务员mn座位号退票性别 m n座位种类年龄发时退票日期3.1类和对象向关系模式转换车次信息(车次号、座位数、发时、车种)业务员信息(员工编号、姓名、性别、年龄)员工奖励表(员工编号、工作站点、奖励等级)车站信息(车次号、始发站、途径车站、途径车
8、站、终点站)车票信息(车票编号、车次号、座位号、价格、发车时间、座位种类)退票信息(车票编号、车次号、退票日期)售票信息(员工编号、车次号、车票编号、售票日期)余票信息(车次号、发车时间、剩余票数)第4章数据库物理结构设计4.1 存取方法设计数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。对于火车站票务管理系统来说,为了提高某些属性(如:车票编号、车次号、座位号、座位类型等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。这样在查询时就会大大提高查询速度。因此,该系统中选择聚簇存取方法。4.2存储结构设计火车站
9、票务管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(b/s),客户端/服务器(c/s)混合的应用体系结构来建设教务管理系统。数据库管理系统采用microsoft 公司推出的sql server 2000 或以上版本,并用sql进行数据库的建立和数据库中数据的维护和查询。4.3物理设计实现该设计的环境为windows xp professional + ms sql server 2005 或以上版本。一:建立火车站车票管理数据库create database 火车站车票管理数据库-1、创建管理员表:create table 管理员( 管理员编号char(6) not nul
10、l primary key, 姓名char(8) , 级别char(10)-2、创建乘客表:create table 乘客表( 身份证号char(18) not null primary key, 姓名char(8) , 车票编号char(5), )-3、建立业务员表:create table 业务员( 员工编号char(6) not null primary key, 姓名char(8) , 性别bit, 年龄int,)-4、创建员工奖励表create table 员工奖励表(员工编号char(6) not null references 业务员(员工编号),工作站点char(20),奖励等
11、级char(10),primary key (员工编号)-5、建立车次表: create table 车次表(车次号char(5) not null primary key,座位数int,发车时间char(5) null , 车种 char (4) )-6、建立车站表:create table 车站表(车次号char(5) not null references 车次表(车次号),始发站char(20) not null,途径车站char(20) not null,途径车站char(20) not null,途径车站char(20) null,途径车站char(20) null,途径
12、车站char(20) null,终点站char(20) not null,primary key (车次号)-7、建立车票表:create table 车票表( 车票编号char(5) not null primary key ,车次号char(5) not null references 车次表(车次号),发车时间datetime not null,座位编号char(5) not null,价格float not null,座位种类char(4)-8、建立售票表:create table 售票表( 员工编号char(6) not null references 业务员(员工编号),车票编号c
13、har(5) not null references 车票表(车票编号),车次号char(5) not null references 车次表(车次号),售票日期datetime ,primary key (员工编号,车票编号) )-9、建立退票表:create table 退票表 ( 车票编号char(5) not null primary key,车次号char(5) not null references 车次表(车次号),退票时间datetime null , foreign key (车票编号) references 车票表(车票编号) )-10、建立余票表:create table
14、 余票表(车次号char(5) not null primary key,剩余票数int not null,发车时间datetime,foreign key (车次号) references 车次表(车次号)第5章数据库完整性设计5.1主键及唯一性索引表名主键建立唯一性索引车次表(车次号)create unique index 车次表on 车次表(车次号 asc)业务员(员工编号)create unique index 业务员on 业务员(员工编号 asc)车站表(车站号)create unique index 车站表on 车站表(车站号 asc)售票表(车票号)create unique i
15、ndex 售票表on 售票表(车票号 asc)车票表(车票编号,车次号)create unique index 车票表on 车票表(车票编号 asc,车次号 asc)退票表(车票号)create unique index 退票表on 退票表 (车票号 asc)余票表(车次号)create unique index 余票表on 余票表(车次号 asc)5.2 参照完整性设计5.3check约束1、 业务员表中将性别进行check约束:alter table 业务员add constraint sex check(性别in('1','0')2、 车票表中将座位编号进
16、行check约束:alter table 车票表add constraint zum check (座位编号>=12000 and 座位编号<=15000) 3、 车次表中车种进行check约束:alter table 车次表add constraint ccz check (车种in('普快','快车','特快','动车','高铁')5.4default约束1、售票表中售票日期默认值设为:2013-11-19 00:00。default('2013-11-19 00:00')2、业务员
17、表中将员工性别族默认值设为:女。default('女')3、员工奖励表中将奖励等级默认值设为:null。default('null')5.5 触发器设计-1、车票销售时不能超员,并自动修改剩余的座位数 create trigger tri_ticket on 售票表after insert as begindeclare p_num char(5),seat_sum int,t_num char(5)select p_num=车票编号,t_num=车次号from insertedselect seat_sum=剩余票数from 余票表update 余票
18、表set 剩余票数=剩余票数-1where 车次号=t_num endgo -触发检验: insert into 售票表values('111011','20136','1234','12:00')-2、业务员售出车票后,自动更新员工售票情况表和员工奖励表create trigger 业务员售票触发器on 售票表after insertas begindeclare 员工编号char(5)select 员工编号='员工编号' from insert
19、edupdate 员工售票情况set 售出票数=售出票数+1 where 员工编号=员工编号update 员工奖励表set 奖励等级='一等奖励' where 员工编号=员工编号end go-触发检验:insert into 售票表values('111002','20106','s223','2013/11/19 12:00:00')-3、退票时自动修改相应车次的剩余座位数create trigger tp_ticket on 退票表after insert as begindeclare p_num char(
20、5),seat_sum int,t_num char(5)select p_num=车票编号,t_num=车次号from insertedselect seat_sum=剩余票数from 余票表update 余票表set 剩余票数=剩余票数+1where 车次号=t_num end-触发检验:insert into 退票表values('20136','1234','2013-11-13 12:00')-4、退票时,根据退票时间判断是否允许退票create trigger t_p on 退票表instead of insertasbegin de
21、clare p_num char(5),t_time datetime,f_num datetimeselect p_num=车票编号,t_time=退票时间from insertedselect f_num=发车时间from 车票表where 车票编号=p_numif f_num-t_time>=2print'退票成功'elseprint'不能退票'end-触发检验: insert into 退票表 values('20116','s213','2013-11-19 12:00') 第6章 数据库
22、视图设计-1、创建业务员表视图create view 业务员表视图with encryptionas select 业务员.员工编号,姓名,工作站点,奖励等级from 业务员,员工奖励表where 业务员.员工编号=员工奖励表.员工编号with check option-2、创建车次管理视图create view 车次管理视图asselect 车次表.车次号,座位数,发车时间 ,车种,始发站,终点站from 车次表,车站表where 车次表.车次号=车站表.车次号- 、创建车票表视图create view 车票表视图asselect 车票编号,车次号,发车时间,座位编号,价格,座位种
23、类from 车票表-4、创建车票销售视图create view 创建车票销售视图asselect 车次管理视图.车次号, 车次管理视图.发车时间 ,车种,始发站,终点站,价格,座位种类,剩余票数from 车次管理视图, 车票表,余票表where 余票表.车次号=车票表.车次号and 车次管理视图.车次号=余票表.车次号-5、创建车票销售视图create view 车票销售视图asselect 员工编号,售票表.车票编号,价格,售票日期from 车票表,售票表where 售票表.车票编号=车票表.车票编号- 6、创建售票表视图create view 售票表视图asselec
24、t 员工编号,车票编号,车次号,售票日期from 售票表 - 7、创建退票表视图create view 退票表视图asselect 车票编号,车次号,退票时间from 退票表-8、创建余票表视图create view 余票表视图asselect 车次号,剩余票数,发车时间from 余票表-9、创建余票情况视图1create view 余票情况视图1asselect 余票表.车次号,发车时间from 余票表,售票表where 余票表.车次号=售票表.车次号-10、创建余票情况视图2create view 余票情况视图2asselect 售票表.车次号,发车时间from 余票表
25、,售票表where 余票表.车次号=售票表.车次号第7章 数据库存储过程设计-1、指定始发站和终点站查询车次号、车种、价格、座位种类、剩余票数等信息create procedure btend 始发站char(20),终点站char(20)asbeginset nocount onselect * from 车票销售视图where 始发站=始发站and 终点站=终点站end-执行存储过程exec btend '郑州','北京'-2、指定车次查询始发站、终点站、车种、价格、座位种类、剩余票数等信息create procedure 按车次查询车次号char(5)as
26、beginset nocount onselect * from 车票销售视图where 车次号=车次号endexec 按车次查询 't146'-3、指定车次指定发车时间的车票销售情况 create procedure p_selld t_num_in char(5),d_time_in datetime,sum_ticket char(6) outputasselect 车次号,count(*) as 'sum_ticket'from 余票情况视图where 余票情况视图.车次号=t_num_in and 发车时间=d_time_ingroup by
27、 车次号go-执行存储过程exec p_selld 'g574', '2013/11/19 15:53:00','count(*)'-4、指定日期各业务员车票的销售收入 create procedure rp_selled y_num_in char(6) output,d_time_in datetime,money char(6) outputasselect 员工编号,sum(价格) as 'money'from 车票销售视图where 员工编号=y_num_in and 售票日期=d_time_ingroup b
28、y 员工编号go-执行存储过程exec rp_selled '111002','2013/2/10 0:00:00','sum(价格)'-5、指定员工编号查询售出票数create procedure 编号查询员工编号char(6) output,售出票数char(6) outputasselect 员工编号,count(车票编号) as '售出票数'from 售票表where 员工编号=员工编号group by 员工编号goexec 编号查询'111002','count(车票编号)'-6、改变指定
29、员工的工作站点create procedure 工作站点变更员工编号char(6),工作站点char(20) asupdate 员工奖励表set 工作站点=工作站点where 员工编号=员工编号goexec 工作站点变更 '111002','北京'-7、根据身份证号码查询乘客的车票信息create procedure s_tri1 id char(18)asselect 身份证号,姓名,乘客表.车票编号,车次管理视图.车次号,车种,始发站,终点站,车票表.发车时间,座位编号,价格,座位种类from 乘客表,车次管理视图,车票表where 车票表.车次号=车次管理
30、视图.车次号and 车票表.车票编号=乘客表.车票编号and 身份证号=idgo-执行存储过程exec s_tri1 '#39;第8章 权限设计-1、创建一级管理员的登录名及用户,并给一级管理员授权create login 一级管理员with password='123456',default_database=火车站票务管理数据库create role 一级管理员authorization dbocreate user 一级管理员for login 一级管理员with default_schema=dbogrant insert
31、,update,delete on 退票表to 一级管理员grant insert ,update,delete on 车次表to 一级管理员grant insert ,update,delete on 车站表to 一级管理员-2、创建二级管理员的登录名及用户,并给二级管理员授权create login 二级管理员with password='123456',default_database=火车站票务管理数据库create role 二级管理员authorization dbocreate user 二级管理员for login 二级管理员with default_schem
32、a=dbogrant insert ,update,delete on 退票表to 二级管理员grant insert ,update,delete on 车站表to 二级管理员-3、创建数据库角色业务员并给业务员授权create role 业务员authorization dbogrant select on 车票表to 业务员grant select on 车次表to 业务员grant insert ,update,delete on 售票表to 业务员grant insert ,update,delete on 退票表to 业务员-4、创建数据库角色乘客并给乘客授权create role 乘客authorization dbogrant select on 车票表to 乘客grant select on 车次表to 乘客grant select on 车站表to 乘客 总结通过这么多天的数据库课程设计的学习,我受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。并且对sql server这一门课程有了更深一步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专业摄影器材及配件销售代理合同范本9篇
- 2025年度不良资产债权转让与债务置换法律服务合同3篇
- 2024计算机机房设备采购合同
- 2025年牛场租赁及粪便处理合同示范文本3篇
- 上海离婚协议书范文(2024版)
- 2025年度文化遗址保护承包经营权抵押融资合同3篇
- 2024年道路楼体亮化工程合同
- 2024幼儿园法制副校长校园法律知识普及与教育活动合同3篇
- 2024年生态农业用地联合出让竞买协议3篇
- 2025年度体育健身场地使用权转让及会员服务合同2篇
- 肉牛肉羊屠宰加工项目选址方案
- 清洗剂msds清洗剂MSDS
- 中学数学教学案例
- 同等学力申硕英语词汇400题及解析
- 大二上学期 植物地理学ppt课件5.3 植物生活与环境-温度条件(正式)
- 人教版七年级上册数学第一章有理数计算题训练(无答案)
- 新能源发电技术教学大纲
- 微生物在农业上的应用技术课件
- 国家自然科学基金申请书填写课件
- 各种面料服装用洗涤标志及说明
- 县级危重孕产妇救治中心评审标准(产科)
评论
0/150
提交评论