餐厅数据库设计

一、实验目的与要求

1、通过实验加深对数据完整性的理解,学会创建和使用触发器。

2、通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。

3、通过实验了解SQL Server的数据备份和恢复机制,掌握SQL Server中数据库备份和恢复的方法。

4、根据数据库系统设计的基本步骤,完成某一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能。

二、设计思想

数据库系统设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据库操作要求。数据库设计的基本步骤包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行和维护。

三、设计步骤

一、需求分析

餐厅管理涉及的实体有:

客人 属性有客人编号、桌号、人数、到达时间、客人类型 菜单 属性有菜单编号、菜肴编号、份数、口味 菜肴 属性有菜名、菜肴种类

收银单 属性有收银单编号、应收金额、折扣、实收金额、收银时间 账目 属性有帐目编号、消费金额、用餐持续时间、客户类型

这些实体之间的联系如下:

一桌客人对应一个菜单,多桌客人可以使用相同的菜单,因此客人与菜单有多对一的联系。

客人、收银单、账目之间存在一对一的关系,即一桌客人只对应一个收银单,一个收银单只对应一条账目记录,一个收银单只对应一桌客人。

菜肴和菜单之间存在一对一联系,一个菜肴编号对应一个菜名,用菜价来表示菜肴的价格。

二、概念结构设计

三、逻辑结构设计

总体表预览

客人信息表CustomerInfo

菜单信息表FoodList

菜肴信息表FoodInfo

收银信息表ChargeInfo

账目信息表AccountInfo

点菜信息表OrderInfo

客人、收银单、账目对应关系表C_C_A

价格信息表PriceInfo

创建数据库:

create database inn; 创建表:

创建表CustomerInfo :

create table CustomerInfo (

Cusno int primary key, Tableno smallint not null, Cusnum smallint not null, Custype char(4) not null,

check(Custype='普通' or Custype='VIP'),

);

创建表FoodInfo :

create table FoodInfo (

Fname varchar(20) primary key, Fkind char(10) not null,

);

创建表ChargeInfo :

create table ChargeInfo (

Chargeno int primary key, Spay int, Discount int, Rpay int

);

创建表AccountInfo :

create table AccountInfo (

Accountno int primary key, Pay int, Ctype char(4)

);

创建表C_C_A:

create table C_C_A (

Cusno int primary key, Chargeno int not null,

Accountno int not null

);

创建表PriceInfo :

create table PriceInfo(

Fno smallint primary key, Fname varchar(20) not null, Price smallint not null

);

创建表FoodList :

create table FoodList (

Mno int, Fno smallint,

Fnum smallint not null, Ftaste char(4), primary key(Mno,Fno),

foreign key (Fno) references );

创建表OrderInfo :

create table OrderInfo (

Cusno int, Mno int,

primary key (Cusno,Mno),

PriceInfo(Fno)

foreign key (Cusno) references CustomerInfo(Cusno)

);

四、物理结构设计

创建索引:

create index index_PriceInfo on PriceInfo(Fno);

create index index_FoodList on FoodList(Mno);

create index index_OrderInfo on OrderInfo(Mno);

create index index_FoodInfo on FoodInfo(Fname); create index index_CustomerInfo on CustomerInfo(Cusno); create index index_ChargeInfo on ChargeInfo(Chargeno); create index index_C_C_A on C_C_A(Cusno);

create index index_AccountInfo on AccountInfo(Accountno);

创建视图: create view Kitchen

as

select Mno,Fname,Fnum,Ftaste from FoodList,PriceInfo

create view Delivery

as

select Tableno,Fname,Fnum,Cusnum

from FoodList,CustomerInfo,OrderInfo,PriceInfo

where FoodList.Mno=OrderInfo.Mno and OrderInfo.Cusno=

CustomerInfo.Cusno and PriceInfo.Fno=FoodList.Fno

五、数据库实施

1、 插入数据:

插入数据到表FoodInfo :

insert into FoodInfo values('干锅千页豆腐',' 推荐');

insert into FoodInfo values('手撕包菜',' 素菜');

insert into FoodInfo values('水煮鱼片',' 荤菜');

insert into FoodInfo values('香干回锅肉',' 荤菜');

