1、(4)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图。基本E-R图如图5。图5基本E-R图4数据库逻辑设计将联系转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:会员基本信息(会员卡卡号,姓名, 性别, 年龄, 联系方式, 购卡日期,)主码:姓名、会员卡卡号会员卡信息(会员卡卡号,会员卡编号, 会员卡种类,)会员卡编号物品信息(物品编号,物品种类,物品名称,单价)物品编号购物信息(会员卡卡号,物品编号,购物数量)会员卡卡号、物品编号其中:关系模式会员基本信息、会员卡、物品信息在非主属性对主属性的部分函数依赖,也不
2、存在传递函数依赖,已经达到了3NF。购物信息则存在部分依赖属于2NF。5数据库物理设计数据库各基本表的定义 (1)会员基本信息表如表1属性名数据类型宽度小数位数可否为空说明InoInt默认Not null会员卡卡号Iname Char8姓名Isex2性别Iage 年龄Itel 11联系方式IdateDate/Time购卡日期表1 会员基本信息表 (2)会员卡信息表如表2CnoCkind4会员卡种类表2 会员卡信息表 (3)物品信息表如表3Tno10Tkind6物品种类Tname20物品名称TpriceMoney单价表3 物品信息表 (4)会员购物信息表如表4SquantityNull购物数量表
3、4 会员购物信息表各表索引的设计 (1)为会员基本信息表按年龄升序建唯一索引。Create Unique Index Infiage On Information(Iage); (2)为会员卡信息表按会员卡卡号升序建唯一索引。Create Unique Index Carino On Card (Ino); (3)为物品信息表按单价升序建唯一索引。Create Unique Index Thitprise On Thing(Tprise); (4)为会员购物信息表按购物数量降序建唯一索引。Create Unique Index Shosquantity On Shopping (Squanti
4、ty);6数据库实施创建数据库 创建数据库如图6。图6 创建数据库创建表(1)创建会员基本信息表创建会员基本信息表如图7。图7 创建会员基本信息表(2)创建会员卡基本信息表创建会员卡基本信息表如图8。图8 创建会员卡基本信息表(3)创建物品信息表创建物品信息表如图9。图9 创建物品信息表(4)创建购物信息表创建购物信息表如图10。图10 创建购物信息表创建索引(1)为会员基本信息表按年龄升序建唯一索引为会员基本信息表按年龄升序建唯一索引如图11。图11 为会员基本信息表按年龄升序建唯一索引(2)为会员卡信息表按会员卡卡号升序建唯一索引为会员卡信息表按会员卡卡号升序建唯一索引如图12。图12 为
5、会员卡信息表按会员卡卡号升序建唯一索引(3)为物品信息表按单价升序建唯一索引为物品信息表按单价升序建唯一索引如图13。图13 为物品信息表按单价升序建唯一索引(4)为会员购物信息表按购物数量降序建唯一索引为会员购物信息表按购物数量降序建唯一索引如图14图14 为会员购物信息表按购物数量降序建唯一索引创建视图(1)建立会员基本信息视图Create View Member_Information(Ino)AsSelect *From Information;建立的会员基本信息视图如图15图15 会员基本信息视图(2)建立会员卡信息视图 Create View Card_Information(Cn
6、o) As Select * From Card;建立的会员卡信息视图如图16图16 会员卡信息视图(3)建立物品信息视图Create View Thing_Information(Tno)Select*From Thing;建立的物品信息视图如图17图17 物品信息视图7设计触发器和存储过程设计触发器(1)为Information表定义完整性规则“年龄必须大于等于10岁,否则改为10岁”定义一个Before行级触发器 Create Trigger IUSage Before Insert Or Update On Information For Each Row As Begin If(20
7、 Begin Print会员卡卡号不能超过 Roll Back End Go建立的After Insert触发器如图19图19 After Insert触发器设计存储过程(1)为表Information创建一个存储过程Isex_member,用来查找男性会员信息 Create Procedure Isex_member Set Nocount On; From Information Where Ssex=男创建的Isex_member存储过程如图20图20 Isex_member存储过程(2)为表Thing创建一个存储过程Thi_Tprice Create Procedure Thi_Tpr
8、iceBegin Set Nocount On; From ThingWhere TpriceEndGo创建的Thi_Tprice存储过程如图21图21 Thi_Tprice存储过程8课程设计总结紧张而又充实的一周数据库课程设计接近尾声了。虽然开始毫无头绪,但在周力老师的耐心指导下还是比较圆满的完成了这次课程设计。从此次课程设计中我也收获了不少。这次课程设计使我熟悉了数据库系统设计的整体步骤。系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。在具体的实施阶段中,表的建立及表间关系最为重要,其实这也是需求分析重要性的体现。这次课程设计加深了我对数据库系统概论相关知识和SQL Server相关功能的理解。但由于缺乏知识的整合,所以在逻辑设计上还是遇到了困难,不过还好有周老师的指导。最终问题迎刃而解。9参考文献1 邓春妮.SQL企业级开发案例大会M,北京:人民邮电出版社,20032 陈志泊.李冬梅,数据库原理与应用教程M,北京:人民邮电出版社,20113 何玉洁,梁琦.数据库原理与应用2M,北京:机械工业出版社,20044 王鹏.数据库技术及应用M,北京:人民邮电出版社,20005 孟宪虎,马雪英,邓绪斌.大型数据库管理系统技术、应用与实力分析 M(第二版),北京:电子工业出版社,6 林子雨,赖永炫,林琛,谢怡,邹权.云数据库研究J
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1