1、内蒙古科技大学数据库原理及应用课程设计说明书题 目:数据库原理及应用课程设计 餐饮管理系统 学生姓名: 学 号: 专 业: 班 级: 指导教师: 内蒙古科技大学课程设计任务书课程名称 数据库技术与开发设计题目 餐饮管理系统指导教师康懿 时间 2013.12.1-2013.12.13一、教学要求1、培养学生运用所学课程数据库原理及应用的理论知识和技能以及对数据库组织、管理和使用能力。2、掌握数据库应用系统的整个设计过程(包括需求分析、概念结构设计、逻辑结构设计与物理设计与实施)二、设计要求及成果1功能设计:用Visual FoxPro,Visual Basic、PB等开发工具与数据库管理系统SQ
2、L-SEVER或Access制作一个小型管理系统。所设计的小型管理系统应包含输入输出、查询、插入、删除等基本功能。设计课题可以从候选的项目中选出,根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明书。(实际系统的实现为可选项,必须有功能设计)2数据库中至少有以下表:l 设备信息l 餐具信息l 员工信息l 餐桌信息:餐桌的编号、类型(8人桌、10人桌、圆桌、方桌、雅间等)l 进货信息:原材料的进货信息l 销售信息:核心。包括点菜、做菜、上菜等信息l 菜品信息三、评分标准l 设计的软件是否完成和完成情况(30%)l 设计报告完成的质量(30%)l 数据库结构复杂性,由题目等级决定(30
3、%)l 出勤(10%)l 成绩采用五级分制评定四、建议参考资料SQL-server2008完全手册郭郑州、陈军红著 清华大学出版社数据库原理及应用施伯乐著 高等教育出版社 目录内蒙古科技大学课程设计任务书1第一章 需求分析41.1 课程设计目的41.2 课程设计的具体要求41.3 需求分析51.3.1背景51.3.2业务流程图6第二章 ER图与实体图72.1 局部ER实体图72.1.1员工信息实体E-R图:72.1.2菜单信息实体E-R图:72.1.3餐具信息实体E-R图:82.1.4餐桌信息实体E-R图:82.1.5订单信息实体E-R图:82.1.6设备信息实体E-R图:92.1.7进货信息
4、实体E-R图:92.2 ER图102.3物理模型图PDM112.4 关系模式112.5 关系模式3NF处理12第三章 数据库设计133.1 数据字典133.2 数据库实现143.2.1建立数据库143.2.2建立表(部分)153.2.3视图173.2.4存储过程203.2.5外键约束223.2.6 CHECE约束23 3.3测试数据输入24第四章 功能实现284.1 增加数据284.2 修改数据284.3 删除数据29第五章 查询305.1 单表查询305.2 多表连接查询31第六章 心得体会33 附录A34参考文献36致谢37第一章 需求分析1.1 课程设计目的 1、培养学生运用所学课程数据
5、库原理及应用的理论知识和技能以及对数据库组织、管理和使用能力。2、掌握数据库应用系统的整个设计过程(包括需求分析、概念结构设计、逻辑结构设计与物理设计与实施)1.2 课程设计的具体要求1.要求根据管理信息系统及数据库设计原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。2.需求分析、模块图、主要业务流程图(至少绘制2个主要业务)、部门机构图、概念模型图CDM、物理模型图PDM、使用PDM自动生成T-SQL语句及数据库设计文档。3.在sql server2008 上实现设计的数据库模型。4.对应用程序进行概要设计。5数据库的设计:根据数据库应用系统设计过程,通过需求分析和系统分析,进行
6、数据库的概念结构设计、逻辑结构设计等工作:概念结构设计的ER图 数据库逻辑结构设计是以表格的形式说明数据库中有几个表,每个表的表名以及每个表的各字段名,类型和约束(主、外码);确定表之间的关联(一对一、一对多、多对多)运用数据库理论确定每个表至少属于3NF。1.3 需求分析1.3.1背景本系统介绍了一般的计算机管理的餐饮服务程序,首先从各种相关的软件入手,分析了这类软件的特点、发展历程,并对发展缓慢的原因进行了初步的调研。从以前的相关软件的软肋着手,介绍了餐饮服务计算机软件的编程思路和基本方法。重点介绍了前台营业,从第三者的角度即消费者的角度介绍了前台营业的操作流程。在酒店里建立一个餐饮服务系
7、统对提高酒店的工作效率和增加酒店的效益都是有好处的,它影响了酒店经营业绩,也使酒店的竞争能力提升。它的优势主要在于有效展示酒店形象和服务,建立与客户良好的互动关系,高效管理销售过程,而且显著降低销售成本、提高经济效益和管理水平,提高营业收入,使得利润最大化,如此可见餐饮服务系统给酒店带来了可观的收入。本餐饮管理系统主要实现对餐饮系统相关信息的管理,其中以日点单为中心,其中还包括员工信息管理,进货信息管理,设备信息管理等。 1.3.2业务流程图图1.1点菜订单处理业务流程图第二章 ER图与实体图2.1 局部ER实体图2.1.1员工信息实体E-R图:图2.1员工信息实体E-R图2.1.2菜单信息实
8、体E-R图:图2.2菜单信息实体E-R图2.1.3餐具信息实体E-R图:图2.3餐具信息实体E-R图2.1.4餐桌信息实体E-R图:图2.4餐桌信息实体E-R图2.1.5订单信息实体E-R图:图2.5订单信息实体E-R图2.1.6设备信息实体E-R图:图2.6设备信息E-R图2.1.7进货信息实体E-R图:图2.7进货信息E-R图2.2 ER图图2.8餐饮管理系统信息实体E-R图2.3物理模型图PDM图2.9 餐饮管理系统物理模型2.4 关系模式1) 餐桌信息表(餐桌号,座位数,类型,位置,使用状况,员工编号)2) 员工信息表(员工编号,员工姓名,年龄,性别,工资,职位,联系电话)3) 菜单信
9、息表(菜号,菜名,价格)4) 订单信息表(序号,订单号,餐桌号,菜号,点菜时间,员工编号,点菜状态)5) 进货信息表(进货编号,进货名称,进货数量,进货价格,员工编号)6) 客人信息表(餐桌号,人数,支付状况)7) 餐具信息表(餐具编号,餐桌号,名称,数量)8) 设备信息表(设备编码,名称,出生日期,检修日期,餐桌号)2.5 关系模式3NF处理 按照数据依赖的理论对关系模式逐一进行分析,考查了是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第3范式。第三章 数据库设计3.1 数据字典表3.1 员工信息表表3.2 餐桌信息表表3.3 订单信息表表3.4 餐具信息表表3.5
10、菜单信息表表3.6 进货信息表表3.7 客人信息表表3.8餐具信息表3.2 数据库实现3.2.1建立数据库图3.9 数据库建立3.2.2建立表(部分)/*=*/* Tabl 菜单表 */*=*/create table CaiDan_table ( CD_id char(20) not null, CD_name varchar(60) not null, CD_price decimal(8,2) not null, constraint PK_CAIDAN_TABLE primary key (CD_id)Go/*=*/* Table: 员工表 */*=*/create table YG_
11、table ( YG_id char(20) not null, YG_Name varchar(60) null, YG_Age int null, YG_Sex char(20) null default 男, YG_Money decimal(8,2) null, YG_Zhiwei varchar(60) null, YG_phone varchar(20) null, constraint PK_YG_TABLE primary key (YG_id)Go/*=*/* Table: 订单信息表 */*=*/create table DingDan_table ( DD_xuhao i
12、nt not null, DD_id char(20) not null, CZ_id char(20) null, CD_id char(20) null, YG_id char(20) null, DD_time datetime null, DD_zhuangtai char(60) not null, constraint PK_DINGDAN_TABLE primary key (DD_id, DD_xuhao)go3.2.3视图通过查询菜单与订单实现包含有订单号和总价格的视图。/*=*/* View: View_ZhangDan */*=*/create view View_Zha
13、ngDan asselect DD_id as 账单号,sum(CD_price) as 总价格from DingDan_table,CaiDan_tablewhere DingDan_table.CD_id=CaiDan_table.CD_idgroup by DD_id Go以菜单表为基础实现菜单细分为粤菜、川菜、鲁菜等不同特色的菜单。/*=*/* View: View_chuancai */*=*/create view View_chuancai asselect CD_id,CD_name,CD_pricefrom CaiDan_tablewhere CD_id like C%go/
14、*=*/* View: View_lucai */*=*/create view View_lucai asselect CD_id,CD_name,CD_pricefrom CaiDan_tablewhere CD_id like L%go/*=*/* View: View_yuecai */*=*/create view View_yuecai asselect CD_id,CD_name,CD_pricefrom CaiDan_tablewhere CD_id like Y%go例3.1:账单视图SELECT *FROM View_ZhangDan图3.10 账单视图结果例3.2:菜单视
15、图SELECT *FROM View_yuecai图3.11粤菜视图结果SELECT *FROM View_chuancai图3.12 川菜视图结果SELECT *FROM View_lucai图3.13 鲁菜视图结果3.2.4存储过程/*=存储过程=*/-1.查询某餐桌的支付情况 局部变量CZ_id为要查询的餐桌号-USE 餐饮管理GOCREATE PROCEDURE shifoujiezhang (CZ_id char(10)ASSELECT CZ_id as 桌号,KR_zhifu as 是否结账from KeRen_table where CZ_id=CZ_id;GO-2.查询某员工今
16、天的销售额 局部变量name为要查询的员工姓名-USE 餐饮管理GOCREATE PROCEDURE XiaoShouE name char(10) ASSELECT DISTINCT(YG_Name),总价格from YG_table inner join DingDan_table on YG_table.YG_id=DingDan_table.YG_id inner join View_ZhangDan on DD_id=账单号where YG_Name=nameGO例:3.3查询李四的销售总额EXEC XiaoShouE 李四图3.14 销售额存储过程结果alter table Din
17、gDan_table add constraint FK_DINGDAN_DIANCAI_CANZHUO_ foreign key (CZ_id) references CanZhuo_table (CZ_id)goalter table DingDan_table add constraint FK_DINGDAN_FUZE_YG_TABLE foreign key (YG_id) references YG_table (YG_id)goalter table JinHuo_table add constraint FK_JINHUO_T_FUZE_YG_TABLE foreign key
18、 (YG_id) references YG_table (YG_id)goalter table KeRen_table add constraint FK_KEREN_TA_CHIFAN_CANZHUO_ foreign key (CZ_id) references CanZhuo_table (CZ_id)Goalter table SheBei_table add constraint FK_SHEBEI_T_WEIZHI_CANZHUO_ foreign key (CZ_id) references CanZhuo_table (CZ_id)Goalter table CanJu_t
19、able add constraint FK_CANJU_TA_SUOZAICAN_CANZHUO_ foreign key (CZ_id) references CanZhuo_table (CZ_id)Goalter table CanZhuo_table add constraint FK_CANZHUO_GUANLI_YG_TABLE foreign key (YG_id) references YG_table (YG_id)Goalter table DingDan_table add constraint FK_DINGDAN_CANZHAO_CAIDAN_T foreign k
20、ey (CD_id) references CaiDan_table (CD_id)Go3.2.5外键约束ALTER TABLE CaiDan_tableADD CHECK (CD_id like A-Z0-90-90-9)goALTER TABLE CanZhuo_tableADD CHECK (CZ_id like A-Z0-90-90-9)goALTER TABLE CanJu_tableADD CHECK (CJ_id like 0-90-90-9)goALTER TABLE DingDan_tableADD CHECK (DD_zhuangtai=已上 or DD_zhuangtai
21、=未上 or DD_zhuangtai=做ing)goALTER TABLE KeRen_tableADD CHECK (KR_zhifu=已结账 or KR_zhifu=未结账)goALTER TABLE SheBei_tableADD CHECK (SB_id like A-ZA-Z0-90-90-9)goALTER TABLE YG_tableADD CHECK (YG_id like A-ZA-Z0-90-90-9) goALTER TABLE YG_tableADD CHECK (YG_Sex=男 or YG_Sex=女)goALTER TABLE YG_tableADD CHECK
22、 (YG_phone like 0-90-90-90-90-90-90-90-90-90-90-9)go3.2.6 CHECE约束-员工信息表YG_table插入数据-use 餐饮管理goINSERT INTO YG_table(YG_id,YG_Name,YG_Age,YG_Sex,YG_Zhiwei,YG_Money,YG_phone)VALUES(JL001,王红,32,女,总经理,30000,13784765521),(YG001,张三,24,男,员工,2000,13804771254),(YG002,王伟,31,男,员工,2800,13504741254),(YG003,赵丽,24,
23、女,员工,2000,13806702554),(YG004,李四,25,男,收银员,3000,15801425528),(YG005,柴如珂彤,29,女,收银员,3000,15801472528),(YG006,王晶,33,女,员工,2500,13524155896),(YG007,张华,25,男,员工,2500,15801215428),(JL002,王月倩,24,女,经理,20000,15801472369),(JL003,李磊,29,男,经理,20000,15258442528)go-菜单信息表CaiDan_table插入数据-INSERT INTO CaiDan_table(CD_id
24、,CD_name,CD_price)VALUES(C001,松鼠鱼,126),(C002,辣子鸡丁,75),(C003,麻婆豆腐,54),(Y001,清蒸鲈鱼,186),(Y002,石榴鸡,76),(Y003,杨桃酿肉,92),(L001,醋椒丸子,48),(L002,拔丝苹果,32),(L003,四喜丸子,36),(L004,山东风味五香香肠,28)Go 3.3测试数据输入-餐桌信息表CanZhuo_table插入数据-INSERT INTO CanZhuo_table(CZ_id,CZ_leixing,CZ_weizhi,CZ_zuowei,CZ_qingkuang,YG_id)VALUE
25、S(D001,12人桌,大厅,12,已使用,YG001),(D002,8人桌,大厅,8,未使用,YG001),(D003,8人桌,大厅,8,已使用,YG002),(D004,10人桌,大厅,8,未使用,YG002),(D005,10人桌,大厅,8,已使用,YG003),(D006,8人桌,大厅,8,已使用,YG006),(D007,8人桌,大厅,8,已使用,YG007),(Y001,天蝎座,雅间,12,未使用,YG003),(Y002,金牛座,雅间,15,已使用,YG004),(Y003,双子座,雅间,22,停用,YG005)go-餐具信息表CanJu_table插入数据-INSERT INT
26、O CanJu_table(CJ_id,CJ_name,CJ_shuliang,CZ_id)VALUES(001,筷子,30,D001),(002,酒杯,10,D001),(003,碗,12,D001),(001,筷子,5,D002),(002,酒杯,10,D002),(003,碗,8,D002),(001,筷子,50,Y001),(002,酒杯,20,Y001),(003,碗,18,Y001),(001,筷子,48,Y002),(002,酒杯,12,Y002),(003,碗,15,Y002)Go -设备信息表SheBei_table插入数据-INSERT INTO SheBei_table(
27、SB_id,SB_name,SB_cctime,SB_jxtime,CZ_id)VALUES(KT001,空调,2011-08-12,2012-12-02,D001),(KT002,空调,2010-08-12,2013-05-09,D002),(DC001,电磁炉,2013-08-12,2013-11-15,Y001),(DC002,电磁炉,2011-08-12,2011-09-15,Y002),(DC003,电磁炉,2013-08-12,2013-11-15,Y003),(KT003,空调,2011-08-12,2012-12-02,Y001),(KT004,空调,2010-08-12,20
28、13-05-09,Y002),(DC004,电磁炉,2013-08-12,2013-11-15,D003),(DC005,电磁炉,2010-08-12,2011-01-15,D004),(DC006,电磁炉,2013-08-12,2013-11-15,D005)Go-客人信息表KeRen_table插入数据-INSERT INTO KeRen_table(CZ_id,KR_renshu,KR_zhifu)VALUES(D001,11,未结账),(D003,8,已结账),(D005,10,未结账),(D006,9,未结账),(D007,8,未结账),(Y002,14,未结账)go-订单信息表YG
29、_table插入数据-INSERT INTO DingDan_table(DD_xuhao,DD_id,CD_id,CZ_id,YG_id,DD_time,DD_zhuangtai)VALUES(1,100002648,C001,D001,YG001,2013-12-01 12:05:03,已上),(2,100002648,C002,D001,YG001,2013-12-01 12:06:03,已上),(3,100002648,C003,D001,YG001,2013-12-01 12:06:04,未上),(4,100002648,L004,D001,YG001,2013-12-01 12:0
30、5:11,未上),(1,100002649,L002,D003,YG002,2013-12-01 12:35:03,已上),(2,100002649,L003,D003,YG002,2013-12-01 12:36:33,已上),(3,100002649,Y001,D003,YG002,2013-12-01 12:36:13,已上),(4,100002649,L001,D003,YG002,2013-12-01 12:38:44,已上),(1,100002650,Y001,Y002,YG004,2013-12-01 12:15:03,已上),(2,100002650,C001,Y002,YG0
31、04,2013-12-01 12:16:03,未上),(3,100002650,L001,Y002,YG004,2013-12-01 12:15:03,已上)go-进货信息表JinHuo_table插入数据-INSERT INTO JinHuo_table(JH_id,YG_id,JH_name,JH_sl,JH_price)VALUES(J00001,JL002,洋葱,500,500),(J00002,JL002,猪肉,600,12000),(J00003,JL002,羊肉,300,9000),(J00004,JL002,牛肉,200,10000),(J00005,JL002,鸡肉,600,
32、7000),(J00006,JL002,白菜,1200,600),(J00007,JL003,油麦菜,120,240),(J00008,JL003,菠菜,80,240),(J00009,JL003,豆腐,300,300),(J00010,JL003,土豆,600,300)go第四章 功能实现4.1 增加数据Insert into YG_table(YG_id,YG_Name,YG_Age,YG_Sex,YG_Zhiwei,YG_Money,YG_phone)values(JL004,聂美媛,22,女,经理,20000,13801765591)GOSELECT *FROM YG_tableWHE
33、RE YG_Name=聂美媛GO图4.1增加结果4.2 修改数据UPDATE YG_table SET YG_Money=25000WHERE YG_Name=聂美媛GOSELECT *FROM YG_tableWHERE YG_Name=聂美媛GO图4.2修改数据4.3 删除数据SELECT * FROM YG_tableDELETE FROM YG_table WHERE YG_Name=聂美媛SELECT * FROM YG_table图4.3执行前图4.4 执行后 第五章 查询5.1 单表查询 -1.查询男员工名单- select * from YG_table where YG_Se
34、x=男 -2.查询岁以上的员工名单- select * from YG_table where YG_Age30 -3.查询Y001雅间拥有的设备- select SB_id as 设备号,SB_name as 名称 from SheBei_table where CZ_id=Y001 -4.查询中档菜的名称(价格在100之间)- select CD_name from CaiDan_table where CD_price between 50 and 100 -5.查询当前未使用的餐桌的信息- select CZ_id as 餐桌号,CZ_leixing as 类型,CZ_weizhi a
35、s 位置,CZ_zuowei as 最大人数from CanZhuo_tablewhere CZ_qingkuang=未使用图5.1 单表查询5.2 多表连接查询/*=多表查询=*/ -1.查询收银员李四今天的销售额(多表查询内连接)- select DISTINCT(YG_Name) as 姓名,总价格 as 销售额from YG_table inner join DingDan_table on YG_table.YG_id=DingDan_table.YG_id inner join View_ZhangDan on DD_id=账单号where YG_Name=李四GO图5.2 多表查
36、询内连接-2.查询员工王伟负责的详细订单内容(按价格从低到高排序)- select CaiDan_table.CD_id as 菜号,CD_name as 菜名,CD_price as 价格from YG_table inner join DingDan_table on YG_table.YG_id=DingDan_table.YG_id inner join CaiDan_table on DingDan_table.CD_id=CaiDan_table.CD_idwhere YG_Name=王伟order by CD_price GO图5.3 多表查询内连接2-11.查询客人已结账餐桌的负责人- select YG_id as 工号,YG_Name as 姓名from YG_tablewhere YG_id in(select YG_id from CanZhuo_table where CZ_id in(select CZ_id from KeRen_table where KR_zhifu=已结账)
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100