insert into FoodInfo values('油淋茄子',' 素菜');

insert into FoodInfo values('蒜苗牛柳',' 推荐');

insert into FoodInfo values('鱼香肉丝',' 荤菜');

insert into FoodInfo values('糖醋小排',' 推荐');

insert into FoodInfo values('酸辣土豆丝',' 素菜');

insert into FoodInfo values('宫爆鸡丁',' 荤菜');

insert into FoodInfo values('红烧鸡块',' 荤菜');

insert into FoodInfo values('冬瓜咸排汤',' 汤类');

insert into FoodInfo values(' 蕃茄蛋汤 ','汤类');

insert into FoodInfo values('紫菜蛋汤',' 汤类');

insert into FoodInfo values('土豆牛肉',' 推荐');

insert into FoodInfo values('凉拌皮蛋',' 凉菜');

insert into FoodInfo values('凉拌毛豆',' 凉菜');

插入数据到表PriceInfo :

insert into PriceInfo values(001,'干锅千页豆腐',16);

insert into PriceInfo values(002,'手撕包菜',6);

insert into PriceInfo values(003,'水煮鱼片',15);

insert into PriceInfo values(004,'香干回锅肉',10);

insert into PriceInfo values(005,'油淋茄子',6);

insert into PriceInfo values(006,'蒜苗牛柳',18);

insert into PriceInfo values(007,'鱼香肉丝',10);

insert into PriceInfo values(008,'糖醋小排',22);

insert into PriceInfo values(009,'酸辣土豆丝',5);

insert into PriceInfo values(010,'宫爆鸡丁',12);

insert into PriceInfo values(011,'红烧鸡块',16);

insert into PriceInfo values(012,'冬瓜咸排汤',8);

insert into PriceInfo values(013,'蕃茄蛋汤',6);

insert into PriceInfo values(014,'紫菜蛋汤',6);

insert into PriceInfo values(015,'土豆牛肉',24);

insert into PriceInfo values(016,'凉拌皮蛋',5);

insert into PriceInfo values(017,'凉拌毛豆',5);

2、创建用户、角色

创建用户:选择目的数据库中的安全性,右击安全性中的用户,选择新建用户,在弹出的数据库用户-新建对话框中输入用户名和登录名Delivery ,单击确定。重复上述操作完成对用户Kitchen 、Admin 、Waiter 的创建。

创建角色:选择目的数据库中的安全性,右击安全性中的角色,选择新建中的新建数据库角色,出现数据库角色-新建对话框,输入角色名,并选择所有者,在此角

色的成员中单击添加选择角色成员,单击确定完成角色创建。

3、对用户授权

grant select on Kitchen to Kitchen;

grant update on FoodList to Kitchen;

grant select on Delivery to Delivery;

grant update on FoodList to Delivery;

grant all privileges on AccountInfo to Admin

grant all privileges on C_C_A to Admin

grant all privileges on ChargeInfo to Admin

grant all privileges on CustomerInfo to Admin

grant all privileges on FoodInfo to Admin

grant all privileges on FoodList to Admin

grant all privileges on OrderInfo to Admin

grant all privileges on PriceInfo to Admin

grant all privileges on Kitchen to Admin

grant all privileges on Delivery to Admin

grant all privileges on Foodlist to Waiter

grant all privileges on CustomerInfo to Waiter

grant all privileges on ChargeInfo to Waiter

4、创建触发器

在表FoodInfo 中创建触发器:

create trigger DELETE_FOODINFO

on FoodInfo

after delete

as

begin

delete from PriceInfo where PriceInfo.Fname=Fname

set nocount on;

end

go

六、数据库运行和维护

1、 备份数据库:

在数据库文件选项中选择要备份的数据库inn, 右键单击,选择任务-备份选项出现数据库备份对话框,备份类型选择完整,在目标项中选择添加,弹出选择备份目标,在磁盘上的目标中选择备份数据库的目标文件夹,选择好路径后,将文件名取为inn, 点击确定后,完成备份。

2、还原数据库:

在数据库文件选项中单击右键,选择还原数据库,弹出还原数据库对话框,

