1.4 图书管理系统数据库设计

1.4.1 数据库概念设计说明

微课:图书馆管理信息系统数据库设计

对于基于结构化的数据库系统开发方法而言,数据库系统在完成需求分析之后应进入数据库系统的概念设计阶段,此阶段不仅需要进行数据库概念结构设计(也可简称数据库概念设计),即数据库结构特性设计,而且需要确定数据库系统的软件系统结构,进行模块划分,确定每个模块的功能、接口以及模块间的调用关系,即设计数据库行为特性。

1.概念结构主要特点

(1)概念模型是对现实世界的一个抽象描述。概念模型应能真实、充分地反映现实世界,能满足用户对数据的处理要求。

(2)概念模型应当易于理解。概念模型只有被用户理解后,才可以与设计者交换意见,参与数据库的设计。

(3)概念模型应当易于更改。由于现实世界(应用环境和应用要求)会发生变化,所以概念模型要易于修改和扩充。

(4)概念模型应易于向数据模型转换。概念模型最终要转换为数据模型。设计概念模型时应当注意,使其有利于向特定的数据模型转换。

2.数据库概念结构设计的方法

概念模型是数据模型的前身,它比数据模型更独立于机器、更抽象,也更加稳定。概念设计的方法有以下4种。

(1)自顶向下的设计方法。该方法首先定义全局概念结构的框架,然后逐步细化为完整的全局概念结构。

(2)自底向上的设计方法。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构的设计方法。

(3)逐步扩张的设计方法。此方法首先定义最重要的核心概念结构,然后向外扩充,生成其他概念结构,直至完成总体概念结构。

(4)自顶向下与自底向上相结合的方法。最常采用的策略是自顶向下与自底向上相结合的方法,即首先自顶向下地进行需求分析,然后再自底向上地设计概念结构,其方法如图1-4所示。其中,概念模式对应于概念模型。

图1-4 自顶向下的分析需求与自底向上设计概念结构

3.模块化设计

把大型软件按照规定的原则划分为一个个较小的、相对独立,但又相关的模块的设计方法,叫作模块化设计。模块是数据说明和可执行语句等程序对象的集合,每个模块单独命名并且可以通过名字访问模块。例如,过程、函数、子程序、宏等都可作为模块。模块化就是把程序划分成若干模块,每个模块完成一个子功能,并把这些模块集合起来组成一个整体,以完成指定的功能来满足问题的要求。

实现模块化设计的重要指导思想是分解、信息隐藏和模块独立性。

(1)分解

分解是指将一个待开发的软件分解成若干小的简单部分,即模块,每个模块可独立开发、测试,最后组装成完整的程序。

(2)信息隐藏

信息隐藏是指将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时,尽可能少地显露其内部的处理。

(3)模块独立性

模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。模块独立就是希望每个模块都是高内聚、低耦合的。

1.4.2 数据库概念建模——绘制ER模型

早期的数据库设计,在需求分析过程中会直接进行逻辑结构的设计。此时既要考虑现实世界的联系和特征,又要满足特定的数据库系统的约束要求,设计工作十分复杂。1976年,P·P·S·CHEN提出了概念模型和ER方法。

概念设计的目标是产生能够准确反映项目需求的数据库概念结构,在这个步骤中设计出独立于计算机硬件和数据库管理系统的概念模式。概念设计过程中对用户要求描述的现实世界(如一个学校)进行分类和高度概括,建立抽象的概念数据模型。这个概念模型应能反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各个部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。

整个过程中主要使用的设计工具就是 ER 模型。ER 方法即实体-联系方法,是直接从现实世界中抽象出实体与实体间的联系,然后用ER图来表示数据模型。

图书管理系统主要的实体有图书借阅者、图书、出版社、借阅信息等,实体间的关系包括:借阅者与图书的关系是借阅关系,图书馆工作人员与图书的关系是负责管理图书的关系、图书馆工作人员与借阅者的关系也是管理和被管理的关系,出版社与图书的关系是出版关系等。通过以上主要实体和实体间的关系,得出描述图书管理系统的ER图如图1-5所示。

图1-5 图书馆管理信息系统ER图

1.4.3 数据库逻辑建模——绘制关系模型

逻辑设计的目的是把概念设计阶段设计好的全局 ER 模型转换成与选用的数据库系统支持的数据模型相符合的逻辑结构。同时,可能还需要为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓的“逻辑数据库”。

1.逻辑设计环境

逻辑设计的输入输出环境如图1-6所示。

图1-6 逻辑设计环境

在逻辑设计阶段主要输入以下信息。

(1)独立于DBMS的概念模式。这是概念设计阶段产生的所有局部和全局概念模式。

(2)处理需求。需求分析阶段会进行需求的处理,此阶段会对业务活动进行分析,并产生结果,包括数据库的规模和应用频率、用户或用户集团的需求。

(3)约束条件。即完整性、一致性、安全性要求及响应时间要求等。

(4)DBMS特性。即特定DBMS支持的模式、子模式和程序语法的形式规则。

在逻辑设计阶段主要输出如下信息。

(1)DBMS可处理的模式。一个能用特定DBMS实现的数据库结构的说明,不包括记录的聚合、块的大小等物理参数的说明,但要对某些访问路径参数(如顺序、指针检索的类型)加以说明。

(2)子模式。与单个用户观点和完整性约束一致的DBMS支持的数据结构。

