图书管理系统数据库设计案例

合集下载

数据库系统实验报告4(简单图书馆管理数据库的实现)

数据库系统实验报告4(简单图书馆管理数据库的实现)

6
图书信息表:
2.还书后: 借阅信息表:
图书信息表:
备注: 1、表头及以下的栏目和内容,不得更改;其它栏目的位置可以适当调整,可以根据需要适当增加或减少 页。 2、本课程包含多次实验,请每次实验项目填写一份。
7
2
利用 sf_borrow,sf_return 进行借、还操作,并注意数据库中三个表的数据变化情况。 三、实验结果及分析 (一)创建数据库和数据表: 选择用企业管理器创建数据库、数据表
3
(二)数据相关操作: 1.查询:
2.删除:
4
删除后:
3.更新:
更新后:
(三)创建触发器、存储过程进行借还书操作: 1.针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 CREATE TRIGGER Insert_borrow ON dbo.借阅信息表 FOR INSERT AS begin update 图书信息表 set 状态=0 from Inserted i,图书信息表 t where t.书号=i.书号 end 2.针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。
作者 sql c++ ms java c# net
状态 1 1 1 1 1 1
借书证号 1 2 3
姓名 张三 李四 王五
住址 学三 学四 学五
并对这两个表进行删除、更新、和查询等操作 三、创建触发器、和存储过程进行借、还书操作 1) 针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 2) 针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。 3) 创建存储过程:sf_borrow,实现借书功能即:向借阅信息表进行插入操作,将书号、借书证 号,借书时间作为参数,并自动的将还书时间设置为借书时间后一个月。 4) 创建存储过程:sf_return,现实还书功能即:根据书号对借阅信息表进行删除操作,将书号 作为参数。

图书馆管理信息系统的数据库设计

图书馆管理信息系统的数据库设计

1 需求分析1.1系统目标大学图书馆管理信息系统为广大大学师生提供了便利的图书借阅服务。

本系统面向全体教职职工与学生,该系统根据不同的操作者,提供不同的服务,以实现图书管理系统的科学化、系统化、自动化,最大限度地为老师和学生提供方便和提供管理效率。

1.2功能分析图书馆管理信息系统的功能模块如图1.1所示。

图1.1 图书馆管理信息系统功能模块(1)读者管理1)新增读者。

新增读者时要求填写其基本的信息,包括读者号、密码、读者姓名、性别、读者类型、单位、电子邮箱等。

2)读者信息维护。

读者可以对自己的信息进行修改,图书管理员有权限对已有读者的信息进行修改和删除。

3)借阅历史查看。

注册的读者可以在网上查询自己的图书借阅情况,一般读者只可以查阅到自己的借阅情况和图书的信息,而图书管理员可以查看任何读者的信息、借阅情况、任何图书的信息和借阅情况。

(2)书籍管理1)新增书籍。

图书管理员对新增的入库文献资料按规定进行编目、编录、加工、建库。

对每本图书、杂志要登记其基本信息,包括图书名称、图书作者、ISBN号、出版地、出版社、出版时间、字数、单价、内容简介、所属分类号,馆藏地、入库时间等。

2)书籍信息维护。

图书管理员可以对入库的书籍信息进行修改,或是删除该书籍信息,如采购书籍册数。

3)书籍类别管理。

新增书籍按照中图法分类规则进行分类。

(3)借阅管理1)书籍借阅管理。

图书管理员根据不同类型读者的借阅情况,对书籍进行管理。

(4)查看1)书籍信息查询。

登陆本系统的读者或是图书管理员可以查看现有图书系统中任何书籍的信息。

2)读者信息查询。

一般的读者只能查看自己在该系统上的信息,如借阅的书籍等,而图书管理员可以查看任何读者的信息情况。

3)借阅信息查询。

读者或是图书管理员可以查看每本书籍的在图书馆的状态,是借阅中还是在馆藏地等。

1.3数据需求及业务规则分析(1)图书馆为全校的学生和教职工提供图书借阅服务,学生分为高职生、本科生(含一本、二本、三本)、硕士研究生(含MBA)和博士研究生等多种层次。

图书管理系统数据库设计-MYSQL实现

图书管理系统数据库设计-MYSQL实现

图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。

一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。

2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息。

2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。

3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。

4.学生直接归还图书,根据图书编码修改借阅信息5.管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6.管理员可以注销学生信息。

