1、周峰 :电子工业出版社。SQL Server数据库开发实例精粹 作者:徐国智 汪孝宜 等 完 成 期 限: 两周 指导教师签名: 课程负责人签名:年 月 日课 程 设 计 任 务 书 21.需求分析 41.1系统目标: 41.2系统功能需求:1.3开发工具: 51.4系统的数据流图:1.5 数据字典 62数据库的概念设计 82.1系统的概念模型: 82.2 将概念模型转换成关系模型 102.2.1将E-R模型转换为关系模式 102.2.2 数据库表结构设计: 122.2.3实现数据完整性: 153.开发工具 164.1基本流程图 16数据库设计 174.2总体结构和外部模块 175详细设计 1
2、85.1表的设计 185.2关系模式设计 195.3存储过程设计和部分sql语句代码 195.4关键代码及操作 20程序实现部分 29对本设计的简单评述,总结 34参考文献 341.需求分析实现一个食堂消费管理系统,完成餐卡信息管理,餐卡信息查询,窗口信息管理,餐卡消费管理和窗口信息查询等功能。本系统管理员能够对餐卡信息增加,修改,查询,删除等。 功能划分: 用户通过身份验证后进入主界面。主界面为超级用户提供5项选择:餐卡办理,餐卡挂失,餐卡充值,餐卡解除挂失,餐卡查询。功能描述:餐卡办理:管理员通过插入表和更新表来为餐卡使用人员办理新卡。新生报到时,学生要到管理员那里办理新卡,管理员通过插入
3、表信息来办理。当卡主的卡丢失或损坏且确定要办理新卡时,管理员通过更新表的信息来办理新卡。餐卡挂失当学生的餐卡找不到但是不能确定还能否找到时,学生可以到擦卡管理员那里去挂失。管理员通过修改表的信息暂时禁用此卡。餐卡解除挂失学生找到丢失的餐卡后,可以到管理员那里解除挂失。管理员通过修改表的信息让此卡能从新使用。餐卡充值餐卡余额不足时,学生可能无法到食堂消费,此时要到管理员那里充值。管理员通过修改表的信息为餐卡充值。餐卡查询就餐时可能出现刷错卡的情况,当刷错卡但是刷卡人员没有注意到时两方就会产纠纷,这时要到餐卡管理员那里查询消费情况。该综合教务系统的数据库采用了Microsoft的SQL Serve
4、r2000企业版,前台应用程序采用了Java编写。了解用户的应用要求,使用信息流程图分析应用系统中的信息流。食堂消费管理系统的简单信息流如下。(1)系统的上下文数据流图如图5-381.5 数据字典数据项名:学生编号说明: 标识每个学生身份类型: CHAR长度: 7别名: 学号取值范围:970000979999数据流名:选课申请 由学生的个人信息,欲选课程信息组成选课申请来自过程:无流至过程:身份验证数据结构:学生个人信息 欲选课信息 说明了学生的个人情况。组成: 密码数据存储:上课时间信息 说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门课程在上课。输出数据流:课程上课时间
5、数据描述:课程编号 上课时间数量: 每学期2030个存取方式:随机存取处理过程: 对学生输入的帐号,密码进行验证,确定正确,得到相应的学生编号。输入: 学生帐号 选课的课程编号输出: 学生编号2数据库的概念设计上图是食堂消费管理的概念模型的E/R图,该系统涉及的实体集有:管理员实体集:具有属性账号,工号ID和密码。餐卡实体集:具有属性卡号,是否挂失和金额。卡主实体集:具有属性卡号,证件号和姓名。窗口实体集:具有属性窗口号和机器号。窗口负责人实体集:具有属性姓名,年龄和性别。菜实体集:具有属性菜名,价格和种类。厨师实体集:一个管理员可以管理多张餐卡,所以管理员和餐卡之间的管理联系是1:n的联系。
6、一张餐卡只属于一个卡主,每个卡主只有一张餐卡,所以餐卡与卡主之间的联系是1:1的联系。一个卡主可以到多个窗口消费,多个卡主可以到一个窗口消费,所以卡主与窗口之间的联系是n:m的联系。一个窗口可以出售多种菜,每种菜也可以被多个窗口出售,所以窗口与菜之间的联系是m:2.2 将概念模型转换成关系模型2.2.1将E-R模型转换为关系模式 (1) 管理员实体集可以转换为关系: 管理员(账号,ID,密码) (2) 餐卡实体集可以转换为关系 餐卡(卡号,是否挂失,金额) (3) 卡主实体可以转换为关系卡主(证件号,)(4)窗口实体可以转换为关系 窗口(窗口号,机器号)(5)窗口负责人实体可以转换为关系 窗口
7、负责人(,性别,性别)(6)菜实体可以转换为关系 菜(菜名,价格,种类)(7)厨师实体可以转换为关系 厨师(,性别,年龄) (8) 卡主与餐卡之间的联系是1:1的联系,所以没有必要为其建立一个关系,可以通过扩展卡主关系来表示: 卡主(证件号,卡号) (9) 管理员,餐卡之间的操作联系可以转换为关系: 操作(ID,卡号) (10) 餐卡和窗口之间的消费联系可以转化为关系: 消费(卡号,窗口号) (11)窗口和菜之间的出售联系可以转化为关系: 出售(窗口号,菜名)(12)菜和厨师之间的烹饪联系可以转换为关系 烹饪(菜名,) 这里的姓名是指厨师姓名。把关系模型转化为表结构:管理员信息表:定义如下:
8、域名含义数据类型长度例子备注ID管理员工号Char512345主码账号管理员账号密码管理员密码23456餐卡信息表:卡号餐卡卡号12540907010238是否挂失挂失情况金额餐卡余额Int100.00卡主信息表:证件号卡主的证件号主键卡主姓名张三卡主的擦卡卡号540907010152窗口信息表窗口号食堂窗口编号11机器号食堂刷卡机编号29窗口负责人信息表窗口负责人的姓名张义坤年龄窗口负责人的年龄226性别窗口负责人的性别男菜信息表菜名窗口所卖菜式的菜名30酸辣白菜菜价某种菜的价钱1.50类别是否为该窗口的特色菜否厨师信息表厨师的姓名厨师的性别厨师的年龄通过各种约束,缺省,规则和触发器实现数据
9、的完整性。由于食堂消费管理系统的重要性,和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。不能让用户随意的删除,修改数据。(1)各种外码约束保证数据的完整性,不能随意删除。外码的设置在上面数据库建表时已经提到。(2)主码约束保证实体的完整性,主码的设置在上面数据库建表时也已经提到了。(3)创建规则保证年龄在18岁到35岁之间,不会输入错误数据。3.开发工具本该综合教务系统的数据库采用了Microsoft的SQL Server2000企业版,前台应用程序采用了Java编写。4.1基本流程图数据库设计4.2总体结构和外部模块5详细设计5.1表的设计 本系统主要包括以下几个表: 管理员的登录
10、信息,窗口管理人员的信息,学生的基本信息表,学生所持卡号的详细信息,每张卡对应的消费信息,窗口的信息,窗口的消费信息表,菜的信息。5.2关系模式设计在数据库的设计的时候,考虑到现实中无法进行透支消费等,进行了防止误操作的控制,比如消费金额如果超过一定数量将限制消费,无法消费价格超过余额的物品。其中使用到了触发器的操作。5.3存储过程设计和部分sql语句代码由于存储过程不像解释执行的sql语句一样在提出操作请求时才进行语法分析和优化操作,因而运行效率高,它提供了在服务器端快速执行sql语句的有效途径.存储过程降低了客户机和服务器之间的通行量,方便实施企业规则.insert into card_i
11、d_table values(000001,23.4,1)insert into cai_id_table values(1,麻辣鸡丝,1,1,6.5)delete from cai_id_table where cai_name=insert into cooker_id_table values(1,张胖子,男33)insert into window_id_table values(1,2,insert into window_manager_id_table values(2,123insert into xiaofei_id_table select * from xiaofei_id_table where cardid=5.4关键代码及操作数据库的连接package .gp.connectdb;import java.sql.Connection;import java.sq
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1