-1

我必须从这个案例中得出增强的实体关系建模:

佐治亚理工图书馆 (GTL) 拥有大约 16,000 名成员、100,000 种图书和 250,000 册(平均每本书 2.5 册)。任何时候都有大约 10% 的书被借出。图书馆员确保会员想借的书在会员想借的时候随时可用。此外,图书馆员必​​须知道在任何给定时间每本书有多少本在图书馆内或在外借。在线提供书籍目录,按作者、标题和学科领域列出书籍。对于图书馆中的每个标题,目录中都保存了一个书籍描述,从一个句子到几页不等。当成员请求有关书籍的信息时,参考图书馆员希望能够访问此描述。图书馆工作人员包括主任馆员、部门副馆员、参考馆员、

书籍可以借出 21 天。会员一次只能拿出五本书。会员通常会在三到四个星期内归还书籍。大多数成员都知道在向他们发送通知之前他们有一周的宽限期,因此他们会尝试在宽限期结束之前归还书籍。大约 5% 的会员必须被提醒归还书籍。大多数逾期图书会在到​​期日后的一个月内归还。大约 5% 的逾期图书要么被保留,要么永不归还。图书馆最活跃的成员被定义为一年中至少借书十次的人。前 1% 的成员分担 15% 的借款,前 10% 的成员分担 40% 的借款。

要成为图书馆的会员,申请人需要填写一份表格,其中包括他们的 SSN、校园和家庭邮寄地址以及电话号码。图书馆员发行一张带有编号的机器可读卡片,上面印有会员的照片。这张卡可以用四年。卡到期前一个月,会向会员发送更新通知。该研究所的教授被认为是自动成员。当一名新教员加入研究所时,他或她的信息会从员工记录中提取出来,并将一张借书证邮寄到他或她的校园地址。教授可以每隔三个月检查一次书籍,并有两周的宽限期。给教授的续约通知会发送到他们的校园地址。

图书馆不借出一些书籍,如参考书、善本、地图等。图书馆员必​​须区分可以借出的书和不能借出的书。此外,图书馆员还列出了一些他们有兴趣获得但无法获得的书籍,例如稀有或绝版的书籍以及丢失或毁坏但尚未更换的书籍。图书馆员必​​须有一个系统来跟踪无法借出的书籍以及他们有兴趣获得的书籍。有些书可能有相同的标题;因此,标题不能用作识别手段。每本书都有其国际标准书号 (ISBN),这是分配给所有书籍的唯一国际代码。如果两本书使用不同的语言或具有不同的装订(精装或平装),则具有相同标题的两本书可以具有不同的 ISBN。同一本书的版本具有不同的 ISBN。建议的数据库系统必须设计为跟踪成员、书籍、目录和借阅活动。

绘制图书馆数据库的 EER 图。

**我的问题:1)主要实体是书籍,员工,会员,借阅。借用和会员之间的关系是什么?

2)“图书馆活跃会员的定义是在一年中至少借书十次的人。前1%的会员借阅15%,前10%的会员借阅40% 。” 是否有必要对会员和活跃会员进行建模?

3)员工和借款之间的关系是一对多对吗?

4)谁会为会员发送通知。我们可以认为它是工作人员吗?**

5)借款与员工的关系是什么?我认为工作人员需要检查规则。

4

2 回答 2

1

以下是我对您的问题的回答。

  1. 已借书状态。一个会员可以借很多书。一本书一次可以被零个或一个成员借阅。

  2. 会员借书数是每个会员借阅的每一本书的计数,暗示有一个BookBorrowed表,其中有一个会员ID和一个图书ID组合键。

  3. Staff 和 BookBorrowed 之间没有关系。工作人员可以将书籍的状态从内部更改为已借阅,或将已借阅更改为内部。只有会员可以借书。工作人员也可以是成员。

  4. 为维护数据库而构建的计算机系统。需要有屏幕和报告,以便员工可以完成工作。

  5. 与 3 相同。

您需要将实体从您的描述中剔除并制作表格。我看到的实体是:

  • 成员

员工信息决定了谁可以访问系统的各种功能。

  • 买一本书
  • 将一本书添加到图书馆
  • 看一本书
  • 签入一本书
  • 从图书馆中删除一本书
  • 添加成员
  • 移除成员
  • 发送会员续订

不同的工作人员可以访问不同的功能。图书馆助理可能无权访问任何这些功能。馆长可以使用所有这些功能。最后两个功能可能是由计算机系统完成的,而不是图书馆员。

所以,让我们回到实体表。

我们知道一本书具有以下属性

Book
----
Book ID
ISBN
Title
Status (in-house, borrowed, uncirculated, desired)
Publication Date
Publisher
...

我们稍后会确定 Book ID。现在,把它想象成一本没有书本特征的书的唯一钥匙。这就是为什么 ISBN 是一个属性,而不是键。ISBN 可能会被索引为搜索值。

我们也知道一本书可以有多个作者。

Author
------
Author ID
Author Name

一本书可以有很多作者,一个作者可以有很多书。这种多对多关系需要一个联结表

AuthorBook
----------
Author ID
Book ID

主键是(作者 ID,书籍 ID)。(图书 ID、作者 ID)上还有一个唯一索引。这允许您查询作者的书籍或书籍的所有作者。

我们还需要一个成员表

Member
------
Member ID
Member Name
Member Address
Date Joined
Date Membership Expires
Faculty Flag
...

由于 Member 和 Book 之间的关系是多对多的,我们需要(ta-da)另一个连接表。

MemberBook
----------
Member ID
Book ID
Checked Out Date
Return Date
...

此联结表具有不属于该成员且不属于该书的属性。它们属于会员-图书关系。

通常,表 ID 可以是 UUID 或递增整数或长整数。表 ID 的重要之处在于它没有任何意义,除了关联不同表中的行。

我认为这是足以让您入门的信息。乔治亚理工学院花了数年时间才制定出他们的图书馆数据库架构。预计要花几个月的时间才能做到这一点。

于 2015-12-23T18:31:39.670 回答
0

1)一对多

2)“图书馆活跃会员的定义是一年中至少借书十次的人。前1%的会员借阅15%,前10%的会员借阅40% 。” 是否有必要对会员和活跃会员进行建模?我认为不需要。

3) 是的

4)我不知道。如果你找到答案,请尽快写信。

于 2015-12-23T17:50:37.487 回答