1、一、实验设计方案实验名称:图书管理系统实验时间:小组合作: 是 否小组成员:1、实验目的:通过小型信息系统设计和开发,使我们了解数据库设计在软件工程中的地位,掌握数据库设计的方法,并把数据库运用于编程,巩固我们在课堂上学习到的知识,并培养我们作为未来软件开发,测试者应该具有的合作精神,主动学习运用新知识。针对特定应用设计系统功能模块结构和数据库表结构,达到将数据库系统原理课程的理论知识综合运用的目的。2、实验场地及仪器、设备和材料:场地:H123实验室设备:计算机软件:WORD、VISIO、SQL-SERVER 20003、实验思路(实验内容、数据处理方法及实验步骤等):一、实验内容:1) 用
2、户需求分析1.1总体需求描述1.2用户总体业务构造1.3其他需求1.4系统功能设想1.5业务流程分析1.5.1图书借阅信息1.5.2书籍信息管理1.5.3读者信息管理1.1总体需求描述图书管理系统涉及读者信息管理、借阅信息管理、图书信息管理等多方面的信息管理,系统的使用对象为图书管理员和读者。他们在使用系统时,各拥有不同的权限,以完成各自需要的工作。下面对图书管理系统中主要的业务流程进行简要分析:在图书管理系统中,图书管理员要为每个读者建立借阅账户,记录读者的个人信息和图书借阅信息。读者个人账户建立成功后,给读者发借阅卡,可以通过图书管理员借阅、归还图书,也可以通过相应的终端查询个人的借阅信息
3、,检索图书。读者借阅图书时,先输入借阅证卡号、密码,验证借阅证的有效性及是否可续借,无效则向读者提示原因,如“卡号不对”、“密码不对”、“已借满,不能再借”等;有效则显示读者的基本信息,例如读者的个人资料、已经借阅的图书信息等;读者通过图书管理员向系统提出借阅请求,管理员操作管理终端,登记读者新借阅图书的相关信息。相应地,读者归还图书时,也需验证借阅卡号、密码等信息,验证借阅证的有效性,若不对,系统给出相关的提示;通过系统验证后,显示读者基本信息及图书借阅信息;读者向图书管理员递交归还的图书,管理员验证无误后,删除读者该书的借阅信息;若读者超期归还,则先向管理员递交图书滞纳费用,归还图书;另外
4、,图书馆图书资料变更,如新购进图书或图书被损毁不能再使用时,图书管理员要相应的将图书信息入库或注销;同理,若有新增读者帐号或需要注销读者帐号的,图书管理员应通过系统管理终端进行记录。1.2用户总体业务构造一个典型的图书管理系统应包含图书信息管理、借阅信息管理、读者信息管理三部分数据管理,其中图书管理员可实现如下操作:(1)增加、删除图书;(2)增加、删除读者;(3)借出、归还图书记录;(4)查询读者信息、图书信息;普通读者可以实现如下操作:(1)修改个人信息(如登陆密码,或其他个人信息等)(2)查询个人借阅信息和检索图书;1.3其他需求l 师生可借阅图书,借阅图书有期限限制和数量限制,逾期不还
5、还需要罚款;l 每本书的馆藏数量不同,图书管理员需对这些书进行管理,书籍借出和归还时须注意是否有损毁。1.4系统功能设想图书管理系统基础数据和辅助管理用户登录及其验证登陆及退出系统图书借阅管理读者信息管理图书信息管理借书还书添加读者修改读者图书修改注销图书超期丢失正常删除读者查询读者新书入库图1 图书管理系统整体功能图示1.5业务流程分析 业务处理描述 业务处理单位 文件存档1.5.1图书借阅信息错误信息读者所借图书图书管理员所需图书1.5.2书籍信息管理书籍信息添加/修改图书管理员书籍信息书籍信息书籍查询1.5.3读者信息管理借书读者图书管理员删除读者读者资料2) 系统概念结构设计2.1实体
6、 2.2系统局部E-R图2.3系统全局E-R图上述数据流图和数据字典共同构成了对用户需求的表达,它们是系统分析员(数据库管理员)在需求调查过程中和用户反复交互得到的。概念设计就是通过对需求分析阶段得到的信息需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型,主要使用E-R图。2.1实体由前面分析得到的数据流图和数据字典,抽象出来的实体主要有3个:图书管理员、读者、图书、出版社(系统管理员先暂时不计)。实体和属性的定义: 书库图书信息,包括数据项有:图书编号、书名、书号、类别、出版社、作者、ISBN、印张、字数、版次、印数、定价、开本、是否在库、是否损坏、是否遗失、入库时间、图
7、书介绍 读者信息,包括数据项有:学生编号、学号、姓名、性别、系别、班级、级别、已借图书、照片 借书信息,包括数据项有:图书编号、学生编号、是否归还、书名、姓名、学号、书号、系别、班级、已借图书、出版社、作者、借阅日期、图书类别、是否续借 出版社信息,包括数据项有:供货商序号、供货商、城市、地址、电话、传真、邮政编码、EMAIL、联系人、首次合作时间 用户信息,包括数据项有:用户编号、姓名、密码、类别、性别、家庭住址、联系电话、职务、出生日期、照片 罚款信息,包括数据项有:流水号、罚款原因、罚款金额、日期。 过期图书信息,包括数据项有:图书编号、书名、书号、学生序号、学生姓名、系别、班级、过期时
8、间。师生可借阅图书,借阅图书有期限限制和数量限制,逾期不还需要罚款;每本书的馆藏数量不同,图书管理员需对这些书进行管理,书籍借出和归还时须注意是否有损毁。读者管理管理员借阅管理图书nmnnmm2.2系统局部E-R图ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图3-1所示。解释如下:一个借阅者(用户)只能具有一种身份,而一
9、种身份可被多个借阅者所具有;一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。2.2.1 读者局部E-R图读者读者编号姓名年龄联系电话地址性别已借书总数2.2.2图书局部E-R图.图书图书编号图书名称作者出版社出版日期图书类型已借数量状态入库日期图书简介页数价格译者序列编号2.2.3还书局部E-R图借阅读者书籍读者姓名读者性别读者编号读者编号借阅编号图书状态单价作者图书数量序列编号出版日期图书编号图书名称1N2.2.4还书局部E-R图还书读者书籍读者姓名读者性别读者编号读者编号还书编号图书状态单价作者图书数
10、量序列编号出版日期图书编号图书名称1N2.3系统全局E-R图3) 数据库逻辑结构设计3.1E-R图到关系模式的转换3.2关系模式的规范及调整3.2.1关系模式3.2.2数据约束分析 3.3各个数据表的表结构设计3.1E-R图到关系模式的转换读者与图书之间的关系式多对多的联系,因此,将读者与图书以及借书联系分别设计成如下的关系模式:图书(图书编号,图书名称,作者,译者,出版社,出版日期,入库日期,图书类型,书数,图书状态,页数,价格,附件,图书简介)读者(读者编号,读者类型,姓名,有效证件,证件号码,性别,职业,联系电话,E-mail,家庭住址,备注)因为图书与读者间的关系借书与还书,并且是多对
11、多的关系,所以抽出借阅归还的关系。借书(读者编号,读者姓名,性别,有效证件,有效证件号码,读者类别,联系电话,已借数量,借书总量,图书编号,图书名称,作者,图书类型,价格,出版时间,出版社,借出次数,附件)出版社和图书之间是一对一的关系所以作为单独的关系。用户与图书的关系之间是一个管理员可以操作多本图书,一本图书可以被多个管理员管理,将用户作为一个单独的关系进行处理,均如下。出版社(出版社编号,出版社名称)用户(用户编号、姓名、密码、类别、性别、家庭住址、联系电话、职务、出生日期、照片)对于读者与图书之间图书超期罚款关系以及过期图书处理关系,过期需要罚款,损坏图书也需要罚款。罚款(流水号、罚款
12、原因、罚款金额、日期)过期图书(图书编号、书名、书号、读者序号、姓名、职务、过期时间)3.2关系模式的规范及调整3.2.1关系模式对于读者与图书之间图书超期罚款关系以及过期图书处理关系,过期需要罚款,损坏图书也需要罚款的调整:罚款(流水号、罚款原因、罚款金额、日期,罚款图书,罚款人,操作人)罚款类型(类型编号、类型名称 、罚款条目)3.2.2数据约束分析(1)用户访问权限:任何用户都不能访问其他用户的密码。(2)任何用户只可查自己的历史操作情况,不可访问到其他用户的业务情况。(3)借书数量和借书总数并且各自的数量都不能为空值。(4)图书编码规则:以字母B开头再加上8位数字。(5)读者编码规则:
13、以字母R开头加上8位数字,其中前4位数字由读者进入学校的时间年份顺序生成,后4位则是按流水号一次增大。(6)用户编码规则:以字母M开头再加上8位数字。其中前4位数字由用户的时间年份顺序生成,后4位则是按流水号一次增大。(7)出版社编码规则:以字母P开头再加上8位数字。其中前4位数字由学校采购图书的时间年份顺序生成,后4位则是按流水号一次增大。3.3各个数据表的表结构设计经由E-R模型得到关系模型并且得到适当调整后,我们可以结合在需求表述中数据字典包含的数据项信息,得到数据库的表结构。具体设计各个数据表的表结构,包括表名,表中各列的字段数据类型、数据长度和表的主键和外码:还要考虑应该建立那些索引
14、以及索引的类型。需要注意的是,考虑到系统的统一,兼顾如数据库管理员和后续软件开发中对数据库管理以及编程引用的便利,表明和字段名的命名以具有意义的英文名称为主或以其缩写字母构成:同时要为各个表名和字段名做出完整的中文文档说明。如下表3.3.13.3.12给出了数据库中各个数据表的表结构。表3.3.1 数据库中表清单数据库表名关系模式名称备注User用户(图书管理员)用户信息表ReaderType读者类型读者类型信息表Reader读者读者信息表PaperType有效证件类型证件类型信息表BookType图书类别图书类别信息表BookConcern出版社出版社信息表Book图书图书信息表GiveIn
15、fo图书借阅归还借阅归还信息表Amerce罚款罚款信息表AmerceType罚款项罚款类型设置表表3.3.2 用户信息表User字段信息列表字段名称含义属性类型长度备注UserID用户号varchar10主键,也可以作为登陆标识UserPwd用户密码varchar10Not nullAuthority权限varchar10Not null表3.3.3 读者类型信息表ReaderType字段信息列表字段名称含义属性类型长度备注ID类型编号int4主码ReaderType类型名称varchar10Not nullBorrowBookNum借书数量int4Not null表3.3.4 读者信息表Re
16、ader字段信息列表字段名称含义属性类型长度备注ReaderID读者编号varchar10主码ReaderName姓名varchar10Not nullReaderSex性别varchar2男/女ReaderBirth出生年月Datetime8ReaderTel联系电话varchar13Not nullReaderAddr地址varchar100联系地址ReaderStatus状态varchar4表示在校、毕业或者转学ReaderTypeID读者类型int4所属类型编号,外码ReaderType.IDBorrowedCount已借次数int4Not nullPaperType证件类型varch
17、ar4证件类型名称,外码PaperType.PaperNamePaperNum证件号码varchar20证件类型编号,外码PaperType.PaperIDReaderWork职业varchar20学生、教授,副教授等E-mail电子邮箱varchar30Remark备注varchar100BorrowedSum已借书数int4Not nullInDate登记日期int8Not null表3.3.5 证件类型信息表PaperType字段信息列表字段名称含义属性类型长度备注PaperID证件编号varchar4PaperName证件名称varchar10Not null表3.3.6 图书类型信息
18、表BookType字段信息列表字段名称含义属性类型长度备注TID图书类型varchar4主码TType类型名称varchar20文艺、理工等Not null表3.3.7 出版社信息表BookConcern字段信息列表字段名称含义属性类型长度备注CID出版社编号varchar4主码CName出版社名称varchar20Not null表3.3.8 图书信息表Book字段信息列表字段名称含义属性类型长度备注BookID图书编号varchar10主码BookName图书名称varchar20WritterName作者varchar10默认:未知BookConcern出版社编号varchar4Not
19、nullPublishDate出版日期datetime8BookType图书类型varchar4LentCount借书次数int4默认:0Status状态varchar4结出、在馆等默认:在馆InDate入馆时间datetime8当天BookView图书简介text16默认:无PageCount页数int4默认:0Accessories序列号varchar20Not nullInterpret译者varchar20默认:无Price价格money8默认:0表3.3.9 图书借阅信息表GiveInfo字段信息列表字段名称含义属性类型长度备注BookID图书编号varchar10主码ReaderI
20、D读者编号varchar10主码GiveTime还书时间datetime8Not nullIsAddTime续借时间bit1Not nullReturnTime还书时间datetime8Not nullAmerce罚款money8Not nullGiveAccessories归还序列varchar2Not nullIsReturnTime实际归还时间datetime8Not nullUserID操作人varchar10Not null表3.3.10 图罚款信息表Amerce字段信息列表字段名称含义属性类型长度备注AmerceID罚款流水号varchar10主码Amerce罚款金额varchar
21、8主码ADate罚款时间datetime8Not nullABookID相关图书Amemo10Not nullAReader相关读者Amemo10Not nullAUserID操作人员Amemo10Not nullAreason罚款原因varchar10Not nullAmemo备注Amemo50表3.3.10 图罚款信息表Amerce字段信息列表字段名称含义属性类型长度备注ATypeID罚款类型号varchar10主码ATName罚款名称varchar10Not nullATList罚款条目text16Not null4) 数据库的物理设计4.1存储介质的选择4.2数据库的存储结构设计4.2
22、.1数据存储路径4.3各个数据表(视图)的建立4.4选择存取的方法4.5数据库服务器的性能优化4.1存储介质的选择RAID(独立磁盘冗余阵列)是由多个磁盘驱动(一个阵列)组成的磁盘系统,可以提供更高性能、可靠性、存储容量和更低的成本。容错列阵分为送05共六个RAID等级。每个等级使用不同的算法实现容错。SQL server一般使用RAID等级0、1和5(注:RAID仅在windows NT4.0、windows 2000及windows 2003等系统上配合使用)。RAID1也称为镜像集的磁盘文件系统或磁盘镜像系统。磁盘镜像提供选定磁盘的冗余的、完全一样的复本。所有写入主磁盘的数据均写入镜像磁
23、盘。RAID 1提供容错能力,如一个磁盘数据损坏总是可以从另一个磁盘得到恢复。这种级别的RAID基本上能保证数据读取的性能,但是由于在写数据时需要将相同的数据同时写到两个硬盘上,因而RAID1会降低数据的写性能。RAID5 等级也称带奇偶校验的数据分割技术,时目前设计中常用的策略。该等级在阵列内的磁盘中,将数据分成大块。并在所有的磁盘中写入奇偶校验的信息,数据同于有这些奇偶信息提供。数据和奇偶信息排列在磁盘列阵上,而且两者始终错开存放在不同的磁盘上,所有RAID 5提供阵列上的所有数据冗余,在大多数情况下允许单个磁盘发生故障并被替代,而不会中断系统运行(指所谓的热插拔)。RAID 5提供的性能
24、比RAID0和RAID1要低一些,但提供更高的可靠性和更快的恢复能力。相对RAID1 RAID5,在同样保证数据可靠性的前提下,实现更高的性能和存储量。4.2数据库的存储结构设计SQL server 2000使用一组操作系统文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在下列3种文件类型的操作系统文件中。1) 主数据库文件。这些文件包含数据库的启动信息。主数据库文件还用于存储数据。每个数据库都包含一个主数据库文件,其扩展名为.mdf。2) 次数据库文件。这些文件含有不能置于主数据库文件中的所有数据。如果主数据库文件足够大,能够容纳数据库中的所有数据,则该数据库不
25、需要此数据库文件。有些数据库可能非常大,因此需要多个次数据文件,或可能在各自的磁盘驱动器上使用次要文件,以便在多个磁盘上存储数据。其扩展名一般为.ndf。3) 事务日志文件。这些文件用于包含于恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(但是可以有多个),日志文件最小为512KB,其扩展名一般为ldf。创建一个简单的数据库demo时,可以只使用一个包含所有数据和对象的主数据库文件和一个包含事物日志信息的日志文件。而在创建更复杂的数据库mis时,可以使用一个主数据库文件和5个辅助文件。数据库内的数据和对象可被扩展到所有的6个文件中,另外有4个日志文件包含事物日志信息。文件组允许对文
26、件进行分组,以便于管理和数据的分配/放置。例如,可以分别在3个硬盘驱动器上创建3个文件(Date.ndf、data2.ndf和Data3.ndf),并将这3个文件指派到文件文件组Fgroup1中。然后,可以明确的在文件组Fgroup1上创建一个表。对表中数据的查询将分散到3个磁盘上,因而性能以提高。在RAID(独立磁盘冗余阵列)上创建单个文件也可以获得相同的性能改善。文件和文件组使得在新磁盘上可轻易的添加新文件。4.2.1数据存储路径(1)在目前实验条件下,根据实验的实际需求,将各数据文件存储在以下路径中。create database bookon primary(name=book,fil
27、ename=D:StudySQLbook.mdf,size=5,maxsize=20,filegrowth=1)log on(name=book,filename=D:StudySQLbook.ldf,size=2,maxsize=8,filegrowth=1)Go4.3各个数据表(视图)的建立Book表BookConcern表BookType表GiveInfo表PaperType表Reader表ReaderType表User表Amerce表AmerceType表4.4选择存取的方法为提高数据库数据的存取速度,而需要设置合适的存取方式,主要采用以下两类存取方式。存储过程和建立索引。4.5数据库
28、服务器的性能优化实际对数据服务器新能的要求主要需要参照设计目标,实现依据应来自以下三种方式:理论上设计、仿真测试和实际运行的反馈分析。仿真测试可以采用一些专业的软件测试工具(如Load Runner),这对于还没有投入实际运行的数据库系统的性能分析具有重要的参考意义。作为数据库系统的管理者(包括分析设计角色),需要了解应用程序的需求和数据的逻辑、物理结构,并在相互冲突的数据库中(如联机事物处理和面向决策支持应用间的矛盾)权衡利弊。虽然各因素和手段之间存在复杂的联系,我们可以简单的将其划分为如下两种方式:(1) 设计经途数据库模式设计(如分区表、索引等)(2) 配置途径配置途径通过将网络流通、磁
29、盘I/O和CPU时间减到最小,使每个查询的响应时间最短并最大限度的提高整个数据库服务器的吞吐量、1) 硬件配备,如磁盘I/O使用RAID,针对大量数据交互情形内存的提升会显著减少总体的相应时间,CPU时一个较难预算的因素,一般需要实际测试才能做出判断。2) 参数配置,一般数据库可能有一套自动资源管理机制,那只是非自主的资源发挥而已,适用于一般的应用情形,对于严格要求的唱歌,只有Oracle这样的产品对能提供一套完整的性能调整机制,使得数据库系统管理员实现目标(如Oracle中SGA各种参数的设置。)5) 数据库的实现建立了图书管理系统的相关表,数据库表名关系模式名称备注User用户(图书管理员
30、)用户信息表ReaderType读者类型读者类型信息表Reader读者读者信息表PaperType有效证件类型证件类型信息表BookType图书类别图书类别信息表BookConcern出版社出版社信息表Book图书图书信息表GiveInfo图书借阅归还借阅归还信息表Amerce罚款罚款信息表AmerceType罚款项罚款类型设置表以及视图还有存储过程。建立了表与表的关系图如下: 二、实验步骤1) 收集系统需求;本阶段成果的内容形式上主要包括数据流图和数据字典。数据流图和数据字典是描述用户需求的重要工具以及阶段成果的表达方式。这里借助了用例分析进行辅助。它作为需求分析的成果和用户交流的主要手段和
31、依据,是后续数据库设计的前提。我们从数据流图中可以比较充分的了解软件的结构,所以也是软件设计的重要依据。小组调查了解了用户的需求后,需要进一步表达用户的需求,采用的分析和表达用户需求的方法是结构化分析法。该方法是基于数据流的需求分析法,它利用图形的方式进行表达,更加直观易运用。结构化分析法采用的是自顶向下、分层分解的方式分析系统,即将系统的功能从宏观层面逐渐细化直到最终,其中主要采用:数据流图(DFD)、数据字典(DD)等这里还采用了辅助工具(UML)。2.1功能描述:2.1.1图书信息管理功能名称图书信息管理功能描述对图书的基本信息管理。输入信息图书的基本信息。处理过程对图书的基本信息的管理
32、,管理包括图书信息的添加、修改、删除和查询。输出信息处理结果后,系统会向用户返回数据处理结果,用户根据返回结果可以判断处理的成功与否2.1.2读者信息管理功能名称读者信息管理功能描述对读者的基本信息管理。输入信息读者的基本信息。处理过程对读者的基本信息的管理,管理包括读者信息的添加、修改、删除和查询。输出信息处理结果后,系统会向用户返回数据处理结果,用户根据返回结果可以判断处理的成功与否2.1.3图书借书管理功能名称读者借书信息管理功能描述对读者借书信息管理输入信息读者借书的基本信息处理过程对借书信息的管理,实现的是将读者要求借出的书籍信息加入到数据库中,然后更新数据库,借出的时间段内,该书不
33、能再借出。借出信息包括所借的书籍信息,读者信息以及续借。输出信息处理结果后,系统会向用户返回数据处理结果,用户根据返回结果可以判断处理的成功与否2.1.4图书还书管理功能名称图书归还信息管理功能描述对图书归还的信息管理输入信息图书的基本信息处理过程对图书的归还信息的管理,实现将读者要还的书籍信息以及读者的姓名,重新将书籍状态设置为可用。同时更新数据库。输入信息包括书名、作者、借出的书目和借出的读者的姓名,图书损坏与否。输出信息处理结果后,系统会向用户返回数据处理结果,用户根据返回结果可以判断处理的成功与否2) 分析典型业务的数据流程;2.2数据流图数据流图可以清楚的表示各个模块之间的调用关系。
34、下面是各个模块的数据流图:2.2.1新书入库数据流图图书管理人员存储信 息新书编 号存储信息图书编号图书编号图书编号2.2.2读者借书数据流图图书管理员处理读者信息读者信息查询借书数量处理借书信息读者借书信息借书信息读者能否借书信息读者信息读者信息读者借书数据流图图书管理员处理读者信息读者信息查询借书数量检查书过期否读者借书信息借书信息读者能否借书信息读者信息借书数量信息读者信息借书信息借书信息借书信息借书数量已满更新借书信息借书过期信息过期书信息读者借书详细数据流图2.2.3读者还书数据流图图书管理员接收借书信息更新借书信息取消借书记录读者处理罚款借书记录借还书日期借还书日期借书信息图书信息
35、借书信息借书信息2.2.4查询图书数据流图图书管理员处理图书信息图书信息读者图书清单图书信息查找的图书信息图书信息借书信息2.2.5图书管理数据流图图书管理员处理用户名与密码权限身份验证处理命令处理图书信息(借书还书)处理图书信息(图书入库)处理读者信息(修改、查看)读者图书信息借还书信息读者信息输入用户名密码有效用户名密码输入读者借书信息图书信息读者相关信息3) 分析数据字典;3.1数据字典 数据流名称新书入库管理别名Book描述新书入库的组成定义图书类型=图书编号+图书名称+作者+译者+出版社+出版日期+入库日期+图书类型+书数+图书状态+页数+价格+附件+图书简介输入流图书管理员输出流图
36、书编号补充说明 数据流名称读者管理别名Reader描述读者管理的组成定义读者类型=读者编号+读者类型+姓名+有效证件+证件号码+状态+性别+生日+职业+联系电话+E-mail+家庭住址+所借书数+借书总数+登记日期+备注输入流图书管理员输出流读者编号补充说明 数据流名称读者借书管理别名BorrowBook描述读者借书的组成定义读者借书=读者信息+所借图书信息读者信息=读者编号+读者姓名+性别+有效证件+有效证件号码+读者类别+联系电话+已借数量+借书总量所借图书信息=图书编号+图书名称+作者+图书类型+价格+出版时间+出版社+借出次数+附件输入流图书管理员输出流借出补充说明图书管理员通过读者编
37、号与所借图书编号输入 数据流名称还书管理别名ReturnBook描述图书归还的组成定义图书归还=图书编号+读者信息+图书信息读者信息=读者编号+姓名+性别+类型+有效证件+证件号码+借书数量+罚款金额图书信息=图书编号+图书名称+作者+借阅日期+归还日期+超出时间+借附件输入流图书管理员输出流还书补充说明图书管理员通过归还图书编号输入 数据流名称续借图书管理别名ContinueBook描述续借图书的组成定义续借图书=图书编号+续借天数+续借后应还日期+读者信息+图书信息读者信息=读者编号+姓名+性别+类型+有效证件+证件号码+借书数量图书信息=图书编号+图书名称+作者+类型+借阅日期+应还日期
38、+借附件输入流图书管理员输出流续借补充说明图书管理员通过续借图书编号进行数据输入 数据流名称出版社设置管理别名PublishCompany描述出版社设置的组成定义出版社设置=出版社编号+出版社名称输入流图书管理员输出流添加,修改,删除补充说明 数据流名称用户管理别名User描述用户的组成定义用户=用户名+密码+用户权限输入流图书管理员输出流登陆补充说明SystemManager 、BookManager4) 提取实体及其关系;上述数据流图和数据字典共同构成了对用户需求的表达,它们是系统分析员(数据库管理员)在需求调查过程中和用户反复交互得到的。概念设计就是通过对需求分析阶段得到的信息需求进行综
39、合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型,主要使用E-R图。4.1实体由前面分析得到的数据流图和数据字典,抽象出来的实体主要有3个:图书管理员、读者、图书、出版社(系统管理员先暂时不计)。实体和属性的定义: 书库图书信息,包括数据项有:图书编号、书名、书号、类别、出版社、作者、ISBN、印张、字数、版次、印数、定价、开本、是否在库、是否损坏、是否遗失、入库时间、图书介绍 读者信息,包括数据项有:学生编号、学号、姓名、性别、系别、班级、级别、已借图书、照片 借书信息,包括数据项有:图书编号、学生编号、是否归还、书名、姓名、学号、书号、系别、班级、已借图书、出版社、作者、借阅日期
40、、图书类别、是否续借 出版社信息,包括数据项有:供货商序号、供货商、城市、地址、电话、传真、邮政编码、EMAIL、联系人、首次合作时间 用户信息,包括数据项有:用户编号、姓名、密码、类别、性别、家庭住址、联系电话、职务、出生日期、照片 罚款信息,包括数据项有:流水号、罚款原因、罚款金额、日期。 过期图书信息,包括数据项有:图书编号、书名、书号、学生序号、学生姓名、系别、班级、过期时间。师生可借阅图书,借阅图书有期限限制和数量限制,逾期不还需要罚款;每本书的馆藏数量不同,图书管理员需对这些书进行管理,书籍借出和归还时须注意是否有损毁。5) 画出E-R图;师生可借阅图书,借阅图书有期限限制和数量限
41、制,逾期不还需要罚款;每本书的馆藏数量不同,图书管理员需对这些书进行管理,书籍借出和归还时须注意是否有损毁。读者管理管理员借阅管理图书nmnnmm5.1系统局部E-R图ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图3-1所示。解释如下:一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。5.1.1 读者局部E-R图读者读者编号姓名年龄联系电话地址性别已借书总数5.1.2图书局部E-R图.图书图书编号图书名称作者出版社出版日期图书类型已借数量状态入库日期图书简介页数价格译者序列编号3.2.3还书局部E-R图借阅读者书籍读者姓名读者性别读者编号读者编号借阅编号图书状态单价作者图书数量序列编号出版日期图书编号图书名称1N3.2.4还书局部E-R图还书读者书籍读者姓名读者性别读者编号读者编号还书编号图书状态单价作者图书数量序列编号出版日期图书编号图书名称1N