1、在线订餐系统作业题目: 网上订餐数据库系统设计 作业时间: 2012 年 11 月 专业班级: XXXXXXXXXXXXXXXXX 姓 名: 学 号: 授课教师: 目录第一章 需求分析 31.1 订餐现状分析 .31.2 顾客需求分析 .31.3 管理员需求分析 31.4 性能需求分析 .31.5 可行性分析 .41.6 总体设计原则 .4- 2 -第二章 数据库概念结构设计 .52.1 系统 E-R 图 .52.2 数据流图 62.3 数据字典 623.1 数据项 .62.3.2 数据结构 72.3.3 处理过程 7第三章 数据库逻辑结构设计 .103.1 数据库逻辑结构初步构思 103.2
2、 具体逻辑 结构设计 .11第四章 数据库的物理结构设计 .124.1 表间关系设计 124.2 完整性设计 12第五章 数据库系统的实施 145.1 数据库的建立 145.2 数据输入 .14第六章 数据库运行和维护 166.1 定义并设置备份策略 166.2 启用数据库维护计划任务 .16第七章 报告总结 18- 3 -第一章需求分析1.1 订餐现状分析现在普遍使用的订餐方式是进行电话预定,这种预订方式方便,错误率也比较低,但是由此引发的一些不良现象也比较多,主要是订餐后出现饭店并没有将信息记录在案,而且电话里不能看到菜品的图片,对菜量和菜品样式没有直观的概念。另外这种订餐方式只是进行电话
3、的预约,很可能会出现订餐但是不履行订单也不进行订餐取消的现象,订餐人员对订购的餐桌信息不太了解会进行相关信息的询问,这样就在一定程度上造成了时间的浪费,饭店人员会在同一天反复重复相同的信息,造成了人力资源的浪费。这样开发出图文并茂,信息能够及时更新和查看的在线网上订餐系统就具有了重要的意义。1.2 顾客需求分析顾客模块的功能包括个人信息管理,美食选购,美食评价三大功能。其中,在个人信息管理中可以对个人信息进行修改、还可以查阅以往订过的美食信息;在选购美食中可以通过购物车直接购买的形式、也可已选择货到付款的形式完成交易;美食评价中顾客可以这对这次服务质量,留下自己相对餐厅说的话,完成用户与餐厅之
4、间的交互。1.3 管理员需求分析管理员模块的功能包括菜品管理,订单管理,会员信息管理三大功能。其中,在个菜品管理中可以对菜品信息进行添加、修改和查询操作;在订单管理中可以通过未确认、已确认、已下单三种形式进行管理、也可查看所有订单信息;会员信息管理中,可以添加会员信息和修改会员信息,进而方便顾客网上订购美食,并享有优惠,这一做法人性化的完成网站的推广,避免了顾客的抵触情绪。1.4 性能需求分析该系统在性能功能上应达到如下需求: 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的
5、提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式;- 4 - 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能; 系统运行应该快速、稳定、高效和可靠; 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。1.5 可行性分析随着经济的快速发展,B2C 电子商务越来越受到人们的关注。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度
6、的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。而当代大学生,白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。1.6 总体设计原则1、开放性、可扩充性、可靠性原则开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能
7、够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。2、良好的用户操作界面用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。3、实用性原则任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。4、工作平台设计原则能适应不同的操作平台,不同的网络。- 5 -第二章 概念结构设计阶段2.1 系统 E-R 图通过上面的介绍,我们已近基本的实体有管理员、用户、订单和菜谱。实体之间有一个管理员可以有拥有多个用户、多个菜谱的管理关系,因
8、此管理员与用户之间和菜单之间都是一对多的联系;一个用户只能属于管理员,因此用户与管理员是多对一的联系;一个订单只属于一个用户,但可以拥有多个菜谱,因此订单与菜谱的关系是一对多的联系。据此分析,得到系统的 ER 图如图 2-1 所示。图 2-1 网上订餐系统 E-R 图M1管理员 用 户管理管理生成下单管理员编号名称 用户编号姓名地址下单时间总金额订单状态编号菜名原价菜名的介绍优惠价菜 系 订 单图片手机号订单编号地址密码 登录 IP最后登录时间注册时间订单改变时间会员编号备注创建时间- 6 -2.2 数据流图图 2-2 订餐系统网上订餐数据流图2.3 数据字典2.3.1 数据项数据项编号 数据
9、项名 数据项含义说明 数据类型 长度DI-0 用户编号 用户的唯一标识 intDI-1 用户名 用户登陆时的名称 char 17DI-2 用户密码 用户登陆时的密码 char 17DI-3 用户姓名 用户的真实姓名 char 20DI-4 用户性别 用户的性别 char 2DI-5 用户手机 用户的联系电话 char 40DI-6 用户固定电话 用户的联系电话 char 40DI-7 用户地址 用户的送货地址 char 100DI-8 用户邮箱 用户的个人邮箱 char 50DI-9 用户年龄 用户的真实年龄 intDI-10 用户生日 用户的出生日期 dateDI-11 餐馆编号 餐馆的唯一
10、标识 intDI-12 餐馆名称 餐馆的全称 char 50DI-13 餐馆地址 餐馆的详细地址 char 100DI-14 餐馆电话 餐馆的联系电话 char 40- 7 -数据项编号 数据项名 数据项含义说明 数据类型 长度DI-15 餐馆联系人 餐馆联系人的姓名 char 20DI-16 菜品编号 菜品的唯一标识 intDI-17 菜名名称 菜品的名称 char 40DI-18 菜品类别 菜品所属的类别名称 char 20DI-19 菜品类别编号 菜品类别的唯一标识 intDI-20 菜品价格 菜品的单价 floatDI-21 菜品折扣 菜品的折扣率 floatDI-22 菜品份数 菜品
11、的份数 intDI-23 订单编号 订单的唯一标识 intDI-24 订单日期 订单产生的日期 dateDI-25 订单总额 订单所有菜品的总额 floatDI-26 送餐编号 送餐的唯一标识 intDI-27 送餐地址 送餐的详细地址 char 100DI-28 送餐日期 送餐的日期 dateDI-29 送餐员名称 送餐员的真实姓名 char 20DI-30 送餐员电话 送餐员的联系电话 char 40DI-31 省份编号 省份的唯一标识 intDI-32 省份名称 省份的名称 char 20DI-33 城市编号 城市的唯一标识 intDI-34 城市名称 城市的名称 char 202.3.
12、2 数据结构数据结构编号 数据结构名 含义说明 组成DS-1 Class 菜品分类信息 DI-18,DI-19DS-2 User 用户信息 DI-0 至 DI-10DS-3 Restaurant 餐馆信息 DI-11 至 DI-15DS-4 Meal 菜品信息 DI-16 至 DI-22DS-5 Order 订单信息 DI-23、DI-24、DI-25、DI-27、DI-0DS-6 DeliveryNote 送餐信息 DI-26 至 DI-30,DI-1、DI-14、DI-152.3.3 处理过程处理过程编号 处理过程名 说明 输入 输出 处理P-1 注册 所有用户 用户详细信息 注册成功信息
13、或失败信息成功:跳转到登陆页面失败:重新注册- 8 -处理过程编号 处理过程名 说明 输入 输出 处理P-2 登录 所有用户 用户名和密码 登陆成功信息或失败信息成功:跳转到首页失败:重新登陆P-3 修改账号 已经登陆的用户原用户名、新的用户名、确认新用户名、密码修改成功或失败信息修改数据库信息P-4 修改密码 已经登陆的用户原来的密码、新的密码、确认新密码修改成功或失败信息修改数据库信息P-5 修改常用收货信息 已经登陆的用户新的收货地址、新的联系方式修改数据库信息P-6 添加收获信息 已经登陆的用户 新的收货信息 修改数据库信息P-7 修改用户信息 已经登陆的用户 用户信息 修改数据库信息
14、P-8 添加到购物车 所有用户将用户所选的菜品添加到购物车P-9 修改购物车 所有用户 修改购物车信息P-10 下订单 已登录用户根据购物车和用户信息自动生成订单P-11 查看并确认订单 已登录用户P-12 提交订单 已登录用户 订餐成功信息 修改数据库信息- 9 -处理过程编号 处理过程名 说明 输入 输出 处理P-13 接收订单 客服人员将订单信息传送给相关工作人员P-14 信息检索 所有用户 要检索的内容 检索信息内容P-15 发布信息 已登录用户 要发布的信息 修改数据库信息P-16 系统维护 管理员P-17 信息更新 管理员 需要更新的信息 修改数据库信息P-18 用户投诉与评价 已
15、登录的用户 投诉/评价内容 投诉/评价内容 修改数据库信息- 10 -第三章 数据库逻辑结构设计阶段3.1 数据库逻辑模式初步构思根据 ER 图转换成基本表的思想,即每个实体转换成基本表,而 1 对多的联系根据实际需要可以转换或不转换为基本表,按照图 2-1 所示的 ER 图,该系统的基本表应为 5 个,分别为:表 3-1 管理员表管理员编号 姓名 密码 登陆 IP 最后登录时间主码表 3-2 用户表用户编号 姓名 地址 手机 注册时间主码表 3-3 订单表订单编号手机号 地址 总金额 下单时间订单状态 订单改变时间备注 会员编号主码 外码表 3-4 菜谱表编号 菜名 原价 优惠价 菜名的介绍
16、 图片 创建时间主码表 3-5 订单项表订单项编号 订单编号 姓名 状态主码- 11 -3.2 具体逻辑模式设计表的具体结构表名 字段名 字段类型 关键字 约束说明菜谱编号 10 个字符 是菜名 20 个字符 不允许空值原价 20 个字符优惠价 20 个字符菜名介绍 50 个字符图片菜谱信息创建时间 10 个字符用户编号 10 个字符 是姓名 10 个字符地址 50 个字符手机 20 个字符用户信息注册时间 10 个字符管理员编号 10 个字符 是姓名 10 个字符管理员密码 10 个字符登录 IP 20 个字符管理员信息最后登录时间 10 个字符订单编号 15 个字符 是手机号 20 个字符
17、地址 20 个字符总金额 10 个字符下单时间 10 个字符订单状态 10 个字符订单改变时间 10 个字符备注 50 个字符订单信息会员编号 10 个字符 参照用户信息表的用户编号,不允许空值订单项编号 10 个字符 是订单编号 15 个字符 参照订单信息表的订单编号,不允许空值姓名 10 个字符订单项信息状态 10 个字符- 12 -第四章 数据库的物理结构设计4.1 设计表间关系在网上订餐系统中,存在着参照关系和被参照关系。用户信息表 参照关系外部关键字主关键字 订单信息表 被参照关系订单编号 用户编号 地址 总金额 下单时间 订单状态 订单改变时间手机 备注11122301 20100
18、10001 山东济南 28.00 1223 11:23 等待付款 1322323565611122302 2010010002 江西南昌 42.00 1223 14:42 货到付款 1514685423611122303 2010010003 广东佛山 13.00 1223 15:33 已付款 1877569258411122304 2010010004 湖南长沙 25.00 1223 17:52 货到付款 18023652541图 4-1 参照关系与被参照关系4.2 完整性设计4.2.1 主要字段完整性的字段名、完整性约束条件关系模型的完整性约束包括实体完整性、参照完整性和用户定义完整性。主
19、要字段完整性的字段名、完整性约束条件指的是实体完整性。其中实体完整性的规则如下:1 实体完整性规则是针对关系而言的,而关系则对应一个现实世界中的实体集。2 现实世界中的实体是可区分的,它们具有某种标识特征;相应地,关系中的元组也是可区分的,在关系中用主关键字作唯一性标识。3 主关键字中的属性,即主属性不能取空值。在网上订餐系统中,管理员表(管理员编号,名称,密码,登陆 IP,最后登录时间)中,管理员编号是主关键字,不可以取空值;用户表(用户编号,姓名,地址,手机,注册时间)中,用户编号是主关键字,不可以取空值;订单表(订单编号,手机号,地用户编号 姓名 地址 手机 注册时间2010010001
20、 王丽萍 山东济南 13223235656 201009102010010002 李杜娟 江西南昌 15146854236 200812312010010003 黄大洲 广东佛山 18775692584 200904232010010004 张子将 湖南长沙 18023652541 20110814- 13 -址,总金额,下单时间,订单状态,订单改变时间,备注,会员编号)中,订单编号是主关键字,不可以取空值;菜谱表(菜谱编号,菜名,原价,优惠价,菜名的介绍,图片,创建时间)中,菜谱编号是主关键字,不可以取空值;订单项表(订单项编号,订单编号,姓名,状态)中,订单项编号是主关键字,不可以取空值。
21、4.2.2 记录完整性约束及其约束条件除了实体完整性之外还有其他与应用密切相关的数据完整性约束,例如某个属性的值必须唯一,某个属性的取值必须在某个范围内,某些属性值之间应该满足一定的函数关系等。类似这些方面的约束不是关系数据模型本身所要求的,而是为了满足应用方面的语义要求提出来的,这些完整性需求需要用户来定义,所以称为用户定义完整性。数据库管理系统需提供定义这些数据完整性的功能和手段,以便统一进行处理和检查,而不是由应用程序去实现这些功能。在用户定义完整性中最常见的是限定属性的取值范围,即对值域的约束,这包括说明属性的数据类型、精度、取值范围、是否允许空值等。在网上订餐系统中,订单信息表中的订
22、单编号不允许为空值,用户表中的用户编号为唯一值都是用了用户定义完整性约束。4.2.3 参照完整性表现实世界中的实体之间存在着某种联系,而在关系模型中实体是用关系描述的,实体之间的联系也是用关系描述的,这样就自然存在着关系和关系之间的参照或引用。网上订餐系统参照完整性表如下:用户信息表n:n订单信息表订单项信息表图 4-2 说明关联和参照关用户编号 姓名 地址 手机 注册时间订单编号 手机号 地址 总金额 下单时间 订单状态 用户编号订单项编号 订单编号 姓名 状态n: n- 14 -第 5 章 数据库系统的实现5.1 数据库的建立启动服务管理器,打开查询分析器,在调试程序窗口输入下列语句:Cr
23、eate database 网上订餐系统On(name=网上订餐系统 _dat,Filename=d:program fileslzysql网上订餐系统_dat.mdf,Size=5mbMaxsize=100mb,Filegrowth=5mb)Log on(name=网上订餐系统_log,Filename=d:program fileslzysql网上订餐系统_log.ldf,Size=5mbMaxsize=100mb,Filegrowth=5mb)5.2 数据载入在网上订餐系统数据库中分别新建菜谱信息表、用户信息表、管理员信息表、订单信息表、订单项信息表,再陆续载入数据:菜谱信息表的数据:-
24、 15 -用户信息表的数据:管理员信息表的数据订单信息表的数据:订单项信息表的数据:- 16 -第 6 章 数据库系统的运行和维护作为网管员,无论其管理的网络的规模是大还是小,在日常的管理中除了维护网络平稳运行、及时排除网络故障、保护网络安全等工作以外,备份网络中关键数据也是其中的一个非常非常重要的工作环节。网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过维修或更换硬件设备得到及时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法及时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的
25、关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补的。6.1 定义并设置备份策略:1. 每周 1 次完全备份,周日晚 0 点。超过 4 周清空之前的备份。2. 每天 1 次差异备份,每天 0 点。超过 1 周清空之前的备份。3. 每 2 小时一次日志备份,超过 1 天清空之前的备份。6.2 启用维护计划任务在“管理”“数据库维护计划”上右键弹出菜单,选“新建维护计划” 。如图 6-2-1 所示。设置数据库维护计划名,并完成向导如图 6-2-2 所示。图 6-2-1 新建数据库维护计划- 17 -图 6-2-2 完成建数据库维护计划- 18 -第 7 章 报告总
26、结实践出真知。这句话说得一点也没错,在整个数据库课程设计过程中,只有实践才能对事物的本质有更深的认识,才能有发言权,一切认识都是建立在认识的基础上。通过了一个星期的数据课程设计,我对数据库这门课程有了更深的认识,对原本在我脑中像是火星语的 SQL 语言有了更加具体的认识。数据库课程设计加深了我对数据库这门课程的兴趣,让我深刻了解了数据库的强大功能,引起我对研究 SQL 语言运用规则的兴趣。数据库概念设计、数据库逻辑结构设计和数据库保护设计是数据库设计的重要步骤,每一步的设计都是至关重要的,并且是相互联系的。经过一个星期的课程设计,让我对 E-R图的设计有一个整体的想法,并且对逻辑结构设计中关键
27、字的设定能够很好的把握,分析每个表中的联系,更加注意表间和数据之间的相互约束。课程设计一个重要的过程就是在 Sever SQL 2000 上操作运行,这是运用实践去检验认识的一个过程,在这个过程中我学会了灵活运用 SQL 语言。总之,数据库课程设计一个很好地运用实践去发现认识的过程。数据库课程设计不仅让我更进一步了解了数据库这门课程,而且让我在做事方面也形成了一套很好的想法。我在做事方面学会了坚持、合作、对待问题不断充满疑问和要有耐心去解决问题,更要和同学们交流,对不懂的问题也不耻下问。从课程设计中最深的还是做事要坚持和要有耐心。在运用 Server SQL 2000 设计数据库的过程中,会不
28、断遇到种种问题,而且每个问题都会与上下步骤之间都会有联系,一个问题的不解可能会导致下一个问题的无法操作,所以我们要有耐心找出问题,分析原因,然后再解决问题,不要半途而废,要坚持下去,这样才能在学习上有所突破。数据库课程设计目的在于通过对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力,使学生能深入理解和灵活掌握教学内容:另一方面,可以很好培养学生的处事能力。总之,虽然在备战期末考试期间,为了做这个课程设计花了很多的时间,却让我感受到了要将书上的理论应用到实践绝对不只是停滞在课堂上的。一次实践可以让我看到自己的欠缺,同时也巩固了课堂上掌握的知识点。