版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 课题名称及目标 32. 需求分析 42.1 数据需求 42.2 事务需求 62.3 数据流 72.4 数据字典 83. 数据库结构设计 153.1 概念设计 15 错误!未定义书签。163.2 逻辑设计 183.2.1 E-R 图向关系模型的转换 18 错误!未定义书签。3.2.3 用户子模式建立. 204. 数据库物理设计 214.2 存储过程 224.3 触发器 225. 数据库的实施 225.2 在SQL中数据库实施 22错误!未定义书签。错误!未定义书签。5.3 数据库测试 27 错误!未定义书签。6. 总结 487. 附录 491. 课题名称及目标本次实训要设计的数据库课题名称
2、是餐厅管理系统。餐厅管理系统的功能主要包括顾客点菜、结账、 对员工资料进行管理、对餐桌信息进行统一设置、对消费情况进行查询等功能。基本功能如下:( 1)菜谱信息管理:对菜谱进行增、查、改、删操作。即可查询当前餐厅所推出的菜品,增加菜品,修改菜品的价格,删除菜品。( 2)餐桌信息管理:能查询当前餐厅中所有餐桌的座位数以及使用情况,客人可以对位实现的餐桌进行使用申请。( 3)顾客信息管理:可以查询顾客的相关信息,如性别,年龄,联系方式等。当有新顾客时,可添加新顾客的信息。( 4)顾客下订单功能:实现下订单,具有唯一的订单号,可用于结账。可根据顾客的人数选择相应的餐桌号,并且能够指定服务员。( 6)
3、顾客点菜:实现顾客点菜功能。顾客可以对所下的订单进行修改,即可删除所点的菜品或是修改数量。同时可以查询某位顾客的订单。( 7)顾客结账:根据订单号进行结账(防止有相同姓名的顾客,以致结错帐)。能够根据消费金额进行对应的折扣,并把消费信息存档到消费记录中去。2.需求分析通过了解餐饮行业的特点和实际情况,从分析饭店的基本情况入手, 结合要实现的功能,对系统的可行性进行分析,为提高其可行性,故做了 以下数据分析。2.1 数据需求餐桌数据包括餐桌号、座位数、状态(空 /有人)餐厅存储有顾客信息,员工信息。菜品信息有菜品编号、名称、类别、价格等具体数据需求如下:下订单阶段需要的数据顾客信息:包括顾客编号
4、。订单信息:包括订单编号、消费时间。餐桌信息:包括编号、可容人数、使用状态等员工信息:包括员工工号。点菜阶段需要的数据订单信息:订单编号菜品信息:包括菜品编号、 菜品名称、菜品数量等。结账阶段需要的数据:订单信息:包括订单编号、顾客编号菜品信息:包括菜品编号、菜品名称、菜品数量等。员工信息:包括员工工号折扣信息:包括消费金额、折扣数员工管理需要的数据:员工档案:包括工号、姓名、性别、工资顾客管理需要的数据:顾客档案:包括编号、姓名、性别等。消费记录管理需要的数据有:消费信息:订单编号、消费金额、折扣后金额、结账时间2.2 事务需求数据录入录入顾客信息录入餐桌信息录入员工信息录入菜品信息数据更新
5、/删除更新/删除餐桌信息更新/删除菜谱菜品信息更新/删除员工信息 更新/删除顾客信息更新/删除订单菜品信息数据查询查询可用餐桌信息查询在售菜品信息查询订单信息查询顾客点菜信息查询员工信息查询顾客消费信息2.3 数据流(1)顶层数据流(2)第一层数据流菜谱P2.21)数据项Foodtable(餐桌)数据项就位P2.1生成(3)第二层数据流点菜业务 申请变更L账单P2.3E2.3反馈变更P3.1.2菜E3.1就位5_ _F3.1.J_2.4数据字典加菜、减P3.1.P3.1.4、,生成账单E3.1.2F3.1.2点 P3H3属性存储代码长度餐桌号Foodtablenovarchar10座位数sea
6、tingnoint使用状态Foodtablestatevarchar10Menus (菜谱)数据项属性存储代码长度编PDishnovarchar10名称Dishnamevarchar10类别Dishclassvarchar10价格DishpricefloatWorker (员工)数据项属性存储代码长度工号Workernovarchar10姓名Workernamevarchar10性别Workersexvarchar4信性Workerage 存储代码int 选长度工资Workersalaryint属性存储代码长度编PCustomernovarchar10姓名Customernamevarchar
7、10性别Customersexvarchar4联系方式Customerphonenovarchar20Cus tomer (顾客) 数据项Ode r (订单) 数据项订单编号Odernovarchar10顾客编号Customernovarchar10消费时间consumetimedatetime餐桌编号Foodtablenovarchar10服务员编号Workernovarchar10Menus_Oder (点菜)数据项属性存储代码长度订单编号Odernovarchar10菜品编号Dishnovarchar10菜品名称Disnnamevarchar10菜品数量Dish_amountintDis
8、count_rules (折扣规则)数据项属性存储代码长度消费金额Consumptionfloat折扣DiscountfloatSales_bill (消费账单)数据项2)数据结构属性存储代码长度订单编号Odernovarchar10消费金额Consumptionfloat折扣后金额after_discoun tfloat账单时间BilltimeintSfflj七数据结构名属性1餐桌信息餐桌号、座位数、使用状态2菜谱编号、名称、类别、价格3员工信息工号、姓名、性别、年龄、工资4顾客信息编号、姓名、性别、联系方式5订单信息订单编号、顾客编号、消费时间、餐桌编号、服务员编号6点菜订单编号、菜品编号
9、、菜品名称、菜品数量7折扣规则消费金额、折扣8消费账单订单编号、消费金额、折扣后金额、账单时间3)数据流Sfflj七数据流名输入输出1菜品信息修改菜品菜谱2空闲餐桌选择餐桌订单3点菜信息加菜退菜点菜4记入账单订单结账5结账折扣方式结账4)数据存储编号数据存储名输入输出1顾客信息更新顾客新信息顾客信息2菜谱更新新增菜品菜谱3订单储存订单订单信息4餐桌更新新增餐桌餐桌5账单存储消费信息账单记录5)处理过程编号处理过程名输入数据流输出数据流1顾客点菜菜谱订单2结账订单账单记录3.数据库结构设计3.1 概念设计(2)结账形成过程3.2逻辑设计b. 一个1:4n联系可以转换成一个独立的关系模式,也可以与
10、n端对应的关系模式合并。c. 一个m:n联系转换成一个关系模式实体型间的联系常有如下不同的情况:也可以任意一端对a.应的关系模式合并。一个1:1联系可以转换为一个独立的关系模式,的码就是关系的码A.转换规则3.2.1 E-R图向关系模型的转换卜实体型转换成一个关系模型。实体的邮就是关”属性,然仲Ld. 3或3个以上至体间的一个多联系可以转换成一个关系模式e.具有相同码的关系模式可合并。B.根据以上规则得到如下关系模型(下划线的属性为主码)菜谱(菜品编号,菜品名称,菜品类别,菜品价格)顾客(顾客编号,姓名,性别,年龄,联系方式)餐桌(餐桌号,座位数,使用状态)员工(工星姓名,性别,年龄,工资)订
11、单(订单编号,顾客编号,消费时间,餐桌编号,服务员编号)菜谱一订单(订单编号,菜品编号,菜品名称,菜品数量)消费记录(订单号,消费金额,折扣后金额,账单时间)折扣规则(消费金额,折扣)1)确定数据依赖。2)对各个关系模式间的数据依赖进行极小化分析,减小冗余。3)按照数据依赖的理论对关系模式进行分析,看是否存在部分函数依 赖或函数传递或多值依赖等,确保各关系模式满足第三范式。4)按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些 模式是否合适,确定是否要对某些模式进行合并或分解。5)对关系模式进行必要的分解, 分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解3.
12、2.3用户子模式建立名称描述插入新顾客信息若是新顾客,则插入顾客的信息,姓名,性别等下单就位顾客来餐,下订单,分配餐桌点菜存储顾客所点的菜品删除菜品删除顾客所点的某菜品修改菜品数量修改顾客所点的某菜品的数量查询顾客点菜信息查询顾客所点的菜品消费总额计算顾客本次消费的总额。顾客支付完账单时,把消费信息存档到消费记录中结账后更改餐桌状态当顾客结账后,把餐桌状态改为“空”删除菜谱中菜品删除菜谱中存在的某菜品修改菜品价格修改菜谱中某菜品的价格向菜谱添加菜品向菜谱添加新菜品trig_discount触发器,顾客进行结账时,消费金额在不同的区间会有不同的折扣。trig_Sales_bill触发器,当消费金
13、额达到一定额数时,会送相应优惠券trig_Menus触发器,当向菜谱添加新菜品,若该菜品名称含有“红”字,会发出“此后生意必定红红火火”的祝福语。4 .数据库物理设计数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖于选定的数据库管理系统,为一个给定的逻辑数据模型选取一个最 合适的应用环境的物理结构过程,就是数据库的物理设计。这一阶段主要任务时确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程。4.1 存储过程存储过程可以实现数据库操作的增删改功能,在执行时需要调用。御用像函数一样,也可以有参数的参与。定义存储过程提供了过程封装的效果,执行只需要调用,在
14、更大程度上简化了数据处理过程。4.2 触发器5 . 数据库的实施5.1 在SQL中数据库实施create database Restaurant_Management 建表 create table Menus- - 菜谱( Dishno varchar ( 10) primary key,Dishname varchar ( 10),Dishclass varchar ( 10),Dishprice float) create table Customer- - 顾客( Customerno varchar ( 10) primary key,Customername varchar (10
15、) not null,Customersex varchar (4) check ( Customersex= 男 or Customersex = 女 ) not null,Customerphoneno varchar (20) unique not null, ) create table Foodtable- - 餐桌( Foodtableno varchar (10) primary key, seatingno int not null,Foodtablestate varchar ( 6) check ( Foodtablestate = 空 or Foodtablestate
16、= 有人 ),drop table Odercreate table Oder- - 订单( Oderno varchar ( 10) primary key ,Customerno varchar ( 10) not null,consumetime datetime not null,Foodtableno varchar ( 10) not null,Workerno varchar ( 10) not null,foreign key ( Customerno ) referencesCustomer ( Customerno),foreign key( Foodtableno ) r
17、eferencesFoodtable ( Foodtableno ),foreign key ( Workerno) references Worker(Workerno),)create table Worker- 员工( Workerno varchar ( 10) primary key,Workername varchar ( 10),Workersex varchar ( 4) check ( Workersex = 男 or Workersex = 女 ),Workerage int ,Workersalary int , )drop table Menus_Odercreate
18、table Menus_Oder- - 点菜( Oderno varchar ( 10),Dishno varchar ( 10),Disnname varchar ( 10),Dish_amount int not null,Primary key( Dishno , Oderno),foreign key( Dishno ) references Menus( Dishno ),foreignkey ( Oderno) references Oder( Oderno),)drop table Sales_billcreate table Sales_bill- - 销售账单(Oderno
19、varchar ( 10) primary key ,Consumption float ,after_discount float ,Billtime datetime ,foreign key ( Oderno) references Oder( Oderno)drop table Discount_rulescreate table Discount_rules- 折扣规则( Consumption float primary key,Discount float ,)本系统采用将数据逐条录入的方法。5.2 数据库测试( 1)存储过程 插入新顾客信息drop procedure 插入新顾
20、客信息create procedure 插入新顾客信息( Customerno varchar ( 10),Customernamevarchar ( 10),Customersex varchar ( 4),Customerphonenovarchar (20)insertinto Customervalues ( Customerno, Customernam,eCustomersex, Customerphoneno)select * from Customer 验证 execute 插入新顾客信息112699 , 李阳 , 男 , 下单就位drop procedure 下单就位crea
21、te procedure 下单就位( Odernovarchar ( 10) ,Customerno varchar ( 10),consumetime datetime ,Foodtableno varchar (10),Wokernovarchar ( 10)asbegin transaction - 开始事务insertinto Odervalues ( Oderno, Customerno, consumetime, Foodtableno, Wokerno)if ( select Foodtablestate from Foodtable whereFoodtableno =Food
22、tableno) 空 )beginprint 该餐桌有人,请重选餐桌。Rollback tranreturnendelsebeginupdate Foodtable set Foodtablestate = 有人where Foodtableno =Foodtablenoprint 下单成功,请就位开始点菜endcommit tran 验证 execute 下单就位O_001 ,112699 , 2013-12-26 , TB_005 , W_002execute 下单就位O_002 ,112698 , 2013-12-26 , TB_004 , W_003当餐桌有人时,则显示成功下单时,则显
23、示 查看下单情况select * from Oderselect * from Foodtable 菜谱的查询select * from Menus删除菜谱中菜品create procedure 删除菜谱中菜品Dishno varchar ( 10)asdeletefrom MenusWhere Dishno =Dishnoselect * from Menus 验证 execute 删除菜谱中菜品D_112 修改菜品价格create procedure 修改菜品价格(Dishno varchar ( 10),Dishprice floatasupdate Menusset Dishprice
24、 =DishpriceWhere Dishno =Dishnoselect * from Menus 验证 execute 修改菜品价格D_113 , 30 向菜谱增加菜品create procedure 向菜谱增加菜品( Dishno varchar ( 10),Dishnamevarchar ( 10),Dishclass varchar ( 10),Dishprice float)asinsert into Menusvalues ( Dishno, Dishnam,eDishclass , Dishprice )select * from Menus 验证 execute 向菜谱增加菜
25、品D_112 , 时蔬 , 小炒类 , 20 点菜的增加、查询、删除、修改 点菜 create procedure 点菜( Odernovarchar ( 10),Dishno varchar ( 10),Disnnamevarchar ( 10),Dish_amount int)asinsert into Menus_Odervalues ( Oderno, Dishno, Disnnam,eDish_amoun)t select * from Menus_Oder where Oderno=Oderno 验证 execute 点菜 O_001 , D_111 , 小炒河虾 , 2execu
26、te 点菜 O_001 , D_114 , 鸡蛋炒芹菜 , 1execute 点菜 O_001 , D_115 , 三鲜汤 , 3 查询客户点菜信息create procedure 查询顾客点菜信息Customerno varchar ( 10)asselect Customerno=Customerno, Menus. Dishno , Dishname, Dish_amountfrom Menus, Menus_Oder, Oderwhere Oder. Customerno=Customerno andMenus. Dishno =Menus_Oder. Dishno and Oder.
27、 Oderno=Menus_Oder. Oderno 验证 execute 查询顾客点菜信息112699删除菜品create procedure 删除菜品( Odernovarchar ( 10),Dishno varchar ( 10)asdeletefrom Menus_OderWhere Oderno=Odernoand Dishno =Dishnoselect * from Menus_Oder where Oderno=Oderno 验证 execute 删除菜品O_001 , D_111 修改菜品数量create procedure 修改菜品数量( Odernovarchar (
28、10),Dishno varchar (10),Dish_amount int)as update Menus_Oder set Dish_amount =Dish_amountWhere Oderno=Odernoand Dishno =Dishno select * from Menus_Oder where Oderno=Oderno验证execute 修改菜品数量 O_001 ,D_111 ,3I正结果菌息Odemo D 讷 hno DtarmanneDish _am(Mnl一,i rrsi iiimi imrtiiBr1 : OJXH : D_111 小嬷可虾 3Xd::a_fa::
29、ad_dju sF2 O_0Q1D_114鸡酬芹菜13 。一OCT口15 三驿而a计算总消费额DROPprocedure 消费总额create procedure 消费总额( Odernovarchar ( 10),Consumption float output ,discount float output)asselect Consumption=SUM( Dishprice * Dish_amount)from Menus_Oder, Menus, Oderwhere Menus. Dishno =Menus_Oder. Dishno andOder. Oderno=Menus_Oder
30、. Oderno and Oder. Oderno=Odernobegin tran 启用事务if exists( select Consumption from Discount_rules whereConsumption =Consumption)- 判断 Discount_rules 中是否有对应折扣beginselect discount =Discount from Discount_rules whereConsumption =ConsumptionendELSEbeginINSERTinto Discount_rules ( Consumption ) VALUES( Con
31、sumption)-斗客Consumptionti入至U Discount_rulesselect discount =Discount from Discount_rules whereConsumption =Consumption- 获取对应折扣endif exists( select Oderno from Sales_bill where Oderno=Odern)o-判断消费账单是否已有该消费记录beginprint 消费记录已插入消费账单, 别重复插入endelsebegininsertinto Sales_bill ( Oderno, Consumption , after_d
32、iscount , Billtime )values ( Oderno, Consumption, Consumption* discount , GETDAT(E)print 成功将消费记录插入到消费账单endcommit tran - 提交事务 验证 declare Consumption float , discount float , Odernovarchar ( 10)= O_001execute 消费总额O_001 , Consumption output , discount outputselect Oderno, Customername, Consumption 总消费
33、, discount 折扣from Oder, Customerwhere Customer. Customerno=Oder. Customerno and Oderno=Oderno并把消费信息插入到消费记录中若已经结账,则提示 结账后餐桌状态create procedure 结账后更改信息Odernovarchar ( 10)asupdate Foodtable 修改餐桌状态set Foodtablestate = 空 where Foodtableno =( select Foodtableno from Oder whereOderno=Oderno) 验证 execute 结账后更
34、改信息O_001 对菜谱的操作 查询菜谱select * from Menus删除菜谱中菜品create procedure 删除菜谱中菜品Dishno varchar ( 10)asdeletefrom MenusWhere Dishno =Dishnoselect * from Menus 验证 execute 删除菜谱中菜品D_112执行前:执行后: 修改菜品价格create procedure 修改菜品价格(Dishno varchar ( 10),Dishprice float)asupdate Menusset Dishprice =DishpriceWhere Dishno =Dishnoselect * from Menus 验证 execute 修改菜品价格D_113 , 40执行后: 向菜谱增加菜品create procedure 向菜谱增加菜品( Dishno varchar ( 10),Dishnamevarchar ( 10),Dishclass varchar ( 10),)asinsert into Menusvalues ( Dishno, Dishnam,eDishclass , Dishprice )select * from Menus 验证 execute 向菜谱增加菜品D_112 , 时蔬 , 小炒类 , 20执行后:(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国热饮品市场发展趋势与规划建议研究研究报告
- 2025四川德阳市旌阳区教育和体育局考核招聘教师25人备考题库及答案详解1套
- 2025-2030红茶项目可行性研究报告
- 2025-2030武都区建筑材料行业市场竞争现状分析及投资评估规划分析研究报告
- 2025-2030欧盟天然气工业供需格局投资展望规划分析研究报告
- 2025-2030欧洲食品机械制造行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030欧洲锂电池市场供需态势及投资前景规划探讨报告
- 2025-2030欧洲红酒行业市场现状调研分析成果投资前景评估发展前景规划研究
- 2025-2030欧洲电子产品回收利用技术研发与创新驱动竞争分析报告
- 2025-2030欧洲生物科技公司发展现状分析及投资规模规划指导文件
- 河南豫能控股股份有限公司及所管企业2026届校园招聘127人考试备考题库及答案解析
- 2026浙江宁波市鄞州人民医院医共体云龙分院编外人员招聘1人笔试参考题库及答案解析
- (2025年)新疆公开遴选公务员笔试题及答案解析
- 物业管家客服培训课件
- 直销公司旅游奖励方案
- 解除劳动合同证明电子版(6篇)
- 呼吸科规培疑难病例讨论
- 有关中国居民死亡态度的调查报告
- 核对稿100和200单元概述
- 医学统计学(12)共143张课件
- 特种设备安全检查台账
评论
0/150
提交评论