《SQL数据库课程设计.doc》由会员分享,可在线阅读,更多相关《SQL数据库课程设计.doc(23页珍藏版)》请在三一办公上搜索。
1、目录1. 需求分析21.1用户需求21.2业务流程分析31.3功能需求分析42.数据库概念模式设计72.1 ERD四条原则及相应的实体、联系、属性以及标识特征72.2 改进的ERD83.数据库逻辑模式设计93.1一般逻辑模型设计93.2具体逻辑模型设计104.数据库的物流设计与数据库的保护设计124.1 表间关系设计124.2 完整性设计135.数据库系统的实现145.1 数据库及其表结构的建立145.2 数据输入186.报告总结22参考文献231.需求分析1.1 用户需求1.1.1 系统现状及主要解决问题近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍的增加
2、,面对着庞大的信息量,传统的人工方式管理的记录中我们可以发现这样的问题:(1)检索速度慢、效率低。因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难往往是终于查到了书的信息,馆中没有此书或已被别人借走。图书馆的规模越大,这个问题越突出。(2)借书、还书工作量大。借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、 还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往 往是人工操作所难以胜任的。而且经常会出现这样那样的差错。(3)图书统计工作难、藏书更新不能及时完成。图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,
3、然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。因此必须制定一套合理、有效、规范和实用的图书管理系统,对图书资料进行集中统一的管理。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。使图书管理者便于对图书和读者的管理。本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销等;还可以查询某位读者、某本图书的借阅情况,对当前借
4、阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况 。1.1.2 要达到的具体指标(1)可随时查询书库中现有书籍的种类、数量与存放位置。所有各类书籍均可由书号唯一标识。(2)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。(3)当需要时,可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。1.2 业务流程分析1.2.1 系统的业务流程对于图书管理系统,其内部数据应该包括图书信息,读者信息,系统用
5、户信息,借阅情况的信息。这些数据对于图书管理系统来说,缺一不可。其中,图书信息应该包括图书名称,图书的作者,图书编码,查询该图书的关键词等;读者信息应该包括读者姓名,读者单位,读者的借书证号,读者的借书数量等;系统用户信息包括用户名,密码等,借阅情况信息包括图书的借书日期,图书证号,图书编码等。有了该系统,读者可以通过书籍的名称、作者姓名或关键字等条件查找到自己想要的书籍,包括书籍编号、出版时间、书籍数量、剩余数量等。然后到图书馆进行借阅就可以了,也可以通过该系统进行预借。图书管理员通过该系统可以对图书进行3大操作:删除、增加以及查询;而对学生的管理中就有4项:借书、还书、增加和删除记录、查询
6、等。1.2.2系统业务流程图开始管理员登陆书库维护读者维护图书添加图书注销图书查询添加删除借书输入图书编号此书是否在库输入读者学号借书成功添加成功删除成功还书是否超期还书成功结束YYYYNNNNNNN图1-1 系统业务流程图1.3 功能需求分析1、安全性管理:给每个管理员一个用户名和密码,以登录图书馆管理系统,便于身份验证,管理员可以拥有最高权限对数据库进行所有操作。同样拥有一个用户名和密码,但普通用户只能进行查询操作,看个人信息和图书馆中图书信息不可修改它们。(1)管理员:增加、删除、查询、修改图书信息;增加、删除、查询、修改读者信息;图书借出、图书归还、逾期还书处理、图书注销(2)读者:
7、查询图书信息、查看借书情况、查询个人信息、历史借书情况、超期还书警告。2、读者信息管理:该功能模块用于管理相关的读者信息,包括的子功能模块如下图所示读者信息读者档案管理借阅证挂失与恢复读者类型管理图12 读者信息功能模块“读者类型”用于设置读者的类型及相关的信息,内容包括读者的身份、可借册数,可续借次数等。“读者档案管理”用于设置读者相关的信息,内容包括编号、姓名、身份、读者性别、联系方式、登记日期、有效期至、违规次数、现借图书数、是否挂失。“借书证挂失与恢复”用于挂失和恢复读者的借书证,挂失后该编号的读者不能再借书。3、图书管理:该功能模块用于管理图书相关的信息包含的功能模块如下图所示图书管
8、理图书基本信息图书档案管理图书征订图书盘点图书查看图书注销图13 “图书管理”功能模块 “图书基本信息设置”用于设置图书的类型及相关的信息,内容包括ISBN、书名、版次、类型、作者、出版社、价格、现存量、库存总量。“图书档案管理”用于设置图书相关信息,内容包括编号、ISBN、入库时间。“图书征订”用于订购新图书,内容包括征订编号、ISBN、订购数量、订购日期。“图书注销”用于注销图书,被注销的图书不可以再借出,并且应将图书信息进行修改。“图书查看”用于查看某本书的情况。“图书盘点”输出图书的在库清单供盘点使用。4、图书流通管理:此功能模块用于管理图书流通环节的相关的操作,包括如下图所示的功能模
9、块。图书馆流通管理图书借阅图书归还图书丢失图书罚款图14 “图书流通管理”功能模块“图书借阅”用于登记读者借阅图书的记录并减少图书在库的库存,登记内容包括借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、图书状态等。图书馆管理员作为借阅者的代操纵借书和还书者。借书时只要输入借阅的书刊编号就可以,然后输入借阅者的借阅卡号,完成后提交,系统验证借阅者是否有效,若有效借阅请求被接收并处理,系统将库存中图书数量减一,同时将读者信息中借书量加一。“图书归还”用于登记读者归还图书的记录并增加图书在库的库存,登记内容包括归还编号、图书编号、读者编号、归还时间等。系统查询借阅此书的人的信息以及该书被
10、借日期判断是否过期,若过期将进行罚款,并将该书刊的借阅记录改为已还。“图书丢失”用于报失图书,内容包括丢失编号、图书编号、读者编号、赔偿金额、操作时间等。“图书罚款”用于对图书超期、丢失等情况的罚款管理,内容包括罚款编号、图书编号、读者编号、罚款日期、罚款金额、是否交款、备注等。5、系统功能层次图如图15所示:管理员读者信息流通管理图书信息图书借阅图书归还图书征订图书罚款修改查询查询修改图书注销图1-5系统总流程图2.数据库概念模式设计2.1 ERD的四条原则及相应得出的实体、联系、属性以及实体的标识特征根据 ERD 的四条原则:原则1:能独立存在的事物,在其有多个由基本项描述的特征需要关注时
11、,就应把它作为实体。在系统中,可得知有“图书”、“读者”、“出版社”3个实体。原则2:两个或多个实体间的关联与结合,当需要予以关注时,应作为联系。在系统中,可以得知有“借阅图书”和“购买图书”两个联系。原则3:实体的属性是实体的本质特征;联系的属性是联系的结果或状态。原则4:信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性得出。在系统中,可以得出:图书信息(图书编号,书名,作者,出版社,种类)读者信息(读者学号,姓名,专业与班级,学院与年级,已借书数,允许借书数)管理员信息(管理员编号,姓名,管理员密码,管理员权限)借阅图书(读者学号,图书编号,书名,借阅日期,归还日期)归还图书
12、(读者学号,图书编号,书名,借阅日期,归还日期)出版社(出版社名,联系人,电话,邮编,地址)书架(图书编号,书名,位置)2.2画出并改进ERD如图2-1所示为改进后的整体E-R图。管理员姓名经办借还书登记表借还读者是否超期上次借期是否借满借书日期清点盘目单所盘盘存实际数盈余数位置书架图书编号书名采购编号工作用户密码电话地址所借还图书供应供书单出版社名学号姓名专业与班级学院与年级已借书数允许借书数电话邮编地址联系人职称号出版社图2-1 改进后的整体E-R图3数据库逻辑模式设计3.1一般逻辑模型设计3.1.1由ERD导出一般关系模型的四条原则:原则一:每一个独立实体变换为一个关系,其属性变为关系的
13、属性,其主标识变为关系的主码。原则二:从实体及响应的“的”联系变换为一个关系,从实体的属性加上主实体关系的主码构成这个关系的属性。如果“的”联系是1:1的,则以实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是1:N的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以互相区分的属性组,组成该关系的主码。原则三:1:N联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。原则四:N:N联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。
14、3.1.2数据库初步构思的关系框架基本框架如下: 表3-1图书信息表图书编号书名作者出版社种类主码 表3-2读者信息表读者学号姓名专业与班级学院与年级已借书数允许借书数主码 表3-3管理员信息表管理员编号姓名管理员密码管理员权限主码 表3-4借阅图书表读者学号图书编号书名借阅日期归还日期外码外码主码主码 表3-5归还图书表读者学号图书编号书名借阅日期归还日期外码外码主码主码 表3-6出版社关系表出版社名联系人电话邮编地址主码 表3-7书架关系表图书编号书名位置主码3.2具体逻辑模型设计表的具体结构表名字段名字段类型关键字约束说明图书信息图书编号8个字符是书名20个字符不允许空值作者10个字符出
15、版社20个字符种类8个字符读者信息读者学号8个字符是姓名10个字符专业与班级20个字符学院与年级20个字符已借书数整数允许借书数整数管理员信息管理员编号8个字符是姓名10个字符管理员密码10个字符管理员权限4个字符取值为“删除”、“增加”、“查询”借阅图书读者学号8个字符参照读者信息表的读者学号,不允许空值图书编号8个字符参照图书信息表的图书编号,不允许空值书名20个字符借阅日期10个字符归还日期10个字符归还图书读者学号8个字符参照读者信息表的读者学号,不允许空值图书编号8个字符参照图书信息表的图书编号,不允许空值书名20个字符借阅日期10个字符归还日期10个字符出版社出版社名20个字符唯一
16、值联系人10个字符电话8个字符邮编6个字符地址10个字符书架图书编号8个字符参照图书信息表的图书编号,不允许空值书名20个字符位置8个字符4数据库物理设计与数据库保护设计4.1设计表间关系在图书管理系统中,存在着参照关系和被参照关系。 书架表 参照关系图书编号书名位置bj01001基础会计学一楼A格bj01002中国大历史二楼A格bj01003我在回忆里等你三楼B格bj01004杜拉拉升职记四楼A格bj01005视听说教程一楼B格 外部关键字 主关键字 图书信息表 被参照关系图书编号书名作者出版社种类bj01001基础会计学彭卉华南理工大学出版社教科书bj01002中国大历史黄仁宇中国发展出版
17、社历史书bj01003我在回忆里等你辛夷坞江苏文艺出版社文学作品bj01004杜拉拉升职记李可江苏文艺出版社小说bj01005视听说教程秦秀白上海外语教育出版社教科书 图4-1参照关系与被参照关系 4.2完整性设计4.2.1主要字段完整性的字段名、完整性约束条件关系模型的完整性约束包括实体完整性、参照完整性和用户定义完整性。主要字段完整性的字段名、完整性约束条件指的是实体完整性。其中实体完整性的规则如下:1 实体完整性规则是针对关系而言的,而关系则对应一个现实世界中的实体集。2 现实世界中的实体是可区分的,它们具有某种标识特征;相应地,关系中的元组也是可区分的,在关系中用主关键字作唯一性标识。
18、3 主关键字中的属性,即主属性不能取空值。在图书管理系统中,图书信息表(图书编号,书名,作者,出版社,种类)中,图书编号是主关键字,不可以取空值。读者信息表(读者学号,姓名,专业与班级,学院与年级,已借书数,允许借书数)中,读者学号是主关键字,不可以取空值。管理员信息表(管理员编号,姓名,管理员密码,管理员权限)中,管理员编号是主关键字,不可以取空值。4.2.2记录完整性约束及其约束条件除了实体完整性之外还有其他与应用密切相关的数据完整性约束,例如某个属性的值必须唯一,某个属性的取值必须在某个范围内,某些属性值之间应该满足一定的函数关系等。类似这些方面的约束不是关系数据模型本身所要求的,而是为
19、了满足应用方面的语义要求提出来的,这些完整性需求需要用户来定义,所以称为用户定义完整性。数据库管理系统需提供定义这些数据完整性的功能和手段,以便统一进行处理和检查,而不是由应用程序去实现这些功能。 在用户定义完整性中最常见的是限定属性的取值范围,即对值域的约束,这包括说明属性的数据类型、精度、取值范围、是否允许空值等。在图书管理系统中,图书信息表中的书名不允许为空值,供书商表中的供书商名为唯一值都是用了用户定义完整性约束。4.2.3参照完整性表现实世界中的实体之间存在着某种联系,而在关系模型中实体是用关系描述的,实体之间的联系也是用关系描述的,这样就自然存在着关系和关系之间的参照或引用。图书管
20、理系统参照完整性表如下:位置书名图书编号 书架 地址邮编电话联系人出版社名 1:n 1:n 出版社图书编号书名作者出版社种类 图书信息 n:n允许借书数已借书数学院与年级专业与班级姓名读者学号 读者 图4-2说明关联和参照关5数据库系统的实现5.1数据库及其表结构的建立创建图书数据库:创建book模式:建立图书信息表:建立读者信息表:建立管理员信息表:建立借阅图书表:建立归还图书信息表:建立出版社信息表:建立书架信息表:5.2数据输入图书信息表的数据:读者信息表的数据:管理员信息表的数据:借阅图书表的数据:归还图书表的数据:出版社信息表的数据:书架信息表的数据:6.报告总结哲学有言 “实践是认
21、识的基础”,我觉得这句话非常有道理,只有实践才能对事物的本质有更深的认识,才能有发言权,一切认识都是建立在认识的基础上。通过了一个星期的数据课程设计,我对数据库这门课程有了更深的认识,对原本在我脑中像是火星语的SQL语言有了更加具体的认识。数据库课程设计加深了我对数据库这门课程的兴趣,让我深刻了解了数据库的强大功能,引起我对研究SQL语言运用规则的兴趣。数据库概念设计、数据库逻辑结构设计和数据库保护设计是数据库设计的重要步骤,每一步的设计都是至关重要的,并且是相互联系的。经过一个星期的课程设计,让我对E-R图的设计有一个整体的想法,并且对逻辑结构设计中关键字的设定能够很好的把握,分析每个表中的
22、联系,更加注意表间和数据之间的相互约束。课程设计一个重要的过程就是在Sever SQL 2005上操作运行,这是运用实践去检验认识的一个过程,在这个过程中我学会了灵活运用SQL语言。总之,数据库课程设计一个很好地运用实践去发现认识的过程。数据库课程设计不仅让我更进一步了解了数据库这门课程,而且让我在做事方面也形成了一套很好的想法。我在做事方面学会了坚持、合作、对待问题不断充满疑问和要有耐心去解决问题,更要和同学们交流,对不懂的问题也不耻下问。从课程设计中最深的还是做事要坚持和要有耐心。在运用Server SQL 2005设计数据库的过程中,会不断遇到种种问题,而且每个问题都会与上下步骤之间都会
23、有联系,一个问题的不解可能会导致下一个问题的无法操作,所以我们要有耐心找出问题,分析原因,然后再解决问题,不要半途而废,要坚持下去,这样才能在学习上有所突破。数据库课程设计目的在于通过对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力,使学生能深入理解和灵活掌握教学内容:另一方面,可以很好培养学生的处事能力。总之,课程设计让我学会了很多,他不仅拉近了我和同学们的关系,更加加强老师和学生关系。在此,我要感谢林老师,您很好地培育了我们,谢谢您不辞辛苦地为我们解答每一个问题,真的谢谢您!参考文献:1 崔 巍主编,数据库应用与设计,清华大学出版社,2009.2 王 珊、陈 虹编著,数据库系统原理教程,清华大学出版社,2003.3 金银秋主编,数据库原理与设计,科学出版社,2000.4 李建中 王珊,数据库系统原理,电子工业出版社,1998.5 李大友,数据库原理及应用(第二版),清华大学出版社,2000