第二章数据库的概念结构设计
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。它是整个数据库设计的关键步骤。
本章主要介绍以下内容:
• 数据模型。
• 概念模型。
• 概念结构设计的方法与步骤。
第一节 数据模型
一、数据
数据是数据库中存储的基本对象,也是数据模型的基本元素。
1.数据
在数据库中描述事物的符号记录称为数据,是存储的基本对象。
计算机是人们解决问题的辅助工具,而解决问题的前提是对问题存在条件及环境参数的正确描述,在现实世界中人们可以直接用自然语言来描述世界,为了把这些描述传达给计算机,就要将其抽象为机器世界所能识别的形式。例如,我们在现实世界中用以下语言来描述一块主板:编号为0001的产品为“技嘉主板”,其型号为GA-8IPE1000-G,前端总线800MHz。如果将其转换为机器世界中数据的一种形式则为:0001,技嘉主板,GA-8IPE1000-G,800MHz。因此从现实世界中的数据到机器世界中的符号记录形式的数据,还需要一定的转换工作。
2.数据描述
在数据库设计的不同阶段都需要对数据进行不同程度的描述。在从现实世界到计算机世界的转换过程中,经历了概念层描述、逻辑层描述及存储介质层描述三个阶段。在数据库的概念设计中,数据描述体现为“实体”、“实体集”、“属性”等形式,用来描述数据库的概念层次;在数据库的逻辑设计中,数据描述体现为“字段”、“记录”、“文件”、“关键码”等形式,用来描述数据库的逻辑层次;在数据库的具体物理实现中,数据描述体现为“位”、“字节”、“
字”、“块”、“桶”、“卷”等形式,用来描述数据库的物理存储介质层次。
二、数据模型
模型是对现实世界中的事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表达。如一座大楼模型、一架飞机模型就是对实际大楼、飞机的模拟和抽象表达,人们从模型可以联想到现实生活中的事物。数据模型也是一种模型,它是对现实世界数据特征的抽象。
数据模型一般应满足三个要求:一是能比较真实地模拟现实世界;二是容易被人们理解;三是便于在计算机上实现。一种数据模型能同时满足这三方面的要求在目前是比较困难的,所以在数据库系统中可以针对不同的使用对象和应用目的采用不同的数据模型。不同的数据模型实际上是提供给我们模型化数据和信息的工具。根据模型应用的不同目的,可以将这些模型划分为两大类:概念层数据模型与组织层数据模型。
三、信息的三个世界
各种机器上实现的DBMS软件都是基于某种数据模型的。需要以某种数据模型为基础来开发建设的,因此需要把现实世界中的具体事物抽象、组织为与各种DBMS相对应的数据模
型,这是两个世界间的转换,即从现实世界到机器世界。但是这种转换在实际操作起来,不是能够直接执行的,还需要一个中间过程,这个中间过程就是信息世界(如图2-1所示)。通常人们首先将现实世界中的客观对象抽象为某种信息结构,这种信息结构可以不依赖于具体的计算机系统,也不与具体的DBMS相关,因为它不是具体的数据模型,而是概念级模型,也就是我们前面所说的概念层数据模型,一般简称为概念模型;然后再把概念模型转换到计算机上具体的DBMS支持的数据模型,这就是组织层数据模型,一般简称为数据模型。
图2-1信息的三个世界
在这三个世界间的两种转换过程就是数据库设计中的两个设计阶段,从现实世界抽象到信息世界的过程是概念结构设计阶段,这就是本章要介绍的内容。从信息世界抽象到机器世界的过程是数据库的逻辑结构设计,其任务就是把概念结构设计阶段设计好的概念模型转换为与选用的DBMS所支持的数据模型相符合的逻辑结构。为一个给定的逻辑数据模型选
取一个适合应用要求的物理结构的过程是数据库的物理设计。数据库的逻辑结构设计与物理设计将在第三章介绍。
第二节 概念模型
概念模型是现实世界到机器世界的一个中间层次,是现实世界的第一个层次抽象,是用户与设计人员之间进行交流的语言。在进行数据库设计时,如果将现实世界中的客观对象直接转换为机器世界中的对象,注意力往往被转移到更多的细节限制方面,就会感到非常不方便,而且也不能集中在最重要的信息的组织结构和处理模式上。因此,通常是将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种信息结构就是概念模型。
在进行数据库设计时,概念设计是非常重要的一步,通常对概念模型有以下要求:
(1)真实、充分地反映现实世界中事物和事物之间的联系,有丰富的语言表达能力,能表达用户的各种需求,包括描述现实世界中各种对象及其复杂的联系、用户对数据对象的处理要求的手段。
(2)简明易懂,能够为非计算机专业的人员所接受。
(3)容易向数据模型转换。易于从概念模式导出与数据库管理系统有关的逻辑模式。
(4)易于修改。当应用环境或应用要求改变时,容易对概念模型修改和补充。
一、基本概念
在概念模型中涉及的主要概念有:
(1)实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,例如一名学生,一门课程等;也可以是抽象的概念或联系,例如一次选课,一场竞赛等。
(2)属性(Attribute):每个实体都有自己的一组特征或性质,这种用来描述实体的特征或性质称为实体的属性。例如,学生实体具有学号、姓名、性别等属性。不同实体的属性是不同的。实体属性的某一组特定的取值(称为属性值)确定了一个特定的实体。例如,学号是0611001、姓名是王冬、性别是女等等,这些属性值综合起来就确定了“王冬”这名同
学。属性的可能取值范围称为属性域,也称为属性的值域。例如,学号的域为8位整数,姓名的域为字符串集合,性别的域为(男,女)。实体的属性值是数据库中存储的主要数据。
根据属性的类别可将属性分为基本属性和复合属性。基本属性(也称为原子属性)是不可再分割的属性。例如,性别就是基本属性,因为它不可以再进一步划分为其它子属性。而某些属性可以划分为多个具有独立意义的子属性,这些可再分解为其它属性的属性就是复合属性(也称为非原子属性)。例如,地址属性可以划分为、省名、市名、区名和街道5个子属性,街道可以进一步划分为街道名和门牌号码两个子属性。因此,地址属性与街道都是复合属性。
根据属性的取值可将属性分为单值属性和多值属性。同一个实体只能取一个值的属性称为单值属性。多数属性都是单值属性。例如,同一个人只能具有一个出生日期,所以人的生日属性是一个单值属性。同一实体可以取多个值的属性称为多值属性。例如,一个人的学位是一个多值属性,因为有的人具有一个学位,有的人具有多个学位;再如零件的价格也是多值属性,因为一种零件可能有代销价格、批发价格和零售价格等多种销售价格。
(3)码(Key):唯一标识实体的属性集称为码。例如学号是学生实体的码。码也称为关键字或简称为键。
(4)实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如学生(学号,姓名,性别)就是一个实体型。
(5)实体集(Entity Set):性质相同的同类实体的集合,称为实体集。例如全体学生就是一个实体集。
由于实体、实体型、实体集的区分在转换成数据模型时才考虑,因此在本章后面的叙述中,在不引起混淆的情况下,将三者统称为实体。
二、实体间的联系
现实世界中,事物内部以及事物之间不是孤立的,是有联系的,这些联系反映在信息世界中表现为实体内部的联系和实体之间的联系。我们这里主要讨论实体之间的联系。例如“职工在某部门工作”是实体“职工”和“部门”之间的联系,“学生在某教室听某老师讲的课程”是“学
生”、“教室”、“老师”和“课程”等四个实体之间有联系。
1.联系的度
联系的度是指参与联系的实体类型数目。一度联系称为单向联系,也称递归联系,指一个实体集内部实体之间的联系(如图2-2(c))。二度联系称为两向联系,即两个不同实体集实体之间的联系(如图2-2(b))。三度联系称为三向联系,即三个不同实体集实体之间的联系(如图2-2(a))。虽然也存在三度以上的联系,但较少见,在现实信息需求中,两向联系是最常见的联系,下面讲的联系如无特殊情况都是指这种联系。
图2-2 联系的度的示例
2.联系的连通词
联系的联通词(Connectivity),指的是联系涉及到的实体集之间实体对应的方式。例如一个实体集中的某一个实体与另外一个实体集中的一个还是多个实体有联系。两向联系的连通词有三种:一对一;一对多;和多对多。
(1)一对一联系。如果实体集A中的每一个实体在实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如,一个学院有一个院长,而一个院长也只能管理这一个学院,学院和院长之间建立起“领导”联系,因此这个联系是一个“一对一”的联系(如图2-3(a))。
(2)一对多联系。如果实体集A中的每一个实体在实体集B中有n(n≥0)个实体与之联系,而实体集B中的每一个实体在实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。例如,一个学院有多名教师,而一个教师只能隶属于某一个特定的学院,则学院与教师之间建立起的这种“所属”联系就是一个“一对多”的联系(如图2-3(b))。
(3)多对多联系。如果实体集A中的每一个实体在实体集B中有n(n≥0)个实体与之联系,而实体集B中的每一个实体在实体集A中有m(m≥0)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。例如,一名教师可以讲授多门课程,同时,一门课程也可以由多名教师讲授,因此课程和教师之间的这种“讲授”联系就是 “多对多”的联系(如图2-3(c))。
图2-3 联系的示例
3.联系的基数
在“一对一”、“一对多”和“多对多”的联系中,把两个实体集中有联系的实体的联系数量分成
两种类型:“唯一”和“不唯一”。但现实中有时需要更精确的描述,例如:学校规定除毕业班外,对于全校公选课,学生每学期至少选修1门课程,最多选修5门课程;每门课程最少要有15个人选,最多不能超过150人。对于这种情况,首先确定学生的基数是(1,5),课程的基数是(15数据库属性的概念,150)。这种有联系的实体数目的最小值(min)和最大值(max)称为这个联系的基数,用(min,max)形式表示。
第三节 概念结构设计的方法与步骤
数据库的概念结构设计是通过对现实世界中信息实体的收集、分类、聚集和概括等处理,建立数据库概念结构(也称为概念模型)的过程。
一、概念结构设计的方法与步骤概述
1.概念结构设计的方法
概念数据库设计的方法主要有两种:一种是集中式设计方法,另一种是视图综合设计方法。
(1)集中式设计方法。集中式设计方法首先合并在需求分析阶段得到的各种应用的需求;其次在此基础上设计一个概念数据库模式,满足所有应用的要求。一般数据库设计都具有多种应用,在这种情况下,需求合并是一项相当复杂和耗费时间的任务。集中式方法要求所有概念数据库设计工作都必须由具有较高水平的数据库设计者完成。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论