课程设计超市数据库管理系统.docx
- 文档编号:27687129
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:38
- 大小:21.81KB
课程设计超市数据库管理系统.docx
《课程设计超市数据库管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计超市数据库管理系统.docx(38页珍藏版)》请在冰豆网上搜索。
课程设计超市数据库管理系统
课程设计
课程名称____数据库__________
题目名称__超市数据库管理系统___
学生学院____计算机学院________
专业班级_
学号_________
学生姓名_____________
指导教师______左亚尧老师______
2013年1月16日
一、相关技术介绍
RDBMS:
SQLServer2008
SQLServer2008提供了公司可依靠的技术和能力来接受不断发展的对于管理数据和给用户发送全面的洞察的挑战。
具有在关键领域方面的显著的优势,SQLServer2008是一个可信任的、高效的、智能的数据平台。
SQLServer2008是微软数据平台愿景中的一个主要部分,旨在满足目前和将来管理和使用数据的需求。
应用开发环境和工具:
VisualBasic6.0
VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。
从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。
它源自于BASIC编程语言。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。
程序员可以轻松的使用VB提供的组件快速建立一个应用程序
二、需求分析
本次选题的题目是超市数据库管理系统,针对的是日常生活中离不开大家的超级市场。
要完成超市数据库管理系统,就要对超市的架构体系以及运营流程做一个较为充分的了解。
作为一个商业运营系统,超市系统始终离不开人员管理、物资管理以及财务管理,由于财务管理比较简单,所以这次超市系统主要以人员和物资为中心,围绕着这两点展开设计。
本次对人员和物资的设计方面部分地方做了简化处理,基本不影响数据库的运行。
以下是本次数据库系统的数据字典:
数据结构名
数据结构含义说明
数据项名
数据项含义说明
数据类型
长度
取值范围
与其他数据项的逻辑关系
数据项之间的关系
员工
超市员工基本信息,仓库管理员和店面员工的超类
员工号
区分每个员工的编号
char
4
员工的主码
姓名
员工姓名
char
8
性别
员工性别
char
2
男,女
年龄
员工年龄
smallint
部门名
员工所在部门
char
10
人事部,销售部,后勤部
职务
员工的职务
char
10
员工,主管
工龄
员工在超市工作的时间(年)
smallint
主管工号
员工所在部门的主管的编号
char
4
员工号
员工号的子集
员工号的子集
仓库
超市仓库基本信息
仓库号
每个仓库的编号
char
4
仓库的主码
仓库面积
仓库面积
smallint
仓库管理员
后勤部的员工,员工的子类,负责管理商品入货和存储情况
工号
后勤部员工的编号
char
4
员工.员工号的子集
主码,员工的外码
仓库号
每个仓库的编号
char
4
仓库.仓库号的子集
仓库的外码
店面
超市店面基本信息
商品种类
超市所卖的商品种类
char
20
店面的主码
所在区域
商品所在的超市的某区域
char
10
店面员工
销售部的员工,负责管理超市里的商品以及商品出售情况
工号
销售部员工的编号
char
4
员工.员工号的子集
主码,员工的外码
商品种类
销售部员工所负责超市里面的某类商品种类
char
20
店面.商品种类的子集
店面的外码
商品
超市系统中所涉及的物品,超市运行的关键物品
条形码
商品的条形码,是每件商品的唯一标示
char
20
商品的主码
名称
商品的名称
char
20
品牌
商品的品牌
char
20
规格
同种商品的各种尺寸
char
10
单价
商品出售的单价
float
卖出
商品卖出的数量
smallint
仓库号
商品存放的仓库号
char
4
仓库.仓库号的子集
仓库的外码
库存
商品剩余的数量
smallint
商品种类
商品所属的一种种类
char
20
店面.商品种类的子集
店面的外码
供应商
为超市供应商品的商家
商家名
供应商的名称
char
20
供应商的主码
经营范围
供应商销售的商品范围
char
20
联系电话
供应商的电话
char
15
货单
供应商供应给超市的商品货单
货单号
每张货单的编号
char
20
货单的主码之一
条形码
每张货单的商品条形码
char
20
货单的主码之一
商家名
货单对应的商家
char
20
供应商的外码
数量
商品的数量
smallint
进货单价
商品的进货价
float
出货单
顾客在超市消费的单据
货单号
出货单的编号
char
20
主码
数量
商品的数量
smallint
条形码
商品的条形码,是每件商品的唯一标示
char
20
商品的外码
以下是本次数据库系统的功能需求:
三、
概念结构设计
以下为本次超市数据库系统的E-R图:
四、
逻辑结构设计
以下为本数据库的关系模式:
员工(员工号,姓名,性别,年龄,部门名,职务,工龄,主管工号)
仓库(仓库号,仓库面积)
店面(商品种类,所在区域)
仓库管理员(工号,仓库号)
店面员工(工号,商品种类)
商品(条形码,名称,品牌,规格,单价,卖出,仓库号,库存,商品种类)
供应商(商家名,经营范围,联系电话)
货单(货单号,条形码,商家名,数量,进货单价)
出货单(货单号,条形码,数量)
达到3NF
五、数据库实施
以下为创建数据库的所有代码:
USEmaster;
go
createdatabasesmarket
on
(
name='SDBS',
filename='e:
\学习\大三\数据库\课程设计\DB\SDBS.mdf',
size=50,
filegrowth=15%
)
logon
(
name='SDBS_log',
filename='e:
\学习\大三\数据库\课程设计\DB\SDBS_log.ldf',
size=6,
filegrowth=2
)
usesmarket;
go
createtable员工
(
员工号char(4),
姓名char(8)notnull,
性别char
(2),
年龄smallint,
部门名char(10)notnull,
职务char(10),
工龄smallint,
主管工号char(4),
primarykey(员工号),
foreignkey(主管工号)references员工
)
usesmarket;
go
createtable仓库
(
仓库号char(4)primarykey,
仓库面积smallint
)
createtable店面
(
商品种类char(20)primarykey,
所在区域char(10)
)
usesmarket;
go
createtable仓库管理员
(
工号char(4)primarykey,
仓库号char(4),
foreignkey(仓库号)references仓库onupdatecascade,
foreignkey(工号)references员工
ondeletecascadeonupdatecascade
)
createtable店面员工
(
工号char(4)primarykey,
商品种类char(20),
foreignkey(商品种类)references店面onupdatecascade,
foreignkey(工号)references员工
ondeletecascadeonupdatecascade
)
usesmarket;
go
createtable商品
(
条形码char(20)primarykey,
名称char(20)notnull,
品牌char(20)notnull,
规格char(10)notnull,
单价floatnotnull,
卖出smallintnotnull,
仓库号char(4),
库存smallintnotnull,
商品种类char(20),
foreignkey(仓库号)references仓库,
foreignkey(商品种类)references店面
)
createtable供应商
(
商家名char(20)primarykey,
经营范围char(20),
联系电话char(15)
)
usesmarket;
go
createtable货单
(
货单号char(20),
条形码char(20),
商家名char(20)notnull,
数量smallintnotnull,
进货单价floatnotnull,
primarykey(货单号,条形码),
foreignkey(条形码)references商品
ondeletecascadeonupdatecascade,
foreignkey(商家名)references供应商
ondeletecascadeonupdatecascade
)
createtable出货单
(
货单号char(20)primarykey,
数量smallint
条形码char(20),
foreignkey(条形码)references商品
ondeletecascadeonupdatecascade
)
以下为图形界面上的所有代码:
Form1:
PrivateSubLabel2_Click()
IfText1.Text="333333"Then
Form1.Hide
Form2.Show
UnloadMe
Else
Label3.Visible=True
EndIf
EndSub
PrivateSubLabel4_Click()
End
EndSub
Form2:
PrivateSubCommand1_Click(IndexAsInteger)
Form3.Show
UnloadMe
EndSub
PrivateSubCommand19_Click()
Form110.Show
UnloadMe
EndSub
PrivateSubCommand20_Click()
Form320.Show
UnloadMe
EndSub
PrivateSubCommand2_Click()
Form4.Show
UnloadMe
EndSub
PrivateSubCommand21_Click()
Form321.Show
UnloadMe
EndSub
PrivateSubCommand22_Click()
Form322.Show
UnloadMe
EndSub
PrivateSubCommand23_Click()
Form323.Show
UnloadMe
EndSub
PrivateSubCommand24_Click()
Form401.Show
UnloadMe
EndSub
PrivateSubCommand27_Click()
Form11.Show
UnloadMe
EndSub
PrivateSubCommand3_Click()
Form5.Show
UnloadMe
EndSub
PrivateSubCommand32_Click()
Form402.Show
UnloadMe
EndSub
PrivateSubCommand34_Click()
Form403.Show
UnloadMe
EndSub
PrivateSubCommand4_Click()
Form6.Show
UnloadMe
EndSub
PrivateSubCommand6_Click()
Form8.Show
UnloadMe
EndSub
PrivateSubcommand5_click()
Form7.Show
UnloadMe
EndSub
PrivateSubCommand7_Click()
Form12.Show
UnloadMe
EndSub
PrivateSubCommand8_Click()
Form404.Show
UnloadMe
EndSub
PrivateSubLabel4_Click()
Form1.Show
UnloadMe
EndSub
PrivateSubcommand25_click()
Form9.Show
UnloadMe
EndSub
Form3:
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubLabel1_Click()
Form3.Hide
Form2.Show
UnloadMe
EndSub
PrivateSubText1_keypress(keyasciiAsInteger)
Text1.SetFocus
EndSub
PrivateSubtext2_keypress(keyasciiAsInteger)
Text2.SetFocus
EndSub
PrivateSubtext3_keypress(keyasciiAsInteger)
Text3.SetFocus
EndSub
PrivateSubtext4_keypress(keyasciiAsInteger)
Text4.SetFocus
EndSub
PrivateSubtext5_keypress(keyasciiAsInteger)
Text5.SetFocus
EndSub
PrivateSubtext6_keypress(keyasciiAsInteger)
Text6.SetFocus
EndSub
PrivateSubtext7_keypress(keyasciiAsInteger)
Text7.SetFocus
EndSub
PrivateSubtext8_keypress(keyasciiAsInteger)
Text8.SetFocus
EndSub
Form4:
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubLabel1_Click()
Form4.Hide
Form2.Show
UnloadMe
EndSub
PrivateSubText1_keypress(keyasciiAsInteger)
Text1.SetFocus
EndSub
PrivateSubtext2_keypress(keyasciiAsInteger)
Text2.SetFocus
EndSub
Form5:
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubLabel1_Click()
Form5.Hide
Form2.Show
UnloadMe
EndSub
PrivateSubText1_keypress(keyasciiAsInteger)
Text1.SetFocus
EndSub
PrivateSubtext2_keypress(keyasciiAsInteger)
Text2.SetFocus
EndSub
Form6:
PrivateSubLabel1_Click()
Form6.Hide
Form2.Show
UnloadMe
EndSub
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubText1_keypress(keyasciiAsInteger)
Text1.SetFocus
EndSub
PrivateSubtext2_keypress(keyasciiAsInteger)
Text2.SetFocus
EndSub
Form7:
PrivateSubLabel1_Click()
Form7.Hide
Form2.Show
UnloadMe
EndSub
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubText1_keypress(keyasciiAsInteger)
Text1.SetFocus
EndSub
PrivateSubtext2_keypress(keyasciiAsInteger)
Text2.SetFocus
EndSub
Form8:
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubLabel1_Click()
Form8.Hide
Form2.Show
UnloadMe
EndSub
PrivateSubText1_keypress(keyasciiAsInteger)
Text1.SetFocus
EndSub
PrivateSubtext2_keypress(keyasciiAsInteger)
Text2.SetFocus
EndSub
PrivateSubtext3_keypress(keyasciiAsInteger)
Text3.SetFocus
EndSub
PrivateSubtext4_keypress(keyasciiAsInteger)
Text4.SetFocus
EndSub
PrivateSubtext5_keypress(keyasciiAsInteger)
Text5.SetFocus
EndSub
PrivateSubtext6_keypress(keyasciiAsInteger)
Text6.SetFocus
EndSub
PrivateSubtext7_keypress(keyasciiAsInteger)
Text7.SetFocus
EndSub
PrivateSubtext8_keypress(keyasciiAsInteger)
Text8.SetFocus
EndSub
Form9:
PrivateSubCommand1_Click()
Text1.SetFocus
Adodc1.Recordset.MoveLast
Adodc1.Recordset.AddNew
EndSub
PrivateSubForm_Load()
IfAdodc1.Recordset.EOF=FalseThen
Adodc1.Recordset.MoveLast
EndIf
Adodc1.Recordset.AddNew
EndSub
PrivateSubLab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 超市 数据库 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)