数据库设计图书管理系统
数据库设计
—图书馆管理系统
班级:计算机科学与技术1班
小组成员:金艳20124077.
王苗苗20124096 刘菲菲20124084
数据库设计—学校图书管理系统
《数据库系统概论》课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,
掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计等阶段。我们按照以上几点开发了学校图书管理系统数据库。
需求分析阶段
1. 功能分析
图书馆管理信息系统需要完成功能主要有:
在图书管理系统中,管理员为每个读者建立一个账户,账户内存储读者个人的详细信息,并依据读者类别的不同给每个读者发放借书卡(提供借书卡号、姓名、部门或班级等信息)。读者可以凭借书卡在图书馆进行图书的借、还、续借、查询等操作,不同类别的读者在借书限额、还书期限以及可续借的次数上要有所不同。
借阅图书时,由管理员录入借书卡号,系统首先验证该卡号的有效性,若无效,则提示无效的原因;若有效,则显示卡号、姓名、借书限额、已借数量、可再借数量等信息,本次实际借书的数量不能超出可再借数量的值。完成借书操作的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅信息中添加相应的记录。
归还图书时,由管理员录入借书卡号和待归还的图书编号,显示借书卡号、读者姓名、读书编号、读书名称、借书日期、应还日期等信息,并自动计算是否超期以及超期的罚款金额,若进行续借则取消超期和罚款等信息;若图书有损坏,由管理员根据实际情况从系统中选择相应的损坏等级,系统自动计算损坏赔偿金额。完成归还操作的同时,修改相应图书信息的状态、修改读者信息中的已借数量、在借书信息中对相应的借书记录做标记、在还书信息中添加相应的记录。
图书管理员不定期地对图书信息进行添加、修改和删除等操作,在图书尚未归还的情况下不能对图书信息进行删除。也可以对读者信息进行添加、修改、删除等操作,在读者还有未归还的图书的情况下不能进行删除读者信息。
系统管理员主要进行图书管理员权限的设置、读者类别信息的设置、图书类别的设置以及罚款和赔偿标准的设置、数据备份和数据恢复等处理。
2. 处理对象
读者:读者编号,姓名,性别,所在单位,读者类型,类别编号,办证日期 ,借书总数
管理员:管理员编号,姓名,性别,住址,权限,登录口令,电话 出版社:出版社名,出版社编号,传真,E-mail ,电话
馆藏图书:图书条形码号,书号,图书名称,作者,出版社,单价, 入库时间,入库总数,分类,出版日期
借阅信息:书号,读者编号,图书名,作者,借阅日期,还书日期, 借书期限,超过时间,罚金.
借阅历史信息:书号,读者编号,图书名,作者,借阅日期,还书日期.,
罚款信息:读者编号,书号,图书名,借阅日期,还书日期,借书期限,超过时间, 罚款金额,处理状态,管理员编号 管理—图书:(删除图书,查询图书,修改图书,添加图书) 管理—读者:(录入新读者,删除读者,修改读者)
3. 数据流程图
数据流图
第一层数据流图
第二层数据流图
第三层数据流图 (1)
(2)
(3)
● 概念结构分析
1. 任务与目标
(1)选择中层数据流为切入点,通常选择实际系统中的子系统; (2)设计分E-R 图,即各子模块的E-R 图;
(3)生成初步E-R 图,通过合并方法,做到各子系统实体、属性、联系统一; (4)生成全局E-R 图,通过消除冲突等方面。
2. 阶段结果 分E —R 图
(1) 管理员—管理—图书
事物规则:一本图书可以被多个图书管理员管理(1:n )
一个图书管理员可以管理多本图书(1:n )
(2) 读者—借还—图书
事物规则:一个读者可以借还多本图书(1:n )
一个图书可以被多个读者借还(1:n )
(3)管理员—管理—读者
事物规则:一本图书管理员可以管理多个读者信息(1:n ) 一个读者信息可以被多个图书管理员管理(1:n )
(4) 管理员—罚款—读者
事物规则:一个图书管理员可以罚款多个读者信息(1:n ) 一个读者信息只能被一个图书管理员罚款(1:n )
(5) 图书—出版—出版社
事物规则:一个出版社可以出版多本图书(1:n )
一个图书只能被一个出版社(1:1)
总E —R 图
合并各分E-R图, 消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R 图,再消除不必要冗余,得到的基本E-R 图如下所示:
各E -R 图各实体的属性如下所示:
读者:(读者编号,姓名,性别,所在单位,读者类型,借书总数) 管理员:(管理员编号,姓名,性别,权限,登录口令,电话) 出版社:(出版社名,出版社编号,传真,E-mail ,电话, 地址)
书籍:(图书条形码号,书号,图书名称,作者,出版社,单价,入库时间,入库总数,分类,
出版日期)
各E -R 图中联系的属性如下所示:
出版:(出版社名,出版社编号,书号,图书名称) 借还:(书号,读者编号,图书名,借阅日期,还书日期. ) 罚款:(读者编号,书号,管理员编号,图书名,借阅日期,还书日期,借书期限,超过时间,
罚款金额,处理状态,罚金类别) 管理—图书:(管理员编号,书号,删除图书,查询图书,修改图书,添加图书) 管理—读者:(管理员编号,读者编号,录入新读者,删除读者,修改读者)
逻辑结构分析
逻辑设计的任务就是将概念设计阶段设计好的基本E-R 图转换为选用DBMS 产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R 图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
1.将E-R 图转换为关系模型
实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:
一个m :n 联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n 联系可以转换为一个独立的关系模式,也可以与n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n 端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 具有相同码的关系模式可合并。
由于读者类别与读者、馆室与图书的联系方式是1:n (一对多),可以将其之间的联系与n 端实体读者、图书合并,管理员与图书之间的维护联系也是1:n (一对多),同样也将其之间的联系与n 端实体合并,而读者与图书之间的借阅和归还联系方式则是n :m (多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m :n (多对多),将其联系也转化成独立的关系模式,具体的基本E-R 图向关系模型的转化如下:
读者(读者编号,姓名,性别,所在单位,读者类型,借书总数)
管理员(管理员编号,姓名,性别,权限,登录口令,电话) 出版社(出版社名,出版社编号,传真,E-mail ,电话, 地址)
书籍(图书条形码号,书号,图书名称,作者,出版社,单价,入库时间,入库总数,分类,出版日期)
出版(出版社名,出版社编号,书号,图书名称)
借还(书号,读者编号,图书名,借阅日期,还书日期. )
罚款(读者编号,书号,管理员编号,图书名,借阅日期,还书日期,借书期限,超过时间,
罚款金额,处理状态,罚金类别)
管理—图书(管理员编号,书号,删除图书,查询图书,修改图书,添加图书) 管理—读者(管理员编号,读者编号,录入新读者,删除读者,修改读者)
2. 模型优化
数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当的修改、调整数据模型的结构,这就是数据模型的优化。
1. 读者关系模式存在非主属性对主属性的部分函数依赖
读者(读者编号,姓名,性别,所在单位,读者类型,借书期限,借书总数) 函数依赖有: P (读者编号,读者类型)——>借书总数
F >借书总数 读者类型 ——
(读者编号,读者类型)——>借书期限
F >借书期限 读者类型 ——
所以:关系模式读者不属于2NF ,解决办法将关系模式读者分解为:
读者(读者编号,姓名,性别,所在单位)
读者类型(学生,教职工,借书总数,借书期限)
2. 关系模式不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF ,但是借还关系模式、罚款关系模式中存在着一些数据冗余,现将两个关系模型进行合并,消除冗余,优化为:
借还(书号,读者编号,图书名,管理员编号,图书名,借阅日期,还书日期,借书期限, 罚款金额,处理状态,罚金类别)
经过模式优化得到关系模式:
读者(读者编号,姓名,性别,所在单位)
读者类型(学生,教职工,借书总数,借书期限)
管理员(管理员编号,姓名,性别,权限,登录口令,电话)
出版社(出版社名,出版社编号,传真,E-mail ,电话, 地址)
书籍(图书条形码号,书号,图书名称,作者,出版社,单价,入库时间,入库总数,分类,出版日期)
出版(出版社名,出版社编号,书号,图书名称)
借还(书号,读者编号,图书名,管理员编号,图书名,借阅日期,还书日期,借书期限, 罚款金额,处理状态,罚金类别)
管理—图书(管理员编号,书号,删除图书,查询图书,修改图书,添加图书) 管理—读者(管理员编号,读者编号,录入新读者,删除读者,修改读者)
关系模式:
读者(读者编号,姓名,性别,所在单位)
管理员(管理员编号,姓名,性别,权限,登录口令,电话)
出版社(出版社名,出版社编号,传真,E-mail ,电话, 地址)
3. 设计用户子模式
将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合DBMS 的特点,设计用户模式的子模式。
我们利用视图这一功能设计符合局部用户需要的用户模式
小结:
1. 这次课程设计使我熟悉了系统设计的整体步骤。系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。
2. 这次课程设计加深了我对数据库系统概论相关知识和SQL SERVER相关功能的理解。例如对建立基本表、视图
3. 在课程设计的过程中也存在一些问题。由于需求分析阶段的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利。
4. 在课题设计的过程中,我们小组成员相互合作,根据个人的实际情况,课题的三个步骤,分为三部分三个人共同完成,一人为主,其余两个人辅助。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。