1.2 关系数据库
【视频讲解:关系数据库】
1.2.1 关系模型
关系数据模型:用二维表的形式表示实体和实体间联系的数据模型。
一、关系术语
1.关系:一个关系就是一张二维表,每个关系有一个关系名。
说明:
(1)在VFP中,一个关系存储为一个文件,文件扩展名为dbf,称为 “表”。
(2)对关系的描述为关系模型,一个关系的模式对应一个关系的结构,其格式为:
关系名(属性名1,属性名2,...,属性名n)
在VFP中表示为表结构:
表名(字段名1,字段名2,...,字段名n)
2.元组:表中的一行称为一个元组,在VF中称为记录。
注:元组对应存储文件中的一条记录
3.属性:表中的一列称为一个属性,每一列有一个属性名。每个属性有属性名、数据类型、宽度)
注:在VFP中表示为字段.
4.域:属性的取值范围。
例:职工的年龄在18~60岁,性别的属性域为(男、女)
5.关键字(PK---Primary Key):属性或属性的组合,其值能唯一确定一个元组,例:学号。
候选关键字:满足关键字特性的最小属性组合都叫候选关键字。
注:每个关系都必须选择一个候选关键字作为主关键字。
6.外部关键字(FK---Foreign Key):如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段就称外部关键字。
例: 学生表 成绩表

二、关系的特点
1.关系必须规范化:即每一个关系模式都必须满足一定的要求。(巴科斯范式)
最基本的要求:每个属性必须是不可分割(每个字段必须是初等项)的数据单元。
例学生成绩:分割为各科成绩。
2.在同一类关系中不能出现相同的属性名
即一个表中不能有相同的字段名(列唯一)
3.关系中不允许有完全相同的元组,即冗余(行唯一)
4.在一个关系中元组的次序无关紧要
5.在一个关系中列的次序无关紧要
即:行,列次序可以任意交换
总结 :属性初等项、行和列唯一、行列任意交换
三、实际关系模型
VFP中一个数据库中,包含相互之间存在联系的多个表,这个库文件就代表一个实际的关系模型。教材P11例1.1和1.2。
例: 学生 — 选课 —课程关系模型
有三个关系模式:
student(学号,姓名,性别,年龄)
sc(学号,课程号,成绩)
course(课程号,课程名,学分)
关系模型如下图所示:

§1.2.2
关系运算
关系的基本运算有两类:
(1)传统的集合运算(并、差、交等);
(2)专门的关系运算(选择、投影、联接)
一、传统的集合运算:进行运算的关系须有相同的结构
1.并:由属于这两个关系的元组成(R∪S)
2.差:从前一个关系去掉后一个关系中也有的元组(R-S )----结果为属于R但不属于S的元组
3.交:由相同属于两个关系的元组组成的集合(R∩S)
二、专门的关系运算
1.选择 Select
定义:从关系中找出满足给定条件的元组的操作,条件由逻辑表达式给出
水平方向的选择----- 行(选行操作),结果是原关系的一个子集
例:查询总分在480以上的考生
2.投影 Project
含义:从关系模式中指定若干个属性组成新的关系,垂直方向的选择 —选列
例: 显示学生信息表的特长属性
只产生由学号,姓名,特长,组成的新表
3.联接 join
含义:将两个关系模式组合,生成的新关系中包含满足联接条件的元组
两表横向结合
例:学生表和成绩表,通过学号连接。
4.自然联接
等位联接:按照字段值对应相等为条件进行的联接操作
自然联接:去掉重复属性的等值联接
|