在目标数据库中选择要还原的数据库inn, 在还原的源项中选择源设备,在弹出的指定备份中选择备份位置,选择已备份的文件后,单击确定,在选择用于还原的备份集中选定要还原的文件,单击确定,完成数据库还原。

四、实验结论

通过此次实验,加深对数据完整性的理解,学会创建和使用触发器。加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。学会根据数据库系统设计的基本步骤,完成某一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能。

一、实验目的与要求

1、通过实验加深对数据完整性的理解,学会创建和使用触发器。

2、通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。

3、通过实验了解SQL Server的数据备份和恢复机制,掌握SQL Server中数据库备份和恢复的方法。

4、根据数据库系统设计的基本步骤,完成某一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能。

二、设计思想

数据库系统设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据库操作要求。数据库设计的基本步骤包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行和维护。

三、设计步骤

一、需求分析

餐厅管理涉及的实体有:

客人 属性有客人编号、桌号、人数、到达时间、客人类型 菜单 属性有菜单编号、菜肴编号、份数、口味 菜肴 属性有菜名、菜肴种类

收银单 属性有收银单编号、应收金额、折扣、实收金额、收银时间 账目 属性有帐目编号、消费金额、用餐持续时间、客户类型

这些实体之间的联系如下:

一桌客人对应一个菜单,多桌客人可以使用相同的菜单,因此客人与菜单有多对一的联系。

客人、收银单、账目之间存在一对一的关系,即一桌客人只对应一个收银单,一个收银单只对应一条账目记录,一个收银单只对应一桌客人。

菜肴和菜单之间存在一对一联系,一个菜肴编号对应一个菜名,用菜价来表示菜肴的价格。

二、概念结构设计

三、逻辑结构设计

总体表预览

客人信息表CustomerInfo

菜单信息表FoodList

菜肴信息表FoodInfo

收银信息表ChargeInfo

账目信息表AccountInfo

点菜信息表OrderInfo

客人、收银单、账目对应关系表C_C_A

价格信息表PriceInfo

创建数据库:

create database inn; 创建表:

创建表CustomerInfo :

create table CustomerInfo (

Cusno int primary key, Tableno smallint not null, Cusnum smallint not null, Custype char(4) not null,

check(Custype='普通' or Custype='VIP'),

);

创建表FoodInfo :

create table FoodInfo (

Fname varchar(20) primary key, Fkind char(10) not null,

);

创建表ChargeInfo :

create table ChargeInfo (

Chargeno int primary key, Spay int, Discount int, Rpay int

);

创建表AccountInfo :

create table AccountInfo (

Accountno int primary key, Pay int, Ctype char(4)

);

创建表C_C_A:

create table C_C_A (

Cusno int primary key, Chargeno int not null,

Accountno int not null

);

创建表PriceInfo :

create table PriceInfo(

Fno smallint primary key, Fname varchar(20) not null, Price smallint not null

);

创建表FoodList :

create table FoodList (

Mno int, Fno smallint,

Fnum smallint not null, Ftaste char(4), primary key(Mno,Fno),

foreign key (Fno) references );

创建表OrderInfo :

create table OrderInfo (

Cusno int, Mno int,

primary key (Cusno,Mno),

PriceInfo(Fno)

foreign key (Cusno) references CustomerInfo(Cusno)

);

四、物理结构设计

创建索引:

create index index_PriceInfo on PriceInfo(Fno);

create index index_FoodList on FoodList(Mno);

create index index_OrderInfo on OrderInfo(Mno);

create index index_FoodInfo on FoodInfo(Fname); create index index_CustomerInfo on CustomerInfo(Cusno); create index index_ChargeInfo on ChargeInfo(Chargeno); create index index_C_C_A on C_C_A(Cusno);

create index index_AccountInfo on AccountInfo(Accountno);

创建视图: create view Kitchen

as

select Mno,Fname,Fnum,Ftaste from FoodList,PriceInfo

create view Delivery

as

select Tableno,Fname,Fnum,Cusnum

from FoodList,CustomerInfo,OrderInfo,PriceInfo

where FoodList.Mno=OrderInfo.Mno and OrderInfo.Cusno=

CustomerInfo.Cusno and PriceInfo.Fno=FoodList.Fno

五、数据库实施

1、 插入数据:

