了解和掌握数据库应用系统设计的全过程,掌握巸模型和关系模型的基本概念,掌握 概念设计中E模型的设计方法,掌握逻辑设计中ER模型向关系模型转换的方法

数据库系统生存期

1.数据库系统生存期:数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。

2.数据库系统生存期分七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护。

基本概念中数据库描述经历三个阶段:概念设计、逻辑设计、物理设计。

3.规划阶段三个步骤:

(1)系统调查

对应用单位作全面的调查。

(2)可行性分析

(3)确定数据库系统总目标

4.需求分析阶段:主要任务是系统分析员和用户双方共同收集数据库系统所需要的信息内容和用户对处理的需求,并以需求说明书的形式确定下来

(1)分析用户活动,产生业务流程图

(2)确定系统范围,产生系统关联图

(3)分析用户活动涉及的数据,产生数据流图

数据流图(DFD)是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法。

(4)分析系统数据,产生数据字典。

数据字典是对数据描述的集中管理,它的功能是存储和检索各种数据描述(称为数据字典中通常包括数据项、数据结构、数据流、数据存储和处理过程等5部分。

5.概念设计阶段:产生反映用户单位信息需求的数据库概念结构,即概念模型。与硬件和DBMS无关

概念设计的任务一般分三个步骤:

(1)进行数据抽象,设计局部概念模型

设计概念结构时,常用的数据抽象方法是“聚集”和“概括”

聚集是将若干对象和它们之间的联系组合成一个新的对象(归纳),概括是将一组具有某些共同特性的对象抽象成更高一层意义上的对象(抽象)。

(2)将局部概念模型综合成全局概念模型

(3)评审

概念设计中最著名的方法就是实体联系方法(ER方法)建立ER模型。

6.逻辑设计阶段:将概念模型转换成DBMS能处理的逻辑模型。外模型也将在此阶段完成

逻辑设计阶段步骤:

(1)把概念模型转换成逻辑模型(R图转换成关系模式),逻辑模型常采用关系模型

(2)设计外模型

外模型是逻辑模型的逻辑子集,外模型是应用程序和数据库系统的接口,它能允许应用程序有效地访问数据库的数据,而不破坏数据库的安全性。

(3)设计应用程序与数据库的接口

(4)评价模型

(5)修正模型

7.物理设计阶段

对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程。数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。

物理设计阶段之后,进入数据库的实现。

8.数据库的实现

包括定义数据库结构、数据装载、編制与调试应用程序、数据库试运行。

数据库的运行与维护

(1)数据库的转储和恢复

(2)数据库安全性、完整性控制

(3)数据库性能的监督、分析和改进

(4)数据库的重组织和重构造

ER模型的基本概念

1.ER模型的基本元素是:实体、联系和属性。

实体联系模型(ER模型)是广泛被采用的概念模型设计方法。

2.实体:是一个数据对象,指应用中可以区别的客观存在的事物。

实体集:是指同一类实体构成的集合。

实体类型:是对实体集中实体的定义一般将实体、实体集、实体类型统称为实体。

3.联系:表示一个或多个实体之间的关联关系。

联系集:是指同一类联系构成的集合。

联系类型:是对联系集中联系的定义。

一般将联系、联系集、联系类型统称为联系

4.同一个实体集内部实体之间的联系,称为一元联系;两个不同实体集实体之间的联系,称为二元联系,以此类推。 5.属性:实体的某一特性称为属性。在一个实体中,能够惟一标识实体的属性或属性集称为实体标识符。

属性域是属性的可能取值范围,也称为属性的值域。

(1)简单属性和复合属性

简单属性:不能再分解的属性;

复合属性:可再分解的属性

如联系地址可分解为如图

(2)单值属性和多值属性:根据属性的取值特点又分为单值属性和多值属性

单值属性:是同一实体的属性只能取一个值。

多值属性:指同一实体的某些属性可能取多个值

例如,销售价格分:经销价格、供销价格、批发价格、零售价格。

多值属性的转换方法:

(1)多值属性可以分解为几个新的单值属性。

(2)可以增加一个弱实体来表示多值属性。

(3)存储属性和派生属性

存储属性

派生属性:从其他属性值推导出值的属性。例如:实发工资=应发工资-扣除项

派生属性不必存储在数据库中(相当于计算列)。

其他属性称为存储属性

(4)允许空值的属性

当实体在某个属性上没有值时应使用空值。

6.联系的设计

(1)ER模型表示

方框表示实体、菱形框表示联系、椭圆形框表示属性、实体与联系、实体与其属性、联系与其属性之间用直线连接。实体标识符下画横线。联系的类型要在直线上标注。注意:联系也有可能存在属性,但联系本身没有标识符。 (2)联系的元数

个联系涉及的实体的集的个数,称为联系的元数或度数。

三元联系与一元联系,如图。

联系是通过主键和外键来实现的。

注意:单箭头表示联系的对应关系1端,双箭头表示联系的对应关系的N(或M)端

这与第9章中单双箭头相对应

一元联系,例如,职工(职工号,姓名,性别,所属部分经理工号),职工号与经理工号属于“职工”实体类型。

(3)联系类型的约束

联系类型的约束限制了参与联系的实体的数目。分两类联系约束:基数约束和参与约束。

①基数约束

映射基数:参与一个联系的实体数目称为映射基数。如:1:1,1:N,M:N

②映射基数,最小映射基数(min)、最大映射基数(max)。基数表示(min,max)

如(1,6)。

【例题】设教师和课程之间有1:N联系。每位教师可讲授3门课,也可只搞科研而不讲课,每门课程必须有一位教师上课,则教师基数为(0,3)。双边表示完全参与。

例如:一元联系的映射基数,如图

二元联系的映射基数,如图。

例,三元联系的基数,M:N:P情况。

例:假设一个学生可选多门课程,而一门课程又有多个学生选修,一个教师可讲多门课 程,一门课程至多只有一个教师讲授。ER图如下:

7.采用ER模型的数据库概念设计三个步骤

(1)设计局部ER模型

设计局部ER模型三个步骤

①定义实体;

②定义联系;

③分配属性

确定属性的原则:

属性应该是不可再分解的语义单位,实体与属性之间的关系只能是1:N的;不同的实体之间应无直接关联关系

联系的属性:有些属性不宜归属于任一实体类型,只说明实体之间联系的特性。如成绩既不属于学生实体,也不属于课程实体,但与学生实体和课程实体有联系,成绩是属性某学生选择的某一门课程的(如上图)。

个属性即不属于一个实体,也不属于另一个实体,但与这两个实体有联系,则画在联系类型上。

(2)设计全局ER模型

综合成全局ER模型的步骤如下:

①确定公共实体类型

②合并局部ER模型

③消除冲突(考过)

a.属性冲突:b.结构冲突:c.命名冲突

(3)全局ER模型的优化。

①合并实体类型;

②消除冗余属性

③消除冗余联系(第3章,函数依赖问题)。

关系模型的基本概念

1.关系模型的定义

关系模型是指用二维表格表示实体集,用关键码/外键表示实体之间联系的数据模型

2.概念

在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。记录称为元组,元组的集合称为关系或实例。有时习惯称关系为表或表格,元组为行,属性为列。关系中属性个数称为元数,元组个数称为基数

关系模型是由若干个关系模式组成的集合。关系模式相当于记录类型

(1)关键码(简称键):由一个或多个属性组成。

(2)超键:在关系中能惟一标识元组的属性集称为关系模式的超键

(3)候选键:不含有多余属性的超键。

(4)主键:用户选作元组标识的候选键。一般如不加说明,键是指主键。

(5)全键:所有属性都为主键,称为全键。

(6)外键:如果模式R中属性集K是其他模式的主键,那么K在模式R中称为外键

(7)值域:关系中每一个属性都有一个取值范围,称为属性的值域( Domain)。每个属性对应一个值域,不同的属性可对应于同一值域

(8)主属性

包含在任意一个键中的属性称为主属性;

非主属性:不包含在任何键中属性称为非主属性

3.关系的定义和性质

(1)关系的定义:关系是一个属性数目相同的元组的集合。

(2)关系的性质(规范性限制):关系是一种

规范化了的二维表格。

①关系中每一个属性值都是不可分解的

②2关系中不允许出现重复元组

③关系没有行序;

④元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序

4.关系数据库中的数据与更新操作必须遵循三类完整性规则

(1)实体完整性规则

主键是唯一标识实体的,且不能为空;候选键是唯一的,可以为空;一个表中只有一个主键,候选键可能有多个 实体完整性规则:要求关系中元组在组成主键的属性上不能有空值

(2)参照完整性规则

如果属性集K是关系模型式R1的主键,K值也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两个可能:或者为空值,或者等于R1关系中某个主键值。

参照完整性规则:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。其中,R1称为参照关系;R2称为依赖关系。

注意:这条规则在具体使用时,有三点变通:

①外键和相应的主键可以不同名,只要定义在相同值域上即可;

②RI和R2可以是同一个关系模式,此时表示了同一个关系中不同元组之间的联系

③外键值是否允许空,应视具体问题而定

(3)用户定义的完整性规则(含有域完整性约束)

用户针对具体的数据约束,设置的完整性规则,由系统来检验实施。

ER模型到关系模型的转换

1.ER图中的主要成分是实体类型和联系类型,转换算法就是如何把实体类型、联系类型转换成关系模式。

(2)联系类型的转换:主要掌握二元联系类型的转换 ①若实体间联系是1:1,可以在两个实体类型转换成的关系模式中任意一个关系模式

的属性中加入另一个关系模式的键(作为外键)和联系类型的属性

注意:不能两个实体类型中都包括另一个实体类型中的主键,至于哪个实体类型包括另一个实体类型中的主键,要根据实际需要而定

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

注意:实体类型中a属性的一划线表示从表(B表)的外键,在主表(A表)中必须是主键( SQL Server中是主键或唯一键(即候选键))

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

注意:下划线横线表示主键(中间不能断开),波浪线表示外键(中间必须断开)。

【例2.10】下面是教学管理的一个可能的ER图。图中,有三个实体类型:系、教师和课程;有四个联系类型:主管用、开设和任教。根据转换算法,把该图转换成关系模式集的步骤如下:

第一步:把三个实体类型转换成三个关系模式(注意关系模式的表示方法) 第二步:对于1:1联系,可以在“系”模式中加入教工号(教工号为外键)

对于1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期两个属性(系编号 为外键)

对于1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键)。这样第一步得到的三个模式改变成如下形式(注意:外键通常使用波浪线表示):

