学院(系):专业:学号:姓名:指导老师:2012年6月23日数据库系统概论课程设计网上购物系统的数据库设计数据库系统概论课程设计1目录一、需求分析1.1功能需求及数据需求分析---------------------------------------------------------21.2业务规则分析--------------------------------------------------------------21.3业务需求及处理流程-----------------------------------------------------2二、概念结构设计2.1各子系统的局部E-R-----------------------------------------------------32.2视图的集成-----------------------------------------------------------------6三、逻辑结构设计3.1E-R图向关系模型的转换----------------------------------------------------------73.2数据模型的优化------------------------------------------------------------83.3数据库的结构---------------------------------------------------------------8四、物理结构设计4.1物理设计任务与目标----------------------------------------------------124.2索引存取方法--------------------------------------------------------------12五、数据库的实施4.1数据库的载入------------------------------------------------------------------------12六、总结6.1课程设计所负责部分-----------------------------------------------------146.2课程设计的学习心得----------------------------------14数据库系统概论课程设计2一、需求分析1.1功能需求及数据需求分析1.1.1用户管理①用户:只允许浏览商品信息,可以注册为普通用户②会员:拥有浏览商品和购买商品的权限,其属性包括客户号(唯一)、客户名、E-Mail、密码、姓名、性别、邮政编码、地址(一个客户可有几个地址)、客户所属VIP级别、折扣优惠。1.1.2商品管理①商品的增加。其中的属性包含商品号(唯一)、商品分类、生产厂商、每个厂商的实际存货量、规定的最低存货量和商品其它描述②商品的查询,在只要输入商品的任一属性即可1.1.3商品订购管理注册用户即会员注册后可以将相关商品放入购物车,最后购物结束之后形成生成订单,其中每个订单属性包含订单号、客户号、收货地址、订单日期、订单金额、订单明细(每个订单都有几个明细)内容为商品号、单价、订货数量。1.1.4配送单管理默认属性为客户注册时的基本信息,当然配送地址可由客户修改为合适的收货地址,支付方式也可根据提示由客户自定。1.1.5评论管理客户可以给商品发表评论,相关属性为评论号、客户号、商品号、客户邮箱、评论内容、评论时间。1.2业务规则分析1、所用用户都有权限浏览商品信息,但只有注册用户才能订购商品2、每位注册用户的编号都是唯一的。3、当普通客户总的订单金额达到10000元,即可升级为VIP客户。VIP客户一般分为三个等级,对他们的优惠策略是在普通客户的价格上同时享有折扣优惠。其中。三级会员,订单金额在[10000,15000)元,享受折扣9折;二级会员,订单金额在[15000,25000)元,享受折扣8.5折;一级会员,订单金额在25000及以上,享受折扣7.5折。4、每次商品的订单号都是唯一的。5、客户可以在前台页面查看订单状态,订单状态可以是“0”或“1”,“1”表示订单上的商品已发出,“0”表示订单上的商品未发出。订单的生成需用户确定之后才能生效。1.3业务需求及处理流程网上购物系统主要业务包括:商品信息的发布与查询,商品的订购,处理订单,商品的配送。系统处理流程:数据库系统概论课程设计3系统流程图二、概念结构设计2.1各子系统的局部E-R如下:客户客户号密码姓名性别单位电子信箱身份证号图2.1.1:客户实体开始用户注册商家注册用户登录订单处理选择商品审核信息选购结束填写个人信息与支付通过提交订单订单生成生成订单编号订单有误结束数据库系统概论课程设计4VIP会员表会员等级会员折扣图2.1.2:VIP客户商品商品号商品名称类别号单价规格单位商品描述图2.1.3:商品实体生产厂商厂商号厂商名电话地址图2.1.4:生产厂商实体商品类别类别号类别名称图2.1.5:商品分类数据库系统概论课程设计5地址地址号地址名称图2.1.6:地址实体订单发货日期订单号客户号商品号订单金额单价订货数量订货日期收货地址图2.1.7:订单明细发票发票号码订单号图2.1.8:发票供应生产厂商商品商品号厂商号图2.1.9:供应关系数据库系统概论课程设计6商品分类商品类别商品类别号类别名称图2.1.10:商品分类关系客户评论商品评论号客户号商品号客户邮箱评论内容评论时间图2.1.11:客户评论关系2.2视图的集成方式视图的集成通俗的理解就是把各个子E-R图集成合并。视图集成可以有两种:1)多个分E-R图一次集成;2)逐步集成,用累加的方式一次集成两个分E-R图。第一种方法比较复杂,做起来难度较大;第二种方法每次只集成两个分E-R图,可以降低复杂度。无论采用哪种方式,每次集成局部E-R图时都需要分两步走:1)合并。解决各分E-R图合并起来生成初步E-R图;2)修改和重构。消除不必要的冗余,生成基本E-R图。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步E-R图称为基本E-R图。消除冗余主要采用的方法有:1)用分析方法消除冗余;2)用规范化理论消除冗余。对该网上购物系统各子E-R图的集成——即该网上购物系统的总体概念结数据库系统概论课程设计7构E-R图如下图所示:客户类型属于客户所在属于地址VIP会员订单评论供应分类生产厂商商品类别商品11mnnmn1mnnn1n三、逻辑结构设计3.1E-R图向关系模型的转换由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把E-R图转化为关系模式的过程。将该网上购物系统的总体概念结构E-R图转换为关系模型:客户(客户号、密码、姓名、性别、单位、电子信箱、身份证号)VIP会员表(会员等级、会员折扣)商品(商品号、商品名称、类别号、商品描述、单位、规格、单价)生产厂商表(厂商号,生产厂商名、地址、电话)地址(地址号、地址名称)订单(订单号、客户号、商品号、收货地址、订货日期、订货数量、单价、订单金额、发货日期、订单状态)发票(发票号码、订单号)供应(商品号、厂商号)商品分类(商品类别号、类别名称)客户类型(客户号、客户类型)评论(评论号、客户号、商品号、客户邮箱、评论内容、评论时间)客户地址表(客户号、客户地址)3.1.2视图的设计为会员查看商品建立视图:数据库系统概论课程设计83.2数据模型的优化数据模数据模型的优化是为了提高数据库应用系统的性能,根据应用需要适当地修改、调整关系模式。将转化的关系模式进行优化,最终达到第二范式。由以上关系可看出,以上表都以消除了非主属性对候选码的部分函数依赖,这个关系模型都已经达到第二范式,所以不需要进行优化。3.3数据库的结构1.创建客户表字段信息:客户号customerNo密码password姓名customerName类型号typeNo性别sex单位company电子信箱email身份证号IDVIP等级VIPCreatetablecustomer(customerNochar(12)primarykey,passwordvarchar(18)NotNull,customerNamevarchar(12)NotNull,typeNochar(8)NotNull,sexchar(1)Check(sexIn(‘M’,‘F’)),companyvarchar(20),emailvarchar(50)NotNull,IDvarchar(18)NotNull,VIPchar(1))2.创建VIP会员表字段信息:会员等级VIP会员折扣discountCreatetableVIP(VIPchar(1)primarykey,DiscountfloatNotNull)3.创建商品表字段信息:商品号productNo数据库系统概论课程设计9商品名称productName类别号typeNo商品描述describe单位uints规格standard单价priceCreatetableproduct(ProductNochar(12)primarykey,ProductNamevarchar(18)NotNull,typeNochar(12)NotNull,describevarchar(50)NotNull,unitsvarchar(20)NotNull,standardchar(8),pricenumericNotNull)4.创建生产厂商表字段信息:厂商号producerNo厂商名producerName地址address电话telephoneCreatetableproducer(producerNochar(12)primarykey,producerNamevarchar(18)NotNull,addressvarchar(50)NotNull,telephonevarchar(12)NotNull)5.创建商品类别表字段信息:类别号protypeNo类别名称protypeNameCreatetableprotype(protypeNochar(12)primanykey,protypeNamevarchar(18)NotNull)6.创建地址表字段信息:地址号addressNo地址名称addressNameCrestetableaddress(数据库系统概论课程设计10addressNochar(12)primarykey,addressvarchar(20)NotNull)7.创建订单明细表字段信息:订单号orderNo客户号customerNo商品号productNo收货地址address订货日期orderdate订货数量quantity单价price发票号码billNo订单金额ordersum发货日期Fhdate订单状态orderstateCreatetableordermaster(orderNochar(12)primarykey,customerNochar(12)NotNull,productNochar(12)NotNull,addressvarchar(20)NotNull,orderdatedatetimeNotNull,quantitychar(4)NotNull,pricenumericNotNull,billNovarchar(12)NotNull,FhdatedatetimeNotNull,Orderstatechar(8)Check(orderstateIN(‘0’,‘1’)),foreignkey(customerNo)referencescustomer(customerNo)foreignkey(productNo)referencesproduct(productNo),foreignkey(billNo)referencesbill(billNo))8.创建发票表字段信息