超市会员管理系统.docx
《超市会员管理系统.docx》由会员分享,可在线阅读,更多相关《超市会员管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![超市会员管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/29/bc12dc9c-aab4-447e-b7ef-7ab8f46e30bf/bc12dc9c-aab4-447e-b7ef-7ab8f46e30bf1.gif)
超市会员管理系统
超市会员管理系统
1课程设计目的
通过课程设计加深对数据库基础理论和基础知识的理解,掌握运用数据库管理系统,实现数据管理的基本思路和方法,培养分析问题、解决问题的能力。
2.系统功能设计
2.1功能模块图
功能模块图如图1。
图1系统功能模块设计图
2.2功能说明
该超市会员管理系统旨在为超市的会员管理工作提供一个比较系统的会员
管理平台,它帮助超市存储及管理会员的基本信息、管理会员卡、管理会员报表及会员政策,完全可以取代之前复杂的手工记录方法,是一套比较完备的管理工具,极大地提高了超市会员管理的效率。
在很大程度上帮助了超市管理者对超市的掌握与管理。
3.数据库概念设计
3.1根据不同的对象,分别画出各分E-R图。
(1)从会员基本信息抽象出的分E-R图如图2。
4.
数据库逻辑设计
联系方式,购卡日期,)
会员基本信息(会员卡卡号,姓名,性别,年龄,主码:
姓名、会员卡卡号会员卡信息(会员卡卡号,会员卡编号,会员卡种类,)主码:
会员卡编号物品信息(物品编号,物品种类,物品名称,单价)主码:
物品编号购物信息(会员卡卡号,物品编号,购物数量)主码:
会员卡卡号、物品编号
其中:
关系模式会员基本信息、会员卡、物品信息在非主属性对主属性的部
分函数依赖,也不存在传递函数依赖,已经达到了3NF。
购物信息则存在部分依赖属于2NF。
5.数据库物理设计
5.1数据库各基本表的定义
(1)会员基本信息表如表1
属性名
数据类型
宽度
小数位数
可否为空
说明
Ino
Int
默认
0
Notnull
会员卡卡号
Iname
Char
8
0
Notnull
姓名
Isex
Char
2
0
Notnull
性别
Iage
Int
默认
0
Notnull
年龄
Itel
Char
11
0
Notnull
联系方式
Idate
Date/Time
默认
0
Notnull
购卡日期
表1会员基本信息表
(2)
会员卡信息表如表2
表2会员卡信息表
(3)物品信息表如表3
表3物品信息表
(4)会员购物信息表如表4
Squantity
Int
默认
0
Null
购物数量
表4会员购物信息表
5.2各表索引的设计
(1)为会员基本信息表按年龄升序建唯一索引。
CreateUniqueIndexInfiageOnInformation(lage);
(2)为会员卡信息表按会员卡卡号升序建唯一索引。
CreateUniqueIndexCarinoOnCard(Ino);
(3)为物品信息表按单价升序建唯一索引。
CreateUniqueIndexThitpriseOnThing(Tprise);
(4)为会员购物信息表按购物数量降序建唯一索引。
CreateUniqueIndexShosquantityOnShopping(Squantity);
6.数据库实施
6.1创建数据库
创建数据库如图6。
数据弄若•惊堪〕.
SHDB
丽百舌(Q):
in
』扫本”说帮町
1T1
图6创建数据库
6.2创建表
(1)创建会员基本信息表
创建会员基本信息表如图7。
.:
⑦
曰(MS]
"I
Ida"
数据妾型
datetime
$
□丢te计at
图7创建会员基本信息表
(2)创建会员卡基本信息表
创建会员卡基本信息表如图8
列霑
数麻类型
允许空
Ino
IM
□
Cno
im
□
Ckind
dhar(^)
□1
□
溯性
整寳.
曰£毎規)
CE称)
cklnd
长度
数据些世
否寸
(««)
图8创建会员卡基本信息表
(3)创建物品信息表
创建物品信息表如图9
r29\.SQiLEXrB...b«.描娈
▼X
列名
敷覓翌型
光许空
TH©
charDE
charTname
cha^llO)
Tprtee
mon&y
=□j
□
列尿性
图9创建物品信息表
(4)创建购物信息表
创建购物信息表如图10
F^9k51QiLEXFE...1115&+X
尤许空
Int
□
Tno
char(lO)
□
卜Squarrtlty
吐1
L_.….
口
图10创建购物信息表
6.3创建索引
(1)为会员基本信息表按年龄升序建唯一索引
为会员基本信息表按年龄升序建唯一索引如图11。
I.goryZ”eqI*SS要▼X
CreateUniqueIndexInfiageOnInfomiation(lagsj:
图11为会员基本信息表按年龄升序建唯一索引
(2)为会员卡信息表按会员卡卡号升序建唯一索引
为会员卡信息表按会员卡卡号升序建唯一索引如图12。
lacslbostAS..sql*摘要
CreateUniqueIndexCarin口OnCard(Ino);|
毛也
F5菇果]命令已成功完成.
图12为会员卡信息表按会员卡卡号升序建唯一索引
(3)为物品信息表按单价升序建唯一索引
为物品信息表按单价升序建唯一索引如图13。
HpicdJLh■霍tAiSL=-Quar7*3.e^I*:
Cre&匕亡UniqueIndexThitpriseOn.ThingTprisejl
<
杆已成功誠
图13为物品信息表按单价升序建唯一索引
(4)为会员购物信息表按购物数量降序建唯一索引
为会员购物信息表按购物数量降序建唯一索引如图14
loc«lbi»s:
tAS.a.Query4.sql*|捕要
CreateUniqueIndexShosquancityOnShopping(SquantIty;
命令已成功完成.
图14为会员购物信息表按购物数量降序建唯一索引
6.4创建视图
(1)建立会员基本信息视图
CreateViewMember」nformation(Ino)
As
Select*
FromInformation;
建立的会员基本信息视图如图15
CreateViewinemlaer_Inlormation(In4i
Aa
SeLeetn
FronaIn±orwation.
图15会员基本信息视图
(2)建立会员卡信息视图
CreateViewCard」nformation(Cno)
As
Select*
FromCard;
建立的会员卡信息视图如图16
loealLostYS...Qu.ery6.54I*捕要
CreateViewCairciInformation(Cno)
As
Select*
FromCard;
谕令已黨功完成4
图16会员卡信息视图
(3)建立物品信息视图
CreateViewThing_lnformation(Tno)
As
Select*
FromThing;
建立的物品信息视图如图17
rocaJLHosit.UiiieTjrr.sCreateViewThingIn±ornaation(Tnoi
A台
Select*
FromThing■
图17物品信息视图
7.设计触发器和存储过程
7.1设计触发器
(1)为Information表定义完整性规则“年龄必须大于等于10岁,否则改为10岁”
定义一个Before行级触发器
CreateTriggerlUSage
BeforeInsertOrUpdateOnInformation
ForEachRow
AsBegin
If(new.Sage<10)Then
new.Sage=10;
EndIf;
End;
定义的Before行级触发器如图18
CreateTriggerlUSage]
BeforeInsertOrUpdateOnInformation
ForEachRow
AsBegin
I£new.inge10)Then
new.iSage~IQ;
EndIf;
End;
图18Before行级触发器
(2)基于CardTable创建AfterInsert触发器CLTrigger,将插入的会员卡号限制在20位以内。
CreateTriggerCLCno
OnCardTable
AfterInsert
If(SelectCardCnoFromInserted)>20
Begin
Print'会员卡卡号不能超过'
RollBack
End
Go
建立的AfterInsert触发器如图19
LocalhoEtlS...血也賓。
.利!
_•摘要
CreateTriggerCLCno
On.CardTable
kfterInsert
If(SelectCardCnoFromlasercecL-20
Begin
Print1会员卡卡号不能超辻
Ro11Back
End
1濡息
图19AfterInsert触发器
7.2设计存储过程
(1)为表Information创建一个存储过程lsex_member,用来查找男性会员信息
CreateProcedurelsex_member
As
Begin
SetNocountOn;
Select*
FromInformation
WhereSsex=‘男'
End
Go
创建的lsex_member存储过程如图20
Quex摘要
CreateProcedureIsex_iDeinberAs
Begin
SetNocoun^Qh;
Select*
FromInforination
WhereSsex=11
End
13崔果
图20lsex_member存储过程
(2)为表Thing创建一个存储过程Thi_Tprice
CreateProcedureThi_Tprice
As
Begin
SetNocountOn;
Select*
FromThing
WhereTprice>10
End
Go
创建的Thi_Tprice存储过程如图21
.aQii^rjrfl巩]*摘要
CreateProcedureThiTpriceAs
Begin
SetNocouncOn;Select*
FromThing
WhereTprice10
End
Go
_J结栗
命令已成功就
图21Thi_Tprice存储过程
8.课程设计总结
紧张而又充实的一周数据库课程设计接近尾声了。
虽然开始毫无头绪,但在周力老师的耐心指导下还是比较圆满的完成了这次课程设计。
从此次课程设计中我也收获了不少。
这次课程设计使我熟悉了数据库系统设计的整体步骤。
系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。
在具体的实施阶段中,表的建立及表间关系最为重要,其实这也是需求分析重要性的体现。
这次课程设计加深了我对数据库系统概论相关知识和SQLServer相关功能的理解。
但由于缺乏知识的整合,所以在逻辑设计上还是遇到了困难,不过还好有周老师的指导。
最终问题迎刃而解。
9.参考文献
[1]邓春妮•《SQL企业级开发案例大会》[M],北京:
人民邮电出版社,2003
[2]陈志泊.李冬梅,《数据库原理与应用教程》[M],北京:
人民邮电出版社,2011
[3]何玉洁,梁琦•《数据库原理与应用2》[M],北京:
机械工业出版社,2004
[4]王鹏.《数据库技术及应用》[M],北京:
人民邮电出版社,2000
[5]孟宪虎,马雪英,邓绪斌•《大型数据库管理系统技术、应用与实力分析》
[M](第二版),北京:
电子工业出版社,2011.5
[6]林子雨,赖永炫,林琛,谢怡,邹权.云数据库研究[』.2012.05.08-42