课程的归口

第三步:对于M:N联系“任教”,则生成一个新的关系模式

这样,转换成的四个关系模式如下:

3.采用ER模型的逻辑设计步骤

(1)导出初始关系模式集:把概念设计的结果(即全局ER模型)转换成初始关系模式集

(2)规范化处理

(3)模式评价

(4)模式修正

(5)设计子模式

实例分析

【例】旅游管理信息系统的ER模型上海普教旅行社设计了一个小型的国内旅游管理信息系统,其中涉及到与业务有关的信息有旅游线路、班次、团体、旅客、保险员、导游、宾馆、交通工具等。其ER图如图所示。

增强的ER模型

1、弱实体和强实体

定义:一个实体对于另一个实体(称为强实体)具有很强的依赖关系,而且该实体主键的一部分或全部从其强实体中获得,则称该实体为弱实体。

例如:一个职工与亲属中,亲属是一个多值属性,为了消除冗余,设计两个实体:职工与亲属,在职工与亲属中,亲属信息是以职工信息的存在为前提,因此,亲属与职工之间存在着一种依赖关系。所以说,亲属是弱实体

在职工与亲属的ER图中,转换成两个关系模式如下

2、子类实体与超类实体

定义:当较低层上实体类型表达了与之联系的较高层上的实体类型的特殊情况时,就称较高层上实体类型为超类型,较低层上的实体类型为子类型

子类与超类有两个性质:

(1)子类与超类之间具有继承特点,即子类继承超类实体的所有属性。但子类实体本身还可以包含比超在实体更多的属性

(2)这种继承性是通过子类实体与超类实体有相同的实体标识符实现的。

不相交(相交)特化四种情况:

1)不相交(用d表示),整体特化(用双线条表示)

2)不相交(用d表示),部分特化(用单线条表示)

3)相交(用o表示),整体特化(用双线条表示);

4)相交(用o表示),部分特化(用单线条表示);