超市会员管理系统数据库课程设计报告书.docx
《超市会员管理系统数据库课程设计报告书.docx》由会员分享,可在线阅读,更多相关《超市会员管理系统数据库课程设计报告书.docx(19页珍藏版)》请在冰豆网上搜索。
超市会员管理系统数据库课程设计报告书
超市会员管理系统
1.课程设计目的
通过课程设计加深对数据库基础理论和基础知识的理解,掌握运用数据库管理系统,实现数据管理的基本思路和方法,培养分析问题、解决问题的能力。
2.系统功能设计
2.1功能模块图
功能模块图如图1。
图1系统功能模块设计图
2.2功能说明
该超市会员管理系统旨在为超市的会员管理工作提供一个比较系统的会员管理平台,它帮助超市存储及管理会员的基本信息、管理会员卡、管理会员报表及会员政策,完全可以取代之前复杂的手工记录方法,是一套比较完备的管理工具,极提高了超市会员管理的效率。
在很大程度上帮助了超市管理者对超市的掌握与管理。
3.数据库概念设计
3.1根据不同的对象,分别画出各分E-R图。
(1)从会员基本信息抽象出的分E-R图如图2。
图2会员基本信息的E-R图
(2)从会员卡信息抽象出分E-R图
从会员卡信息抽象出的分E-R图如图3.
图3会员卡信息的E-R图
(3)从物品信息抽象出分E-R图
从物品信息抽象出的分E-R图如图4
图4物品信息的E-R图
(4)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图。
基本E-R图如图5。
n
n
n
1
1
n
图5基本E-R图
4.数据库逻辑设计
将联系转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:
会员基本信息(会员卡卡号,,性别,年龄,联系方式,购卡日期,)
主码:
、会员卡卡号
会员卡信息(会员卡卡号,会员卡编号,会员卡种类,)
主码:
会员卡编号
物品信息(物品编号,物品种类,物品名称,单价)
主码:
物品编号
购物信息(会员卡卡号,物品编号,购物数量)
主码:
会员卡卡号、物品编号
其中:
关系模式会员基本信息、会员卡、物品信息在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了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
属性名
数据类型
宽度
小数位数
可否为空
说明
Ino
Int
默认
0
Notnull
会员卡卡号
Cno
Int
默认
0
Notnull
会员卡编号
Ckind
Char
4
0
Notnull
会员卡种类
表2会员卡信息表
(3)物品信息表如表3
属性名
数据类型
宽度
小数位数
可否为空
说明
Tno
Char
10
0
Notnull
物品编号
Tkind
Char
6
0
Notnull
物品种类
Tname
Char
20
0
Notnull
物品名称
Tprice
Money
20
2
Notnull
单价
表3物品信息表
(4)会员购物信息表如表4
属性名
数据类型
宽度
小数位数
可否为空
说明
Ino
Int
默认
0
Notnull
会员卡卡号
Tno
Char
10
0
Notnull
物品编号
Squantity
Int
默认
0
Null
购物数量
表4会员购物信息表
5.2各表索引的设计
(1)为会员基本信息表按年龄升序建唯一索引。
CreateUniqueIndexInfiageOnInformation(Iage);
(2)为会员卡信息表按会员卡卡号升序建唯一索引。
CreateUniqueIndexCarinoOnCard(Ino);
(3)为物品信息表按单价升序建唯一索引。
CreateUniqueIndexThitpriseOnThing(Tprise);
(4)为会员购物信息表按购物数量降序建唯一索引。
CreateUniqueIndexShosquantityOnShopping(Squantity);
6.数据库实施
6.1创建数据库
创建数据库如图6。
图6创建数据库
6.2创建表
(1)创建会员基本信息表
创建会员基本信息表如图7。
图7创建会员基本信息表
(2)创建会员卡基本信息表
创建会员卡基本信息表如图8。
图8创建会员卡基本信息表
(3)创建物品信息表
创建物品信息表如图9。
图9创建物品信息表
(4)创建购物信息表
创建购物信息表如图10。
图10创建购物信息表
6.3创建索引
(1)为会员基本信息表按年龄升序建唯一索引
为会员基本信息表按年龄升序建唯一索引如图11。
图11为会员基本信息表按年龄升序建唯一索引
(2)为会员卡信息表按会员卡卡号升序建唯一索引
为会员卡信息表按会员卡卡号升序建唯一索引如图12。
图12为会员卡信息表按会员卡卡号升序建唯一索引
(3)为物品信息表按单价升序建唯一索引
为物品信息表按单价升序建唯一索引如图13。
图13为物品信息表按单价升序建唯一索引
(4)为会员购物信息表按购物数量降序建唯一索引
为会员购物信息表按购物数量降序建唯一索引如图14
图14为会员购物信息表按购物数量降序建唯一索引
6.4创建视图
(1)建立会员基本信息视图
CreateViewMember_Information(Ino)
As
Select*
FromInformation;
建立的会员基本信息视图如图15
图15会员基本信息视图
(2)建立会员卡信息视图
CreateViewCard_Information(Cno)
As
Select*
FromCard;
建立的会员卡信息视图如图16
图16会员卡信息视图
(3)建立物品信息视图
CreateViewThing_Information(Tno)
As
Select*
FromThing;
建立的物品信息视图如图17
图17物品信息视图
7.设计触发器和存储过程
7.1设计触发器
(1)为Information表定义完整性规则“年龄必须大于等于10岁,否则改为10岁”定义一个Before行级触发器
CreateTriggerIUSage
BeforeInsertOrUpdateOnInformation
ForEachRow
AsBegin
If(new.Sage<10)Then
new.Sage=10;
EndIf;
End;
定义的Before行级触发器如图18
图18Before行级触发器
(2)基于CardTable创建AfterInsert触发器CLTrigger,将插入的会员卡号限制在20位以。
CreateTriggerCLCno
OnCardTable
AfterInsert
If(SelectCardCnoFromInserted)>20
Begin
Print‘会员卡卡号不能超过’
RollBack
End
Go
建立的AfterInsert触发器如图19
图19AfterInsert触发器
7.2设计存储过程
(1)为表Information创建一个存储过程Isex_member,用来查找男性会员信息
CreateProcedureIsex_member
As
Begin
SetNocountOn;
Select*
FromInformation
WhereSsex=‘男’
End
Go
创建的Isex_member存储过程如图20
图20Isex_member存储过程
(2)为表Thing创建一个存储过程Thi_Tprice
CreateProcedureThi_Tprice
As
Begin
SetNocountOn;
Select*
FromThing
WhereTprice>10
End
Go
创建的Thi_Tprice存储过程如图21
图21Thi_Tprice存储过程
8.课程设计总结
紧而又充实的一周数据库课程设计接近尾声了。
虽然开始毫无头绪,但在周力老师的耐心指导下还是比较圆满的完成了这次课程设计。
从此次课程设计中我也收获了不少。
这次课程设计使我熟悉了数据库系统设计的整体步骤。
系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。
在具体的实施阶段中,表的建立及表间关系最为重要,其实这也是需求分析重要性的体现。
这次课程设计加深了我对数据库系统概论相关知识和SQLServer相关功能的理解。
但由于缺乏知识的整合,所以在逻辑设计上还是遇到了困难,不过还好有周老师的指导。
最终问题迎刃而解。
9.参考文献
[1]邓春妮.《SQL企业级开发案例大会》[M],:
人民邮电,2003
[2]志泊.冬梅,《数据库原理与应用教程》[M],:
人民邮电,2011
[3]何玉洁,梁琦.《数据库原理与应用2》[M],:
机械工业,2004
[4]王鹏.《数据库技术及应用》[M],:
人民邮电,2000
[5]孟宪虎,马雪英,邓绪斌.《大型数据库管理系统技术、应用与实力分析》[M](第二版),:
电子工业,2011.5
[6]林子雨,赖永炫,林琛,怡,邹权.云数据库研究[J].2012.05.08-42