1.3 关系型数据库
1.3.1 关系型数据库概念
虽然网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。关系型数据库是把每一个实体看成一个二维表,用二维表来组织和存储数据,每个二维表又称为关系。它是目前应用广泛的一种数据模型。关系型数据库管理系统是支持关系模型的数据库管理系统。
在关系型数据库管理系统中,关系型数据库是通过一个二维表来表示数据之间的联系的。表中的每一列称为一个字段,表的第一行是字段名,从第二行开始每行是一条记录。例如,可以按表1-1所示的“学籍”表来建立一个关系数据库,表中的学号、姓名、性别等称为字段,每个字段都有唯一的一个名字,并且每个字段中所有的数据都必须是同一种数据类型。从第二行开始每行是一条记录,一个数据库中可以存储多条记录。
表1-1 “学籍”表
Visual FoxPro 6.0适合用于处理二维表结构的数据,因此,Visual FoxPro 6.0是一种关系型数据库管理系统。
1.3.2 关系操作
关系型数据库管理系统不但提供了数据库管理系统的一般功能,还提供了选择、投影和连接三种基本的关系操作。
1.选择
选择是指从数据库文件中找出满足条件的若干记录。例如,从“学籍”表中查找所有男生的记录,需要通过选择操作来完成,如图1-5所示。
图1-5 选择操作
2.投影
投影是指从数据库文件中找出满足条件的记录的多个字段。例如,从“学籍”表中查找所有学生的姓名、性别和出生日期等字段内容,需要通过投影操作来完成,如图1-6所示。
图1-6 投影操作
3.连接
连接是将两个数据库文件按某个条件筛选部分(或全部)记录及部分(或全部)字段组合成一个新的数据库文件。例如,从“学籍”表和“成绩”表中,根据学号字段相同这一条件,连接生成一个新的表,新生成的表包括两个表中记录的部分(或全部)字段(同名字段只出现一次),如图1-7所示。
图1-7 连接操作
知识链接
数据库基本概念
1.实体
现实世界客观存在。可以相互区别的事物,称为实体。实体可以是实际存在的对象(如汽车),也可以是抽象的对象(如产品质量),或是事物与事物之间的联系(如一场排球赛)。
2.属性
实体或联系所具有的特征,称为属性。实体可以有多个属性,例如,“学生”实体,可以用“学号”、“姓名”、“性别”、“民族”等属性来描述。
3.域
域是属性的取值范围。域可以是字符、数值、日期、整型、逻辑等类型,如性别的值域可以是“男”或“女”。同一实体集合中,各实体值相应的属性有着相同的域。
4.元组
元组是关系数据库中的基本概念,表中的每一行(数据库中的每条记录)就是一个元组,每列就是一个属性。在二维表里,元组也称为记录。
5.关键字
能唯一标识出实体集中的各个实体的某个属性或属性组合,称为关键字。例如,在“学生”实体集中,能作为关键字的属性可以是“学号”,它唯一标识了实体集中的某一个实体,而“姓名”一般不能作为关键字,因为存在重名的可能性。
当关系中有多个属性可作为关键字而选定其中一个时,则称为该实体的主关键字。在实体的多个属性中,某属性不是该实体的主关键字,却是另一实体的主关键字,称此属性为外部关键字。
6.元数
元数即关系模式中属性的个数,也可以说表中列的个数。例如:在关系模型“学生”表中,包含有“学号”、“姓名”、“性别”、“民族”、“出生日期”、“入学成绩”、“专业”和“团员”属性,则该表的元数为8。