通过需求定义,画出图书管理系统的数据流图:数据流图二、系统功能设计三、数据库设计方案图表1、系统E-R模型总体E-R图:管理员E-R图:给出设计的表名、结构以及表上设计的完整性约束。

student:book:book_sort:borrow:存储学生的借书信息return_table:存储学生的归还信息ticket:存储学生的罚单信息manager:3、设计索引给出在各表上建立的索引以及使用的语句。

student:1.为stu_id创建索引,升序排序sql:create index index_id on student(stu_id asc);2.为stu_name创建索引,并且降序排序sql:alter table student add index index_name(stu_name, desc);插入索引操作和结果如下所示:mysql> create index index_id on student(stu_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> alter table student add index index_name(stu_name desc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql>book:1.为book_id创建索引,升序排列sql:create index index_bid on book(book_id);2.为book_record创建索引,以便方便查询图书的登记日期信息,升序:sql:create index index_brecord on book(book_record);插入索引的操作和结果如下所示:mysql> create index index_bid on book(book_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> create index index_brecord on book(book_record);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0borrow:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on borrow(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid on borrow(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0return_table:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on return_table(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid_r onreturn_table(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket:1. 为stu_id和book_id创建多列索引:sql:create index index_sid_bid on ticket(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create index index_sid_bid on ticket(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0manager:1.为manager_id创建索引:sql:create index index_mid on manager(manager_id);插入索引的操作和结果如下所示:mysql> create index index_mid on manager(manager_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 04、设计视图给出在各表上建立的视图以及使用的语句。

图书管理系统数据库设计

图书管理系统数据库设计

图书管理系统数据库设计1. 引言图书管理系统是一个用于管理图书馆馆藏图书的软件系统。

它提供了图书的借阅、归还、查询等功能,方便读者进行图书借阅和图书馆管理员进行图书管理。

本文档将介绍图书管理系统的数据库设计。

通过组织图书、读者、借阅记录等相关数据,实现图书管理系统的各项功能。

2. 数据库设计2.1 数据库结构图书管理系统的数据库主要包含以下几个表:•图书表(books):存储图书的基本信息,如图书编号、名称、作者、出版社等。

•读者表(readers):存储读者的基本信息,如读者编号、姓名、性别、年龄等。

•借阅记录表(borrow_records):存储图书的借阅记录,包括借阅编号、借阅日期、归还日期、读者编号等。

2.2 数据库字段2.2.1 图书表(books)•book_id:图书编号,主键•book_name:图书名称•author:作者•publisher:出版社•publication_date:出版日期•price:价格2.2.2 读者表(readers)•reader_id:读者编号,主键•reader_name:读者姓名•gender:性别•age:年龄•phone:联系电话2.2.3 借阅记录表(borrow_records)•record_id:借阅记录编号,主键•book_id:借阅图书编号,外键•reader_id:借阅读者编号,外键•borrow_date:借阅日期•return_date:归还日期2.3 数据库关系•图书表与读者表之间是多对多的关系,通过借阅记录表进行关联。

•图书表与借阅记录表是一对多的关系,一个图书可以对应多条借阅记录。

•读者表与借阅记录表也是一对多的关系,一个读者可以借阅多本图书。

2.4 数据库约束•图书编号(book_id)在图书表中是唯一的,不能重复。

•读者编号(reader_id)在读者表中是唯一的,不能重复。

•借阅记录编号(record_id)在借阅记录表中是唯一的,不能重复。

数据库设计范例—图书管理系统

数据库设计范例—图书管理系统

第10章图书管理系统数据库设计实例通过前面章节对数据库基础知识的学习,本章将通过一个图书管理系统的数据库设计实例来重点讲述如何设计数据库。

在设计数据库的过程中应该遵循哪些设计原则及技巧。

通过本章的数据库实例设计,要求对数据库的整体过程有个概念性的理解,并能通过所学知识,在具体的开发环境下设计一个较优化数据库并实现设计过程。

10.1 数据库设计原则及技巧10.1.1数据库设计原则随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。

数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。

因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。

只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。

虽然对于小项目或中等规模的项目,开发人员可以很容易地利用范式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。

1. 设计原则在设计数据库时,至关重要的工作就是要理解为之建模的业务职能和表示这些业务职能的数据库概念及功能,并能准确地设计数据库,进而建立优化的业务模型。

因为数据库的设计在整个系统中是至关重要的一步,一旦数据库设计完成,在进行修改及优化就需花费大量的时间。

因此,再设计数据库时,应考虑以下事项:1)规范命名。

所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。

2)控制字段的引用。

在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。

采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。

3)库表重复控制。

在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。

通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。

图书管理系统数据库设计示例

图书管理系统数据库设计示例

图书管理系统数据库设计示例第一篇:图书管理系统数据库设计示例图书管理系统数据库设计一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。

此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。

一、需求分析针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:1.读者信息属性:读者学号,读者姓名,读者性别,联系电话,所在系,生效日期,失效日期,违章状况,累计借书,备注主键:读者学号2.书籍信息属性:ISBN,书名,作者,出版社,出版日期,简介,备注主键:ISBN 3.管理员信息属性:工作号,姓名,性别,电话,家庭住址,备注主键:工作号数据流程通过对系统的调查和可行性分析,画出系统的数据流程图:1.读者学生对图书管理系统的要求有:1)能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。

2)能够方便地借阅图书、续借图书、归还图书3)能够查询自己的基本资料、图书情况4)能够熟悉图书管理系统的使用。

读者进入系统工作的流程为:注册→查询→修改信息→借阅续借→图书归还→注销2.图书管理员他们对图书管理系统的要求有:1)能方便的对图书进行录入登记,注销陈旧的书籍。

2)能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。

3)能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。

