目录1.课题名称及目标.....................................................32.需求分析...........................................................42.1数据需求......................................................42.2事务需求......................................................62.3数据流........................................................72.4数据字典......................................................83.数据库结构设计....................................................153.1概念设计.....................................................15.................................................错误!未定义书签。..............................................................163.2逻辑设计.....................................................173.2.1E-R图向关系模型的转换..................................17.................................................错误!未定义书签。3.2.3用户子模式建立..........................................194.数据库物理设计....................................................214.1存储过程.....................................................214.2触发器.......................................................225.数据库的实施......................................................225.1在SQL中数据库实施...........................................22.................................................错误!未定义书签。.................................................错误!未定义书签。5.2数据库测试...................................................27.................................................错误!未定义书签。6.总结.............................................................487.附录.............................................................491.课题名称及目标本次实训要设计的数据库课题名称是餐厅管理系统。餐厅管理系统的功能主要包括顾客点菜、结账、对员工资料进行管理、对餐桌信息进行统一设置、对消费情况进行查询等功能。基本功能如下:(1)菜谱信息管理:对菜谱进行增、查、改、删操作。即可查询当前餐厅所推出的菜品,增加菜品,修改菜品的价格,删除菜品。(2)餐桌信息管理:能查询当前餐厅中所有餐桌的座位数以及使用情况,客人可以对位实现的餐桌进行使用申请。(3)顾客信息管理:可以查询顾客的相关信息,如性别,年龄,联系方式等。当有新顾客时,可添加新顾客的信息。(4)顾客下订单功能:实现下订单,具有唯一的订单号,可用于结账。可根据顾客的人数选择相应的餐桌号,并且能够指定服务员。(6)顾客点菜:实现顾客点菜功能。顾客可以对所下的订单进行修改,即可删除所点的菜品或是修改数量。同时可以查询某位顾客的订单。(7)顾客结账:根据订单号进行结账(防止有相同姓名的顾客,以致结错帐)。能够根据消费金额进行对应的折扣,并把消费信息存档到消费记录中去。2.需求分析通过了解餐饮行业的特点和实际情况,从分析饭店的基本情况入手,结合要实现的功能,对系统的可行性进行分析,为提高其可行性,故做了以下数据分析。2.1数据需求餐桌数据包括餐桌号、座位数、状态(空/有人)餐厅存储有顾客信息,员工信息。菜品信息有菜品编号、名称、类别、价格等具体数据需求如下:◎下订单阶段需要的数据顾客信息:包括顾客编号。订单信息:包括订单编号、消费时间。餐桌信息:包括编号、可容人数、使用状态等员工信息:包括员工工号。◎点菜阶段需要的数据订单信息:订单编号菜品信息:包括菜品编号、菜品名称、菜品数量等。◎结账阶段需要的数据:订单信息:包括订单编号、顾客编号菜品信息:包括菜品编号、菜品名称、菜品数量等。员工信息:包括员工工号折扣信息:包括消费金额、折扣数◎员工管理需要的数据:员工档案:包括工号、姓名、性别、工资◎顾客管理需要的数据:顾客档案:包括编号、姓名、性别等。◎消费记录管理需要的数据有:消费信息:订单编号、消费金额、折扣后金额、结账时间2.2事务需求数据录入录入顾客信息录入餐桌信息录入员工信息录入菜品信息数据更新/删除更新/删除餐桌信息更新/删除菜谱菜品信息更新/删除员工信息更新/删除顾客信息更新/删除订单菜品信息数据查询查询可用餐桌信息查询在售菜品信息查询订单信息查询顾客点菜信息查询员工信息查询顾客消费信息2.3数据流(1)顶层数据流负责(2)第一层数据流菜谱E1顾客P1订单处理E2服务员F1变更信息P2.2点菜处理F2.1折扣就位生成账单(3)第二层数据流点菜业务申请变更反馈变更加菜、减菜就位生成账单点菜业务2.4数据字典1)数据项Foodtable(餐桌)数据项P2.1直接下单P2.3结账E2.2订单E2.3服务员E2.1顾客P3.1.1直接下单F3.1.2存储账单E3.1.2订单P3.1.2点菜处理F3.1.1存储订单P3.1.4变更处理P3.1.5判断变更方式E3.1.1顾客P3.1.3后台处理查看菜谱Menus(菜谱)数据项Worker(员工)数据项属性存储代码类型长度餐桌号Foodtablenovarchar10座位数seatingnoint使用状态Foodtablestatevarchar10属性存储代码类型长度编号Dishnovarchar10名称Dishnamevarchar10类别Dishclassvarchar10价格DishpricefloatCustomer(顾客)数据项Oder(订单)数据项属性存储代码类型长度工号Workernovarchar10姓名Workernamevarchar10性别Workersexvarchar4年龄Workerageint工资Workersalaryint属性存储代码类型长度编号Customernovarchar10姓名Customernamevarchar10性别Customersexvarchar4联系方式Customerphonenovarchar20属性存储代码类型长度Menus_Oder(点菜)数据项订单编号Odernovarchar10顾客编号Customernovarchar10消费时间consumetimedatetime餐桌编号Foodtablenovarchar10服务员编号Workernovarchar10属性存储代码类型长度订单编号Odernovarchar10菜品编号Dishnovarchar10菜品名称Disnnamevarchar10菜品数量Dish_amountintDiscount_rules(折扣规则)数据项Sales_bill(消费账单)数据项2)数据结构编号数据结构名属性属性存储代码类型长度消费金额Consumptionfloat折扣Discountfloat属性存储代码类型长度订单编号Odernovarchar10消费金额Consumptionfloat折扣后金额after_discountfloat账单时间Billtimeint1餐桌信息餐桌号、座位数、使用状态2菜谱编号、名称、类别、价格3员工信息工号、姓名、性别、年龄、工资4顾客信息编号、姓名、性别、联系方式5订单信息订单编号、顾客编号、消费时间、餐桌编号、服务员编号6点菜订单编号、菜品编号、菜品名称、菜品数量7折扣规则消费金额、折扣8消费账单订单编号、消费金额、折扣后金额、账单时间3)数据流编号数据流名输入输出1菜品信息修改菜品菜谱2空闲餐桌选择餐桌订单3点菜信息加菜退菜点菜4记入账单订单结账5结账折扣方式结账4)数据存储编号数据存储名输入输出1顾客信息更新顾客新信息顾客信息2菜谱更新新增菜品菜谱3订单储存订单订单信息4餐桌更新新增餐桌餐桌5账单存储消费信息账单记录5)处理过程编号处理过程名输入数据流输出数据流1顾客点菜菜谱订单2结账订单账单记录3.数据库结构设计3.1概念设计(1)订单形成过程(2)结账形成过程顾客订单生成服务员菜谱菜品选择查看包含负责n1nnn111n1订单消费金额顾客对应包含支付折扣规则对应3.2逻辑设计3.2.1E-R图向关系模型的转换折扣菜品账单员工餐桌工资顾客订单销售记录菜谱查看选择包含下单位置负责支付对应保存对应对应nnnnn11111111111111111A.转换规则一个实体型转换成一个关系模型。实体的属性就是关系的属性,实体的码就是关系的码。实体型间的联系常有如下不同的情况:a.一个1:1联系可以转换为一个独立的关系模式,也可以任意一端对应的关系模式合并。b.一个1:n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。c.一个m:n联系转换成一个关系模式。d.3或3个以上实体间的一个多联系可以转换成一个关系模式。e.具有相同码的关系模式可合并。B.根据以上规则得到如下关系模型(下划线的属性为主码)菜谱(菜品编号,菜品名称,菜品类别,菜品价格)顾客(顾客编号,姓名,性别,年龄,联系方式)餐桌(餐桌号,座位数,使用状态)员工(工号,姓名,性别,年龄,工资)订单(订单编号,顾客编号,消费时间,餐桌编号,服务员编号)菜谱_订单(订单编号,菜品编号,菜品名称,菜品数量)消费记录(订单号,消费金额,折扣后金额,账单时间)折扣规则(消费金额,折扣)1)确定数据依赖。2)对各个关系模式间的数据依赖进行极小化分析,减小冗余。3)按照数据依赖的理论对关系模式进行分析,看是否存在部分函数依赖或函数传递或多值依赖等,确保各关系模式满足第三范式。4)按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。5)对关系模式进行必要的分解,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。3.2.3用户子模式建立名称描述插入新顾客信息若是新顾客,则插入顾客的信息,姓名,性别等下单就位顾客来餐,下订单,分配餐桌点菜存储顾客所点的菜品删除菜品删除顾客所点的某菜品修改菜品数量修改顾客所点的某菜品的数量查询顾客点菜信息查询顾客所点的菜品消费总额计算顾客本次消费的总额。顾客支付完账单时,把消费信息存档到消费记录中结账后更改餐桌状态当顾客结账后,把餐桌状态改为“空”删除菜谱中菜品删除菜谱中存在的某菜品修改菜品价格修改菜谱中某菜品的价格向菜谱添加菜品向菜谱添加新菜品t