武汉理工大学《能力扩展训练》报告书学号:0120810340424课程设计题目录像租赁系统的设计学院计算机科学与技术学院专业计算机科学与技术专业班级计算机0804姓名胡勇指导教师杜微2012年1月10日武汉理工大学《能力扩展训练》报告书课程设计任务书学生姓名:胡勇专业班级:计算机0804指导教师:杜薇工作单位:计算机学院题目:录像出租系统软件设计初始条件:录像出租公司都有库存的录像以备出租。每盘录像用分类号唯一标识。同一盘录像有多份拷贝,因此每份拷贝用录像号码来区别。顾客在租录像之前,必须先成为公司的一名会员。在注册后,可以自由租借录像。预备内容:数据结构,软件工程,面向对象程序设计,数据库技术,编译原理,可视化编程要求完成的主要任务:1.根据上述的初始条件,进行调查分析并设计适当的属性。设计系统总体方案并用UML加以描述,设计体系架构,确定计算模式,确定开发技术,设计一个录像出租数据库,实现录像带以及顾客的管理,DBMS可选SQLServer2005、ORACLE、DB2、XML、MYSQL等。2.基于该数据库,实现应用程序,程序设计语言(工具)使用C#.NET2010/2008/Eclipse/Jbuilder。3.完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:应用软件系统分析,设计,实现,评估等。时间安排:本学期第17-19周:1.查阅、消化资料,系统调查2天2.系统分析(采用UML工具)3天3.总体设计,实施计划(采用UML工具)3天4.系统开发与实现(用指定语言工具)5天5.撰写报告2天6.指导教师签名:2011年12月25日系主任(或责任教师)签名:年月日武汉理工大学《能力扩展训练》报告书影碟租赁系统的设计1问题描述影碟租赁公司都有库存的影碟以备出租。每盘影碟用分类号唯一标识。同一盘影碟有多份拷贝,因此每份拷贝用影碟号码来区别。顾客在租影碟之前,必须先成为公司的一名会员。在注册后,可以自由租借影碟。需完成的任务:1根据上述的初始条件,进行调查分析并设计适当的属性。设计一个录像出租数据库,DBMS可选MsSQLServer、Access、VFP等。2完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需求分析,概念设计,逻辑设计,物理实现等。3基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。这一项是选作,不作硬性要求。2需求分析在对世面上的影碟出租公司进行了初步的了解后,发现其业务主要是集中在影碟的管理和录像的出租归还上。对影碟的管理工作量较大,采用手工的方式还容易出错,并且不能满足顾客对影碟的详细信息的查询功能。在现有的影碟出租中对会员的管理也很重要,传统的登记方式不仅费时而且不能对其出租日志进行系统的管理,造成了不必要的经济损失。综上说述,在影碟出租数据库设计中应考虑和克服了上诉的诸多问题,增强了实用性。2.1数据需求影片信息数据:录像ID、片名、导演、主演、类型、介绍、上映时间。录像信息数据:录像ID、格式、语言、进货时间、状态、库存数量。租借记录数据:记录ID、租借时间。租借项记录数据:记录项ID、租借数量、归还时间、租金。租金信息数据:租借类型、租借天数、每日金额。会员信息数据:会员ID、会员姓名、会员性别、身份证ID、电话、地址。武汉理工大学《能力扩展训练》报告书2.2功能需求会员信息管理部分:可以查询会员资料、可以对会员进行增删。影片信息管理部分:可以查询影片本身的信息、可以对影片信息实行增删。租借信息管理部分:可以查询影片的租借状态。租金信息管理部分:可以查询各类影片的租金情况、会员应付的租金情况。数据流图:租借记录租借记录租金会员注册处理租借店员顾客息新客顾息信客顾息信员会息信借租息信准批息信金租归还处理店员租借记录息信员会息信员会息信借租息信还归会员信息影片描述息信册注息信员会息信金租租金息信借租2.3数据字典2.3.1数据项数据项描述={数据项名,数据类型,长度};影片信息={影片ID,CHAR,10;片名,CHAR,20;导演,CAHR,20;介绍,CAHR,200;上映时间,DATE,10武汉理工大学《能力扩展训练》报告书};录像信息={录像ID,CHAR,10;格式,CHAR,10;语言,CHAR,20;进货时间,DATE,10;状态,CHAR,5;库存数量,INT,4};租借记录={记录项ID,CHAR,10;租借数量,INT,4;归还时间,DATE,10;租金,INT,4};租金信息={租借类型,CHAR,1;租借天数,INT,4;每日租金,INT,4}会员信息={会员ID,INT,4;会员姓名,CHAR,10;会员性别,CHAR,2;身份证ID,CHAR,18;电话,CHAR,12;地址,CHAR,100}租借记录={记录ID,CHAR,10;租借时间,DATE,10}影片类型={类型ID,INT,4;类型名称,CHAR,20武汉理工大学《能力扩展训练》报告书}2.3.2数据结构数据结构名含义说明组成会员会员信息会员ID、会员姓名、会员性别、身份证ID、电话、地址影片影片信息影片ID、片名、导演、主演、介绍、上映时间租金影片租金信息租借类型、租借天数、每日金额、描述租借记录会员租借记录信息记录ID、租借时间租借项记录租借录像记录信息记录项ID、租借数量、归还时间、实际归还时间、租金影片类型影片的类型类型、影片名称录像录像类型碟片ID、格式、语言、进货时间、状态、库存数量2.3.3数据流数据流名说明数据流来源数据流去向组成会员会员信息会员租借归还过程会员ID、会员姓名、会员性别、身份证ID、电话、地址影片影片信息影片信息租借处理过程影片ID、片名、导演、主演、介绍、上映时间租借信息会员租借的信息租借过程店员会员信息,影片信息租金租金信息租金信息处理过程租借类型租借天数、每日租金、描述租借项记录影片的租借记录店员的处理过程会员的租借记录影片ID、租借数量、租借时间武汉理工大学《能力扩展训练》报告书归还信息会员的归还信息会员店员影片ID、租借数量、归还时间归还记录会员的归还记录店员处理过程租借记录影片ID、租借数量、归还时间,实际归还时间、租金2.3.4数据储存数据存储名说明编号输入的数据流输出的数据流组成存取方式租借处理会员租借的信息会员信息,影片信息会员租借的信息会员ID、影片ID、租借类型、租借数量、归还时间更新归还处理会员的归还信息会员信息,租借记录,租金信息会员的归还记录会员ID、影片ID、租借类型、租借数量、归还时间、实际归还时间、租金更新2.3.5处理过程处理过程名说明输入输出处理注册各科注册为会员顾客信息会员信息店员录入顾客信息租借会员租借记录会员租借信息,租金新信息会员租借记录店员记录会员的租借信息归还会员归还记录会员租借记录,租金信息会员归还记录店员记录会员归还信息3概要设计根据上面的数据流图和数据字典抽象出实体和个实体的属性,主键。武汉理工大学《能力扩展训练》报告书影片增加类型ID,碟片增加影片ID,租借项增加记录ID,影片ID,碟片ID,租借增加会员ID,作为外键,从而和别的表产生关联。实体属性会员会员ID、会员姓名、会员性别、身份证ID、电话、地址影片影片ID、类型ID、片名、导演、主演、介绍、上映时间租金租借类型、租借天数、每日租金、描述碟片影片ID、碟片ID、格式、语言、进货时间、状态、库存数量租借项记录ID、记录项ID、影片ID、碟片ID、租借数量、归还时间、实际归还时间、金额租借记录ID、会员ID、租借时间影片类型类型ID、类型名称3.1分E-R图武汉理工大学《能力扩展训练》报告书3.2总E-R会员身份证ID地址会员性别会员姓名会员ID电话影片影片类型租借租金租借项影碟类型ID导演主演上映时间介绍影片ID片名影片ID语言进货时间状态库存数量录像ID格式租借类型描述租借时间每日租金租借类型记录ID影片ID录像ID归还时间租借数量金额记录项ID记录ID租借时间会员ID类型名称类型ID武汉理工大学《能力扩展训练》报告书会员会员ID地址身份证ID电话会员姓名会员性别租金租借时间租借类型每日租金描述属于影片类型类型ID类型名称拥有属于属于n1nn1n11属于影片片名上映时间影片ID导演主演介绍1n类型ID碟片状态进货时间格式碟片ID库存数量语言属于n碟片ID会员ID租借记录ID租借时间租借类型n记录ID租借项归还时间记录项ID租借数量实际归还时间金额影片ID碟片ID4逻辑设计4.1二维表关系名属性会员会员ID、会员姓名、会员性别、身份证ID、电话、地址影片影片ID、类型ID、片名、导演、主演、介绍、上映时间租金租借类型、租借天数、每日租金、描述碟片影片ID、碟片ID、格式、语言、进货时间、状态、库存数量租借项记录ID、记录项ID、影片ID、碟片ID、租借类型、租借数量、归还时间、实际归还时间、金额租借记录ID、会员ID、租借时间影片类类型ID、类型名称录像武汉理工大学《能力扩展训练》报告书型4.2规范化身份证会员ID会员姓名会员性别地址电话上映时间介绍类型主演导演片名影片ID类型ID租借天数租借类型描述每日租金类型ID类型名称会员ID租借时间记录ID库存数量状态进货时间语言格式碟片ID影片ID金额归还时间实际归还时间租借数量碟片ID影片ID记录项ID记录ID租借类型影碟录像ID武汉理工大学《能力扩展训练》报告书根据函数依赖及二三范式的定义:每一个非主属性完全函数依赖于码,每一个非主属性既不部分依赖于码,也不传递依赖于码。可知,每个关系都满足二三范式。5物理实现创建数据库创建表操作界面武汉理工大学《能力扩展训练》报告书武汉理工大学《能力扩展训练》报告书武汉理工大学《能力扩展训练》报告书武汉理工大学《能力扩展训练》报告书6设计总结首先,说一下需求分析,这一部很重要,一定要想好数据库需要的数据,及其功能。数据字典要准备充分。数据流图也要设计好。这是以后概念设计等的重要依据。武汉理工大学《能力扩展训练》报告书概念设计时,先弄分E-R图,再总E-R图。解决好属性、命名、结构上的冲突。消除不必要的冗余。逻辑设计阶段要依据E-R图设计好二维表。要根据函数依赖,范式的概念规范好。感觉自己做的系统,各个表的设计比较到位,设置的外键也方便了各表的连接。不足之处是有些复杂功能没能实现。比如,会员来租借,要能简单的实现租借的功能,包括租借,租借项,碟片等的更新。而不能一项一项的改。在这方面,自己设计了存储过程,但是碟片数量的出库,入库记录没能动态的弄好,即会员租借是,更新了租借,租借项后,碟片的数量不会跟着变化。为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来麻烦。需求分析使软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成那些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析是一项十分艰巨复杂的工作。在进行需求分析时的任务有确定对系统的综合要求、分析系统的数据要求、到处系统的逻辑模型和修正系统开发计划。开发一个新的软件从无到有首先要进行问题的定义,确定要解决的问题。而后是可行性研究,可行性研究阶段的目的是确定问题是否有解十分值得去解决,任务是在尽可能短的时间内,花费尽可能少的时间搞清楚问题是否有解是否值得去做。如果问题没有可行的解,分析员应该建议停止这项开发工程,可以避免时间、资源、人力和金钱的浪费;如果问题值得解决,分析员该推荐一个较好的解决方案,并且为工程制定一个触不到计划。可行性研究占成本的5%-10%但他可能晚会之后90%的损失。可行性研究通过之后还要进行需求分析明确软件需要实现的功能。通过这次设计,自己对课本的理解更透彻了,对于一个数据库系统的设计也有了大概的了解。以前在听课时对听到的知识总是不太理解,对这样那样的理论都不是太理