图书管理员工作的流程为::注册→录入图书→录入新生→注销图书→注销学生→注销→修改个人信息→超期处理二、概念模型设计数据库需要表述的信息有以下几种:1.读者信息2.书籍信息3.管理员信息4.读者与书籍之间的关系(借阅关系E-R图)5.管理员与书籍之间的关系(管理员_书籍E-R图)6.管理员与学生之间的关系(管理员_学生 E-R图)三、逻辑设计从理论‘E/R模型’到理论‘关系模型’的整理转换,通过E/R模型到关系模型的转化,可以得到如下关系模式:借阅关系属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。

实验十一 图书管理系统数据库设计

实验十一  图书管理系统数据库设计

注销
图3-1
学生的操作流程
(2)管理员 管理员可完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还的确认,其 操作流程如图3-2 所示。 登录
书籍信息维护
学生信息维护
借阅图书确认
归还图书确认
注销
图3-2 2、概念模型设计
管理员操作流程
数据库需要表述的信息有以下几种: (1)图书信息 (2)学生信息 (3)管理员信息 (4)学生预定图书信息 (5)学生借阅还图书信息 说明: 1)书号是图书的键码,每本书有唯一的书号。一个学生可同时借阅多本书。一个管理员可 处理多个同学的借阅等事宜。 2)一般情况下,学生、管理员和图书之间的联系为1:1:n,借书关系Lend作为连接关系, 其键码为n端实体集的键码,即书号为借书关系的键码。这反映了如果还书时也把当初的借 书记录删除,则书号就能唯一识别一个元组。 如果在不删除借书记录的情况下,同一学生再次借同一本书,这时,学生、管理员和图 之间的联系变为m:p:n,于是,借书关系的键码为书号、学号和管理员号的组合。但这里有一 个隐含的信息, 即同一学生前后两次借同一本书所遇到的管理员不同, 而这种不同可能仅仅 是“ 日期”不同。因此,借书日期成了必不可少的成分,也就是说,在这种情况下,属性全集 才是借书关系的键码。 总之,借书关系的键码与图书管理模式有关,读者可按照自己的理解确定键码,并编写 相应的事务处理流程。其他关系也有类似之处。 3)要知道图书当前的状态,是在图书馆存放,还是被借阅等,需要在Book的模式中增加对 应项用以表示图书当前的状态。 比如我们增加State, 并且约定取值和状态的对应关系如下: 0:在图书馆中并且没有被预定 1:在图书馆中并且已被预定 2:被借出并且没有被预定 3:被借出并且已被预定 用E-R模型表达该模型的设计,画出E-R模型如下: 3、逻辑设计 通过E-R模型到关系模型的设计,请写出关系模式: (实体或属性的英文可以自取) 4、物理设计 为了提高在表中搜索元组的速度, 在实际实现的时候应该基于键码建立索引。 下面是各 表中建立索引的表项: (1)在书表中按书号建立索引 T-SQL语句: (2)在学生表中按学号建立索引 T-SQL语句: 5、用T-SQL实现设计 (1)建立数据库表 1) 建Book(图书信息) 表(同2) 时定义约束) T-SQL: 2) 建Student(学生信息)表(同4) 时定义约束) T-SQL:

