食堂管理系统数据库设计.docx

上传人:b****5 文档编号:5184405 上传时间:2022-12-13 格式:DOCX 页数:22 大小:446.51KB
下载 相关 举报
食堂管理系统数据库设计.docx_第1页
第1页 / 共22页
食堂管理系统数据库设计.docx_第2页
第2页 / 共22页
食堂管理系统数据库设计.docx_第3页
第3页 / 共22页
食堂管理系统数据库设计.docx_第4页
第4页 / 共22页
食堂管理系统数据库设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

食堂管理系统数据库设计.docx

《食堂管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《食堂管理系统数据库设计.docx(22页珍藏版)》请在冰豆网上搜索。

食堂管理系统数据库设计.docx

食堂管理系统数据库设计

2012年3月14日

课题:

数据库设计(食堂管理系统)

目的和要求:

1.掌握数据库需求分析

2.掌握数据库概念结构设计与逻辑结构设计方法

3.掌握创建数据库、表、约束、视图、存储过程、触发器的方法

4.掌握权限的设置方法

5.掌握备份与恢复的方法

操作内容:

设计数据库

课题:

食堂管理系统

一、数据需求分析:

在搜集资料和分析用户应用要求的基础上,形成该数据库系统的应用需求说明;

二、涉及到的表:

通过需求分析确定表结构。

1、分几个表

2、表中需哪些列,列名、数据类型、长度;

3、可否为空值;(表示未知、不可用或将在以后添加数据)

4、需使用的约束:

主键,外键,默认值,check,唯一值约束。

三、创建视图

四、存储过程

五、触发器

六、权限设置

七、数据备份与恢复设计

一、

需求分析

1.系统分析

随着时代的进步,如今各个服务行业也都逐渐发展壮大起来,尤其是食堂服务业,其在服务范围、服务数量和服务内容上都有着非常大的膨胀幅度,因此如何对如此复杂而频繁的服务活动进行管理就属于“食堂管理”的内容。

其主要包括:

职员资料管理、物品管理、消费内容管理、席位管理、客户评价管理,工资管理等,它是现代食堂管理中的一个重要组成部分。

2.功能需求分析

“食堂管理”包括很多项目,以前食堂管理人员要记录大量的用户消费内容,然后通过计算器进行一系列的加减乘除运算,最后得出一位顾客的“应付金额”,这样做的效率和准确度可想而知。

如果使用计算机来实现对食堂服务业的智能管理,从选择菜、酒水、主食,到计算“应付金额”,最后到打印消费内容,计算机都可以很准确、很快捷地进行处理,这些都是“食堂管理系统”的功能。

一个完善的“食堂管理系统”可以很好地管理食堂服务业的各项内容,这样不仅能更好地服务顾客,而且可以为经营者创造更大的利润。

针对每部分的具体功能我们又做了如下的详细分析:

二、

涉及的表

职员资料

属性

类型

大小

是否为空

约束

职员编号

char

6

主键。

6位数

姓名

varchar

20

职位

varchar

20

性别

Char

2

否,默认“男”

男或女

民族

varchar

10

否,默认“汉族”

籍贯

varchar

10

否,默认“广东”

出生日期

datetime

身份证号

char

18

婚姻状况

char

4

否,默认“未婚”

未婚或已婚

家庭地址

varchar

30

联系电话

varchar

11

备注

varchar

30

物品表

属性

类型

大小

是否为空

约束

物品编号

char

6

主键。

6位数

物品名字

varchar

20

所属类型

char

4

否,默认“主食”

主食、酒水或其他

价格/元

int

是否售馨

char

2

否,默认“否”

是或否

品牌

varchar

30

备注

varchar

30

席位表

属性

类型

大小

是否为空

约束

席位号

char

6

主键,6位数

负责人编号

外键

人数

int

否,默认“8”

1至20

状态

char

4

否,默认“空闲”

正在使用,预定或空闲

日期

datetime

备注

varchar

30

 

销售记录

属性

类型

大小

是否为空

约束

类型

外键

数量

int

方式

varchar

10

否,默认“现场”

现场、预定或外卖

日期

datetime

金额/元

int

备注

varchar

30

评价情况

属性

类型

大小

是否为空

约束

职员编号

外键

评价级别

char

4

否,默认“优”

优、良、一般、差

日期

datetime

否,默认当天

备注

varchar

30

工资表

属性

类型

大小

是否为空

约束

职员编号

外键

工资/元

