况。
某图书馆保存了一个文件,该文件每一个记录都包含了下述数据元:
(1)书名
(2)作者
(3)出版社
(4)出版社地址
(5)类别
(6)出版年份
图书馆馆长希望在获得决策信息方面有更多的灵活性。而现在文件不可能满足其要求。
经过与信息处理人员交换意见之后,他们决定实现一个基于
CODASYL 的数据库管理系统。
检查现有文件发现某些数据重复出现。每本书
(每一书名)都分别有一个记录。于是,写
过几本书的作者的名字在他写的每本书的记录中重复出现。在一个图书馆里可能有某出版社
出版的数百本,甚至数千本书,但是在该文件的每本书的记录中都重复地出现出版社名和
出版社地址。
2.设立数据库的步骤
设计数据库的方法之一是使用主题词一属性矩阵作为识别记录和这些记录之间关系的一
个辅助工具。以下各步骤描述了这种设计数据库的方法。
第一步,在的主题词一属性矩阵的左边列出了逻辑主题词。在本例中,这些主题词是:
书名、作者和出版社。在矩阵的顶端列出了所有可能的属性。属性是提供与主题词有关的信息
的任一数据元。
第二步:在属性与主题词之间的关系有一对一的,一对多的或者不存在关系。例如,一
特定书名只有一个出版社。所以在书名与出版社之间存在一对一的关系。然而,一个书名可
以有几个作者。因而,在书名与作者之间存在一对多的关系。用
“|”表示一对一关系,用
“M”表示一对多关系,而且空白表示无关系存在。
第三步:数据库记录类似于传统文件的记录,它是相关数据元的集合。可以将记录从数
据库中读出来,也可以将记录写到数据库中去。数据库记录也称为节段。在这一步,用主题
词-属性矩阵来标识记录。这是通过列出与每个主题词一对一关系的属性来实现的。通常,
对应每个主题都有一个记录,
“书名”记录包含出版社、出版年份和类别,如下所示:
第四步:数据库设计过程的下一步是建立记录之间的关系。图 20.6.11 给出主题-属性
矩阵中指出的一对多的关系。出版社与书名之间的一对多的关系是用两个记录之间的一条连
线来指出的,该连线有一箭头指向出版社记录。指向书名记录的两个箭头表示每个出版社可
以有一个以上的书名。这种出版社-书名的组合称之为一个系。其它的系是:书名
—作者、作
者
—出版社、作者—书名和出版社—作者。多对多的关系(每一端都有两个箭头)在处理时可
能会引起混淆,因而是不允许的。