《数据库应用开发项目技术》课程设计学号:1302012109姓名:钟威学院:电气与信息工程学院专业:计算机科学与技术指导教师:梁君霞分数:2015年6月24日I目录1.课程设计目的2.课程设计内容2.1课程设计题目及要求2.2数据库需求分析2.2.1功能分析2.2.2数据流图2.2.3数据字典2.3数据库概念设计2.3.1局部E-R图2.3.2全局E-R图2.4数据库逻辑设计2.4.1读者信息表表的逻辑结构2.4.2图书信息表的逻辑结构2.4.3借书证表的逻辑结构2.5数据库物理设计2.5.1数据表的创建2.5.2表中约束,规则的创建2.5.3视图的创建2.5.4存储过程的创建2.5.5触发器的使用2.6数据的测试2.6.1数据插入,修改,删除的测试2.6.2存储过程的测试2.6.3触发器的测试3.课程设计总结及心得体会4.参考文献1.课程设计目的:数据库应用开发项目设计是数据库系统原理实践环节的及为重要的一部分,其目的是:(1)培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,学会设计局部ER,全局ER图。(2)培养学生能够应用数据库系统原理在概念设计的基础上应用关系规范化理论对系统进行逻辑设计,学会在ER图基础上设计出易于查询和操作的合理的规范化关系模型。(3)培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能够应用视图,存储过程,触发器,游标技术以保证数据库系统的数据完整性,安全性,一致性,保证数据共享和防止数据冲突.(4)培养学生理论与实际相结合能力,培养学生开发创新能力2.课程设计内容:2.1课程设计题目及要求本文研究的图书管理系统的数据库。计算机主要是借助软件用来存储、更新数据的,并有统计书目的功能。使用管理系统软件,虽然需要投入一定的资金,但同时却可以使处理速度成倍、成十倍的增加,使在固有的时间内能让尽量多的会员办理完手续,增加了处理速度,而且可以减少员工数量,是公司更加精简;由于计算机是一种高精度的机器,所以使用计算机软件辅助后,出错的几率也就变得非常低了。2.2数据库需求分析2.2.1功能分析根据这些需要,本系统需要建立“用户信息”表,“图书借阅”表,“读者信息”表,“借阅逾期”表,“系统日志”表,“图书信息”表,“日志”表,“预借”表,“罚款日志”表和“续借信息”表等。事务需求分析第2页经过实际考察、咨询和分析,图书管理系统主要应该具有以下功能模块。(1)读者登录界面部分,要求有如下功能:①可以显示读者信息(包括当前借书情况以及是否有罚款在身等相关信息);②图书查询功能;③借书操作;④续借操作;(2)管理员登录界面部分,要求有如下功能:①新书上架操作(完成新书录入工作);②图书信息修改操作;③图书相关统计操作;④办理借书证操作;⑤借书证的挂失与解封等操作;⑥接收还书;⑦接收罚金2.2.2数据流图“图书管理系统”顶层数据流图:图书管理系统读者图书管理员罚款信息管理请求信息借还书信息图书信息图书情况读者信息读者情况图书查询信息图书借阅情况借书基本信息系统管理员借书证图书借阅第3页“图书管理系统”1层数据流图:1系统管理2图书管理3读者管理4借阅管理用户信息读者类别管理权限管理借阅信息书籍情况图书录入D2图书信息表D3借阅信息表D4读者类别信息表读者情况读者录入信息D1读者信息表借阅信息书籍查询情况查询信息加工2“图书管理”的数据流图:2.1图书信息管理2.2图书资料管理2.3出版社管理2.4注销管理类别信息D6注销信息表D7出版社信息表D2图书信息表D5图书类别表查询情况图书查询信息图书录入信息出版社信息注销信息加工3“借书证管理”数据流图:第4页3.1读者类别管理3.2读者信息管理D4读者类别信息表D1读者信息表读者录入信息读者类别信息读者情况加工4“借书管理”数据流图:4.1借书管理4.3续借管理4.2还书管理D2图书信息表D1读者信息表D4读者类别信息表D3借阅信息表续借情况续借信息还书信息罚款信息D8还书信息表借阅信息2.2.3数据字典数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其内容作详细说明的数据集。针对图书管理系统得到过程和数据流程分析,设计得到如下的数据项第5页和数据结构:图书信息:包括的数据项主要有:编号,书名,主编,出版社,借书日期。读者信息:包括的数据项主要有:姓名,借书证号,身份,可借书数目,借书限制和已借书数量。借书证:包括的数据项主要有:借书证号,读者姓名,读者类型,借书时间,借阅图书数量和是否逾期。管理员:包括的数据项主要有:账号,密码,性别,年龄。“借书”描述内容名称借书简述:图书信息数据流组成:图书编号+书名+主编+出版社+借阅日期数据流来源:用户将图书交给借书员,借书员经过审查后将相关信息输入计算机。数据量:800个/日峰值:3000个/日“填写读者信息”描述内容名称填写读者信息简述:填入读者信息的记录数据流组成:姓名+借书证号+身份+可借书数目+借书限制+已借书数量数据流来源:检查合格的读者信息录入到读者信息库中第6页“借书证”描述内容名称借书证库简述:借书证数据流组成:借书证号+读者姓名+读者类型+借书时间+借阅图书数量+是否逾期数据流来源:用户将借书证交给借书员,借书员经过审查后将相关信息输入计算机。数据量:800个/日峰值:3000个/日2.3数据库概念设计2.3.1局部E-R图下图实体读者的E-R模型图:读者信息借书证号姓名身份可借书数量借书限制已借书数量联系电话第7页下图是实体书籍的E-R模型图:下图是读者与借阅间的联系借阅的E-R模型图:借书证号编号借书日期还书日期借书证是否逾期图书信息编号书名借书日期主编出版社数量读者类型读者姓名第8页2.3.2全局E-R图整个图书管理系统的E-R模型关系图如下所示:2.4数据库逻辑设计2.4.1读者信息表的逻辑结构Reader(Number,CardID,ReaderName,BorrowNumber,Strichcode,ReaderTypeID,Mode,RegistrationTime,ValidTime,Sex,Dept,Call)编号列名数据类型长度是否允许为空默认值描述1NumberInt5否编号2CardIDchar5否借书证号(主键)3ReaderNamevarchar10否读者姓名4BorrowNumberInt5否已借阅图书数量5Strichcodechar5否条形码6ReaderTypeIDchar10否读者类型7Modevarchar10否书证状态用户图书借阅mn第9页8RegistrationTimevarchar16否登记日期9ValidTimevarchar16否有效期至10SexChar2否性别11Deptvarchar20否工作单位12Callvarchar15否电话2.4.2图书信息表的逻辑结构编号列名数据类型长度是否允许为空默认值描述1NumberInt5否编号2BookIDchar5否图书编号(主键)3Authorvarchar20否作者4SlassificationIDInt5否分类号5BookNamechar5否书名6Type1char10否图书类型7Extantint2是可借数8QtyInt5是库存数2.4.3借书证表的逻辑结构编号列名数据类型长度是否允许为空默认值描述1NumberInt5否编号2CardIDchar5否借书证号(主键)3BorrowNumberInt5否已借阅图第10页书数量4Strichcodechar5否条形码5ReaderTypeIDchar10否读者类型6Modevarchar10否书证状态7RegistrationTimevarchar16否登记日期8ValidTimevarchar16否有效期至9SexChar2否性别10Deptvarchar20否工作单位11Callvarchar15否电话2.5数据库物理设计2.5.1数据表的创建用户表的创建:createtableUsers(u_Namevarchar(16)notnull,u_Passvarchar(16)notnull,u_Typechar(8),u_Stopuserchar(2))insertintoUsersvalues('cjp','110212','超级用户','否');insertintoUsersvalues('wlh','881104','普通用户','否');第11页图书借阅表的创建createtableBorrow(Numberint,--编号CardIDchar(5)notnull,--借书证号ReaderNamevarchar(10)notnull,--读者姓名BookIDvarchar(10),--图书编号BookNamevarchar(20)notnull,--图书名Authorvarchar(20)notnull,--作者Publishervarchar(30),--出版社Priceint,--价格BorrowDatevarchar(16)notnull,--借书日期BorrowNumbervarchar(2),--借书数量UserNamevarchar(10),--操作员BroTiemevarchar(3),--借阅时长IsOverdueChar(2)--是否超期--primarykey(BookID,CardID))insertintoBorrowvalues('1','C0001','刘星','B0001','网页制作基础','刘备','清华出版社','22','2008-9-12','1','cjp','90','否');insertintoBorrowvalues('2','C0007','马尔','B0002','C#程序设计','张清','水电工程出版社','45','2008-10-28','1','cjp','90','否');insertintoBorrowvalues('3','C0001','刘星','B0003','生活常识','李德奇','清华出版社','18','2008-9-22','1','cjp','90','否');insertintoBorrowvalues('4','C0004','刘莉','B0002','C#程序设计','张清','水电工程出版社','45','2008-9-24','1','cjp','90','否');insertintoBorrowvalues('5','C0006','吴良华','B0003','生活常识','李德奇','清第12页华出版社','18','2008-9-12','1','cjp','90','否');insertintoBorrowvalues('6','C0006','吴良华','B0004','计算机英语','王城','人邮出版社','34','2008-10-11','1','cjp','90','否');insertintoBorrowvalues('7','C0008','徐明','B0004','计算机英语','王城','人邮出版社','34','2008-11-01','1','cjp','90','否');insertintoBorrowvalues('8','C0009','李明卫','B0003','生活常识','李德奇','清华出版社','18','2008-9-15','1','cjp','90','否');insertintoBorrowvalues('9','C000A','杨欣怡','B0002','C#程序设计','张清','水电工程出版社','45','2008-10-7','1','cjp','90','否');读者信息表的创建:gocreatetableReader(Numberintnotnull,--编号CardIDchar(5)primarykey,--借书证号ReaderNamevarchar(10)notnull,--读者姓名BorrowNumberint,--