食堂管理系统-数据库设计_第1页
食堂管理系统-数据库设计_第2页
食堂管理系统-数据库设计_第3页
食堂管理系统-数据库设计_第4页
食堂管理系统-数据库设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2012年 3 月 14 日课题:数据库设计(食堂管理系统)目的和要求:1. 掌握数据库需求分析2. 掌握数据库概念结构设计与逻辑结构设计方法3. 掌握创建数据库、表、约束、视图、存储过程、触发器的方法4. 掌握权限的设置方法5. 掌握备份与恢复的方法操作内容:设计数据库课题:食堂管理系统一、数据需求分析:在搜集资料和分析用户应用要求的基础上,形成该数据库系统的应用需求说明;二、涉及到的表:通过需求分析确定表结构。1、分几个表2、表中需哪些列,列名、数据类型、长度;3、可否为空值;(表示未知、不可用或将在以后添加数据)4、需使用的约束:主键,外键,默认值,check,唯一值约束。三、创建视图

2、四、存储过程五、触发器六、权限设置七、数据备份与恢复设计一、 需求分析1. 系统分析随着时代的进步, 如今各个服务行业也都逐渐发展壮大起来,尤其是食堂服务业,其在服务范围、服务数量和服务内容上都有着非常大的膨胀幅度,因此如何对如此复杂而频繁的服务活动进行管理就属于“食堂管理”的内容。其主要包括:职员资料管理、物品管理、消费内容管理、席位管理、客户评价管理,工资管理等,它是现代食堂管理中的一个重要组成部分。 2. 功能需求分析“食堂管理” 包括很多项目,以前食堂管理人员要记录大量的用户消费内容,然后通过计算器进行一系列的加减乘除运算, 最后得出一位顾客的“应付金额”,这样做的效率和准确度可想而知

3、。 如果使用计算机来实现对食堂服务业的智能管理,从选择菜、酒水、主食,到计算“应付金额”,最后到打印消费内容,计算机都可以很准确、很快捷地进行处理,这些都是“食堂管理系统”的功能。一个完善的“食堂管理系统”可以很好地管理食堂服务业的各项内容,这样不仅能更好地服务顾客,而且可以为经营者创造更大的利润。针对每部分的具体功能我们又做了如下的详细分析: 职员管理管理物品管理席位管理营业管理食堂管理系统评价管理工资管理二、 涉及的表职员资料属性类型大小是否为空约束职员编号char6否主键。6位数姓名varchar20否职位varchar20否性别Char2否,默认“男”男或女民族varchar10否,默

4、认“汉族”籍贯varchar10否,默认“广东”出生日期datetime否身份证号char18否婚姻状况char4否,默认“未婚”未婚或已婚家庭地址varchar30否联系电话varchar11否备注varchar30是物品表属性类型大小是否为空约束物品编号char6否主键。6位数物品名字varchar20否所属类型char4否,默认“主食”主食、酒水或其他价格/元int否是否售馨char2否,默认“否”是或否品牌varchar30是备注varchar30是席位表属性类型大小是否为空约束席位号char6否主键,6位数负责人编号外键人数int否,默认“8”1至20状态char4否,默认“空闲”正

