您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 超市会员管理系统-数据库课程设计
超市会员管理系统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.会员卡编号会员卡记录区分拥有n111年龄联系方式具有具备性别姓名区分拥有会员购卡日期会员卡卡号购卡购卡11111n1n1nn1图3会员卡信息的E-R图(3)从物品信息抽象出分E-R图从物品信息抽象出的分E-R图如图4图4物品信息的E-R图(4)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图。基本E-R图如图5。商品编号商品商品名称商品种类商品单价区分零售具有标识11111nn1n1属于会员会员类别商品办理图5基本E-R图4.数据库逻辑设计将联系转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:会员基本信息(会员卡卡号,姓名,性别,年龄,联系方式,购卡日期,)主码:姓名、会员卡卡号会员卡信息(会员卡卡号,会员卡编号,会员卡种类,)主码:会员卡编号物品信息(物品编号,物品种类,物品名称,单价)主码:物品编号购物信息(会员卡卡号,物品编号,购物数量)主码:会员卡卡号、物品编号其中:关系模式会员基本信息、会员卡、物品信息在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。购物信息则存在部分依赖属于2NF。5.数据库物理设计5.1数据库各基本表的定义(1)会员基本信息表如表1属性名数据类型宽度小数位数可否为空说明InoInt默认0Notnull会员卡卡号nnn11nInameChar80Notnull姓名IsexChar20Notnull性别IageInt默认0Notnull年龄ItelChar110Notnull联系方式IdateDate/Time默认0Notnull购卡日期表1会员基本信息表(2)会员卡信息表如表2表2会员卡信息表(3)物品信息表如表3属性名数据类型宽度小数位数可否为空说明TnoChar100Notnull物品编号TkindChar60Notnull物品种类TnameChar200Notnull物品名称TpriceMoney202Notnull单价表3物品信息表(4)会员购物信息表如表4属性名数据类型宽度小数位数可否为空说明InoInt默认0Notnull会员卡卡号TnoChar100Notnull物品编号属性名数据类型宽度小数位数可否为空说明InoInt默认0Notnull会员卡卡号CnoInt默认0Notnull会员卡编号CkindChar40Notnull会员卡种类SquantityInt默认0Null购物数量表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)AsSelect*FromInformation;建立的会员基本信息视图如图15图15会员基本信息视图(2)建立会员卡信息视图CreateViewCard_Information(Cno)AsSelect*FromCard;建立的会员卡信息视图如图16图16会员卡信息视图(3)建立物品信息视图CreateViewThing_Information(Tno)AsSelect*FromThing;建立的物品信息视图如图17图17物品信息视图7.设计触发器和存储过程7.1设计触发器(1)为Information表定义完整性规则“年龄必须大于等于10岁,否则改为10岁”定义一个Before行级触发器CreateTriggerIUSageBeforeInsertOrUpdateOnInformationForEachRowAsBeginIf(new.Sage10)Thennew.Sage=10;EndIf;End;定义的Before行级触发器如图18图18Before行级触发器(2)基于CardTable创建AfterInsert触发器CLTrigger,将插入的会员卡号限制在20位以内。CreateTriggerCLCnoOnCardTableAfterInsertIf(SelectCardCnoFromInserted)20BeginPrint‘会员卡卡号不能超过’RollBackEndGo建立的AfterInsert触发器如图19图19AfterInsert触发器7.2设计存储过程(1)为表Information创建一个存储过程Isex_member,用来查找男性会员信息CreateProcedureIsex_memberAsBeginSetNocountOn;Select*FromInformationWhereSsex=‘男’EndGo创建的Isex_member存储过程如图20图20Isex_member存储过程(2)为表Thing创建一个存储过程Thi_TpriceCreateProcedureThi_TpriceAsBeginSetNocountOn;Select*FromThingWhereTprice10EndGo创建的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
本文标题:超市会员管理系统-数据库课程设计
链接地址:https://www.777doc.com/doc-2131729 .html