Visual FoxPro程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 关系数据库

关系数据库以关系数据模型为基础,用关系表示模型,用运算表示数据操作。本书讨论的VFP 9.0就是采用关系模型的数据库管理系统。

1.3.1 关系模型的数据结构

1.3.1.1 关系模型的基本概念

1.关系

一个关系是一个二维表,即一个表文件,每个关系都有一个关系名。

2.元组

元组指二维表中每一行的数据,一个元组对应表中的一条记录。

3.属性

属性指二维表中的每一列,每个属性都有属性名。一个属性对应表中一个字段,属性名对应字段名,属性值对应于各个记录的字段值。

4.主键

主键指区别其他元组的唯一标识,可以是单个或多个属性的组合,其值不能为空。

5.外键

外键可以是单个或多个属性的组合,它不一定是自己关系的主码,但一定是另一关系的主码,与另一关系的联系通过外键来实现。

6.关系模式

关系模式是对关系的描述,其格式为:

      关系名(属性名1,属性名2,属性名3, …,属性名n)

1.3.1.2 关系的基本特点

关系的基本特点如下。

(1)关系是一种规范化了的二维表格,属性值不可分解。

(2)同一关系中没有重复的元组。

(3)同一关系中同一属性列必须是相同类型的数据,同列具有相同的取值范围。

(4)同一关系中元组和属性的顺序无关紧要,可以任意交换。

1.3.1.3 关系模型的主要优点

关系模型的主要优点如下。

(1)关系模型是创建在严格数学概念基础上的。

(2)关系模型概念简单,不论实体还是实体之间的联系都用关系表示。对数据各种操作的结果仍是关系,操作简便。

(3)关系模型的存取路径对用户透明,具有较高的数据独立性和安全保密性,提高了开发效率。

1.3.2 关系运算

关系运算的运算对象是关系,运算结果也是关系。

传统的集合运算有并、交、差、迪卡尔积,在关系数据模型中关系运算主要包括选择、投影、连接和除法运算,而前3种为常用关系运算。

1.选择

选择又称为“限制”,它是在关系R中选择满足给定条件的元组,记为:

σF(R)={t|tR∧F(t)=“真”}

其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。

逻辑表达式F由逻辑运算符∧、∨、- 连接各算术表达式组成,算术表达式的基本形式为:

XθY

其中θ为比较运算符,可以是>、≥、<、≤、=或≠; XY可以是属性名或为常量或为简单函数等。

选择运算实际上是从关系R中选择使逻辑表达式为真的元组,是从行的角度进行的运算。

2.投影

关系R上的投影是从R中选择出若干属性列组成新的关系,记作:

∏A(R)={t[A]|tR}

其中AR中属性列的集合。

投影运算是从列的角度进行的运算。

3.连接

一般来说,执行连接运算的两个关系必须具有相同的属性列,并且根据相同的属性列的取值是否相等来选择构成结果关系的元组,在结果中把重复的属性列去掉。设RS具有相同的属性B,则连接运算可记作:

R S={trts|trRtsStr[B]= ts[B]}

连接操作不仅从行的角度进行运算,而且还要取消重复列,即同时从行和列的角度进行运算。

1.3.3 关系的完整性约束

1.实体完整性约束

若属性A(指单个属性或多个属性组合)是基本关系R的主键,则A不能为空。例如,在关系人事表RSB(编号、姓名、性别、出生年月、基本工资)中编号属性为主键,则编号不能取空值。

2.参照完整性约束

关系的外键必须是另一个关系主键的有效值或者是空值。例如,在关系人事表RSB(编号、姓名、性别、出生年月、基本工资)中主键是编号;另一关系增加工资表ZZ(编号、增资日期、增加工资)中的主键是属性编号与增资日期的组合,外键是编号,增加工资表ZZ中的编号必须是人事表RSB中主键编号已经存在的值。

3.用户定义完整性约束

指的是针对用户的具体应用环境给出的具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。例如,在关系人事表RSB(编号、姓名、性别、出生年月、基本工资)中性别只能取“男”或者“女”。