第一章 Visual FoxPro基础
联系:实体之间的对应关系。
联系的种类:指一个实体型中可能出现的每一个实体与另一个实体型中多少个具体实体存在联系。
实体联系有三种:
① 一对一联系 (1:1) 例:班长与班级
② 一对多联系 (1:n) 例:系与教师、班级与学生 ③ 多对对联系 (m:n) 例:学生与课程、教师与课程 三、数据模型简介
1.模型:是实现世界特征的模拟和抽象。
数据模型:是实现世界数据特征的抽象。
?数据模型用来表示数据库中数据的结构,即事物本身属性间及事物之间的各种联系。
?数据模型是DBS的基础,因此任何一个DBMS都是基于某种数据模型的,其分为三种:
层次模型、网状模型、关系模型 2.层次数据模型
定义:用树型结构表示实体及其之间联系的模型,支持层次模型的DBMS称为层次DBMS,在此系统中建立的DB是层次数据库。
特点:①有且只有一个根结点;
②除根结点之外的其他结点有且只有一个双亲结点; ③结点间的关系是父子之间的一对多的联系。 例:家谱 、单位部门 、学院机构等。 3.网状模型
定义:用网状结构表示实体间联系的模型 特点:①允许一个以上的结点无父结点;
②一个结点可以有多于一个的父结点双亲。 4.关系数据模型
关系模型:用二维表结构来表示实体以及实体间联系的模型。
特点:概念描述单一。每个关系就是一个二维表,无论实体本身还是实体间
的联系均用二维表来表示
§1.2关系数据库
§1.2.1关系模型
关系数据模型:用二维表的形式表示实体和实体间联系的数据模型。 一、关系术语
-6-
全国计算机等级考试二级教程——Visual FoxPro程序设计 1.关系:一个关系就是一张二维表,每个关系有一个关系名。 说明:①在VFP中,一个关系存储为一个文件,文件扩展名为dbf,称为
“表”。
②对关系的描述为关系模型,一个关系的模式对应一个关系的结构,其格式为:关系名(属性名1,属性名2,...,属性名n) 在VFP中表示为表结构:
表名(字段名1,字段名2,...,字段名n) 2.元组:表中的一行称为一个元组,在VF中称为记录。 注:元组对应存储文件中的一条记录
3.属性:表中的一列称为一个属性,每一列有一个属性名。每个属性有属性
名、数据类型、宽度)
注:在VFP中表示为字段. 4.域:属性的取值范围。
例:职工的年龄在18~60岁,性别的属性域为(男、女)
5.关键字(PK---Primary Key):属性或属性的组合,其值能唯一确定一个元组,例:学号。
候选关键字:满足关键字特性的最小属性组合都叫候选关键字。 注:每个关系都必须选择一个候选关键字作为主关键字。
6.外部关键字(FK---Foreign Key):如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段就称外部关键字。
例: 学生表 成绩表
S_NO S C_NO
SC
二、关系的特点
SC_NO S_NO(FK) C_NO(FK) 1.关系必须规范化:即每一个关系模式都必须满足一定的要求。(巴科斯范式)
最基本的要求:每个属性必须是不可分割(每个字段必须是初等项)的数据
-7-
第一章 Visual FoxPro基础
单元。
例学生成绩:分割为各科成绩。
2.在同一类关系中不能出现相同的属性名 即一个表中不能有相同的字段名(列唯一) 3.关系中不允许有完全相同的元组,即冗余(行唯一) 4.在一个关系中元组的次序无关紧要 5.在一个关系中列的次序无关紧要 即:行,列次序可以任意交换
总结 :属性初等项、行和列唯一、行列任意交换 .....................三、实际关系模型
VFP中一个数据库中,包含相互之间存在联系的多个表,这个库文件就代表一个实际的关系模型。教材P11例1.1和1.2。
例: 学生 — 选课 —课程关系模型 有三个关系模式:
student(学号,姓名,性别,年龄) sc(学号,课程号,成绩) course(课程号,课程名,学分) 关系模型如下图所示:
-8-
全国计算机等级考试二级教程——Visual FoxPro程序设计 FK PK PK FK Student SC Course 学号 学号 姓名 S1 S2 S3 S4 S5 3 SC3 99 C1 71 C1 79 统的集合运算2 SC2 89 年龄 李小平 15 王大海 16 刘小娟 15 张萍 16 刘小林 15 男 男 女 女 男 2 SC3 90 1 SC1 92 1 SC3 85 性别 1 SC2 89 S课程号 成绩 C1 98 课程号 课程名 学分 C1 C2 C3 VF 2 C++ 4 VB 3 §1.2.2 关系运算 关系的基本运算有两类: ①传(并、差、交等); 3 S4 S5 ②专门的关系运算(选择、投影、联接)
一、传统的集合运算:进行运算的关系须有相同的结构
1.并:由属于这两个关系的元组成(R∪S) 2.差:从前一个关系去掉后一个关系中也有的元组
(R-S )----结果为属于R但不属于S的元组 3.交:由相同属于两个关系的元组组成的集合(R∩S) 例: A B C A B C R S
A1 B1 C1 A1 B2 C2 A1 B2 C2 A1 B3 C2
A2 B2 C1 A2 B2 C1
-9-
第一章 Visual FoxPro基础
A B C A B C
RUS
A1 B2 C2 A2 B2 C1 A1 B1 C1 二、专门
1.选定
A1 B1 C1 的关系运算 A1 B2 C2 A2 B2 C1 A1 B3 C2 A B C 择 Select
义:从关系中找出满足给定条件的元组的操作
条件由逻辑表达式给出
水平方向的选择----- 行(选行操作) 结果是原关系的一个子集
例:查询总分在480以上的考生 2.投影 Project
含义:从关系模式中指定若干个属性组成新的关系
垂直方向的选择 —选列
例: 显示学生信息表的特长属性
只产生由学号,姓名,特长,组成的新表
3.联接 join
含义:将两个关系模式组合,生成的新关系中包含满足联接条件的元组
两表横向结合
例:学生表和成绩表,通过学号连接。 4.自然联接
-10-