图书馆数据库设计实验 - 王凯祺

下载需积分: 0 | PDF格式 | 451KB | 更新于2024-08-05 | 19 浏览量 | 0 下载量 举报
收藏
"16337233(王凯祺)数据库系统实验51" 在本次数据库系统实验中,王凯祺同学设计了一个图书馆的数据库模型,旨在模拟实际图书馆的管理需求。实验的主要目标是通过数据库设计工具,如PowerDesigner或ERwin,构建一个能够支持读者借阅、管理员管理的高效数据库系统。 1. 数据库概念结构设计 实验中识别了三个主要实体:读者(Reader)、管理员(Admin)和书本(Book)。这些实体以及它们的属性和关键字段如下: - **读者Reader**:包含读者学号(ID)、读者姓名(name)、性别(gender)、联系电话(phone)、所在系(department)、累计违章次数(penalty)、累计借书数(borrowed_book)和备注(remark)。主键是读者学号(ID)。 - **管理员Admin**:包括管理员工作号(ID)、姓名(name)、性别(gender)、电话(phone)、家庭地址(address)和备注(remark)。主键是管理员工作号(ID)。 - **书本Book**:原设计包含索书号(ID)、ISBN(ISBN)、分类(class)、书名(title)、作者(author)、出版社(press)、出版日期(publish_date)和简介(intro)以及备注(remark)。但由于存在同书多本的情况,导致ID→ISBN,remark,ISBN→class,title,author,press,publish_date,intro的函数依赖不满足第三范式(BCNF),因此书本实体被拆分为两个表。 - **书本Book**:只保留索书号(ID)、ISBN(ISBN)和备注(remark)。主键为索书号(ID)。 - **书籍信息BookInfo**:包含ISBN(ISBN)、分类(class)、书名(title)、作者(author)、出版社(press)、出版日期(publish_date)和简介(intro)。主键为ISBN(ISBN)。 2. 实体间的关系 - **借阅关系**:这是一个多对多对多的关系,即一个读者可以借阅多本书,一本书可以被多个读者借阅,而一次借阅操作可能涉及到多个管理员进行管理。 - **管理员与书本的关系**:管理员可以管理多本书,一本书可能由多个管理员管理。 - **管理员与读者的关系**:管理员可以管理多个读者,一个读者也可能被多个管理员管理。 这种关系设计考虑到了图书馆的实际操作,比如管理员可以处理读者的借阅请求,同时跟踪书籍的状态,确保图书的流通有序。 3. 数据库规范化 实验中对原始的Book实体进行了规范化处理,将具有函数依赖问题的部分分离出来,形成了Book和BookInfo两个表,这有助于减少数据冗余和提高数据一致性。通过这样的设计,可以有效避免更新异常和插入异常,保持数据库的整洁和高效。 这个图书馆数据库模型展示了如何运用数据库设计理论来解决实际问题,包括实体的定义、属性的选择、关系的建立以及规范化的应用,这些都是数据库系统设计中的核心知识点。

相关推荐