图书馆管理信息系统的数据库设计共16页文档

图书馆管理信息系统的数据库设计共16页文档

图书馆管理信息系统数据库设计1 需求分析1.1系统目标大学图书馆管理信息系统为广大大学师生提供了便利的图书借阅服务。

本系统面向全体教职职工与学生,该系统根据不同的操作者,提供不同的服务,以实现图书管理系统的科学化、系统化、自动化,最大限度地为老师和学生提供方便和提供管理效率。

1.2功能分析图书馆管理信息系统的功能模块如图1.1所示。

图1.1 图书馆管理信息系统功能模块(1)读者管理1)新增读者。

新增读者时要求填写其基本的信息,包括读者号、密码、读者姓名、性别、读者类型、单位、电子邮箱等。

2)读者信息维护。

读者可以对自己的信息进行修改,图书管理员有权限对已有读者的信息进行修改和删除。

3)借阅历史查看。

注册的读者可以在网上查询自己的图书借阅情况,一般读者只可以查阅到自己的借阅情况和图书的信息,而图书管理员可以查看任何读者的信息、借阅情况、任何图书的信息和借阅情况。

(2)书籍管理1)新增书籍。

图书管理员对新增的入库文献资料按规定进行编目、编录、加工、建库。

对每本图书、杂志要登记其基本信息,包括图书名称、图书作者、ISBN号、出版地、出版社、出版时间、字数、单价、内容简介、所属分类号,馆藏地、入库时间等。

2)书籍信息维护。

图书管理员可以对入库的书籍信息进行修改,或是删除该书籍信息,如采购书籍册数。

3)书籍类别管理。

新增书籍按照中图法分类规则进行分类。

(3)借阅管理1)书籍借阅管理。

图书管理员根据不同类型读者的借阅情况,对书籍进行管理。

(4)查看1)书籍信息查询。

登陆本系统的读者或是图书管理员可以查看现有图书系统中任何书籍的信息。

2)读者信息查询。

一般的读者只能查看自己在该系统上的信息,如借阅的书籍等,而图书管理员可以查看任何读者的信息情况。

3)借阅信息查询。

读者或是图书管理员可以查看每本书籍的在图书馆的状态,是借阅中还是在馆藏地等。

1.3数据需求及业务规则分析(1)图书馆为全校的学生和教职工提供图书借阅服务,学生分为高职生、本科生(含一本、二本、三本)、硕士研究生(含MBA)和博士研究生等多种层次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

确定完整性约束(续)
电子信箱的格式应为“xxx@xxx.xxx”格式。 图书表中出版时间要早于入库时间,语言取值
范围为:{中文,外文}、借出状态、图书种类、 图书类别、所在分馆。 用户表权限的取值范围为{0, 1},取值0表示普 通读者,取值1表示管理员。 借阅表中“借阅日期”大于图书表中“入库时 间”,小于“应还日期”和“归还日期”, “能否续借”的取值首先要参照借阅类型表中 “续借时间”,如果“续借时间”为0,则“能 否续借”值为F,否者“能否续借”初始值为T。 如果借阅表中“归还日期”大于“应还日期”,
读者类型:类型号、类型名称 读者和读者类型间存在多对一的联系
对每种借阅类型和每种读者,借阅册数、期
限、是否可续借、续借周期等不同
用图书种类和读者类型之间的联系表示
读者是否可继续借阅?
可以为读者实体添加一个属性:能否借阅,表示
读者是否可以继续借阅;
不同借阅类型超期后的罚款额度?
实体联系图转换为关系表(续)

用户表比较特殊:
用户表:用户名、密码、权限。 其中,用户名和读者号对应,但是也有一些用
户名没有和读者号对应,这些用户名表示管理 员。
优 化


为了减少读者表中的冗余,将读者表分解为: 读者表:读者编号、姓名、性别、类型、单位 号、电子信箱、能否借阅。 单位表:单位号、单位名称、联系电话。 为了减少图书中的冗余,将图书表分解为: 图书表:图书编号、名称、作者、ISBN号、 出版社号、出版时间、字数、单价、内容简介、 所属分类号、入库时间、语言、借出状态、图 书种类、图书类别、所在分馆。 出版社表:出版社号、出版社名称、出版地。 分解前后该表分别属于第几范式?


