首页 百科知识 关系模型的表间关系

关系模型的表间关系

时间:2022-10-24 百科知识 版权反馈
【摘要】:首先将现实世界的事物及联系抽象成信息世界的概念模型,然后再抽象成计算机世界的数据模型。概念模型实际上是现实世界到计算机世界的一个中间层次。概念模型用于信息世界的建模,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型应该具有较强的语义表达能力,还要简单清晰、易于用户理解。

第1章 数据库基础

1.1 数据库的基本概念

1.1.1 什么是数据库

简单地说,数据库(Data Base)是结构化数据的集合。严格地讲,数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库的基本特点:冗余小、独立性、可扩展性和共享性。

1.1.2 什么是数据库管理系统

数据库管理系统(Data Base Management System,DBMS):是位于用户与操作系统之间的一个数据库管理软件。它的功能主要有:

1.数据定义

DBMS提供了数据描述语言(Data Definition Language,DDL)来定义数据库的结构、数据之间的联系等。

2.数据操纵

DBMS提供了数据操纵语言(Data Manipulation Language,DML)来完成用户对数据库提出的各种操作要求,实现数据的插入、检索、删除、修改等任务。

3.数据运行管理

DBMS运行时的核心部分是数据库的运行管理,包括数据库的安全性控制、完整性控制、多用户环境下的并发控制等。

4.数据库维护功能

DBMS还可以对已经建立好的数据库进行维护,比如数据字典的自动维护,数据库的备份、恢复等。

5.数据库通信功能

DBMS可提供与其他软件系统进行通信的功能。

1.1.3 什么是数据库系统

数据库系统(Data Base System,DBS)是指采用了数据库技术的计算机应用系统。它实际上是一个集合体,主要由硬件、软件、数据库和用户四部分构成。

1.数据库

数据库是存储在一起的相互有联系的数据的集合。数据按照数据模型所提供的形式框架存放在数据库中。

2.硬件

硬件是数据库赖以存在的物理设备。 运行数据库系统的计算机硬件不仅需要满足运行要求,还需要足够大的内存以存放系统软件,需要足够大容量的磁盘等联机存储设备来存储数据库庞大的数据,需要足够的脱机存储介质(磁盘、光盘、磁带等)以存放数据库备份,需要较高的通道能力以提高数据传送速率并能实现数据在网络上的共享。

3.软件

数据库系统的软件包括DBMS、支持DBMS的操作系统、与数据库接口的高级语言和编译系统、以DBMS为核心的应用开发工具等。

4.用户

数据库系统中存在一组参与分析、设计、管理、维护和使用数据库的人员,他们在数据库系统的开发、维护和应用中起着重要的作用。专门负责建立、使用和维护数据库系统的人员通常被称为数据库管理员(Data Base Administrator,DBA)。

1.2 数据管理技术的发展

数据管理包括数据组织、分类、编码、存储、检索和维护,它是数据处理的中心问题。随着硬件、软件技术及计算机应用范围的发展,数据管理经历了3个阶段。

1.人工管理阶段

20世纪50年代中期以前,计算机主要用于科学计算。计算机的软硬件均不完善,硬件方面只有卡片、纸带、磁带等,没有可以直接访问、直接存取的外部存储设备;软件方面还没有操作系统,也没有专门管理数据的软件,数据由程序自行携带,数据与程序不能独立,数据不能长期保存。

在人工管理阶段,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入输出方式等。当数据的物理组织或存储设备改变时,用户程序就必须重新编制。由于数据的组织面向应用,不同的计算程序之间不能共享数据,因此不同的应用之间存在大量的重复数据。人工管理的特点如下:

(1)数据不保存。

(2)应用程序管理数据。

(3)数据不共享。

(4)数据不能独立。

2.文件系统阶段

20世纪50年代中期到60年代中期,计算机大容量存储设备(如硬盘)的出现推动了软件技术的发展,而操作系统的出现标志着数据管理步入了一个新的阶段。在文件系统阶段,数据以文件为单位存储在外存,且由操作系统统一管理。这一阶段数据管理特点如下:

(1)数据可以长期保存。

(2)由文件系统管理数据。

程序和数据之间由文件系统提供存取方法进行转换,使程序与数据有了一定的独立性,程序员可以不必过多地考虑处理细节,将精力集中于算法。但是文件系统仍然存在共享性差,冗余度大以及独立性差的缺点。

3.数据库系统阶段

20世纪60年代后,计算机管理数据的规模越来越大,人们对数据管理技术提出了更高的要求:以数据为中心组织数据,减少数据的冗余,提供更高的数据共享能力,同时要求程序和数据具有较高的独立性,以降低应用程序研制与维护的费用。数据库技术正是在这样一个应用需求的基础上发展起来的。

