版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学生综合性试验报告课程名称:数据库系统原理组装机配置系统数据库设计项目组长学号项目组长学号项目组长学号班级指导老师完成时间2012年12月31日引言组装机配置系统是面向目前大部分不懂电脑配件方面知识用户开设的,由于中国今年来经济高速发展,电脑进入平常百姓之家已经成为必然趋势,然而目前由于经济以科技的过快发展导致我国人员的整体素质跟不上我国的经济的快速发展,特别是对于电脑方面的撰于知识,所以让大家普及电脑方面的知识非常有必要,而在电脑的购买方面,该软件可以为大家提供建议,让我的人民都可以买到最适合自己的电脑。股通过该软件可以让大家更了解电脑方面的知识。1.1编写目的让该文档的使用成员成为该系统的开发人员以及该系统具体组织管理人员。1.2背景随着中国经济和科技近年来的高速发展,电脑已经是进入民众家里的.一种趋势,然而目前为止民众对电脑的各个部件又不是十分了解,所以买家去买电脑的时候只能听从卖家的建议,电视我们又不知道电脑器件各个部位的具体市场价格,容易被卖家忽悠,所以为我们民众设计一款组装机的软件配置系统非常有必要,因为它不仅可以大众的维护权益,而且可以为大家普及一下电脑方面的知识,我相信随着电脑方面的知识的普及,在不久的将来该软件可以成为大家购买组装机的一个重要参考指标。1.3系统目标根据卖家提供的要求给出相应的配置(例如卖家需要某种型号的主板,该软件生成与该主板匹配的组装机的其他电脑配件,或者买家给定金额和某方面的要求(例如只看电影)该软件生成可以满足卖家需求的一系列电脑配件)同时为用户提供机组适合用户的性价比比较高的推荐配置(次特权向高级用户开放)2需求分析需求分析将从编写目的,背景,系统目标系统功能分析,系统总功能图,数据字典,数据需求及业务规则分析,实体和联系等方面进行分析,为概念设计提供依据。2.1系统功能分析(1)电脑配件基本信息管理1)工作人员录入,更新和删除电脑配件的基本信息,包括电脑的编号,名称,生产厂家和价格等信息。2)电脑配件查询。用户可以根据电脑配件查询电脑配件现在的市场价格,也可以根据用户提供的价格要求查找用户所需的电脑配件。(2)用户基本信息管理工作人员录入,删除,修改用户的基本信息,包括用户的姓名、生日、等级等信息。工作人员可以对用户信息进行查询。 3)系统对顾客的等级按使用次数进行自动修改(3用户选择配件管理1)用户可以根据自己的喜好随意选择电脑配件信息,用户可以随意增加删除和设定想要的电脑配件信息,最后统计价格2)选择电脑配件查询:用户在选择电脑配件后可以对所选电脑配件进行查询3)删除和改选:选择电脑配件成功后,用户可以在未处理组装机套前对组装机套内的电脑配件进行修改和删除。组装机推荐配置管理(1)工作人员负责录入组装机推荐信息,根据电脑配置的性能和价格不同,组合成一系列组装机配置信息包括电脑配件的生产厂商,价格,名称和编号供用户参考。(2)工作人员负责更新组装机和删除一整套组装机4用户反馈信息管理用户可以根据提供的组装机使用后的性能给予评价缺点和不足,让工作人员尽快改进更好的推荐信息供用户选择。5用户等级管理工作人员根据用户的使用次数进行累计,在使用次数超过500次自动升级为高级用户。2.2系统总功能图用户等级管理用户等级管理组装机管理组装机管理系统组装机基本配件管理用户基本信息管理用户基本信息管理用户选择配件管理用户选择配件管理组装机推荐配置管理组装机推荐配置管理用户反馈信息管理用户反馈信息管理2.3数据需求及业务规则分析业务规则分析:业务规则分析主要是分析数据之间的约束以及数据库约束。基于上述功能需求,通过进一步了解,组装机系统业务规则如下:每个普通用户有唯一的注册编号,由用户注册系统时间分配。(2)每个组装电脑的配件在软件中必须有唯一编号用以区分其它电脑配件。每一整套组装机的配置标号需唯一的标示。每个用户由用户编号唯一标识,会员编号由系统编号按时间顺序生成。用户均可搜到组装机的匹配信息,不过只有高级用户才能享受该软件提供的推荐组装机信息。用户可以根据软件提供的信息进行自行适当的改变。一个电脑配件只由一个价位,一个价位可以有多个电脑配件。用户自能产看和更改自己的评论。顾客只能看到所有评价信息,不能更改其他用户评论的信息。同类电脑配件推荐中每次只能推荐最多3组组装机(推荐信息根据用户查询的电脑配件价位及适用情况)以供选择。自动组装机推荐中,系统根据用户历史选择电脑配件及消费水平给出推荐,最多给出5个推荐。系统若查询不到用户的历史查询记录,便不可进行组装机查询推荐。2.4数据约束分析:用户访问权限:任何用户都不能访问其他用户的密码。电脑配件的编码规则:以字母C开头加6位数字组成,数字是按流水号逐渐增大。用户的编号规则:以字母U开头加六位数字组成,数字是按流水号逐渐增大。组装机推荐的编号规则:以字母A开头加六位数字组成,数字是按流水号逐渐增大。数据字典数据字典包括数据项描述、数据结构描述、数据流、数据存储和处理过程,具体内容如下。电脑配件表数据项名与别名类型(长度)是否为空数据约束数据项含义说明CompartsNoChar(7)NotnullG字符加6个数字电脑配件编号CompartsNamevarChar(20)Notnull字符电脑配件名称PriceNumeric(7,2)Notnull数字电脑配件价格CompartsstyleChar(7)Notnull字符电脑配件类型(键盘,鼠标等)用户表数据项名与别名类型(长度)是否为空数据约束数据项含义说明UsenoChar(7)Notnull字符u加6个数字用户编号UsenameChar(20)Notnull字符用户名字组装机推荐表数据项名与别名类型(长度)是否为空数据约束数据项含义说明AssemblymachineNoChar(7)Notnull以字母S开头加6个数字自装机套编码aPriceNumeric(7,2)Nornull数字自装机套价格benefitvarChar(20)Notnull字符自装机套功能2.5数据处理为了实现预期的系统功能,我们建立了以下数据处理过程。数据处理编号名称数据处理说明1组装机总价计算建立一个存储过程,利用游标实现在用户选择电脑配件后,通过多选的电脑配件的价格,计算出组装机套的总价。2组装机总价控制建立一个触发器,控制组装机套价不能人为操作控制,只能由明细表计算得出。3组装机评价控制建立一个触发器,控制用户只能修改自己对推荐信息的打分,对其他用户的打分只能查看。数据库概念设计根据上述需求分析,可定义下列实体集、联系集及其属性、定义实体集及属性。3.1定义实体集及属性组装机实体集:具有配件编号(compartNo)、配件名称(comparsName)、价格(price)、配件类型(dishetype)等属性。用户实体集Member:具有用户编号(userNo)、用户姓名(userName)等属性。组装机套实体集(Assemblymachine):具有套餐号(AssemblymachineNo)、套餐价格(aPrice)、套餐功能(benefit)等属性。3.2定义联系集及属性Combination联系集:comparts和Assemblymachine之间多对多的关系,一种配件可以被多种组装套选择,一种组装套可以选择多个配件。Evaluate联系集:user和comparts之间多对多的关系,同时对系统推荐的组装机配置可以进行评分(有分数属性)Create联系集:Comparts和Choice联系集之间的联系,都用集合表示。3.3E-R模型设计所有实体描述如下配件实体集如图所示。 compartsNocompartsNocompartsnamecompartsnamecompartsstylesCompartscompartsstylesCompartspriceprice用户实体集UserNoUserNameUserNoUserNameUUserlevelUserUserUsersexUsersexUserbrithUsercountUserbrithUsercount组装机推荐实体集benefitbenefitassemblymachineNoassemblymachineNoAssemblymachineAssemblymachineaPriceaPriceCompartsNoCompartsNocreate联系集DDateCCreateAccemblyAccemblyCompartsevaluate联系集ScoreScoreEEvaluateAccemblyUserAccemblyUserchoice联系集DDateUserCUserChoiceComparts总体E-R图CCreateCompartsCompartsAccemblyEEvaluateCChoiceUUser4逻辑设计根据上述概念设计,将其转化为系统可以识别、支持的关系数据模型。4.1关系设计4.11由实体集转化来的关系模式由comparts实体集转化的关系模式为:Comparts(compartsNo。compartsName,price,compartsstype)由user实体转化的关系模式为:User(userNo,userName)由accembly实体转化的关系模式为:Accembly(accemblyNo,aPrice,accemblyNo,benefit)4.12由联系集转化而来的关系模式Evaluate联系集:Evaluate(accembly,compartsNo,score)由Combination联系集转化为accemnlyDetail:accemblyDetial(accemblyNo,compartsNo,compartsNo,price)4.2约束说明关系设计包括转换所得的表,转换之后的关系如表配件表(comparts)数据项名与别名类型(长度)是否为空数据约束数据项含义说明其他数据项的联系compartsNoChar(7)NotnullG字符加6个数字配件编号主键compartsNamevarChar(20)Notnull字符配件名称与配件号对应priceNotnull数字配件价格独立compartsstypeChar(7)null字符配件类型独立用户表(user)数据项名与别名类型(长度)是否为空数据约束数据项含义说明与其他数据项的联系userNoChar(7)Notnull字符U加6个数字用户编号主键userNameChar(20)Notnull字符顾客名字独立组装机配置推荐表(accembly)数据项名与别名类型(长度)是否为空数据约束数据项含义说明与其他数据项的联系accemblyChar(7)Notnull以字母A开头加六位数字组装机套编号主键apriceNumeric(7,2)Notnull数字组装机套价格由组装机各配件价格计算得来,参照表compartscompartsNoChar(7)NotnullG字符加6个数字菜品编号compartsNobenefitvarChar(20)Notnull字符套餐功能独立组装机配置明细表SmealDeatail数据项名与别名类型(长度)是否为空数据约束数据项含义说明与其他数据项的联系accemblyNoChar(12)Notnull有系统自动按时间提供组装机套编号主键、外键,参照Menu表compartsNoChar(7)NotnullG字符加6个数字配件编号主键、外键,参照dishes表priceNumeric(7,2)Notnull数字配件价格与配件对应反馈表Evaluate数据项名与别名类型(长度)是否为空数据约束数据项含义说明与其他数据项的联系UserChar(4)NotnullU字符加3个数字用户编号主键、外键,参照user表CompartsNoChar(7)NotnullG字符加6个数字菜品编号主键、外键,参照comparts表ScoreIntNotnull数字,0到10分数独立函数依赖关系1)配件表函数依赖集为F1={配件编号→(配件名称,配件价格,配件类型,热量)}3NF。用户表函数依赖集为F2={用户编号→(用户姓名)}3NF。3)组装机套表函数依赖集F3={组装机套编号→(组装机套价格,配件编号,组装机功能)}3NF。组装机套明细表函数依赖集为F5={组装机套编号→(配件编号)}3NF。5)反馈表函数依赖集F10={用户编号→(配件编号,分数)}3NF。5.数据库应用设计数据库应用的设计,包括数据库的脚本和安全性设计、数据库的完整性设计和数据库的存储过程设计。5.1数据库脚本及数据库安全性设计1)数据库安全性设计创建两个用户分别为工作人员’work01’和用户‘user’然后根据不同表的功能,赋予他们不同的权限。创建用户代码如下:/*addmyuser*/execsp_adduserwork01,work01execsp_addlogin'user','123456','AccemblyDB'execsp_adduser'user','user'2)数据库脚本创建各个用户相关的表,并设计好各表间的主外键联系,规定好个用户的权限,工作人员有所有的权限,而用户对于菜单表有添加修改的作用,代码如下:print'creattableComparts'goCREATETABLEComparts(compartsNochar(7)notnull/*电脑配件编号*/check(compartsNolike'[G][0-9][0-9][0-9][0-9][0-9][0-9]'),compartsNamevarchar(10)notnull,/*电脑配件名称*/pricenumeric(7,2)notnull,/*电脑配件价格*/constraintcompartsPKprimarykey(compartsNo))gograntalloncompartstowork01goprint'createUser'gocreatetableUser(userNochar(7)notnull,/*用户号*/check(userNolike'[U][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),userNamevarchar(40)notnull,/*用户姓名*/sexchar(1)notnull,/*性别*/userLevelvarchar(12)notnull,/*用户等级*/birthdaydatetimenull,/*用户生日*/constraintUserPKprimarykey(userNo))gograntallonusertowork01goprint'createtablecomparts'gocreatetablecopmparts(accemblylNochar(4)notnull,/*组装机套编号*/Apricenumeric(7,2)notnull,/*组装机套价格*/ConstraintaccemblyPKprimarykey(accemblylNo))gograntallonaccemblytowork01goprint'createaccemblyDetail'gocreatetableaccemblyDetail(accemblyNochar(4)notnull,/*组装机套编号*/compartsNochar(7)notnull/*电脑配件编号*/check(compartsNolike'[G][0-9][0-9][0-9][0-9][0-9][0-9]'),pricenumeric(7,2)notnull,/*电脑配件价格*/constraintaccemblyDetailPKprimarykeyclustered(accemblyNo,compartsNo),constraintaccemblyDetailFK1foreignkey(accemblyNo)referencesaccembly(accemblyNo),constraintaccemblyDetailFK2foreignkey(compartsNo)referencesComparts(compartsNo))gograntallonaccemblyDetailtowork01goprint'createtableEvaluate'gocreatetableEvaluate(compartsNochar(7)notnull/*菜品编号*/check(compartsNolike'[G][0-9][0-9][0-9][0-9][0-9][0-9]'),scoreintnotnull,/*分数*/constraintEvaluateFKforeignkey(dishesNo)referencesDishes(dishesNo))gograntallonEvaluatetowork01grantupdateonaccemblyDetailtousergrantselectonaccemblyDetailtouser,iGo5.2数据库触发器设计根据具体的数据库要实现的功能,我们设计了相应的3个触发器,来实现数据库的完整性。组装机套总价推荐:建立存储过程,实现组装机的总价根据组装机明细表中的数据计算得出,代码如下所示。createprocedurep_accemblysumasbegindeclare@accemblynochar(12)declarecur_accemblysumscrollcursorforselectaccemblyNofromaccemblydetailopencur_accemblysumfetchnextfromcur_accemblysuminto@accemblynowhile(@@fetch_status=0)beginupdateaccemblysetaccemblysum=accemblydetail.quantity*accemblydetail.pricefromaccemblydetailawherea.accemblyno=@accemblynofetchnextfromcur_aacemblysuminto@accemblynoendclosecur_accemblysumdeallocatecur_accemblysumEnd建立一个触发器,用户根据用户历史选择电脑配件时不低于1个不超过5个,否则作无效操作处理CREATETRIGGERquantityInsONordersFORINSERTASDECLARE@quantityint(5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中地理学期教学细则
- 关于CSR应急预案(3篇)
- 应急预案的装订(3篇)
- 活动月方案策划(3篇)
- 大足美食活动策划方案(3篇)
- 保安应急预案流程(3篇)
- 修复地坪施工方案(3篇)
- 回填岩石施工方案(3篇)
- 富平厨房施工方案(3篇)
- 商业综合体物业管理投标文案
- 维修工作计划模板范文
- DB13(J)-T 8401-2021 钢丝网片复合保温板应用技术标准
- 餐厅控烟制度管理制度
- 设计公司部门领导发言稿
- 深圳科技馆新馆展教工程常设展区整体展教方案
- 《重庆市北碚区高标准农田建设规划2021-2030年》
- T-CI 451-2024 构网型光伏变换器并网技术规范
- 《公路工程预算定额》(JTGT3832-2018)
- 粤港车牌合同模板
- 中级(监控类) 消防设施操作员理论考试题及答案
- 分体电动门培训课件
评论
0/150
提交评论