对每种借阅类型和读者,其借阅册数、借期、是 否允许续借、续借期限等不同。不同借阅种类和 借阅对象的借阅要求规定如附1所示。
例如:本专科学生可以借中文图书5本,
借期3”的概念是相对的,一本新书在上架(或 入库)后的60天内只提供短期外借,此后即自动 地成为中文图书或者外文图书。 借出的图书不能在当天归还。
实体-联系图(续)

确定实体的属性:
读者:读者编号、姓名、性别、类型、单位、
电子信箱,其他?
图书:名称、作者、ISBN号、出版地、出版
社、出版时间、字数、单价、内容简介、所属 分类号、入库时间,其他?
分馆:编号、名称、联系电话、馆址 图书类别:分类号、分类名称

确定联系的属性:
借阅:借阅日期
检查是否支持各种应用(续)

如何让新书在一定的期限后自动成为中文图书 和外文图书?
新书变成中文图书还是外文图书主要看新书
的语言,如果是中文,则过期后变成中文图 书,否则便成外文图书。
需要在图书实体中增加一个属性:语言。

如何支持图书借出状态的察看?
为了方便查看图书是否已借出,可以在图书
中增加属性:借出状态。


图书的归还遵循属地原则,即从哪个分馆借出的 图书必须要在那个分馆中归还。 图书馆管理员有权更改图书到期时间,比如将本 来暑假到期的图书的到期时间改为9月10日。 读者可以在网上查询自己的图书借阅情况,一般 读者只可以查阅到自己的借阅情况和图书的信息, 而管理员可以查看任何读者的信息、借阅情况, 任何图书的信息和借阅情况。
出版地、出版社、出版时间、字数、单价、内容
简介、所属分类号等,其中,图书分类按照中图
法分类规则进行分类。中图法分类简表见后。

学校有三个校区,相应地,馆藏分布于三个分馆 中:A图书馆(侧重于经济管理、综合类)、B图 书馆(侧重于理工、计算机类)和C图书馆(侧 重于法学、外语、体育、艺术、音乐等方面)。 图书馆中每种图书可能采购多册,分布在多个馆 中。全校师生可以在任何一个分馆中借阅。 每个分馆中的图书借完为止,如本部图书馆有某 图书1本,这本图书借出后,在归还之前,本部图 书馆中就查阅到该图书为借出状态,而且,馆藏 已空,但是读者可以到其他馆中借阅。
某图书的馆藏情况?
图书分为中文图书、外文图书、新书
表示为图书的一个属性还是图书和图书种类的联
系?
图书种类:图书种类号、种类名称 图书和图书种类之间存在多对一的联系!
类似地,读者分为教师、研究人员/非教研人
员(含离退休人员)/博士研究生/硕士研究 生(含MBA)/本专科学生(含高职生)


结(续)
实体间的联系:
读者类型 1 属于 n 读者 1 属于 m 借阅 n m 借阅 类型 n 图书种类 1 属于 n 图书 n 分类 n 属于 1 分馆
n
用户
1
图书类别
检查是否支持各种应用


如何支持图书馆管理员更改部分图书的到期时间? 更改借阅期限?会影响到所有图书! 比较灵活的方法是在借阅联系中增加属性:应 还日期,每册图书的应还日期根据图书种类和 读者类型以及借阅日期计算出来,要更改某些 图书的到期时间,只需更改该属性即可! 如何支持续借? 读者不一定可以续借,是否可以续借不仅取决 于图书种类,也取决于读者是否已经续借过该 册书。 需要在借阅联系中设置一个属性:能否续借?
检查是否包含了所有必需的信息?
图书分为中文图书、外文图书、新书。 对每种借阅类型和每种读者,借阅册数、期限、
是否可续借、续借周期等不同。
读者是否可继续借阅,是否可续借? 不同借阅类型超期后的罚款额度? 读者是否应缴纳罚款?缴纳多少罚款? 一本具体的图书所在的分馆?
用户的用户名和密码?
优 化

简化借阅类型表:
借阅类型表:读者类型、图书种类、借阅册数、
借期、续借时间。
若续借时间为0,则表示不允许续借。
确定完整性约束



