数据库分析与设计实验.doc_第1页
数据库分析与设计实验.doc_第2页
数据库分析与设计实验.doc_第3页
数据库分析与设计实验.doc_第4页
数据库分析与设计实验.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库分析与设计实验实施方案(一)-火车售票系统(sqlserver+jsp)设计方案一、实验目标1. 客户需求概述n 数据库分析与设计:通过16学时实验,初步了解企业真实的项目开发流程,掌握数据库设计思路;同时,通过数据库设计和应用开发的培训,对软件开发行业有一定的认知。n 本次实习还贯穿了团队合作、职业素质等培养,使学生在有限的社会资源下能够发挥狼性精神,占领自己的一片天空;在团队合作中感受企业文化,体验团队合作精神;相关的职业素质的整合,保障学生不会因为综合素质达不到企业的要求而叩不开企业的大门。2. 目标n 熟悉目前企业数据库建模流程n 掌握数据库设计思路n 掌握数据库DDL 、DML语言n 掌握应用程序访问数据库的方法n 完成火车售票系统数据库设计及功能实现二、实验内容序号知识点内容及要求工具第一阶段需求分析数据库设计阶段实习内容:- 掌握Sqlserver2005工具使用;- 火车售票系统需求分析,完成需求分析文档;- 火车售票系统数据库设计,完成数据库设计文档;- 使用建模工具建立数据模型Sqlserver2005第二阶段建库建表约束阶段实习内容: - 掌握数据库的创建语句;- 掌握数据库表的创建语句 ;- 掌握主外键的语句以及各类约束语句 ; - 完成数据库表的创建及添加约束 ;Sqlserver2005第三阶段DML游标阶段实习内容:- 掌握常用的DML语句 ;- 完成车次表、车次详细信息、站点表中插入测试数据;- 掌握sqlserver中游标的用法;- 完成使用游标提取并输出开始站点相同但车次不同的数据。Sqlserver2005第四阶段存储过程触发器函数阶段实习内容:- 掌握存储过程的创建和使用;- 掌握触发器的创建和使用;- 掌握函数的创建和使用 ;- 存储过程实现每次车从起点开始每一站所需要的价格;- 发车计划表添加触发器实现自动生成车票信息Sqlserver2005第五阶段JDBCJSP阶段实习内容:- 掌握JAVA JDBC方式连接数据库;- 应用程序实现数据库的操作;- JSP可视化界面实现车次信息的查询;- JSP可视化界面实现车票的购买;Sqlserver2005MyEclipse第六阶段完成项目项目验收阶段实习内容:- 完整实现火车售票系统数据库功能- 掌握应用程序访问数据库- 掌握编写测试用例并完成测试- 测试软件及bug修改- 项目验收Sqlserver2005MyEclipse三、课堂模式时间实习方式上课课前15分钟1、项目主管以提问的形式,领着学生回顾上阶段的知识点;2、项目主管介绍一些行业知识,当前流行技术等。课堂1、阶段期间项目主管会带领学生实践代码编写,先将范例讲解,然后进入项目分析功能的实现;2、在上课休息期间,项目主管会集中分析一些学生在学习过程中遇到的问题;3、鼓励技术好的学员帮助技术差的学生调试代码,这样既可以提高学生的技术水平,同时培养了学生的团队意识,也增加了班级的凝聚力;4、在整个上课期间,项目主管会注意培养学生代码规范性,会给学生提出书写规范代码的要求,并发给学生规范性代码的模板让学生来模仿。下课前15分钟1、项目主管会领着学生回顾阶段的所有知识点,主要采取以提问学生总结为主,项目主管补充为辅的方式,来保证学生当堂课对知识点的消化;2、项目主管给学生布置作业,作业内容为企业面试题;3、项目主管会布置预习任务并提出预习知识点以方便第二天课程的学习;4、项目主管负责给学生共享知识点总结,上课源代码,作业题和预习知识的文档;5、培养学生好的习惯,结束课程之后要把桌椅回归原位,保持座位的干净、整洁。课后1、项目主管在线给学生远程协助调代码,帮助学生解答在学习过程中遇到的难点;2、对于掌握比较好的同学,给予课外知识的扩充;3、给学生留一些企业的面试题。四、实验条件序号实习设施规格要求数量1计算机P4 512M及以上1套/人2开发工具SqlServerSqlServer2000及以上1套/人应用程序开发MyEclipse6.0及以上五、项目一览 数据库表 关系图 应用程序截图搜索全部车次搜索指定车次 sqlserver关键代码实现/*三、假设普快每公里票价.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_id=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 declare 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*priceprint station_name+ +cast(money as varchar)fetch next from cur_trainDetail into station_name ,distanceend -关闭游标close cur_trainDetaildeallocate cur_trainDetailgo/* 四、在train_info表中,使用游标提取并输出开始站点相同但车次不同的数据 */begindeclare id_1 varchar(10)declare id_2 varchar(10)declare start_id_1 intdeclare start_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 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_2end 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 softbed 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 begininsert 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=1while j=80 begininsert into ticket(train_id,go_off,carriage_id,seat_id,ticket_type,ticket_Status)values(train_id,go_off,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 begininsert 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+1end set i = i+1end go/*六、创建sell_info表触发器,以修改车票信息 */-sell_info表中插入数据,表示车票已售出,修改ticket表状态为create trigger tri_sell_info_inserton sell_infoafter insertasdeclare ticket_id int select ticket_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_id=ticket_idgo/*七、查询某一趟列车各类车票剩余数目及状态 */drop procedure proc_ticket ;create procedure proc_tickettrain_id varchar(10)asbegindeclare num int declare typeId int declare statusId intdeclare type var

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论