在数据库方式下,数据的结构设计成为信息系统的首要问题。数据库是通用化的相关数据集合,它不仅包括数据本身,而且包括数据之间的联系。为了让多种应用程序并发地使用数据库中具有最小冗余的共享数据,必须使数据与程序具有较高的独立性。这样就需要一个软件系统对数据实行专门管理,提供安全性和完整性等方面的统一控制,方便用户以交互命令或程序方式对数据库进行操作。数据库系统管理阶段的主要特点是:

1)数据结构

数据结构不是面向单一的应用,而是面向整个组织的数据结构,这是数据库系统与文件系统的本质区别。

2)共享性高,冗余小,易于扩充

数据库系统从整体的角度看待和描述数据,数据不再面向某个应用而是整个系统。这样就减少了数据冗余,节约存储空间,减少存取时间。数据可以被多个用户多个应用共享使用,避免了数据之间的不相容性和不一致性。

3)数据独立性高

数据独立性包括物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据是相互独立的。逻辑独立性是指用户的应用程序与数据库的逻辑结构式相互独立的。

4)数据由DBMS统一管理和控制

DBMS提供以下几个方面的数据控制功能:

(1)数据的安全性保护。

(2)数据的完整性检查。

(3)并发控制。

(4)数据库恢复。

1.3 数据模型

1.3.1 数据与信息

数据是事物特性的反映和描述。数据不仅包括狭义的数值数据,还包括文字、声音、图形等一切能被计算机接收并处理的符号。数据在空间上的传递称为通信(以信号方式传输),在时间上的传递称为存储(以文件形式存取)。

信息是和数据关系密切的另外一个概念。数据是信息的符号表示(或称为载体);信息则是数据的内涵,是对数据语义的解释。数据必须经过处理才能成为有意义的信息。

1.3.2 概念模型

计算机无法直接处理现实世界中的具体事物,因此必须将具体事物转换成计算机能够处理的数据。首先将现实世界的事物及联系抽象成信息世界的概念模型,然后再抽象成计算机世界的数据模型。这一转换经历了现实世界、信息世界和计算机世界三个不同的阶段。概念模型实际上是现实世界到计算机世界的一个中间层次。

概念模型用于信息世界的建模,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型应该具有较强的语义表达能力,还要简单清晰、易于用户理解。

1.概念模型中的基本概念

1)实体(Entity)

客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。如一个学生、一门课、一辆汽车、一堂课、学生的一次选课等。

2)属性(Attribute)

实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画,如一个学生实体有学号、姓名、年龄、性别、班级(001,张三,22,男,计算机2班)等方面的属性。这些属性组合起来表征了一个学生。

3)键(Key)

唯一标识实体的属性或属性集称为键。如学生的学号可以作为学生实体的键,但学生的姓名可能会有重名,因此不能作为学生实体的键。

4)域(Domain)

属性的取值范围称为该属性的域。如学号的域为8位整数,姓名的域为字符串集合,性别的域为(男,女)。

5)实体型(Entity Type)

具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性集合来抽象和刻画同类实体,称为实体型,如学生(学号、姓名、年龄、性别、系)就是一个实体型。

6)实体集(Entity Set)

同型实体的集合称为实体集,如所有的学生等。

7)联系(Relationship)

现实世界中事物内部以及事物之间是有联系的,在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,而实体之间的联系通常是指不同实体集之间的联系。

2.两个实体之间联系的类型

1)一对一联系(1:1)

对于实体集A中的一个实体,实体集B至多有1个(也可以没有)实体与之相对应,反之亦然,则称实体集A与实体集B为一对一的联系,记为1:1。如一个班级只有一个班长,一个班长只能管理一个班级。

2)一对多联系(1:n)

如果对于实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之对应;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之对应,则称实体集A与实体集B有一对多联系,记为1:n。如学校的一个系有多名教师,而一个教师只属于一个系。

3)多对多联系(m:n)

如果对于实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之对应;反之,对于实体集B中的每一个实体,实体集A中也有m(m≥0)个实体与之对应,则称实体集A与实体集B具有多对多联系,记为m:n。如一个学生可以选修多门课程,一门课程可以被多名学生选修,则学生与课程之间具有多对多联系。

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。

3.概念模型的表示方法

实体-联系方法(Entity-Relationship)是最广泛使用的概念模型设计方法,该方法用E-R图来描述现实世界的概念模型。

E-R图提供了表示实体、属性和联系的方法。

实体:用矩形表示,矩形框内写明实体名。

属性:用椭圆形表示,并用连线将其与相应的实体连接起来。

联系:用菱形表示,菱形框内写明联系名,并用连线分别与有关实体连接起来,同时在连线旁标上联系的类型(1:1,1:n或m:n)。

图1-1是E-R图的例子。

