数据库课程设计酒店管理系统.docx
《数据库课程设计酒店管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计酒店管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
数据库课程设计酒店管理系统
课程设计成果说明书
题目:
酒店数据管理系统的数据库设计
东海科学技术学院课程设计成绩评定表
2010—2011学年第二学期
院系数理与信息系专业计算机科学与技术班级C09计算机
(1)班
学生姓名(学号)
张某某
(071005301)
课程名称
数据库课程设计
题目
酒店数据管理系统的数据库设计
指导教师评语
指导教师签名:
年月日
答辩评语及成绩
答辩小组教师签名:
年月日
东海科学技术学院课程设计任务书
2010—2011学年第二学期
院系数理与信息系专业计算机科学与技术班级C09计算机
(1)班
学生姓名(学号)
张某某
(071005301)
课程名称
数据库课程设计
题目
酒店数据管理系统的数据库设计
完成期限
自2011年6月10日至2009年7月3日共2周
设
计
依
据
1、对酒店管理数据、操作流程等的调查分析;
2、关系型数据库的设计方法,主要是ER图的绘制和从ER图转换成关系模式;
3、关系模式优化,要求规范化程度达到第三范式(3NF);
4、SQLServer2000中有关数据库的基本操作,要求掌握相应的T-SQL语句。
设
计
要
求
及
主
要
内
容
设计要求
结合所学的数据库理论知识,独立设计方案;学会查阅相关资料,通过查阅进一步熟悉常用方法的用途和技巧,并掌握这些方法的具体含义和如何使用这些方法解决实际问题;掌握综合性数据库设计的基本过程,完成高校教学管理系统的数据库设计,并且设计合理的数据完整性;认真撰写总结报告,培养严谨的作风和科学的态度。
主要内容
首先,分析选题的现实意义和可行性;其二,进行相应的需求分析(重点是数据需求分析);其三,根据需求分析画出ER图,并转换成关系模式;其四,设计数据库的物理结构;最后,在SQLServer2000中实现该数据库,并适当输入一些模拟数据。
参
考
资
料
[1]萨师煊等.数据库系统概论(第四版).高等教育出版社.2006
[2]杨桦等.SQLServer2000实用教程.清华大学出版社.2007
[3]朱扬勇等.客户/服务器数据库应用开发.复旦大学出版社.1997
[4]陆慧娟等.数据库原理与应用.科学出版社.2006
[5]李春葆等.SQLServer2000应用系统开发教程.清华大学出版社.2005
指导教师签字
年月日
摘要
数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。
其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。
……
……
……
【关键词】SQL语言,数据库设计,酒店数据管理
1选题
1.1课题简介
随着数据处理的不断进步和计算机网络的迅速发展,使数据库应用系统不仅在功能而且在结构上都有了深刻的变化,……
1.2设计目的
……
1.3设计内容
运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发……
2需求分析
2.1需求分析的任务
需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。
重点是调……
2.2需求分析的过程
(1)……
(2)……
(3)……
……
3概念设计(ER图)
3.1概念结构设计的方法和步骤
设计概念结构通常有四种方法:
自顶向下,……
3.2视图的集成
描述进行视图集成的具体过程,得到如下总体概念结构E-R图。
m
n
nmn
1
1m
m
1n
n
m
n
4ER图转换成关系模式
4.1E-R图向关系模型的转换
实体:
这里他没有标出主键和外键,应该用下划直线标出主键,下划波浪线标出外键。
部门(部门编号,部门名称,部门电话)
职工(工号,职工姓名,年龄,职称,部门编号)
仓库(仓库号,仓库电话,面积)
供应商(供应商号,联系电话,老板姓名,地址,帐号)
商品(商品号,商品名,价格,厂家,数量)
消费者(消费日期,消费金额,消费人数)
联系:
供应(供应商号,商品号,供应量)
库存(仓库号,商品号,库存量)
管理(商品号,工号,购买量)
服务(工号,消费者,服务质量)
购买(商品号,消费者,购买数量)
包含依赖关系如下:
供应[供应商号]
供应商[供应商号]
供应[商品号]
商品[商品号]
库存[仓库号]
仓库[仓库号]
库存[商品号]
商品[商品号]
管理[商品号]
商品[商品号]
管理[工号]
职工[工号]
服务[工号]
职工[工号]
购买[商品号]
消费者[商品号]
职工[部门编号]
部门[部门编号]
部门[部门编号]
职工[工号]
4.2数据模型的优化
数据库的逻辑结构设计的结果不是唯一的。
为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,……
5物理结构设计
各表格的定义
部门表
列名
数据类型
长度
能否取空值
备注
部门编号
varchar
10
NO
主码
部门名称
varchar
50
NO
部门电话
int
经理工号
int
职工表
列名
数据类型
长度
能否取空值
备注
工号
int
NO
主码
职工姓名
varchar
20
NO
年龄
int
职称
varchar
10
部门编号
varchar
10
仓库表
列名
数据类型
长度
能否取空值
备注
仓库号
int
NO
主码
仓库电话
int
面积
int
供应商表
列名
数据类型
长度
能否取空值
备注
供应商号
varchar
10
NO
主码
联系电话
int
老板姓名
varchar
10
NO
地址
varchar
50
NO
帐号
varchar
50
原材料表
列名
数据类型
长度
能否取空值
备注
材料名称
varchar
30
NO
主码
价格
money
数量
int
产地
varchar
50
成品菜表
列名
数据类型
长度
能否取空值
备注
菜名
varchar
20
NO
主码
菜价
money
NO
份数
int
消费者表
列名
数据类型
长度
能否取空值
备注
餐桌号
int
NO
主码
消费金额
money
消费人数
int
消费日期
datetime
供应表
列名
数据类型
长度
能否取空值
备注
供应量
int
供应商号
varchar
10
NO
主码
材料名称
varchar
30
NO
主码
库存表
列名
数据类型
长度
能否取空值
备注
库存量
int
仓库号
int
NO
主码
材料名称
varchar
30
NO
主码
购买表
列名
数据类型
长度
能否取空值
备注
购买量
int
工号
int
NO
主码
材料名称
varchar
30
NO
主码
烹饪表
列名
数据类型
长度
能否取空值
备注
材料用量
int
菜名
varchar
20
NO
主码
材料名称
varchar
30
NO
主码
服务表
列名
数据类型
长度
能否取空值
备注
服务质量
varchar
10
工号
int
NO
主码
餐桌号
int
NO
主码
享用表
列名
数据类型
长度
能否取空值
备注
用餐数量
int
菜名
varchar
20
NO
主码
餐桌号
int
NO
主码
6T-SQL语句
建库
createdatabase酒店数据管理系统
on
(name=酒店数据,
filename='e:
\mydata\酒店数据.mdf',
size=10,
maxsize=20,
filegrowth=1)
logon
(name=酒店数据日志,
filename='e:
\mydata\酒店数据日志.ldf',
size=10,
maxsize=20,
filegrowth=10%)
go
建表
1.部门表
use酒店数据管理系统
go
createtable部门
(部门编号varchar(10)primarykey,
部门名称varchar(50)notnull,
部门电话int,
经理工号int)
go
2.职工表
createtable职工
(工号intprimarykey,
职工姓名varchar(20)notnull,
年龄int,
职称varchar(10),
部门编号varchar(10))
go
3.仓库表
createtable仓库
(仓库号intprimarykey,
仓库电话int,
面积int)
go
4.供应商表
createtable供应商
(供应商号varchar(10)primarykey,
联系电话int,
老板姓名varchar(10)notnull,
地址varchar(50)notnull,
帐号varchar)
go
5.原材料表
createtable原材料
(材料名称varchar(30)primarykey,
价格money,
数量int,
产地varchar(50))
go
6.成品菜表
createtable成品菜
(菜名varchar(20)primarykey,
菜价moneynotnull,
份数int)
go
7.消费者表
createtable消费者
(餐桌号intprimarykey,
消费金额money,
消费人数int,
消费日期datetimenotnull)
go
8.供应表
createtable供应
(供应量int,
供应商号varchar(10)notnull,
材料名称varchar(30)notnull,
constraint供应_pkprimarykey(供应商号,材料名称))
go
9.库存表
createtable库存
(库存量int,
仓库号intnotnull,
材料名称varchar(30)notnull,
constraint库存_pkprimarykey(仓库号,材料名称))
go
10.购买表
createtable购买
(购买量int,
工号intnotnull,
材料名称varchar(30)notnull,
constraint购买_pkprimarykey(工号,材料名称))
go
11.烹饪表
createtable烹饪
(材料用量int,
菜名varchar(20)notnull,
材料名称varchar(30)notnull,
constraint烹饪_pkprimarykey(菜名,材料名称))
go
12.服务表
createtable服务
(服务质量char(10),
工号intnotnull,
餐桌号intnotnull,
constraint服务_pkprimarykey(工号,餐桌号))
go
13.享用表
createtable享用
(用餐数量int,
菜名char(20)notnull,
餐桌号intnotnull,
constraint享用_pkprimarykey(菜名,餐桌号))
go
7其他
在表中创建相关的视图,约束,默认值,索引,触发器,规则以及存储过程
创建视图
视图1
createview职工服务
as
select职工.工号,职工姓名,部门编号,服务.服务质量
from职工,服务
where职工.工号=服务.工号
go
视图2
createview消费者享用
as
select消费者.餐桌号,消费金额,享用.用餐数量
from消费者,享用
where消费者.餐桌号=享用.餐桌号
go
视图3
createview职工购买
as
select职工.工号,部门编号,购买.材料名称,购买量
from职工,购买
where职工.工号=购买.工号
go
创建约束
Check约束1
altertable职工
withnocheck
addcheck(年龄>=18and年龄<=65)
go
Check约束2
altertable仓库
addcheck(面积>=50)
go
Check约束3
altertable服务
withnocheck
addconstraintCK_服务质量check(服务质量='满意'or服务质量='较满意'or服务质量='一般')
go
外键约束
altertable职工
addforeignkey(部门编号)references部门(部门编号)
go
创建默认值
createdefaultdef_份数as1
go
execsp_bindefault'def_份数','成品菜.份数'
go
创建索引
索引1
createnonclusteredindex
ix_成品菜on成品菜(菜名,菜价,份数)
go
索引2
createnonclusteredindex
ix_职工on职工(工号,职工姓名,年龄,职称,部门编号)
go
创建触发器
插入职工的触发器
createtriggerinsert_服务on服务
forinsert
as
declare@msgvarchar(20)
select@msg=工号frominserted
ifexists(select*from职工where工号=@msg)
print'该职工记录成功插入!
'
else
begin
print'该职工的工号在表职工中不存在,不能插入该职工记录!
'
rollbacktransaction
end
return
go
点菜的触发器
createtriggerinsert_享用on享用
forinsert
as
declare@msgvarchar(20)
select@msg=菜名frominserted
ifexists(select*from成品菜where菜名=@msg)
print'这道菜存在!
'
else
begin
print'这道菜在表成品菜中不存在,不能点这道菜!
'
rollbacktransaction
end
return
go
创建规则
规则1
createrule消费金额_rule
as
@消费金额>=20
Go
规则2
createrule服务质量_rule
as
@服务质量in('满意','较满意','一般')
go
创建存储过程
createprocedure顾客享用_info
as
select成品菜.菜名,用餐数量,享用.餐桌号
from享用
join成品菜
on享用.菜名=成品菜.菜名
join消费者
on消费者.餐桌号=享用.餐桌号
go
8总结
经过两个星期的努力,终于设计出一个……
参考文献
[1]萨师煊等.数据库系统概论(第四版).高等教育出版社.2006
[2]杨桦等.SQLServer2000实用教程.清华大学出版社.2007
[3]朱扬勇等.客户/服务器数据库应用开发.复旦大学出版社.1997
[4]陆慧娟等.数据库原理与应用.科学出版社.2006
[5]李春葆等.SQLServer2000应用系统开发教程.清华大学出版社.2005
东海科学技术学院学生课程设计日志
周次
日期
工作内容
第
十
八
周
6.20
布置任务及分组、总体需求分析与设计
6.21
编写相关文档、设计说明、查找资料
6.22
需求分析,写出DFD和DD
6.23
画出E-R图
6.24
完善E-R图
周次
日期
工作内容
第
十
九
周
6.27
转化成关系模型
6.28
在SQLSERVER上实施
6.29
撰写课程设计成果说明书
6.30
打印
7.1
课程设计检查与整理