《数据库课程设计餐饮管理系统.pdf》由会员分享,可在线阅读,更多相关《数据库课程设计餐饮管理系统.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南城建学院数据库原理课程设计报告课程名称:数据库原理课程设计设计题目:餐饮管理系统指导教师:班级:学号:学生姓名:同组人员:成绩:计算机科学与工程学院评语:2015 年 6 月数据库原理课程设计报告-1-目录第 1 章概述 11。1 选题的背景与意义 11。2 相关技术分析 1第 2 章系统功能设计 22。1 系统总体结构设计图 22。2 系统功能模块 21.2。1 模块一(具体模块的名称)21.2.2 模块二 2第 3 章数据库设计 33。1 需求分析 33.2 概念结构设计 33.3 逻辑结构设计 63.4 物理结构设计 73。5 数据库实施 9第 4 章结束语 15参考文献错误错误!未
2、定义书签。未定义书签。第 1 章 概述1。1 选题的背景与意义近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈.然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下.作为传统的餐饮企业更是存在这些问题,进货,库存有人工管理,客人点单需服务员记录并送至厨房,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作
3、效率。作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。1。2 相关技术分析经过分析,本系统运用了 Microsoft SQL Server2008 为数据库,系统实现了后台管数据库原理课程设计报告-2-理、桌台信息的查询、开台信息、点菜、收银、桌台信息管理、员工管理、菜单维护、消费查询和盈利信息查询等功能。第 2 章 系统功能设计2.1 系统总体结构设计图2.2 系统功能模块1.2.1模块一(具
4、体模块的名称)桌台数据包括房台编号、座位数、状态(占/空)。酒店储存有会员信息,需要折扣信息等。菜品信息有菜品编号,名称,价格和状态等1。2。2 模块二具体数据需求如下:点菜阶段需要的数据有:1、菜品信息,包括其名称、所属菜类别等。2、桌台信息,包括其编号、可容人数、使用状态等。3、会员信息,包括会员编号、折扣、历史消费总额等。4、预订信息,包括预订日期、时段、预订菜品等。员工管理需要数据有:1、员工档案:包括其姓名、性别、职位(经理,厨师,服务员)、工资.销售统计需要的数据有:1、消费单据:包括金额、日期、项目单编号等数据。2、消费项目单据:消费菜品编号、数量、小计等。会员管理需要的数据有:
5、1、会员档案:会员编号、对应折扣等.3.13 事务需求 数据录入:1、录入房台信息2、录入菜品信息3、录入会员信息数据库原理课程设计报告-3-4、录入员工档案信息 数据更新/删除 1、更新/删除房台信息 2、更新/删除菜系信息3、更新/删除菜品信息4、更新/删除会员信息5、更新/删除员工档案信息 数据查询 1、查询可用房台信息 2、查询在售菜品信息 3、查询开台信息 4、查询订单信息 5、查询会员折扣信息6、可查询某时间段的营业额。8、查询可用房台信息 9、查询所有员工档案第 3 章 数据库设计3.1 需求分析311 开发背景从分析饭店的基本情况入手,根据餐饮行业的特点和实际情况,进行系统的可
6、行性分析,来了解企业的管理特点和存在的问题,酒店管理系统应以餐饮业务为基础,在此基础上,进行详细分析,得出系统功能结构图。本系统主要是用于后台管理,重视营业数据分析等功能,从专业角度出发,努力为餐饮管理者提供科学有效地管理模式和数据分析功能。3.12 功能模块(1)数据流图业务流程图图 3-121 顶层数据流图 312-2 第一层数据流数据库原理课程设计报告-4-图 3123 第二层数据流程图(业务数据流程图)点菜业务预订业务图 3-12-5 订单业务结帐业务图 3-12-6 结账业务VIP 流程图图 312-7VIP 升级业务(2)数据字典 数据项表 1 数据项编号1234567891011
7、121314151617181920212223242526272829数据项名称代号员工号workerno姓名workername性别workersex年龄workerage基本工资workersalary顾客号customerno顾客姓名customername图 3-12-4 点菜业务顾客性别customersex联系电话customerphonenoVIP 等级折扣率VIP_level历史消费总额totalexpend订单号oderno订单时间odertime菜品编号Dishno菜品名Dishname菜品类别Dishclass菜品状态Dishstate价格Dishprice桌台号Foo
8、dtableno桌台容量seatingno桌台状态Foodtablestate折扣discount消费总额Saleroom菜单号Menuno数量amount折扣后总额after_discount开票时间billtime备注note支付方式payway数据类型char(10)varchar(10)char(4)intmoneyVarchar(10)Varchar(10)Varchar(4)Varchar(15)intFloat(5)varchar(10)datetimechar(10)char(20)char(2)intchar(10)intVarchar(10)floatfloatVarcha
9、r(10)intfloattimechar(20)char(10)数据库原理课程设计报告-5-3031账单编号发票号BellnoInvonointchar(20)数据结构表 2 数据结构编号123455678数据结构名员工信息菜谱桌台信息菜单点单销售账单顾客信息折扣规则订单 数据流属性员工号,姓名,性别,年龄,职务,工资菜品,菜品号,价格,菜类别桌台号,容纳人数,使用状态菜单编号,桌台号,点菜时间,顾客号菜单编号,菜品号,菜品名,数量销售账单号,时间,销售总额顾客编号,姓名,性别,联系方式消费等级,会员等级,累计消费额VIP 等级,折扣订单编号,顾客编号,分配桌台,订单时间,表 3 数据流编号
10、12345678910数据流名菜品信息房台信息参考菜谱空闲房台消费项目预订菜单修改菜单记入账单结账销售统计输入增加菜品增加房台菜谱房台点菜预订加菜退菜菜单折扣方式结账输出菜谱房台点菜点菜菜单菜单菜单结账结账销售账单 数据储存表 4 数据储存编号12345数据存储名菜谱更新房台更新顾客信息更新销售统计订单储存输入增加菜品增加房台顾客新信息销售账单订单输出菜谱房台顾客信息销售统计订单信息 处理过程表 5 处理过程编号123处理过程名顾客点菜结账销售统计输入数据流终端菜单销售账单输出数据流菜单发票销售统计表数据库原理课程设计报告-6-3.2 概念结构设计3.2.1 局部 E-R 图(1)菜单菜品图
11、3128菜单菜品菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)菜品(菜品号,名称,菜系号,价格,状态)菜单_菜品(菜单号,菜品号,数量)(2)订单菜单图 3-129订单菜单菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)订单(订单号,顾客号,订单时间,桌台号)(3)菜单-员工图 3-12-10菜单-员工员工(员工号,姓名,性别,年龄,工资)菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)(4)发票账单图 31211发票账单(5)订单顾客图 3-12-12 订单-顾客顾客(顾客号,姓名,年龄,性别,联系方式,等级)订单(订单号,顾客号,订单时间,桌台号)(6)菜单顾客图 31
12、2-13菜单顾客菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)顾客(顾客号,姓名,年龄,性别,联系方式,等级)3。2.2 整体E-R 图图 31214 整体 ER 图3.3 逻辑结构设计1.E-R 图向关系模式转换原则根据以上关系模型的转换。首先个关系模式都满足第一范式,因为每个属性都是不可分割的基本数据项。而且非主属性完全函数依赖于候选码,符合第二范式,而且非主属性不存在传递符合第三范式要求。2。图转换成关系模式如下(下划线的属性为主码)销售账单(账单编号,发票号,销售额,备注)桌台(房台号,使用状态,座位数)订单(订单号,顾客号,订单时间,桌台号)菜单(菜单号,桌台号,订单号,顾客
13、号,负责员工,时间)顾客(顾客号,姓名,年龄,性别,联系方式,等级)折扣规则(等级,折扣)员工(员工号,姓名,性别,年龄,工资)菜品(菜品号,名称,菜系号,价格,状态)菜单_菜品(菜单号,菜品号,数量)数据库原理课程设计报告-7-3。子模式的设计(视图)createview凉菜asselectDishname,DishpricefromDishwhereDishclass=凉withcheckoption3-13-1 凉菜表createview热菜asselectDishname,DishpricefromDishwhereDishclass=热withcheckoption313-2 热菜c
14、reateview空桌台asselectFoodtablenofromFoodtablewhereFoodtablestate=空with check option3-133 空桌3。4 物理结构设计1.存储结构与存取方法数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构的过程,就是数据库的物理设计。这一阶段主要的任务是确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程。2.数据库、表建立的代码createdatabaseRestaurant_Managementdrop
15、table DishcreatetableDish-菜谱(Dishnovarchar(10)primarykey,Dishnamevarchar(10),Dishclassvarchar(10),Dishpricefloat,Dishstatevarchar(6)check(Dishstate=有orDishstate=无),)-drop table OdercreatetableOder订单(Odernovarchar(10)primarykey,Customernovarchar(10)notnull,数据库原理课程设计报告-8-Odertimedatetimenotnull,Foodta
16、blenovarchar(10)notnull,foreignkey(Customerno)referencesCustomer(Customerno),foreignkey(Foodtableno)referencesFoodtable(Foodtableno)drop table FoodtablecreatetableFoodtable-桌台信息(Foodtablenovarchar(10)primarykey,seatingnointnotnull,Foodtablestatevarchar(6)check(Foodtablestate=空orFoodtablestate=占)drop
17、 table MenuscreatetableMenus-菜单(Menunovarchar(10)primarykey,Foodtablenovarchar(10)notnull,Customernovarchar(10)notnull,Odernovarchar(10),Workernovarchar(10)notnull,consumetimedatetime,foreignkey(Foodtableno)referencesFoodtable(Foodtableno),foreignkey(Customerno)referencesCustomer(Customerno),)-drop
18、table Menus_DishcreatetableMenus_Dish-菜单_菜品(Menunovarchar(10),Dishnovarchar(10),Dishnamevarchar(20)notnull,Amountintnotnull,primarykey(Menuno,Dishno),foreignkey(Dishno)referencesDish(Dishno))altertableMenus_Dishaddcheck(Amount0)-drop table CustomercreatetableCustomer-顾客(Customernovarchar(10)primaryk
19、ey,Customernamevarchar(10)notnull,Customersexvarchar(4)check(Customersex=男orCustomersex=女)notnull,Custoemrphonenovarchar(20)uniquenotnull,VIP_levelint,totalexpendfloat)altertablecustomeraltercolumntotalexpendfloat(5)drop table Discount_rulescreatetableDiscount_rules-折扣规则(VIP_levelintprimarykey,Disco
20、untfloat,数据库原理课程设计报告-9-)-drop table workercreatetableworker-员工(Workernovarchar(10)primarykey,Workernamevarchar(10),Workersexvarchar(4)check(Workersex=男orWorkersex=女),Workerageint,Workersalaryint,)-drop table Sales_billcreatetableSales_bill-销售账(Menunovarchar(10),Saleroomfloat(5),Billtimedatetime)3.5
21、数据库实施3。5.1-插入新顾客信息-drop proc 插入新顾客信息createproc插入新顾客信息Customernovarchar(10),Customernamevarchar(10),Customersexvarchar(4),Custoemrphonenovarchar(20)asInsertintocustomervalues(Customerno,Customername,Customersex,Custoemrphoneno,0,0)-测验-exec 插入新顾客信息C_035,杨涛,男,187008090523-14-1插入新顾客信息createproc桌台(Foodta
22、blenovarchar(10),seatingnoint,Foodtablestatevarchar(6)asInsertintoFoodtablevalues(Foodtableno,seatingno,Foodtablestate)exec桌台O_005,20,空3142插入桌台信息-drop proc 预定createprocedure预定odernovarchar(10),Customernovarchar(10),odertimedatetime,数据库原理课程设计报告-10-Foodtablenovarchar(10)asinsertintoOdervalues(oderno,C
23、ustomerno,odertime,Foodtableno)-exec 预定O_005,C_035,2012616,TB_83-143预订-查询预订-drop proc 查询预订createproc查询预订Customernovarchar(10),Odernovarchar(10)outputasifexists(selectfromoderwherecustomerno=Customerno)beginprint已预订selectOderno=odernofromoderwherecustomerno=Customernoprint预定号为:+Odernoendelseprint未预定d
24、eclareOdernovarchar(10)exec 查询预订C_002,Odernooutput3-144预订declareOdernovarchar(10)exec 查询预订C_035,Odernooutput3-14-5预订-开台信息-drop proc 开台createproc开台Menunovarchar(10),Foodtablenovarchar(10),customernovarchar(10),Odernovarchar(10),workernovarchar(10),CustomertimedatetimeasinsertintoMenusvalues(Menuno,Fo
25、odtableno,customerno,Oderno,workerno,Customertime)updateFoodtablesetFoodtablestate=占whereFoodtableno=Foodtableno-exec 开台M_010,TB_8,C_035,O_005,W_002,20126-113146开台3147开台createproc菜品数据库原理课程设计报告-11-Dishnovarchar(10),Dishnamevarchar(10),Dishclassvarchar(10),Dishpricefloat,Dishstatevarchar(6)asinsertint
26、oDishvalues(Dishno,Dishname,Dishclass,Dishprice,Dishstate)exec菜品D10,蒜泥黄瓜,凉,10,有exec菜品D23,麻婆豆腐,热,15,有exec菜品D-11,西芹杏仁,热,15,有exec菜品D39,樟茶鸭子,热,45,有exec菜品D57,小炒腊肉,热,23,有exec菜品D-72,小炒河虾,热,40,有3-147菜品-顾客点餐-createproc点菜Menunovarchar(10),Dishnovarchar(20),Dishnamevarchar(10),Amountintasinsertintomenus_dishva
27、lues(Menuno,Dishno,Dishname,Amount)-点菜exec点菜M_010,D-10,蒜泥黄瓜,2exec点菜M_010,D23,麻婆豆腐,1exec点菜M_010,D-11,西芹杏仁,1exec点菜M_010,D39,樟茶鸭子,1exec点菜M_010,D-57,小炒腊肉,2exec 点菜M_010,D72,小炒河虾,13-14-8点菜-计算总额-drop proc 消费总额createproc消费总额customernovarchar(10),SaleroomfloatoutputasselectSaleroom=SUM(Dishprice*Amount)fromm
28、enus_dish,Dish,MenuswhereCustomerno=customernoandMenus。Menuno=Menus_Dish.MenunoandDish。Dishno=menus_dish.Dishno-测-declareSaleroomfloat,customernovarchar(10)=c_035exec消费总额customerno,Saleroomoutput消费验数据库原理课程设计报告-12-selectCustomername,Saleroom总费用fromCustomerwhereCustomerno=customerno3-149查询消费额-查询息-drop
29、 proc 查询客户点菜createproc查询客户点菜customernovarchar(10)asselectDish。Dishname,AmountfromDish,menus_dish,menuswheremenus.Customerno=customernoandmenus_dish.Menuno=menus.MenunoandDish.Dishno=menus_dish.Dishno-exec查询客户点菜c_035exec 查询客户点菜c_00131410查询顾客信息314-11查询顾客信息客户点菜信测验-菜除-drop proc 修改菜单createproc修改菜单Menunov
30、archar(10),Dishnamevarchar(20)asdeletefrommenus_dishwhereMenuno=MenunoandDishname=Dishname-验-exec修改菜单M_010,小炒腊肉314-12查询菜单品的删测-发票信息-createproc发票信息customernovarchar(10),Actuallypay1float,Menunovarchar(10)output,Actuallypay2floatoutput,customernamevarchar(10)output,Saleroomfloatoutput,after_discountflo
31、atoutput,数据库原理课程设计报告-13-BilltimedatetimeoutputasselectSaleroom=SUM(Dishprice*Amount)frommenus_dish,Dish,MenuswhereCustomerno=customernoandMenus.Menuno=Menus_Dish.MenunoandDish.Dishno=menus_dish.Dishnoselectcustomername=customernamefromcustomerwherecustomerno=customernoselectMenuno=MenunofromMenuswhe
32、reCustomerno=customernosetBilltime=getdate()setActuallypay2=Actuallypay1selectafter_discount=Saleroom0.1*Discountfromcustomer,Discount_ruleswherecustomer.VIP_level=Discount_rules。VIP_levelprint用户名:+customernameprint实 付:+str(Actuallypay2,10,2)print应 付:+str(Saleroom,10,2)print折扣后:+str(after_discount,1
33、0,2)print应 找:+str(Actuallypay2-after_discount,10,2)print时 间:+cast(Billtimeasvarchar(20)updatecustomersettotalexpend=(totalexpend+after_discount)wherecustomerno=customernodeletefrommenus_dishwhereMenuno=(selectMenunofromMenuswherecustomerno=customerno)updateFoodtablesetFoodtablestate=空whereFoodtablen
34、o=(selectFoodtablenofromMenuswherecustomerno=customerno)deletefromMenuswherecustomerno=customernoinsertintosales_billvalues(Menuno,after_discount,Billtime)-测-declarecustomernamevarchar(10),验数据库原理课程设计报告-14-Actuallypay2float,Saleroomfloat,Menunovarchar(10),after_discountfloat,Billtimedatetimeexec发票信息c
35、_002,200,customernameoutput,Actuallypay2output,Saleroomoutput,Menunooutput,after_discountoutput,Billtimeoutput31410打印发票-查询某一时间段的营业额-drop proc 查询营业额createproc查询营业额begintimedatetime,endtimedatetime,sum_of_turnoverfloat(5)outputAsselectsum_of_turnover=sum(Saleroom)fromSales_billwhereBilltime=begintimea
36、ndBilltimeendtimeprint从时间:+cast(begintimeasvarchar(20))+到时间:+cast(endtimeasvarchar(20))+的营业总额为:+str(sum_of_turnover,10,2)-测验-declaresum_of_turnoverfloat(5)exec查询营业额2015613,2015-9-113,sum_of_turnoveroutputselectsum_of_turnover314-11查询营业额-VIP级-createtriggertrig_Upgrade_of_VIP_levelonCustomerafterupdat
37、easdeclarenovarchar(20),expendfloat,levelintselectno=Customerno,expend=totalexpend,level=VIP_levelfrominsertedif(expend 500)setlevel=0elseif(expend=500 andexpend=1000 andexpend 1800)setlevel=2elseif(expend=1800 andexpend 2500)setlevel=3elseif(expend=2500 andexpend 3500)setlevel=4elsesetlevel=5update
38、CustomersetVIP_level=levelwhereCustomerno=no-droptriggertrig_Upgrade_of_VIP_level-删除触发器3。5。2数据库备份与还原的原则1备份类型的选择和还原模式的确定都应遵循这样的原则:尽最大可能、以最快速度减少或消灭数据丢失.2数据库备份和还原过程中应注意的问题(1)如果只进行数据库备份,那么将无法还原自最近一次数据库备份以来数据库中所发生的所有事务.(2)如果进行数据库备份时也进行事务日志备份,那么可以将数据库还原到失败点。那些在失败之前为提交的事务将无法还原,但如果您在数据库失败后立即对当前处于活动状态的事务进行备份
39、,则为提交的事务也可以还原.3数据库的备份计划(1)有规律地进行数据库备份,例如没玩进行备份。(2)以较小的时间进行差异备份,比如每隔3小时或4小时。(3)在相邻的两次差异备份之间进行事务日志备份,可以每20分钟或30分备份一次4数据库的还原计划如果采用上述的备份方案,在进行还原的时候,我们可以先还原最近一次的数据库备份,接着进行差异备份的还原,最后进行事务日志备份的还原.但是,在更多情况下我们希望还原到数据库失败的那一刻,此时我们只需按照下面的方法就可以达到目的了首先,如果能访问数据库的事务日志文件,则应备份当前正处于活动状态的事务日志;其次,还原最近一次数据库备份;接着,还原最近一次差异备
40、份;最后,按顺序还原自差异备份以来进行的事务日志备第 4 章 结束语本次数据库课程设计已经基本上完成,在这次实习中,感觉很有收获,虽然上课很认真的听讲,实验课感觉挺简单的,但真正到实践的时候,还是困难重重.这次实习让我初步了解了关于数据库开发的基本步骤,了解如何开发数据库,为以后的职业生涯肯定会有很大帮助。在这次实习中,了解并比较熟悉了如何运用 SQL Server2008 数据库开发数据库系数据库原理课程设计报告-16-统,让我感觉收获很大。在此要感谢辅导老师对我热情的指导,还要感谢许多同学的帮助,是他们在程序调试中帮我改正错误,提出合理化的建议,增强程序的功能,借阅各种书籍,在你们的帮助下,我及时纠正自己的错误,修改方案,才完成了这次实习,否则这一周就白白浪费了。参考文献1 杨涛。基于 DEB 和 XML 签名的电子证据管理。计算机工程,2012.2 王珊,萨师煊 数据库系统概论。高等教育出版社,2010。3何宗耀,吴孝丽 数据库原理及应用.中国矿业大学出版社 2014