(3)应用程序设计指南。根据设计的数据库结构为应用程序员提供访问路径选择。

(4)物理设计指南。完全文档化的模式和子模式。在模式和子模式中应包括容量、使用频率、软硬件等信息。这些信息将在物理设计阶段使用。

2.ER模型向关系模型的转换

实体集转换的规则为:概念模型中的一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构就是关系模式。

ER 模型中的主要成分是实体类型和联系类型,ER 模型向关系模型的转换,可以按下面的说明进行。

对于实体类型,可以这样转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。

对于联系类型,就要视1:1、1:N和M:N三种不同的情况做不同的处理。

(1)若实体间的联系是1:1的,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。

例如,校长和学校间存在1:1的联系,即一个学校只有一个校长,一个校长也只负责一个学校的管理。如果用户经常要在查询学校信息时查询其校长的信息,那么可在学校模式中加入校长姓名和任职年月。

其关系模式设计如下。

学校模式(学校名称,地址,联系电话,校长姓名,任职年月)

校长模式(姓名,年龄,性别,职称)

(2)若实体间的联系是1:N的,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。

例如,出版社与图书间的关系是1:N,转换成关系模式如下。

出版社(出版社编号,出版社名称,出版社地址)

图书(图书编号,图书名称,出版社编号)

(3)若实体间的联系是M:N的,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。

例如,借阅者与图书的借阅关系为M:N,转换成关系模式如下。

借阅者(借书证号,姓名,可借数量)

图书(图书编号,图书名称,出版社编号)

借阅关系(借书证号,图书编号,借书日期,归还日期)

除将ER模型转换为关系模型,常用的数据模型还有层次模型和网状模型,无论采用哪种数据模型,都是先将ER模型形成数据库逻辑模式,再根据用户处理的要求及安全性的考虑,在基本表的基础上建立必要的视图,形成数据的外模式。

在逻辑设计阶段,还要设计出全部子模式。子模式是面向各个最终用户或用户集团的局部逻辑结构。子模式体现了各个用户对数据库的不同观点,它并不决定物理存放的内容,仅是用户的一个视图。另外,关系子模式除了指出某一类型的用户所用到的数据类型外,还要指出这些数据与模式中相应数据的联系和对应性。

1.4.4 数据库物理建模——设计表结构

为一个给定的逻辑数据模型选取最适合的应用环境的物理结构的过程,称为数据库的物理设计。数据库的物理结构主要指数据库在物理设备上的存储结构和存取方法。它完全依赖于给定的计算机系统的。

在物理结构中,数据的基本单位是存储记录。存储记录是相关数据项的集合。一个存储记录可以与一个或多个逻辑记录对应。在存储记录中,还应包括必要的指针、记录长度及描述特性的编码模式。也就是说,为了包含实际的存储格式,存储记录扩充了逻辑记录的概念。

文件是某一类型的所有存储记录的集合。文件的存储记录可以是定长的,也可以是变长的。物理数据库是存储在一起的一个或多个互相关联的数据的集合。因此,文件可看成是物理数据库的一个特例,即存储记录类型只有一个。一般用文件表示单记录类型的物理数据库。

1.物理设计的步骤

物理设计分5步来完成,前三步涉及物理数据库结构的设计,后两步涉及约束和具体的程序设计。

(1)存储记录结构设计

设计存储记录结构包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射。

在设计存储记录结构中,逻辑数据库结构并不改变,但可能要进行“记录分割”工作。根据“80/20规则”(即从数据库中检索的80%的数据由存储在20%的数据项组成)和访问数据的频繁程度,把数据项划分成“主要段”和“辅助段”,以便在存储安排时分配到不同的存储设备或存储区域上,尽可能地使应用程序访问数据库的代价最小。

(2)确定数据存储安排

从提高系统性能方面考虑,将存储记录作为一个整体合理地分配物理区域。利用记录聚簇(Cluster)技术,在可能的情况下充分利用物理顺序的特点,将不同类型记录分配到物理群中。

(3)访问方法设计

访问方法是给存储物理设备上的数据提供存储和检索的能力。一个访问方法包括存储结构和检索机构两部分。存储结构限定了可能访问的路径和存储记录;检索机构定义了每个应用的访问路径,但不涉及存储结构的设计和设备分配。

(4)完整性和安全性

物理设计时,同样需要分析系统的完整性、完全性等方面,并产生多种方案。在实施数据库之前,需要对这些方案进行细致的评价,从而选择一个较优的方案。

(5)程序设计

逻辑数据库结构确定以后,应用程序设计随之开始。从理论上说,数据库的物理数据独立性的目的是消除由于物理结构设计决策而引起的对应用程序的修改。但是,当物理数据独立性未得到保证时,可能会发生对程序的修改。

由于目前使用的数据库管理系统基本上都是关系型的,物理设计的主要工作都是由系统自动完成的,所以一般用户只需要关心索引文件的创建、如何使用数据定义语句建立数据库结构就可以了。

2.图书管理系统—设计表结构

根据前面需求分析、概念设计、逻辑设计和物理设计阶段的介绍,可以将图书馆管理信息系统的表结构设计为表1-2~表1-6。

表1-2 Bookinfo表

表1-3 Readerinfo表

续表

表1-4 Borrowreturninfo表

表1-5 Punishinfo表

表1-6 Clerkinfo表