NCRE——等级考试 演示课件

 

  第一章 Visual FoxPro基础  

 

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.自然联接
  等位联接:按照字段值对应相等为条件进行的联接操作
  自然联接:去掉重复属性的等值联接