确定实体完整性约束 借阅表:读者编号、图书编号、借阅日期、 应还日期、归还日期、能否续借。 主键是什么? 其他(略) 参照完整性约束 略 用户定义完整性约束 数据类型约束。 数据长度、精度约束。 取值范围约束。
实体联系图转换为关系表

实体转化为单独的一张表 读者表:读者编号、姓名、性别、类型、单位、电子 信箱、能否借阅。 图书表:图书编号、名称、作者、ISBN号、出版地、 出版社、出版时间、字数、单价、内容简介、所属分 类号、入库时间、语言、借出状态。 分馆表:编号、名称、联系电话、馆址。 图书类别表:分类号、分类名称。 读者类型表:类型号、类型名称。 图书种类表:图书种类号、种类名称、罚款金额。 用户表:用户名、登录密码、权限。
给图书种类添加一个属性:罚款金额(每册每天) 图书种类:图书种类号、种类名称、罚款金额
读者是否应缴纳罚款?缴纳多少罚款?
如果所有图书在期限内归还,则无需缴纳罚款;
类似,罚款金额需要根据超期天数以及图书种类 确定
需要给借阅联系添加属性“归还日期”!
一本具体的图书所在的分馆?
几册相同的图书(即ISBN号相同)可能在不同

请你设计一个数据库,并确定要满足的各种约束,
使得其中:
保存了所需的所有信息;
支持图书管理的各种应用;
尽可能地优化:减少冗余、提高查询速度。

画实体-联系图。
将实体-联系图转换为关系表。
实体-联系图


寻找实体集: 读者 图书 分馆 图书类别 其他? 寻找实体集之间的联系: 读者和图书之间的多对多联系:借阅 图书和分馆之间的多对一联系:馆藏 图书和图书类别之间的多对一联系:分类
确定完整性约束(续)
借阅表中“归还日期”如果非空,则应大于
“借阅日期”。
其他:如默认值、空值等等。 还有其他约束吗?
进一步的思考

在这种数据库模式下,能否检测得到某一读者所 借图书数量是否超过范围?可以如何改进?

这些关系表达到了第几范式?
用户的用户名和密码?
用户和读者的关系? 需要用户实体集。 对于读者而言,可否直接加入一个属性“密码”
来表示这部分信息?请思考。
不同的用户有不同的权限。 用户:用户名、登录密码、权限。 用户和读者之间存在联系,这是什么样的联系?



实体: 读者:读者编号、姓名、性别、类型、单位、 电子信箱、能否借阅 图书:图书编号、名称、作者、ISBN号、出 版地、出版社、出版时间、字数、单价、内 容简介、所属分类号、入库时间 分馆:编号、名称、联系电话、馆址 图书类别:分类号、分类名称 读者类型:类型号、类型名称 图书种类:图书种类号、种类名称、罚款金 额 用户:用户名、登录密码、权限
数据库设计案 例之一
——图书管理数据库的设计
现在要求为某学校图书馆设计一个图书管理系统的数据库, 背景如下:

该学校是一所多学科、多层次大学,学校有高职生、本 科生(含一本、二本、三本)、硕士研究生(含MBA) 和博士研究生等多种层次的学生,图书馆为全校学生和 教职工提供图书借阅服务。 图书馆按照图书的性质(中文图书、外文图书、新书) 将借阅分为不同的借阅种类:中文图书借阅、外文图书 借阅和(新书)短期外借;不同的读者对象也有不同的 借阅要求。

每次借阅后读者最多可以续借一册图书一次。

在本馆所借的文献资料,均应在规定的期限内 按时归还。逾期不还者,将分别按以下规定处 理:
中文图书借阅:每册每天罚款0.2元。
新书借阅和外文图书借阅:每册每天
罚款0.5元。
在超期图书归还并缴清罚款之前,读
者不可借阅图书;超期图书也不能续 借。

对于超期的图书,图书管理系统将自动向读者 电子邮箱中发一封电子邮件催还图书。

每个读者都要有一个编号,并记录读者的姓名、
性别、类型(学生、教师等)、单位、电子信箱
等。

图书馆采编部负责对入库的文献资料按规定进行 编目、著录、加工、建库。对每本图书、杂志, 要记录其基本信息,如名称、作者、ISBN号、
相关文档
最新文档