图1-1 E-R图示例

1.3.3 数据库的类型

目前,数据库领域常用的数据模型有层次模型、网状模型、关系模型和面向对象模型。

层次模型是最早出现数据模型,它使用树形结构来表示各类实体以及实体之间的联系。

网状模型则是使用网状模型作为数据的组织方式,是一种比层次模型更具有普遍性的结构。

关系模型是目前最重要的一种数据模型,它使用二维表来表示事物之间的联系,20世纪80年代以来计算机厂商推出的数据库管理系统几乎都支持关系模型。

由于面向对象的方法和技术在计算机各个领域的深远影响,促进了数据库中面向对象数据模型的研究和发展。许多关系数据库厂商为了支持面向对象模型,对关系模型做了扩展,从而产生了对象关系模型。

数据库的类型是由其所采用的数据模型类型决定的,目前社会上流行的数据库软件产品,大多数是支持关系模型的数据库管理系统软件。

1.4 关系数据库

关系数据库是基于关系模型建立的,数据结构简单,易于操作和管理。例如,在学生管理系统中,学生信息、系部信息分别用表1-1和表1-2表示。学生信息表是一个关系,系部信息表是另外一个关系。

表1-1 学生信息

表1-2 系部信息

1.4.1 关系模型的基本概念

1.关系

一个关系就是一个二维表,每个关系都有一个关系名。

2.元组

在二维表中,每一行称为一个元组,对应表中的一条记录。

3.属性

二维表中的一列即为一个属性,又称为字段。

4.域

属性的取值范围称为域。例如“性别”属性的取值范围仅仅限于“男”或“女”,“成绩”属性的取值范围仅仅限于0~100之间。

5.分量

元组中的一个属性值。关系模型要求关系必须是规范化的,最基本的条件就是关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。

6.关键字

关键字是二维表中若干个属性的组合,它可以唯一标识一个元组。例如,在学生表中,每个学生的序号是唯一的,可以作为学生表的关键字。姓名不能够作为关键字,因为有可能出现重名的情况。

7.主键

当一个表中存在多个关键字的时候,可以指定一个作为主关键字,而其他关键字作为候选关键字。主关键字称为主键。

8.外部关键字

如果一个关系中的属性或者属性组并非该关系的关键字,但它是另外一个关系的关键字,则称其为该关系的外关键字。外关键字也称为外键。

9.主属性

包含在任一候选关键字中的属性称为主属性。

1.4.2 关系模型的主要特点

关系是一个二维表,但并不是所有的二维表都是关系。关系应具有以下性质:

(1)每一个分量(数据项)都必须是不可分的数据项。

(2)每一属性(字段)的分量(数据项)是相同属性的,且属性的顺序是任意的。

(3)每一元组(记录)是有多个属性构成的,且元组的顺序是任意的。

(4)不允许有相同的属性名(字段),也不允许有相同的元组(记录)。

1.4.3 关系模型的表间关系

在关系数据库中,可以通过外部关键字(公共字段)实现表与表之间的联系,公共字段是一个表的主键和另一个表的外键。例如,学生表和系部信息表都包含“学院代码”属性,公共字段就可以建立两张表之间的联系,这个联系是一对多的联系。例如,查询“工会学院”下有哪些学生,可先从系部信息表中查出“工会学院”的“学院代码”是01,再根据“学院代码”01在学生表中查出对应的学生有王丽和张丹。

关系数据库中不同的表描述不同的主题信息,但是可以通过外键建立表与表之间的联系。

1.4.4 关系模型的完整性约束

关系模型的完整性约束包括实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性统称为关系完整性规则,是对关系主键和外键的约束条件。

1.实体完整性

实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。

例如,有“学生”关系:学生(学号,姓名,性别,出生日期,班级),

其中,“学号”是主关键字,因此不能为空值,也不能有重复值。

2.参照完整性

参照完整性规则:若属性(或属性组)F是基本关系R的外键,它与关系S的主关键字K相对应,则对于关系R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主关键字的值。

例如,学生表中“学院代码”字段的取值约束为:或者为空,或者为系部信息表中“学院代码”字段中的值。

3.用户定义的完整性

实体完整性和参照完整性是关系数据模型必须要满足的。而用户定义的完整性是与应用密切相关的数据完整性的约束,不是关系数据模型本身所要求的。它的作用就是要保证数据库中数据的正确性,例如限定属性的取值范围,学生成绩的取值必须在0~100之间。

思考题

(1)数据库常用的数据模型有哪些?

(2)实体间的联系有哪些类型?

(3)数据库系统有哪些部分构成?

(4)数据管理经历了哪些阶段?

(5)数据与信息的关系及区别是什么?

(6)关系模型有哪些特征?

(7)什么是参照完整性?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