收藏 分享(赏)

数据库分析与设计实验new.doc

上传人:dreamzhangning 文档编号:2210825 上传时间:2018-09-05 格式:DOC 页数:12 大小:339.50KB
下载 相关 举报
数据库分析与设计实验new.doc_第1页
第1页 / 共12页
数据库分析与设计实验new.doc_第2页
第2页 / 共12页
数据库分析与设计实验new.doc_第3页
第3页 / 共12页
数据库分析与设计实验new.doc_第4页
第4页 / 共12页
数据库分析与设计实验new.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 -数据库分析与设计实验实施方案(一)-火车售票系统(sqlserver+jsp)-设计方案一、实验目标1. 客户需求概述 数据库分析与设计:通过 16 学时实验,初步了解企业真实的项目开发流程,掌握数据库设计思路;同时,通过数据库设计和应用开发的培训,对软件开发行业有一定的认知。 本次实习还贯穿了团队合作、职业素质等培养,使学生在有限的社会资源下能够发挥狼性精神,占领自己的一片天空;在团队合作中感受企业文化,体验团队合作精神;相关的职业素质的整合,保障学生不会因为综合素质达不到企业的要求而叩不开企业的大门。2. 目标 熟悉目前企业数据库建模流程 掌握数据库设计思路 掌握数据库 DDL 、DM

2、L 语言 掌握应用程序访问数据库的方法 完成火车售票系统数据库设计及功能实现二、实验内容序号 知识点 内容及要求 工具第一阶段 需求分析数据库设计阶段实习内容:- 掌握 Sqlserver2005 工具使用;- 火车售票系统需求分析,完成需求分析文档;- 火 车售票系统数据库设计,完成数据库设计文档;- 使用建模工具建立数据模型Sqlserver2005第二阶段 建库建表约束阶段实习内容:- 掌握数据库的创建语句;- 掌握数据库表的创建语句 ;- 掌握主外键的语句以及各类约束语句 ;- 完成数据库表的创建及添加约束 ;Sqlserver2005第三阶段 DML游标阶段实习内容:- 掌握常用的

3、DML 语句 ;Sqlserver2005- 完成车次表、车次详细信息、站点表中插入测试数据;- 掌握 sqlserver 中游标的用法;- 完成使用游标提取并输出开始站点相同但车次不同的数据。第四阶段 存储过程触发器函数阶段实习内容:- 掌握存储过程的创建和使用;- 掌握触发器的创建和使用;- 掌握函数的创建和使用 ;- 存储过程实现每次车从起点开始每一站所需要的价格;- 发车计划表添加触发器实现自动生成车票信息Sqlserver2005第五阶段 JDBCJSP阶段实习内容:- 掌握 JAVA JDBC 方式连接数据 库;- 应用程序实现数据库的操作;- JSP 可视化界面实现车次信息的查询

4、;- JSP 可视化界面实现车票的购买;Sqlserver2005MyEclipse第六阶段 完成项目项目验收阶段实习内容:- 完整实现火车售票系统数据库功能- 掌握应用程序访问数据库- 掌握编写测试用例并完成测试- 测试软件及 bug 修改- 项目验收Sqlserver2005MyEclipse三、课堂模式时间 实习方式课前15 分钟1、项目主管以提问的形式,领着学生回顾上阶段的知识点;2、项目主管介绍一些行业知识 ,当前流行技 术等。课堂 1、阶段期间项目主管会带领学生 实践代码编写,先将范例讲解,然后进入项目分析功能的实现;2、在上课休息期间,项目主管会集中分析一些学生在学习过 程中遇到

5、的问题;3、鼓励技术好的学员帮助技术 差的学生调试代码, 这样既可以提高学生的技 术水平,同时培养了学生的团队意识,也增加了班 级的凝聚力;4、在整个上课期间,项目主管会注意培养学生代码规范性,会给学生提出书写规范代码的要求,并发给学生规范性代 码的模板让学生来模仿。上课下课前 15分钟1、项目主管会领着学生回顾阶 段的所有知识点,主要采取以提问学生总结为主,项目主管补充为辅的方式,来保证 学生当堂课对知识点的消化;2、项目主管给学生布置作业,作业内容为企业面试题;3、项目主管会布置预习任务并提出 预习知识点以方便第二天 课程的学习;-4、项目主管负责给学生共享知 识点总结,上 课源代码,作业

6、题和预习知识的文档;5、培养学生好的习惯,结束课程之后要把桌椅回归原位,保持座位的干净、整洁。课后 1、项目主管在线给学生远程协 助调代码,帮助学生解答在学习过程中遇到的难点;2、对于掌握比较好的同学,给予课外知识的扩充;3、给学生留一些企业的面试题 。四、实验条件序号 实习设施 规格要求 数量1 计算机 P4 512M 及以上 1 套/人SqlServer SqlServer2000 及以上2开发工具应用程序开发 MyEclipse6.0 及以上1 套/人五、项目一览 数据库表- 关系图 应用程序截图搜索全部 车 次-搜索指定 车 次 sqlserver 关键代码实现/*三、假设普快每公里票

7、价.2元、特快每公里票价.3元创建带参(车次)存储过程,实现每次车从起点开始到每个站点所需要的价钱 */create procedure proc_moneytrain_id varchar(10) as-查询火车类型declare train_type int if not exists (select train_type from train_info where train_id=train_id)beginprint 车次输入错误return end elsebeginselect train_type=train_type from train_info where train_i