插入数据到表FoodInfo :

insert into FoodInfo values('干锅千页豆腐',' 推荐');

insert into FoodInfo values('手撕包菜',' 素菜');

insert into FoodInfo values('水煮鱼片',' 荤菜');

insert into FoodInfo values('香干回锅肉',' 荤菜');

insert into FoodInfo values('油淋茄子',' 素菜');

insert into FoodInfo values('蒜苗牛柳',' 推荐');

insert into FoodInfo values('鱼香肉丝',' 荤菜');

insert into FoodInfo values('糖醋小排',' 推荐');

insert into FoodInfo values('酸辣土豆丝',' 素菜');

insert into FoodInfo values('宫爆鸡丁',' 荤菜');

insert into FoodInfo values('红烧鸡块',' 荤菜');

insert into FoodInfo values('冬瓜咸排汤',' 汤类');

insert into FoodInfo values(' 蕃茄蛋汤 ','汤类');

insert into FoodInfo values('紫菜蛋汤',' 汤类');

insert into FoodInfo values('土豆牛肉',' 推荐');

insert into FoodInfo values('凉拌皮蛋',' 凉菜');

insert into FoodInfo values('凉拌毛豆',' 凉菜');

插入数据到表PriceInfo :

insert into PriceInfo values(001,'干锅千页豆腐',16);

insert into PriceInfo values(002,'手撕包菜',6);

insert into PriceInfo values(003,'水煮鱼片',15);

insert into PriceInfo values(004,'香干回锅肉',10);

insert into PriceInfo values(005,'油淋茄子',6);

insert into PriceInfo values(006,'蒜苗牛柳',18);

insert into PriceInfo values(007,'鱼香肉丝',10);

insert into PriceInfo values(008,'糖醋小排',22);

insert into PriceInfo values(009,'酸辣土豆丝',5);

insert into PriceInfo values(010,'宫爆鸡丁',12);

insert into PriceInfo values(011,'红烧鸡块',16);

insert into PriceInfo values(012,'冬瓜咸排汤',8);

insert into PriceInfo values(013,'蕃茄蛋汤',6);

insert into PriceInfo values(014,'紫菜蛋汤',6);

insert into PriceInfo values(015,'土豆牛肉',24);

insert into PriceInfo values(016,'凉拌皮蛋',5);

insert into PriceInfo values(017,'凉拌毛豆',5);

2、创建用户、角色

创建用户:选择目的数据库中的安全性,右击安全性中的用户,选择新建用户,在弹出的数据库用户-新建对话框中输入用户名和登录名Delivery ,单击确定。重复上述操作完成对用户Kitchen 、Admin 、Waiter 的创建。

创建角色:选择目的数据库中的安全性,右击安全性中的角色,选择新建中的新建数据库角色,出现数据库角色-新建对话框,输入角色名,并选择所有者,在此角

色的成员中单击添加选择角色成员,单击确定完成角色创建。

3、对用户授权

grant select on Kitchen to Kitchen;

grant update on FoodList to Kitchen;

grant select on Delivery to Delivery;

grant update on FoodList to Delivery;

grant all privileges on AccountInfo to Admin

grant all privileges on C_C_A to Admin

grant all privileges on ChargeInfo to Admin

grant all privileges on CustomerInfo to Admin

grant all privileges on FoodInfo to Admin

grant all privileges on FoodList to Admin

grant all privileges on OrderInfo to Admin

grant all privileges on PriceInfo to Admin

grant all privileges on Kitchen to Admin

grant all privileges on Delivery to Admin

grant all privileges on Foodlist to Waiter

grant all privileges on CustomerInfo to Waiter

grant all privileges on ChargeInfo to Waiter

4、创建触发器

在表FoodInfo 中创建触发器:

create trigger DELETE_FOODINFO

on FoodInfo

after delete

as

begin

delete from PriceInfo where PriceInfo.Fname=Fname

set nocount on;

end

go

六、数据库运行和维护

1、 备份数据库:

在数据库文件选项中选择要备份的数据库inn, 右键单击,选择任务-备份选项出现数据库备份对话框,备份类型选择完整,在目标项中选择添加,弹出选择备份目标,在磁盘上的目标中选择备份数据库的目标文件夹,选择好路径后,将文件名取为inn, 点击确定后,完成备份。

