第4章 数据库设计基础
一、数据库系统的基本概念
1数据、数据库、数据库管理系统
(1)数据
①定义:数据是描述事物的符号记录。
②分类
a.临时性数据
b.持久性数据
③数据的结构
a.类型
b.值
(2)数据库
数据库是数据的集合,具有统一的结构形式并存放在统一的存储介质,是多种应用数据的集成,并可被各个应用程序所共享。
(3)数据库管理系统
①定义
数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
②数据库管理系统的功能
数据库管理系统是数据库系统的核心,它主要有如下几方面的具体功能:
a.数据模式定义
负责为数据库构建模式,即为数据库构建其数据框架。
b.数据存取的物理构建
负责为数据模式的物理存取及构建提供有效的存取方法与手段。
③数据操纵
提供查询、插入、修改以及删除数据的功能。还具有做简单运算及统计的能力,可以与某些过程性语言结合,使其具有强大的过程性操作能力。
④数据的完整性、安全性定义与检查
数据的完整性是保证数据库中数据正确的必要条件,数据共享可能引发数据的非法使用,必须在数据使用时作必要检查,完整性和安全性的维护是数据库系统的基本功能。
⑤数据库的并发控制与故障恢复
数据库能为多个应用程序服务,存在应用程序对数据库的并发操作。
⑥数据的服务
数据库管理系统提供对数据库中数据的多种服务功能,如数据拷贝、转存、重组、性能监测、分析等。
⑦数据库管理系统提供的数据语言:
a.数据定义语言
负责数据的模式定义与数据的物理存取构建。
b.数据操纵语言
语言负责数据的操纵,包括查询及增、删、改等操作。
c.数据控制语言
负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。
⑧数据语言的两种结构形式:
a.交互式命令语言
语言简单,能在终端上即时操作,又称为自含型或自主型语言。
b.宿主型语言
一般可嵌入某些宿主语言(Host Language)中,如C/C++、Java和COBOL等高级过程性语言中。
⑨SQL(结构化查询语言)是一种介于关系代数和关系演算之间的非过程性操作语言,不仅具有丰富的查询功能,还兼具数据定义和数据控制功能。此外,数据库管理系统还有为用户提供服务的服务性(Utility)程序,包括数据初始装入程序、数据转存程序、性能监测程序、数据库再组织程序、数据转换程序、通信程序等。
(4)数据库管理员(DBA)
①数据库管理员是对数据库的规划、设计、维护、监视等进行专业管理的人员。
②数据库管理员的主要工作:
a.数据库设计
b.数据库维护
c.改善系统性能,提高系统效率
(5)数据库系统
数据库系统由数据库、数据库管理系统、数据库管理员、硬件平台、软件平台构成一个以数据库为核心的完整的运行实体。
①硬件平台
a.计算机
b.网络
②软件平台
a.操作系统
b.数据库系统开发工具
为开发数据库应用程序所提供的工具,包括过程性程序设计语言如C/C++、Java等,也包括可视化开发工具VB、PB、Delphi等,它还包括与Internet Web有关的 HTML及XML等以及一些专用开发工具。
c.接口软件
在网络环境下数据库系统中数据库与应用程序,数据库与网络间存在着多种接口,这些接口软件包括ODBC、JDBC、OLEDB、CORBA、COM、DCOM等。
(6)数据库应用系统
数据库应用系统由:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面组成。应用软件是由数据库系统所提供的数据库管理系统(软件)及数据库系统开发工具所书写而成,而应用界面大多由相关的可视化工具开发而成。数据库应用系统的结构如图4-1所示。
图4-1 数据库系统的软硬件层次结构图
2数据库系统的发展
(1)文件系统阶段
数据库系统发展的初级阶段,提供了简单的数据共享和数据管理能力,无法提供完整的、统一的、管理和数据共享的能力。附属于操作系统而不成为独立的软件,不是真正的数据库系统。
(2)层次数据库与网状数据库系统阶段
为统一管理与共享数据提供了有力支撑,这两种系统存在的主要不足是它们完全脱胎于文件系统,受文件的物理影响很大,对数据库使用带来诸多不便,且数据库模式构造繁琐,不宜于推广使用。
(3)关系数据库系统阶段
结构简单,使用方便,逻辑性强物理性少,由于该系统源于商业应用,适合事物处理领域而对非事务处理领域应用受到限制。
关于数据管理三个阶段中的软硬件背景及处理特点如表4-1所示。
表4-1 数据管理三个阶段的比较
(4)数据库诸多新技术中比较重要的三个方面
①面向对象数据库系统
用面向对象方法构筑面向对象数据模型,使其具有比关系数据库系统更通用的能力。
②知识库系统
用人工智能中的方法,特别是用谓词逻辑知识表示方法构筑数据模型,使其模型具有特别通用的能力。
③关系数据库系统的扩充
利用关系数据库作进一步扩展,使其在模型的表达能力与功能上有进一步的加强。
3数据库系统的基本特点
(1)数据的集成性
数据库系统的数据集成性主要表现在如下几个方面:
①采用统一的数据结构方式;
②按照多个应用的需要组织全局的统一的数据结构(即数据模式),数据模式可建立全局的数据结构,还可以建立数据间的语义联系,从而构成一个内在紧密联系的数据整体;
③数据模式是多个应用共同的、全局的数据结构,而每个应用的数据则是全局结构中的一部分,称为局部结构,这种全局与局部的结构模式构成了数据库系统数据集成性的主要特征。
(2)数据的高共享性与低冗余性
由于数据的集成性使得数据可为多个应用所共享,数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。
数据的一致性是指在系统中同一数据的不同出现应保持相同的值;数据的不一致性指的是同一数据在系统的不同拷贝处有不同的值。因此,减少冗余性以避免数据的不同出现是保证系统一致性的基础。
(3)数据独立性
数据库中的数据独立于应用程序,数据的逻辑结构、存储结构与存取方式不会影响应用程序,数据独立性分为物理独立性和逻辑独立性。
①物理独立性。数据物理结构的改变不至于引起应用程序的变化。
②逻辑独立性。数据库总体逻辑结构的改变,不需要相应修改应用程序。
(4)数据统一管理与控制
数据库系统不仅为数据提供高度集成环境,同时它还为数据提供统一管理的手段,这主要包含以下三个方面:
①数据的完整性检查:检查数据库中数据的正确性以保证数据的正确。
②数据的安全性保护:检查数据库访问者以防止非法访问。
③并发控制:控制多个应用的并发访问所产生的相互干扰以保证其正确性。
4数据库系统的内部结构体系
(1)数据库系统的三级模式
数据模式是数据库系统中数据结构的一种表示形式,它具有不同的层次与结构方式。
①概念模式
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。是一种抽象的描述,它不涉及具体的硬件环境与平台,也与具体的软件环境无关。主要描述数据的概念记录类型以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可用DBMS中的DDL语言定义。
②外模式(子模式或用户模式)
它是用户的数据视图,也是用户所见到的数据模式,由概念模式推导而出。概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部数据描述。一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样不仅可以屏蔽大量无关信息而且有利于数据保护。在一般的DBMS中都提供有相关的外模式描述语言(外模式DDL)。
③内模式(物理模式)
它给出了数据库物理存储结构与物理存取方法,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上。对一般用户是透明的,但它的设计直接影响数据库的性能。一般提供相关的内模式描述语言(内模式DDL)。
【说明】
a.以概念模式为框架所组成的数据库叫概念数据库,以外模式为框架所组成的数据库叫用户数据库,以内模式为框架所组成的数据库叫物理数据库。只有物理数据库真实存在于计算机外存中,其他两个数据库不是真实存在于计算机中,而是通过两种映射由物理数据库映射而成。
b.内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了用户对数据的要求。
(2)数据库系统的两级映射
①概念模式到内模式的映射
该映射给出概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系,此种映射一般由DBMS实现。
②外模式到概念模式的映射
概念模式是一个全局模式而外模式是用户的局部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。外模式到概念模式的映射给出了外模式与概念模式的对应关系,这种映射一般也是由DBMS来实现的。
二、数据模型
1数据模型的基本概念
(1)数据模型的概念
数据库中的数据模型可以将复杂的现实世界要求反映到计算机数据库中的物理世界,这种反映是一个逐步转化的过程。它分为两个阶段:由现实世界开始,经历信息世界而至计算机世界,从而完成整个转化。
①现实世界
现实世界是指用户为了某种需要,需将现实世界中的部分需求用数据库实现,这样,我们所见到的是客观世界中的划定边界的一个部分环境。
②信息世界
信息世界是指通过抽象对现实世界进行数据库级上的刻画所构成的逻辑模型,与数据库的具体模型有关。
③计算机世界
计算机世界是指在信息世界基础上致力于其在计算机物理结构上的描述,从而形成的物理模型。现实世界的要求只有在计算机世界中才得到真正的物理实现,而这种实现是通过信息世界逐步转化得到的。
(2)数据模型描述的内容
①数据结构
主要描述数据的类型、内容、性质以及数据间的联系等。它是数据模型的基础,数据操作与约束均建立在数据结构上。
②数据操作
主要描述在相应数据结构上的操作类型与操作方式。
③数据约束
主要描述数据内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确、有效与相容。
(3)数据模型分类
①概念数据模型(概念模型)
它是一种面向客观世界、面向用户的模型;与具体的数据库管理系统无关,与具体的计算机平台无关;着重于对客观世界复杂事物的结构描述及它们之间的内在联系的刻画;是整个数据模型的基础。目前,较为有名的概念模型有E-R模型、扩充的E-R模型、面向对象模型及谓词模型等。
②逻辑数据模型(数据模型)
它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。概念模型只有在转换成数据模型后才能在数据库中得以表示。逻辑数据模型也有很多种,较为成熟并先后被人们大量使用过的有:层次模型、网状模型、关系模型、面向对象模型等。
③物理数据模型(物理模型)
它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
2E-R模型
该模型将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们间的两种基本连接关系,并且可以用一种图非常直观地表示出来。
(1)E-R模型的基本概念
①实体
现实世界中的事物可以抽象成为实体,实体是概念世界中的基本单位,它们是客观存在的且又能相互区别的事物。凡是有共性的实体可组成一个集合称为实体集。
②属性
属性刻画了实体的特征,一个实体往往可以有若干个属性。每个属性可以有值,一个属性的取值范围称为该属性的值域。
③联系
现实世界中事物间的关联称为联系。在概念世界中联系反映了实体集间的一定关系。
a.实体集间的联系有多种,就实体集的个数而言有:
第一,两个实体集间的联系;
第二,多个实体集间的联系;
第三,一个实体集内部的联系。
b.两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有以下几种:
第一,一对一的联系,简记为1:1。
第二,一对多或多对一联系,简记为1:m或m:1。
第三,多对多联系,简记为m:n
(2)E-R模型三个基本概念之间的连接关系
E-R模型由上面三个基本概念组成。由实体、联系、属性三者结合起来才能表示现实世界。
①实体集(联系)与属性间的连接关系
a.实体是概念世界的基本单位,属性附属于实体,一个实体可以有若干个属性,实体及它的所有属性构成实体的完整描述。
b.属性有属性域,每个实体可取属性域内的值。一个实体的所有属性取值组成了一个值集叫元组。在概念世界中,可以用元组表示实体,也可用它区别不同的实体。
c.实体有型与值之别,一个实体的所有属性构成了这个实体的型,而实体中属性值的集合(即元组)则构成了这个实体的值。
d.联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述,因此,联系与属性间也有连接关系。
②实体(集)与联系
a.实体集间可通过联系建立连接关系,实体集间无法建立直接关系,它只能通过联系才能建立起连接关系。
b.在E-R模型中有三个基本概念以及它们之间的两种基本连接关系。它们将现实世界中的错综复杂的现象抽象成简单明了的几个概念与关系,具有极强的概括性和表达能力。
(3)E-R模型的图示法
在E-R图中分别用不同的几何图形表示E-R模型中的三个概念与两个连接关系。
①实体集表示法
用矩形表示实体集,在矩形内写上该实体集的名字。
②属性表示法
用椭圆形表示属性,在椭圆形内写上该属性的名称。
③联系表示法
用菱形(内写上联系名)表示联系。
④实体集(联系)与属性间的连接关系
属性依附于实体集,因此,它们之间有连接关系。
⑤实体集与联系间的连接关系
实体集与联系间的连接关系可用连接这两个图形间的无向线段表示。
两个实体集间联系叫二元联系,多个实体集间联系叫多元联系。
3层次模型
层次模型的基本结构是树形结构,自顶向下,层次分明。
(1)树结构的特性
①每棵树有且仅有一个无双亲结点,称为根。
②树中除根外所有结点有且仅有一个双亲。
(2)层次模型的完整性约束条件
①进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值;
②进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除;
③进行更新操作时,应更新所有相应记录,以保证数据的一致性。
(3)层次模型的优缺点
优点:
①结构比较简单,操作简单;
②对于实体间联系是固定的、且预先定义好的应用系统,层次模型有较高的性能;
③层次模型还可以提供良好的完整性支持。
缺点:
①受文件系统影响大,模型受限多,物理成分复杂,不适合表示非层次性的联系;
②对于插入和删除操作的限制比较多;
③查询子女结点必须通过双亲结点。
4网状模型
(1)网状模型是一个不加任何条件限制的无向图。将通用的网络拓扑结构分成一些基本结构,分解方法是将一个网络分成若干个二级树
(2)在网状模型标准中,基本结构简单二级树叫系,系的基本数据单位是记录,它相当于E-R模型中的实体(集);记录又可由若干数据项组成,它相当于E-R模型中的属性。
(3)系由一个首记录和若干成员记录组成
①首记录相当于简单二级树的根;
②成员记录,它相当于简单二级树中的叶;
首记录与成员记录之间的联系用有向线段表示,在系中首记录与成员记录间是一对多联系。
5关系模型
(1)关系的数据结构
①关系模型中二维表的组成
二维表由表框架及表的元组组成。表框架由n个命名的属性组成,n称为属性元数。每个属性有一个取值范围称为值域。表框架对应了关系的模式,即类型的概念。表框架中,按行存放数据,每行数据称为元组,一个表框架可以存放m个元组,m称为表的基数。
②二维表满足的性质:
a.二维表中元组个数是有限的——元组个数有限性。
b.二维表中元组均不相同——元组的唯一性。
c.二维表中元组的次序可以任意交换——元组的次序无关性。
d.二维表中元组的分量是不可分割的基本数据项——元组分量的原子性。
e.二维表中属性名各不相同——属性名唯一性。
f.二维表中属性与次序无关,可任意交换——属性的次序无关性。
g.二维表属性的分量具有与该属性相同的值域——分量值域的同一性。
满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。
③键
a.二维表中凡能唯一标识元组的最小属性集称为该表的键(或码),键具有标识元组,建立元组间联系等重要作用。
b.二维表中可能有若干个键,它们称为表的候选键,从二维表汇总选取一个作为用户使用的键称为主键。
c.关系元组分量中允许出现空值以表示信息空缺。一般关系数据库系统都支持空值,但是有两个限制:第一,关系的主键不允许出现空值;第二,需要定义有关空值的运算。
(2)关系操纵
①数据查询
a.对一个关系内的查询
第一,对一个关系内查询的基本单位是元组分量,其基本过程是先定位后操作。
第二,定位包括纵向定位和横向定位,纵向定位是指定关系中的一些属性,横向定位是选择满足某些逻辑条件的元组。通过纵向与横向定位后一个关系中的元组分量即可确定了。
b.对多个关系间的数据查询
对多个关系间的数据查询则可分为三步:
第一,将多个关系合并成一个关系;
第二,对合并后的一个关系作定位;
第三,操作。
②数据删除
第一,数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。
第二,分为定位与操作两部分,其中定位部分只需要横向定位而无需纵向定位,定位后即执行删除操作。因此数据删除可以分解为一个关系内的元组选择与关系中元组删除两个基本操作。
③数据插入
数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。
④数据修改
数据修改是在一个关系中修改指定的元组与属性。数据修改不是一个基本操作,它可以分解为删除需修改的元组与插入修改后的元组两个更基本的操作。
⑤关系模型的六种基本操作:
a.关系的属性指定;
b.关系的元组选择;
c.两个关系合并;
d.一个或多个关系的查询;
e.关系中元组的插入;
f.关系中元组的删除。
(3)关系中的数据约束
①实体完整性约束
该约束要求关系的主键中属性值不为空,由关系数据库系统自动支持。
②参照完整性约束
该约束是关系之间相关联的基本约束,不允许引用不存在的元组,由关系数据库系统自动支持。
③用户定义的完整性约束
由关系数据库系统提供完整性约束语言,用户利用该语言写出约束条件,运行时由系统自动检查。这是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。
三、关系代数
1关系模型的基本操作
关系模型有插入、删除、修改和查询四种操作,它们又可以进一步分解成六种基本操作:
(1)关系的属性指定
指定一个关系内的某些属性,用它确定关系这个二维表中的列,它主要用于检索或定位。
(2)关系的元组的选择
用一个逻辑表达式给出关系中所满足此表达式的元组,用它确定关系这个二维表的行,它主要用于检索或定位。
(3)两个关系的合并
将两个关系合并成一个关系。用此操作可以不断合并从而可以将若干个关系合并成一个关系,以建立多个关系间的检索与定位。
(4)关系的查询
在一个关系或多个关系间做查询,查询的结果也为关系。
(5)关系元组的插入
在关系中增添一些元组,用它完成插入与修改。
(6)关系元组的删除
在关系中删除一些元组,用它完成删除与修改。
2关系模型的基本运算
(1)插入
插入可用集合并运算表示为:R∪R′
(2)删除
删除可用集合差运算表示为:R-R′
(3)修改
修改关系R内的元组内容可用下面的方法实现:
①设需修改的元组构成关系R′,则先做删除得:R-R′
②设修改后的元组构成关系R″,此时将其插入即得到结果:(R-R′)∪R″
(4)查询
用于查询的三个操作无法用传统的集合运算表示,需要引入一些新的运算。
①投影运算
对于关系内的域指定可引入新的运算叫投影运算,它是一元运算。
一个关系通过投影运算(并由该运算给出所指定的属性)后仍为一个关系R′。R′是R中投影运算所指出的那些域的列所组成的关系。
②选择运算。
它是一个一元运算,关系R通过选择运算后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。设关系的逻辑条件为F,则R满足F的选择运算可写成为:σF(R)
③笛卡儿积运算。
对于两个关系的合并操作可以用笛卡儿积表示。设有n元关系R及m元关系S,它们分别有p、q个元组,则关系R与S经笛卡儿积记为R×S,该关系是一个n+m元关系,元组个数是p×q,由R与S的有序组组合而成。
3关系代数中的扩充运算
(1)交运算
关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组所组成,记为R∩S。
交运算可由基本运算推导而得:R∩S=R-(R-S)。
(2)除运算
除运算是笛卡尔积运算的逆运算,若T=R×S时,除运算可写成:T÷R=S或T/R=S。
(3)连接与自然连接运算
①连接运算又可称为θ-连接运算,这是一种二元运算,通过它可以将两个关系合并成一个大关系。设有关系R、S以及比较式iθj,其中i为R中的域,j为S中的域,θ含义同前。则可以将R、S在域i,j上的θ连接记为:
它的含义可用下式定义:
即R与S的θ连接是由R与S的笛卡儿积中满足限制iθj的元组构成的关系,一般其元组的数目远远少于R×S的数目。应当注意的是,在θ连接中,i与j需具有相同域,否则无法作比较。
在θ连接中如果θ为“=”,就称此连接为等值连接,否则称为不等值连接。
②自然连接满足下面的条件:
a.两关系间有公共域;
b.通过公共域的相等值进行连接。
四、数据库设计与管理
1数据库设计概述
(1)数据库设计基本任务
在一定平台制约下,根据用户对象的信息需求、处理需求和数据库的支持环境设计出性能良好的数据模式。
(2)数据库设计的方法
①面向数据的方法:以信息需求为主,兼顾处理需求,已成为主流。
②面向过程的方法:以处理需求为主,兼顾信息需求
(3)数据库设计的生命周期法
将整个数据库应用系统的开发分解成目标独立的若干阶段。它们分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。
2数据库设计的需求分析
(1)需求分析阶段的主要任务
通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅按当前应用需求来设计数据库。
(2)调查的重点是“数据”和“处理”,通过调查要从中获得每个用户对数据库的如下要求:
①信息要求
指用户需要从数据库中获得信息的内容与性质。
②处理要求
指用户要完成什么处理功能,对处理的响应时间有何要求,处理的方式是批处理还是联机处理。
③安全性和完整性的要求
(3)分析和表达用户需求常采用结构化分析方法和面向对象的方法
(4)数据库设计在实际开展时应注意以下几点
①在需求分析阶段一个重要而困难的任务是收集将来应用所涉及的数据。
②必须强调用户的参与,设计人员应该和用户充分合作进行设计,并对设计工作的最后结果承担共同的责任。
3数据库概念设计
(1)数据库概念设计概述
数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。数据库概念设计的方法有以下两种:
①集中式模式设计法
a.根据需求由一个统一机构或人员设计一个综合的全局模式。
b.这种方法设计简单方便,它强调统一与一致,适用于小型或并不复杂的单位或部门,而对大型的或语义关联复杂的单位则并不适合。
②视图集成设计法
a.将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各视图为基础进行集成。需对视图作修正,最终形成全局模式。
b.是一种由分散到集中的方法,它的设计过程复杂但它能较好地反映需求,适合于大型与复杂的单位,避免设计的粗糙与不周到,目前此种方法使用较多。
(2)数据库概念设计的过程
①选择局部应用
根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,以这一层次的数据流图为出发点,设计分E-R图。
②视图设计
视图设计一般有三种设计次序,它们是:
a.自顶向下
先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化。
b.由底向上
先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。
c.由内向外
先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其他对象。
在进行设计时,实体与属性是相对而言的。同一事物,在一种应用环境中作为“属性”,在另一种应用环境中就必须作为“实体”。但是,在给定的应用环境中,属性必须是不可分的数据项,属性不能与其他实体发生联系,联系只发生在实体之间。
③视图集成
a.视图集成的实质是将所有的局部视图统一与合并成一个完整的数据模式。在进行视图集成时,最重要的工作便是解决局部设计中的冲突。
b.在集成过程中常见冲突有下列几种:
第一,命名冲突
有同名异义和同义异名两种。
第二,概念冲突
同一概念在一处为实体而在另一处为属性或联系。
第三,域冲突
相同的属性在不同视图中有不同的域。
第四,约束冲突
不同的视图可能有不同的约束。
(3)视图合并生产E-R图必须满足以下条件,避免数据冗余和联系冗余
①整体概念结构内部必须具有一致性,即不能存在互相矛盾的表达;
②整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系;
③整体概念结构能满足需求分析阶段所确定的所有要求;
④整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据。
4数据库的逻辑设计
(1)从E-R图向关系模式转换
①数据库的逻辑设计主要工作是将E-R图转换成指定RDBMS中的关系模式。E-R模型与关系间的转换如表4-2所示。
表4-2 E-R模型与关系间的比较表
②由E-R图转换成关系模式时会遇到的一些转换问题。
a.命名与属性域的处理
关系模式中的命名可以用E-R图中原有命名,也可另行命名,但是应尽量避免重名,RDBMS一般只支持有限种数据类型而E-R中的属性域则不受此限制。
b.非原子属性处理
E-R图中允许出现非原子属性,但在关系模式中一般不允许出现非原子属性,非原子属性主要有集合型和元组型。
c.联系的转换
在一般情况下联系可用关系表示,但是在有些情况下联系可归并到相关联的实体中。
(2)逻辑模式规范化及调整、实现
①规范化
a.关系数据库设计的关键是关系数据库模式的设计,即确定构造几个关系模式及每一模式各自包含的属性,将相互关联的模式组合成合适的关系模型。其设计必须在关系数据库规范化理论的指导下进行。设计不良的关系模式会有数据冗余、插入异常、删除异常及修改异常等问题。
b.三种范式
第一,第一范式
每个属性都已不能再分为简单项。
第二,第二范式
如果某个关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称其为第二范式模式。第二范式消除了非主属性对主键的部分依赖。
第三,第三范式
如果关系模式R是第二范式,并非每个非主属性都不传递依赖于R的候选键,则称R为第三范式模式,大部分应用中都将关系分解为第三范式。
关系模式进行规范化的目的是使关系结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新等操作。关系模式进行规范化的原则是:遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。规范化的实质就是概念的单一化。
②RDBMS
对逻辑模式进行调整以满足RDBMS的性能、存储空间等要求,同时对模式做适应RDBMS限制条件的修改,它们包括如下内容:
a.调整性能以减少连接运算;
b.调整关系大小,使每个关系数量保持在合理水平,从而可以提高存取效率;
c.尽量采用快照(snapshot),因在应用中经常仅需某固定时刻的值,此时可用快照将某时刻值固定,并定期更换,此种方式可以显著提高查询速度。
(3)关系视图设计(外模式设计)
关系视图的作用大致有如下几点:
①提供数据逻辑独立性:使应用程序不受逻辑模式变化的影响。
②能适应用户对数据的不同需求。
③有一定数据保密功能。
5数据库的物理设计
数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。
6数据库管理
数据库管理一般包含以下内容:
(1)数据库的建立
数据库的建立包括两部分内容,数据模式的建立及数据加载。
①数据模式建立
由DBA负责建立,DBA利用RDBMS中的DDL语言定义数据库名,定义表及相应属性,定义主关键字、索引、集簇、完整性约束、用户访问权限,申请空间资源,定义分区等,此外还需定义视图。
②数据加载
在数据模式定义后即可加载数据,DBA可以编制加载程序将外界数据加载至数据模式内,从而完成数据库的建立。
(2)数据库的调整
在数据库建立并经一段时间运行后往往会产生一些不适应的情况,此时需要对其作调整,数据库的调整一般由DBA完成,调整包括下面一些内容:
①调整关系模式与视图使之更能适应用户的需求;
②调整索引与集簇使数据库性能与效率更佳;
③调整分区、数据库缓冲区大小以及并发度使数据库物理性能更好。
(3)数据库的重组
数据库在运行一段时间后性能会下降,主要是不断修改、删除、插入造成的。由于不断删除造成盘区内废块增多,影响I/O速度,导致数据库性能下降。基于这些原因需要对数据库进行重新整理,调整存储空间,这项工作叫做数据库重组。
(4)数据库安全性控制与完整性控制
数据库是一个单位的重要资源,它的安全性是极端重要的,DBA应采取措施保证数据不受非法盗用与破坏。此外,为保证数据的正确性,使录入库内的数据均能保持正确,需要有数据库的完整性控制。
(5)数据库的故障校复
一旦数据库中的数据遭受破坏,需要及时进行恢复,RDBMS一般都提供此种功能,并由DBA负责执行故障恢复功能。
(6)数据库监控
DBA需随时观察数据库的动态变化,并在发生错误、故障或产生不适应情况时随时采取措施,如数据库死锁、对数据库的误操作等;同时还需监视数据库的性能变化,在必要时对数据库作调整。