int

日期

datetime

备注

varchar

30

 

SQL命令

创建数据库

createdatabase食堂管理系统

onprimary(name=stglxt_data,'e:

\stglxt_data.mdf')

logon(name=stglxt_log1,'e:

\stglxt_log.ldf')

创建表

createtable职员资料

(职员编号char(6)notnullprimarykey

check(职员编号like'[0-9][0-9][0-9][0-9][0-9][0-9]'),

姓名varchar(20)notnull,

职位varchar(20)notnull,

性别char

(2)notnullcheck(性别='男'or性别='女')default'男',

民族varchar(8)nulldefault'汉族',

出生日期datetimenotnull,

身份证号码char(18)notnullunique,

婚姻状况char(4)notnullcheck(婚姻状况='已婚'or婚姻状况='未婚')default'未婚',

联系电话varchar(11)notnullunique,

备注varchar(30)

createtable物品表

(物品编号char(6)notnullprimarykey,

物品名字varchar(20)notnull,

所属类型char(4)notnullcheck(所属类型='主食'or所属类型='酒水'or所属类型='其他')default'主食',

价格moneynotnull,

是否售馨char

(2)notnullcheck(是否售馨='是'or是否售馨='否')default'否',

品牌varchar(30),

备注varchar(30)

createtable席位表

(席位号char(6)notnullprimarykey,

负责人编号char(6)notnullforeignkeyreferences职员资料(职员编号)onupdatecascadeondeletecascade,

人数intnotnull,

状态char(4)notnullcheck(状态='使用'or状态='预定'or状态='空闲')default'空闲',

日期datetimenotnull,

备注varchar(30)

createtable销售记录

(类型char(4)notnullcheck(类型='主食'or类型='酒水'or类型='其他')default'主食',

数量intnotnull,

方式char(4)notnullcheck(方式='现场'or方式='预定'or方式='外卖')default'现场',

金额moneynotnull,

日期datetimenotnull,

备注varchar(30)

createtable评价情况

(职员编号char(6)notnullforeignkeyreferences职员资料(职员编号)onupdatecascadeondeletecascade,

评价级别char(4)notnullcheck(评价级别in('优','良','一般','差'))default'优',

日期datetimenotnulldefaultgetdate(),

备注varchar(30)

createtable工资表

(职员编号char(6)notnullforeignkeyreferences职员资料(职员编号)onupdatecascadeondeletecascade,

工资moneynotnull,

日期datetimenotnull,

备注varchar(30)

所有表的截图如下:

三、

视图设计

1.为了方便查看职员的评价与对应的职员,所以要建一个“职员信息与评价表”,以显示职员的评价的同时,还可以看到该职员的一些个人信息。

createview职员信息与评价表

as

select姓名,性别,职位,联系电话,评价级别,日期

from职员资料a,评价情况b

wherea.职员编号=b.职员编号

2.为了方便查看物品的销售记录以及物品的信息,所以建立一个“物品信息与销售情况表”。

createview物品信息与销售情况表

as

select物品名字,所属类型,价格,品牌,方式,日期,数量

from销售记录a,物品表b

wherea.类型=b.所属类型

3.为了在职员信息中,可以方便看到该职员的工资,所以建立一个“职员信息工资表”

createview职员信息工资表

as

select姓名,性别,职位,联系电话,工资(元),日期

from职员资料a,工资表b

wherea.职员编号=b.职员编号

四、存储过程

1.创建一个存储过程,通过给定职位可查看该职位所有职员的个人信息。

createproc查询所指定职位的职员基本信息

@职位varchar(20)

as

select职位,姓名,性别,民族,籍贯,出生日期,身份证号,婚姻状况,家庭住址,联系电话,备注

from职员资料

where职位=@职位

2.创建一个存储过程,通过给定职员编号可删除该职员

createproc删除所指定的职员

@职员编号char(6)

as

delete职员资料

where职员编号=@职员编号

五、触发器

1.在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的好评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现优秀!

createtrigger优评备注on评价情况

afterinsert

as

declare@avarchar,@bint

begin

select@a=职员编号forminsertedwhere评价级别=’优

select@b=count(*)form评价情况where评价级别=’优’and职员编号=@aanddateadd(day,-1,getdate())<30anddateadd()groupby评价级别,职员编号

if@b>10

begin

update职员资料

set备注=”工作中表现优秀!

where职员编号=@a

end

else

end

2.在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的差评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现糟糕!

”。

createtrigger优评备注on评价情况

afterinsert

as

declare@cvarchar,@dint

begin

select@c=职员编号forminsertedwhere评价级别=’差

select@d=count(*)form评价情况where评价级别=’差’and职员编号=@canddateadd(day,-1,getdate())<30anddateadd()groupby评价级别,职员编号

if@d>10

begin

update职员资料

set备注=”工作中表现糟糕!

where职员编号=@a

end

else

end

六、权限设置

我们所设计的教师档案管理系统根据实际情况会用到四类用户,有食堂所有者、管理者、普通员工,还有客户。

食堂所有者在这管理系统种具有全部权限,

食堂的管理人员具有职员管理,物品管理,营业管理,评价管理的添加删改权限。

食堂普通职员具有席位管理的添加删改权限,方便对日常工作的管理。

客户具有在评价情况表上添加对职员的评价情况的权限,但是不能修改和删除。

1、新建了三个用户分别代表四类用户,所有者、管理者、普通员工,客户,分别设有密码。

命令如下:

execsp_addlogin'所有者','111'

execsp_addlogin'管理者','222'

execsp_addlogin'普通员工','333'

execsp_addlogin'客户','444'

2、授予所有者所有权限

给'所有者'授予食堂管理系统数据库访问权,并给其分配为该数据库的拥有者:

db_owner,在该数据库中拥有所有权限;命令如下:

use食堂管理系统

execsp_grantdbaccess'所有者'

go

execsp_addrolemember'db_owner','所有者'

2、通过所有者用户给普通员工授予权限,命令如下:

use食堂管理系统

execsp_grantdbaccess'普通员工'

go

grantselecton席位表to普通员工

3、通过所有者用户给管理者授予权限,命令如下:

use食堂管理系统

execsp_grantdbaccess'管理者'

go

grantselect,insert,updateon职员资料to管理者

grantselect,insert,updateon物品表to管理者

grantselect,insert,updateon销售记录to管理者

grantselect,insert,updateon评价情况to管理者

七、数据备份与恢复设计

为了防止数据可能在运行过程中出现某些意外的错误而导致数据丢失等严重问题,数据库的备份与恢复在实际的数据库系统开发中有着十分重要的意义。

1.针对系统的数据库分析:

为了防止突发事件对现存数据库的破坏,应该随时将数据库信息进行备份,考虑到三种备份空间与时间上的优化,我们采取备份策略:

1)有规律的进行完整数据库备份,可以隔一段时间,在操作数据库不频繁的时间段进行;

2)在较小的时间间隔内进行差异备份,比如一天;

3)在相邻的两次差异备份之间进行事务日志备份,可以每半个小时一次,以补充备份在完整数据库备份与差异备份进行之间之间进行的事务。

2.考虑食堂管理系统实际情况,我们采取恢复策略:

先恢复最近一次的数据库备份,接着进行差异备份恢复,最后进行事务日志备份的恢复。

因为我们同样关心数据库状态之间的变化,所以采用完整数据库恢复策略。

3.由于食堂管理系统的数据量会随时间不断增多,可能出现很多的人员的调动和调整,占据存储空间的同时又降低数据库访问的效率,针对这方面我们采取:

每1年对教师教师基本信息进行数据备份,备份数据另保存,同时将这些已备份的数据从食堂管理系统中删除。

数据库备份

备份:

数据库备份就是制作数据库结构和数据的拷贝,以便在数据库遭到破坏的时候能够恢复数据库。

备份数据库语法

backupdatabase要备份的数据库名

to用来备份的备份设备名/备份文件名

with

format/init/noinit/restart/differential

format:

完全删除备份设备原内容后备份

init:

完全删除备份设备除标题外的原内容

noinit:

备份内容添加到备份设备原有内容后

restart:

在中断点重新备份

differential:

进行差异性备份

事务日志备份的语法:

backuplog要备份的数据库名

to用来备份的备份设备名/备份文件名

恢复数据库

1、数据库恢复:

数据库恢复就是把数据库备份加载到系统中。

数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复数据库。

系统在恢复数据库的过程中,自动执行安全性检查、重建数据库结构以及完整数据库内容。

2、下面三个情况会导致恢复失败:

服务器上的数据库文件集和备份集中的数据文件集不一致。

如果在restore语句中指定的数据库已经存在,并且该数据库与在备份文件中记录的数据库不同。

不能提供用于恢复数据库的全部文件或文件组。

3、恢复数据库时应注意的两个问题:

在数据库恢复前,应该首先删除故障数据库,以便删除对故障硬件的任何引用。

在数据库恢复前,必须限制用户对数据库的访问

恢复数据库语法

restoredatabase数据库名

from备份设备名

withfile=备份文件序号

Norecovery

***还原还没有最后完成,还能接收新的日志备份文件,用来恢复

Recovery

***还原已经结束,数据库可以恢复使用

恢复事务日志

restorelog数据库名

from备份设备逻辑名

withfile=备份文件序号

norecovery/recovery

创建备份设备

execsp_addumpdevice‘disk’,’逻辑名称’,’物理名称’

 

对数据库进行如下操作:

创建好食堂管理系统数据库,然后对数据库进行完全备份;

对数据库进行相对应的操作后,进行差异备份;

对数据库再次进行相关操作后,进行日志备份;

破坏数据库,然后进行还原(选择最佳还原方案)。

还原后,再次进行相关操作,然后进行一次差异备份。

破坏数据库,然后进行还原(选择最佳还原方案)。

还原后,进行一次完全备份。

再次破坏数据库,最后一次还原(选择最佳还原方案)。

命令如下:

execsp_addumpdevice'disk','bbb','e:

\bbb.bak'

backupdatabase食堂管理系统tobbb

2、backupdatabase食堂管理系统

tobbbwithdifferential

3、backuplog食堂管理系统tobbb

4、dropdatabase食堂管理系统

go

restoredatabase食堂管理系统frombbbwith

restoredatabase食堂管理系统frombbbwith

restorelog食堂管理系统frombbbwithfile=3

5、backupdatabase食堂管理系统tobbbwithdifferential

6、dropdatabase食堂管理系统

go

restoredatabase食堂管理系统frombbbwith

restoredatabase食堂管理系统frombbbwithfile=4

7、backupdatabase食堂管理系统tobbb

8、dropdatabase食堂管理系统

go

restoredatabase食堂管理系统frombbbwithfile=5

总结

通过这次的数据库课程设计,独立完成了食堂管理系统的设计,从这次的系统设计中我领略到了:

1.开放一个数据库应用系统,通常需要进过需求分析、概念结构设计、逻辑结构设计、物理结构设计、对功能的SQL语句的相应描述5个阶段;

2.进行数据库设计首先需要准确了解与分析用户需求、需求分析是整个设计过程的基础,是最困难、最耗时间的一步。

作为“地基”的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。

需求分析做的不好,甚至会导致整个数据库设计返工重做。

3.数据库的设计艰苦而漫长,必须踏踏实实,走好每一步。

要做到人性化,科学管理是根本但是也是最难的,为此,我会加倍努力投入学习,以期待能设计一个根据我完整的数据库系统。

课程设计报告

2012年3月17日

课题:

前台连接后台数据库

目的和要求:

让学生体会一下如何用最简单的方法让连接后台的数据库,在前台的窗体中实现对后台数据库中数据的添加、删除、修改、查询等操作。

内容:

1.制作如下图所示的网页,可供用户登录对进行数据库操作。

输入正确的用户名是sa,密码为:

123,如下图

2.制作如下图所示的网页,可供用户选择对数据库要操作的的表进行选择

3.制作如下图所示的网页,可以对一个表进行添加、删除、修改、查询、查看等基本操作。

这里选择了物品表,功能如下图所示

4.下面为具体的查看、查询、添加、更新、删除的操作页面:

查看:

查询:

(以查询“鸡蛋”为例)

添加:

(这里成功添加了数据)

编辑、更新:

(显示了上面添加的数据)

5.下面是一些其他页面的展示:

设计后总结

这次的前台连接后台数据库的实验是在我们在没有任何asp.Net基础的情况下,进行设计的,但是在老师的悉心教导下,我还是顺利完成了网页的制作。

虽然实验操作过程中遇到了很多问题,又是第一次自己动手做前台,一切都是那么的生疏,但是老师给我们知识的时间虽然有限但是恰到好处,在这紧张的时间中我们领会了其中的要领,一步步解决了问题,最后做出的作品虽说不是很完善,但是花的精力确实不少。

不过很欣慰的是,在这其中我学会更多,随着实验一步步的进行,我从中学到了平时理论课学不到的东西,而且通过动手,平时很多不明朗的东西也渐渐明朗起来了!

老师在此也付出了辛勤,我在此表示致敬!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1