5、在使用,预定或空闲日期datetime否备注varchar30是销售记录属性类型大小是否为空约束类型外键数量int否方式varchar10否,默认“现场”现场、预定或外卖日期datetime否金额/元int否备注varchar30是评价情况属性类型大小是否为空约束职员编号外键评价级别char4否,默认“优”优、良、一般、差日期datetime否,默认当天备注varchar30是工资表属性类型大小是否为空约束职员编号外键工资/元int否日期datetime否备注varchar30是SQL 命令创建数据库create database 食堂管理系统on primary (name= stglxt_

6、data,filename=e:stglxt_data.mdf)log on (name=stglxt_log1,filename=e:stglxt _log.ldf)创建表create table 职员资料(职员编号char(6) not null primary keycheck(职员编号like0-90-90-90-90-90-9),姓名varchar(20) not null,职位varchar(20) not null,性别char(2) not null check(性别=男 or 性别=女) default 男,民族varchar(8) null default 汉族,出生日期d

7、atetime not null,身份证号码char(18) not null unique,婚姻状况char(4) not null check(婚姻状况=已婚 or 婚姻状况=未婚) default 未婚,联系电话varchar(11) not null unique,备注varchar(30)create table 物品表(物品编号 char(6) not null primary key,物品名字 varchar(20) not null,所属类型 char(4) not null check(所属类型=主食or 所属类型=酒水 or 所属类型=其他) default 主食,价格 m

8、oney not null,是否售馨 char(2) not null check(是否售馨=是 or 是否售馨=否) default 否,品牌 varchar(30),备注 varchar(30)create table 席位表(席位号char(6) not null primary key,负责人编号char(6) not null foreign key references 职员资料(职员编号) on update cascade on delete cascade,人数int not null,状态char(4) not null check(状态=使用 or 状态=预定 or 状态

9、=空闲) default 空闲,日期datetime not null,备注varchar(30)create table 销售记录(类型char(4) not null check(类型=主食or 类型=酒水 or 类型=其他) default 主食,数量int not null,方式char(4) not null check(方式=现场 or 方式=预定 or 方式=外卖) default 现场,金额money not null,日期datetime not null,备注varchar(30)create table 评价情况(职员编号 char(6) not null foreign

10、 key references 职员资料(职员编号) on update cascade on delete cascade,评价级别char(4) not null check(评价级别in (优,良,一般,差) default 优,日期datetime not null default getdate(),备注varchar(30)create table 工资表(职员编号char(6) not null foreign key references 职员资料(职员编号) on update cascade on delete cascade,工资money not null,日期date

11、time not null,备注varchar(30)所有表的截图如下:三、 视图设计1. 为了方便查看职员的评价与对应的职员,所以要建一个“职员信息与评价表”,以显示职员的评价的同时,还可以看到该职员的一些个人信息。create view 职员信息与评价表asselect 姓名,性别,职位,联系电话,评价级别,日期from 职员资料 a, 评价情况bwhere a.职员编号=b. 职员编号2. 为了方便查看物品的销售记录以及物品的信息,所以建立一个“物品信息与销售情况表”。create view 物品信息与销售情况表asselect 物品名字,所属类型,价格,品牌,方式,日期,数量from

12、销售记录 a, 物品表 bwhere a.类型=b. 所属类型3. 为了在职员信息中,可以方便看到该职员的工资,所以建立一个“职员信息工资表”create view 职员信息工资表asselect 姓名,性别,职位,联系电话,工资(元),日期from 职员资料 a, 工资表 bwhere a.职员编号=b. 职员编号四、 存储过程1. 创建一个存储过程,通过给定职位可查看该职位所有职员的个人信息。create proc 查询所指定职位的职员基本信息职位 varchar(20)asselect 职位,姓名,性别,民族,籍贯,出生日期,身份证号,婚姻状况,家庭住址,联系电话,备注from 职员资料

13、where职位=职位2. 创建一个存储过程,通过给定职员编号可删除该职员create proc 删除所指定的职员职员编号 char(6)asdelete 职员资料where 职员编号=职员编号五、 触发器1. 在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的好评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现优秀!”create trigger 优评备注 on 评价情况after insertasdeclare a varchar,b intbeginselect a=职员编号 form inserted where 评价级别=优select b=c

14、ount(*)form 评价情况 where 评价级别=优and 职员编号=a and dateadd(day,-1,getdate())10beginupdate 职员资料set 备注=” 工作中表现优秀!”where 职员编号=aendelseend2. 在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的差评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现糟糕!”。create trigger 优评备注 on 评价情况after insertasdeclare c varchar,d intbeginselect c=职员编号 form inser

15、ted where 评价级别=差select d=count(*)form 评价情况 where 评价级别=差and 职员编号=c and dateadd(day,-1,getdate())10beginupdate 职员资料set 备注=” 工作中表现糟糕!”where 职员编号=aendelseend六、 权限设置我们所设计的教师档案管理系统根据实际情况会用到四类用户,有食堂所有者、管理者、普通员工,还有客户。食堂所有者在这管理系统种具有全部权限,食堂的管理人员具有职员管理,物品管理,营业管理,评价管理的添加删改权限。 食堂普通职员具有席位管理的添加删改权限,方便对日常工作的管理。客户具有

16、在评价情况表上添加对职员的评价情况的权限,但是不能修改和删除。1、新建了三个用户分别代表四类用户,所有者、管理者、普通员工,客户,分别设有密码。命令如下:exec sp_addlogin 所有者,111exec sp_addlogin 管理者,222exec sp_addlogin 普通员工,333exec sp_addlogin 客户,4442、授予所有者所有权限给 所有者 授予食堂管理系统数据库访问权,并给其分配为该数据库的拥有者:db_owner,在该数据库中拥有所有权限;命令如下:use 食堂管理系统exec sp_grantdbaccess 所有者goexec sp_addrolem

17、ember db_owner,所有者2、通过所有者用户给普通员工授予权限,命令如下:use 食堂管理系统exec sp_grantdbaccess 普通员工gogrant select on 席位表 to 普通员工3、通过所有者用户给管理者授予权限,命令如下:use 食堂管理系统exec sp_grantdbaccess 管理者gogrant select,insert,update on 职员资料 to 管理者grant select,insert,update on 物品表 to 管理者grant select,insert,update on 销售记录 to 管理者grant selec

18、t,insert,update on 评价情况 to 管理者七、 数据备份与恢复设计为了防止数据可能在运行过程中出现某些意外的错误而导致数据丢失等严重问题,数据库的备份与恢复在实际的数据库系统开发中有着十分重要的意义。1. 针对系统的数据库分析:为了防止突发事件对现存数据库的破坏,应该随时将数据库信息进行备份,考虑到三种备份空间与时间上的优化,我们采取备份策略:1) 有规律的进行完整数据库备份,可以隔一段时间,在操作数据库不频繁的时间段进行;2) 在较小的时间间隔内进行差异备份,比如一天;3) 在相邻的两次差异备份之间进行事务日志备份,可以每半个小时一次,以补充备份在完整数据库备份与差异备份进

19、行之间之间进行的事务。2. 考虑食堂管理系统实际情况,我们采取恢复策略:先恢复最近一次的数据库备份,接着进行差异备份恢复,最后进行事务日志备份的恢复。因为我们同样关心数据库状态之间的变化,所以采用完整数据库恢复策略。3. 由于食堂管理系统的数据量会随时间不断增多,可能出现很多的人员的调动和调整,占据存储空间的同时又降低数据库访问的效率,针对这方面我们采取:每1年对教师教师基本信息进行数据备份,备份数据另保存,同时将这些已备份的数据从食堂管理系统中删除。数据库备份备份:数据库备份就是制作数据库结构和数据的拷贝,以便在数据库遭到破坏的时候能够恢复数据库。备份数据库语法backup database

20、 要备份的数据库名to 用来备份的备份设备名/备份文件名 with format/init/noinit/restart/differentialformat:完全删除备份设备原内容后备份init:完全删除备份设备除标题外的原内容noinit:备份内容添加到备份设备原有内容后restart:在中断点重新备份differential:进行差异性备份事务日志备份的语法:backup log 要备份的数据库名to 用来备份的备份设备名/备份文件名恢复数据库1、数据库恢复:数据库恢复就是把数据库备份加载到系统中。数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复数据库。系

21、统在恢复数据库的过程中,自动执行安全性检查、重建数据库结构以及完整数据库内容。 2、下面三个情况会导致恢复失败:服务器上的数据库文件集和备份集中的数据文件集不一致。如果在restore语句中指定的数据库已经存在,并且该数据库与在备份文件中记录的数据库不同。不能提供用于恢复数据库的全部文件或文件组。3、恢复数据库时应注意的两个问题:在数据库恢复前,应该首先删除故障数据库,以便删除对故障硬件的任何引用。在数据库恢复前,必须限制用户对数据库的访问恢复数据库语法restore database 数据库名from 备份设备名with file=备份文件序号Norecovery *还原还没有最后完成,还能

22、接收新的日志备份文件,用来恢复 Recovery *还原已经结束,数据库可以恢复使用恢复事务日志restore log 数据库名from 备份设备逻辑名with file=备份文件序号,norecovery/recovery创建备份设备exec sp_addumpdevice disk ,逻辑名称 ,物理名称对数据库进行如下操作:创建好食堂管理系统数据库,然后对数据库进行完全备份;对数据库进行相对应的操作后,进行差异备份;对数据库再次进行相关操作后,进行日志备份;破坏数据库,然后进行还原(选择最佳还原方案)。还原后,再次进行相关操作,然后进行一次差异备份。破坏数据库,然后进行还原(选择最佳还原

23、方案)。还原后,进行一次完全备份。再次破坏数据库,最后一次还原(选择最佳还原方案)。命令如下: exec sp_addumpdevice disk,bbb,e:bbb.bakbackup database 食堂管理系统 to bbb2、backup database 食堂管理系统to bbb with differential3、backup log 食堂管理系统 to bbb4、drop database 食堂管理系统gorestore database 食堂管理系统 from bbb with file=1,norecoveryrestore database 食堂管理系统 from bb

24、b with file=2,norecoveryrestore log 食堂管理系统 from bbb with file=35、backup database 食堂管理系统 to bbb with differential6、drop database 食堂管理系统gorestore database食堂管理系统 from bbb with file=1,norecoveryrestore database食堂管理系统 from bbb with file=47、backup database食堂管理系统 to bbb8、drop database 食堂管理系统gorestore database 食堂管理系统 from bbb with file=5总结通过这次的数据库课程设计,独立完成了食堂管理系统的设计,从这次的系统设计中我领略到了:1. 开放一个数据库应用系统,通常需要进过需求分析、概念结构设计、逻辑结构设计、物理结构设计、对功能的SQL语句的相应描述5个阶段;2. 进行数据库设计首先需要准确了解与分析用户需求、需求分析是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论