数据库酒店餐饮管理系统Word格式.docx
《数据库酒店餐饮管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据库酒店餐饮管理系统Word格式.docx(19页珍藏版)》请在冰点文库上搜索。
三.系统总体
ER
图如下图:
(1)各实体的属性如下:
工作部门(部门编号,部门名称)
服务员(服务员编号,服务员姓名,民族,出生日期,服务员性别,
身高,血型,籍贯,学历,职务,参加工作时间,工资,部门编号,
工作状态,服务员电话,服务员住址)
顾客(顾客编号,顾客电话,顾客人数,预订就餐时间)
餐桌(桌位号,桌位类型,桌位状态)
消费单(消费单编号,支付类型,支付时间,餐点名称,餐点单价,
消费总额)
餐点(餐点名称,餐点编号,餐点单价,餐点数量)
厨师(厨师编号,厨师姓名,厨师性别,厨师年龄,身高,血型,
籍贯,学历,参加工作时间,工资,工作状态,厨师电话,厨师住
址)
原材料(原材料编号,原材料名称,原材料数量,原材料单价)
供应商(供应商名称,供应商电话,供应商地址)
(2)联系的属性:
属于(部门编号,服务员编号)
服务(服务员编号,桌位号,消费时间)
预订(顾客编号,桌位号)
消费(消费单编号,餐点名称,餐点编号)
包含(餐点名称,餐点编号,原材料编号,原材料名称)
供应(供应商名称,原材料编号,原材料名称,原材料数量)
制作(厨师编号,餐点名称,餐点编号)
四.设计数据库的关系模型,并指出所有候选键、主键及所属范式。
R1=工作部门(部门编号,部门名称)
候选键:
部门编号,部门名称
主键:
部门编号
所属范式:
3NF
R2=服务员(服务员编号,服务员姓名,民族,出生日期,服务员性
别,身高,血型,籍贯,学历,职务,参加工作时间,工资,部门
编号,工作状态,服务员电话,服务员住址)
服务员编号
R3=顾客(顾客编号,顾客电话,顾客人数,预订就餐时间)
顾客编号
R4=餐桌(桌位号,桌位类型,桌位状态)
桌位号
R5=消费单(消费单编号,支付类型,支付时间,餐点名称,餐点单
价,消费总额)
消费单编号,消费单名称
消费单编号
R6=餐点(餐点名称,餐点编号,餐点单价,餐点数量)
餐点名称,餐点编号
餐点名称
R7=厨师(厨师编号,厨师姓名,厨师性别,厨师年龄,身高,血型,
厨师编号
R8=原材料(原材料编号,原材料名称,原材料数量,原材料单价)
原材料编号,原材料名称
原材料名称
R9=供应商(供应商名称,供应商电话,供应商地址)
供应商名称,
供应商电话,供应商地址
供应商名称
2NF
R10=属于(部门编号,服务员编号)
候选键:
R11=服务(服务员编号,桌位号,消费时间)
(服务员编号,消费时间),(桌位号,消费时间)
(桌位号,消费时间)
R12=预订(顾客编号,桌位号)
R13=消费(消费单编号,餐点名称,餐点编号)
R14=包含(餐点名称,餐点编号,原材料编号,原材料名称)
R15=供应(供应商名称,原材料编号,原材料名称,原材料数量)
(供应商名称,原材料编号),(供应商名称,原材料名称)
(供应商名称,原材料名称)
1NF
R16=制作(厨师编号,餐点名称,餐点编号)
(厨师编号,餐点编号),(厨师编号,餐点名称)
(厨师编号,餐点名称)
五.创建该数据的所有基本表,要求定义主键和外键。
1.工作部门信息表
create
table
GZBM
(
dnochar(10)
constraint
GZBM_Prim
primary
key,
dn
varchar(10)constraint
dn_uniq
unique
)
2.服务员信息表
FWY
wnochar(10)
FWY_Prim
wnvarchar(10)
not
null,
mzvarchar(4),
wbirthsmalldatetime,
wageintconstraintwage_consnotnullconstraint
wage_chk
check(wage
between
16
and
45),
wsex
varchar
(2),
whigh
float(6),
wxx
char(4),
wjg
varchar(20),
wdegree
varchar(30),
wzw
varchar(10),
wtime
smalldatetime,
ws
float(10),
dno
varchar(10)
unique,
wzt
varchar(4)
wzt_uniq
wtel
char(15),
wad
varchar(30)
3.顾客信息表
GK
cnochar(10)
GK_Prim
ctel
csum
int,
ctime
smalldatetime
4.餐桌信息表
CZ
tnochar(10)
CZ_Prim
tlyvarchar(10),
tzt
tzt_uniq
5.消费单信息表
XFD
xnochar(10)
XFD_Prim
xly
xtime
smalldatetime
fn
fprice
float(10)
xsum
null
6.餐点信息表
CD
fnvarchar(10)
constraintCD_Prim
fnochar(10)
constraintfno_uniq
fsum
int
7.厨师信息表
CS
conochar(10)
CS_Prim
convarchar(10)not
cosexvarchar
(2),
coage
coage_cons
coage_chk
check(coage
between
cohigh
coxx
cojg
codegree
cotime
cos
cozt
cozt_uniq
cotel
coad
8.原材料信息表
YCL
inamevarchar(10)
YCL_Prim
inochar(10)
ino_uniq
isum
isum_cons
constraintisum_chkcheck(isum
iprice
9.供应商信息表
GYS
bnvarchar(10)
GYS_Prim
btel
char(15)
btel_uniq
bad
varchar(30)constraint
bad_uniq
10.属于信息表
SY
wno
char(10)
null
constraintFWY_Fore
foreign
key
references
SY(wno),
constraintGZBM_Fore
SY(dno),
FWY_GZBM_Prim
key(wno,dno)
11
服务信息表
FW
tno
xftime
FW_Prim
key(tno,xftime),
wno_uniq
12.预定信息表
YD
cno
key(cno)
13.消费信息表
XF
xno
NOT
NULL,
fno
fn_uniq
)14.包含信息表
BH
fnvarchar(10)not
in_uniq
)15
供应信息表.
GY
ino
bn
iname
GYS_YCL_Prim
key(bn,iname),
16.制作信息表
ZZ
cono
六.要求为数据设计一些视图、索引、存储过程和触发器。
(1)视图:
(1)创建一个服务员工作部门情况的视图
YG_BM
CREATE
VIEW
AS
SELECT
wn,
dn,F.dno
FROM
GZBMG
FWYF
WHERE
G.dno=F.dno
(2)
创建一个餐桌状态为“空”的视图
CZ_ZT
AS
tly,tno
tzt='
空'
(3)创建一个顾客消费情况的视图
GK_XFD
xno,xly,xtime,fno,C.fn,C.fprice,xsum
XFDX,
CDC
WHEREX.fn=C.fn
(4)创建一个供应商供应原材料的基本信息视图
GYS_YCL
SELECTbn,ino,iname
FROMGYSGY,YCLY
WHEREGY.ino=Y.ino
(5)创建一个顾客预定餐桌的基本信息视图
GK_CZ
SELECTcno,tno
FROMGK
CZ
WHEREGK.cno=CZ.cno
(6)创建一个厨师制作餐点的基本信息视图
CS_CD
SELECTcono,fn
FROMCS,CD
WHERECS.fn=CD.fn
2)创建索引:
(1)为表服务员
FWY
在
上建立唯一索引
CREATEUNIQUEINDEXFWY1ONFWY(wno)
(2)为表
CZ
CREATEUNIQUEINDEXCZ1ONCZ(tno)
(3)为表
CD
CREATEUNIQUEINDEXCD1ONCD(fn)
(4)为表
CS
CREATEUNIQUEINDEXCS1ONCS(cono)
(5)为表
YCL
in
CREATEUNIQUEINDEXYCL1ONYCL(in)
(6)
为表
GYS
CREATEUNIQUEINDEXGYS1ONGYS(bn)
3)存储过程:
①在服务员表中创建一个名称为
InsertRecord
的存储过程,该存储
过程功能是向服务员表中插入一条记录新记录的值由参数提供
PROCEDURE
Insetrecord
@wnochar(10),
@wnvarchar(10),
@mzvarchar(4),
@wbirthsmalldatetime,
@wsexvarchar
(2),
@whighfloat(6),
@wxxchar(4),
@wjgvarchar(20),
@wdegreevarchar(30),
@wzwvarchar(10),
@wtime
@wsint
INSERT
INTOW
VALUES(@wno,@wn,@mz,@wbirth,@wsex,@whigh,@wxx,@wjg,@wdegree,@
wzw,@wtime,@ws
②在餐点表中创建一个名称为
QueryCD
的存储过程,该存储过程功
能是从数据表
中根据餐点编号查询该餐点的餐点名称,单价,
数量,查询到结果由参数@
@
@fn
返回
CREATEPROCEDUREQueryCD
@fno
char(10),
@fnvarchar(10),
@fprice
@fsum
int
@fprice=
fprice,@fsum=fsum,@fn=
fn
WHEREfno=@fno
③在服务员表中使用
DROP
命令可将
InsertRecord
存储过程从当前数据库中删除。
DROPPROCEDUREInsetrecord
4)触发器:
①创建一个触发器,当向服务员信息表中插入一条记录,自动显示
服务员信息表中的记录
TRIGGER
sjk_1
ONFWY
FORinsert,update,delete
*
from
Go
②创建一个触发器,当向餐点信息表中插入一条记录,自动显示餐
点信息表中的记录
sjk_2
ONCD
*FROMCD
go
③创建一个触发器,当向原材料信息表中插入一条记录,自动显示
原材料信息表中的记录
sjk
ONYCL
*FROMYCL