8、d=train_idend-声明游标-declare cur_trainDetail cursor for select s1.station_name , td.distancefrom train_detail td ,station s1 where td.train_id=train_id and td.station_id=s1.station_id order by td.serial -打开游标open cur_trainDetaildeclare station_name varchar(10)declare distance intdeclare money float de

9、clare price float if train_type=0 set price = 0.2elseset price = 0.3declare tmpDistance int set tmpDistance = 0.3 -提取游标,放入指定的变量fetch next from cur_trainDetail into station_name ,distance-0表示提取成功-1 找不到记录-2超出了最后一条while fetch_status = 0beginset tmpDistance = tmpDistance+distanceset money = tmpDistance*

10、priceprint station_name+ +cast(money as varchar)fetch next from cur_trainDetail into station_name ,distanceend -关闭游标close cur_trainDetaildeallocate cur_trainDetailgo/* 四、在train_info表中,使用游标提取并输出开始站点相同但车次不同的数据 */begin-declare id_1 varchar(10)declare id_2 varchar(10)declare start_id_1 intdeclare start_

11、id_2 intdeclare cur_1 cursor for select train_id,start_station_id from train_info declare cur_2 cursor scroll for select train_id,start_station_id from train_info open cur_1 open cur_2fetch next from cur_1 into id_1,start_id_1 while fetch_status=0beginfetch first from cur_2 into id_2,start_id_2while

12、 fetch_status=0beginif start_id_1 = start_id_2 and id_1 = id_2beginfetch next from cur_2 into id_2,start_id_2continueend if start_id_1 = start_id_2 and id_1 id_2beginprint cast(start_id_1 as varchar) + + id_1print cast(start_id_2 as varchar) + + id_2breakendfetch next from cur_2 into id_2,start_id_2

13、end fetch next from cur_1 into id_1,start_id_1 endclose cur_1close cur_2deallocate cur_1deallocate cur_2end/*五、创建tain_plan表触发器,以生成车票信息 */-create trigger tri_train_plan_insert on train_plan after insertasdeclare train_id varchar(10)declare hardseat intdeclare softseat intdeclare hardbed intdeclare so

14、ftbed intdeclare go_off datetimeselect train_id = train_id ,hardseat = Hardseat_carriage,softseat = Softseat_carriage,hardbed = Hardbed_carriage,softbed = Softbed_carriage ,go_off = go_offfrom Inserted - 循环变量declare i intdeclare j int -生成硬座车票set i=1 while i=hardseatbeginset j=1while j=100 begininser

15、t into ticket(train_id,go_off,carriage_id,seat_id,ticket_type,ticket_Status)values(train_id,go_off,i,j,0,0)set j = j+1end set i = i+1end -生成软座车票set i=1 while i=softseatbeginset j=1-while j=80 begininsert into ticket(train_id,go_off,carriage_id,seat_id,ticket_type,ticket_Status)values(train_id,go_off

16、,i,j,1,0)set j = j+1end set i = i+1end -生成硬卧车票set i=1 while i=hardbedbeginset j=1while j=50 begininsert into ticket(train_id,go_off,carriage_id,seat_id,ticket_type,ticket_Status)values(train_id,go_off,i,j,2,0)set j = j+1end set i = i+1end -生成软卧车票set i=1 while i=softbedbeginset j=1while j=30 beginins

17、ert into ticket(train_id,go_off,carriage_id,seat_id,ticket_type,ticket_Status)values(train_id,go_off,i,j,3,0)set j = j+1-end set i = i+1end go/*六、创建sell_info表触发器,以修改车票信息 */-sell_info表中插入数据,表示车票已售出,修改ticket表状态为create trigger tri_sell_info_inserton sell_infoafter insertasdeclare ticket_id int select t

18、icket_id=ticket_id from insertedupdate ticket set ticket_status=1 where ticket_id=ticket_idgo-sell_info表中删除数据,表示车票退票,修改ticket表状态为2create trigger tri_sell_info_deleteon sell_infoafter deleteasdeclare ticket_id intselect ticket_id=ticket_id from deleted update ticket set ticket_status=2 where ticket_i

19、d=ticket_idgo/*七、查询某一趟列车各类车票剩余数目及状态 */drop procedure proc_ticket ;create procedure proc_tickettrain_id varchar(10)asbegindeclare num int declare typeId int -declare statusId intdeclare type varchar(10)declare status varchar(10)declare cur_ticket cursor for select ticket_type,ticket_status,count(*) a

20、s num from ticket where train_id=train_idgroup by ticket_type , ticket_status open cur_ticketfetch next from cur_ticket into typeId,statusId,numwhile fetch_status=0beginif typeId=0set type = 硬座else if typeId=1set type = 软座else if typeId=2set type = 硬卧else if typeId=3set type = 软卧if statusId=0set status=未售else if statusId=1set status=已售else if statusId=2set status=退票print type+ +status+ +cast(num as varchar)fetch next from cur_ticket into typeId,statusId,numendclose cur_ticketdeallocate cur_ticketend

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报