2、还原数据库:

在数据库文件选项中单击右键,选择还原数据库,弹出还原数据库对话框,

在目标数据库中选择要还原的数据库inn, 在还原的源项中选择源设备,在弹出的指定备份中选择备份位置,选择已备份的文件后,单击确定,在选择用于还原的备份集中选定要还原的文件,单击确定,完成数据库还原。

四、实验结论

通过此次实验,加深对数据完整性的理解,学会创建和使用触发器。加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。学会根据数据库系统设计的基本步骤,完成某一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能。


相关内容

  • 中国主题餐厅行业调研与未来报告目录
  • 中国市场调研在线 行业市场研究属于企业战略研究范畴,作为当前应用最为广泛的咨询服务,其研究成果以报告形式呈现,通常包含以下内容: 一份专业的行业研究报告,注重指导企业或投资者了解该行业整体发展态势及经济运行状况,旨在为企业或投资者提供方向性的思路和参考. 一份有价值的行业研究报告,可以完成对行业系统 ...

  • [餐厅运行与管理]课程标准48(高级)
  • 无锡商业职业技术学院<餐厅运行与管理> 课程标准 课程代码:ly2091 教育层次:专科层次 学制:3年 适用对象:初中起点高职 □中职起点高职■高中起点高职■ 学分数:3 课程教学时数:48制订或修订执笔人:缪佳作系(部)教研室主任审核意见 系(部)教学主任审核意见 完成日期:2014 ...

  • (新)餐饮开业筹备前期工作手册(DOC)
  • 餐饮开业筹备前期工作手册(DOC) 餐饮开业筹备前期工作手册 ? ? ? ? ? 餐饮店的前期筹备工作主要包括环境设计和装修.设备和原料采购.人员招聘与培训等内容,工作内容多.范围广,千头万绪的工作都需要餐饮老板来进行统筹管理,稍有不慎,都会对开业后的餐饮营运管理产生不利的影响,因此,餐饮老板有必要 ...

  • 网上订餐系统
  • 网上订餐系统 摘要 二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会.中国的网民充分领略到"畅游天地间,网络无极限" 所带来的畅快.随着Internet 的飞速发展,使得网络的应用日益的广泛.如电子商务,电子政务,网上医疗,网上娱乐,网络游戏,网络教学等.本次毕业设 ...

  • 中国十大高尔夫球场
  • 中国十大高尔夫球场及特点 通过一个学期的学习,我对高尔夫运动懂得了点点皮毛,不知不觉之中,我被这项优雅的绅士贵族运动所吸引,打球需要场地,今天我所要介绍的就是我们中国10大高尔夫球场. 1.昆明春城湖畔高尔夫球场--群山怀抱 气势雄伟 春城湖畔高尔夫球场,享有―中国第一|高尔夫球场,坐落于碧水荡漾, ...

  • 需求分析案例(新)
  • 目录 引 言.....................................1 第一章 系统需求分析........................1 1.1 某餐厅概况..............................1 1.2 系统业务流程分析................ ...

  • 水果主题餐厅创业计划书
  • 水果主题餐厅创业计划书 目录 内容摘要 ......................................................................... 2 一.创业想法的由来 ............................................ ...

  • 专题项目研究开题报告案例
  •   (一)问题的提出   前不久,我们从新闻中得知,目前许多大型外企纷纷搬离海淀区,大举东迁,其主要原因之一是缺乏安静的、可供商业谈判的就餐环境。近来,新闻中也经常有关于餐厅噪声扰民的报道。这些报道引起我们极大的兴趣,我们几位同学开始查阅资料、做调查,希望能在这方面做点什么。我们意识到随着人们生活水 ...

  • 绩效考核与薪酬管理
  • <绩效考核与薪酬管理>综合复习资料 一.名词解释 1.福利 2.薪酬设计 3.工资水平 4.激励性薪酬 5.工资指导线 6.技能工资制 7.薪酬宽带 8.薪酬控制 9.薪酬沟通 10.战略性薪酬 11.基尼系数 12.职位分析 二.填空题 1.四种战略性薪酬政策是 . . . . 2.工 ...