第2章 关系数据库数据库属性等

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D1={07050101,07050102 ,07030201,07030202,07060101,07060102} D2={王林,程小明,赵倪晓,朱庆,李运洪,张美红} D3={男,女}
其中,D1,D2,D3 为域名,分别表示学生关系中的学号、姓名和性别的取值范围。 这3个域的基数分别是6,6,2。 2.笛卡儿积(Cartesian Product) 定义2.2 给定一组域D1,D2,…,Dn(它们可以包含相同的元素),D1,D2,…, Dn 的笛卡儿积为
2.1.5 关系数据库
关系模型中,实体、实体间的联系都是以关系来表示的。例如,学生成绩数据库中, 学生(XS)和课程(KC)关系是用于表示实体的,而学生选课(XS_KC)关系则用于表 示“学生”实体与“课程”实体间的联系。 定义2.5 在给定的应用领域,所有实体及实体之间联系的关系的集合构成一个关系数 据库。 例如,在研究学生选修课程的问题域中,学生(XS)、课程(KC)、学生选课 (XS_KC)三个关系的集合就构成学生成绩数据库。 关系数据库也区分“型”和“值”。关系数据库的型即关系数据库模式,是对关系 数据库结构的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系 模式,通常以关系数据库中包含的所有关系模式的集合来表示关系数据库模式。例如,学 生成绩数据库模式即为学生(XS)、课程(KC)、学生选课(XS_KC)三个关系模式构 成的集合。 关系数据库的值是指关系数据库模式中的各关系模式在某一时刻对应的关系的集合。 例如,若学生数据库模式中各关系模式在某一时刻对应的关系分别见表2.6、表2.7和 表2.8,那么它们就是学生数据库的值。
2.1.5 关系数据库
表2.6 XS关系
学 号 07050101 07050102 07030201 姓 名 王 林 程小明 赵倪晓 性 别 男 男 女 出生日期 1989-3-2 1988-11-5 1989-4-5 专 业 计算机应用 计算机应用 通信工程 总 学 分 14 6 8 是 是 国家二级运动员 班 干 否 备 注 党员
2.1.2 关系的形式化描述
笛卡儿积也可用二维表的形式表示。例如,上述 D1×D2可表示为表2.4。表2.4 D1,D2的笛卡儿积 D1D2王 林男王 林女程小明男程小明女赵倪晓男 赵倪晓女朱 庆男朱 庆女李运洪男李运洪女张美红男 张美红女 可见,笛卡儿积实际是一个二维表,表的任意一 行就是一个元组,表中的每一列来自同一个域,如表 2.4中第一个分量来自D1,第二个分量来自D2。 3.关系(Relation) 定义2.3 笛卡儿积D1×D2×…×Dn的任一子集 称为域D1,D2,…,Dn上的关系。 关系可用R(D1,D2,…,Dn)的形式表示,其 中R为关系名,n是关系的度(Degree),也称目。 通常,笛卡儿积D1×D2×…×Dn的许多子集是 没有实际意义的,只有其中的某些子集才有实际意义。
2.1.1 关系
元组:一个元组(Tuple)指二维表中的一行。例如,(07050101,王林,男, 1989-3-2,计算机应用)就是一个元组。 ● 属性:一个属性(Attribute)指二维表中的一列,表中每列均有名称,即属性名。 例如,“学 生基本情况表”有6列,对应6个属性:学号、姓名、性别、出生日期、专业、 班级。 ● 码:码(Key)也称为键、关键字、关键码,指其值可唯一确定表中元组的属性或 最小属性组合。例如,“学生基本情况表”中的“学号”属性即为码。 ● 域:域(Domain)指属性的取值范围。例如,按照学校对学生学号的编排方法, 学号具有一定的范围限制,性别只能取(男,女)之一等。 ● 分量:分量指元组中的一个属性值。例如,元组(07050101,王林,男,1989-32,计算机应用)中的“07050101”即为其分量。 ● 关系模式:关系模式是对关系“型”的描述,通常表示为:关系名(属性1,属性 2,…,属性n)。例如,XS(学号,姓名,性别,出生日期,专业),关系名为XS,该关 系包括5个属性,分别是:学号、姓名、性别、出生日期、专业。 关系模型中,要求关系必须是规范化的,即关系要满足规范条件。规范条件最基本的一 条就是要求关系的每个分量必须是原子项,是不可再分的数据项,即不允许出现表中表的情 形。例如,表2.2的学生情况表中,出生日期是可再分的数据项,因此不符合关系数据库的 要求。
M mi
i 1
n
例如,上述学生关系中姓名、性别两个域的笛卡儿积为: D1D2={(王林,男),(王林,女),(程小明,男),(程小明,女),(赵 倪晓,男),(赵倪晓,女),(朱庆,男),(朱庆,女),(李运洪,男),(李运 洪,女),(张美红,男),(张美红,女)} 其中,王林、程小明、赵倪晓、朱庆、李运洪、张美红和男、女都是分量,(王林, 男),(王林,女)等是元组。该笛卡儿积的基数M=m1×m2=6×2=12,即D1×D2的 元组个数为12。

2.1.1 关系
表ቤተ መጻሕፍቲ ባይዱ.2 学生情况表
学 号 07050101 07050102 07030201 07030202 07060101 07060102 姓 名 王林 程小明 赵倪晓 朱庆 李运洪 张美红 性 别 男 男 女 男 女 女 出生日期 年 1989 1988 1989 1988 1990 1989 月 3 11 4 6 1 8 日 2 5 5 4 6 9 专 业 计算机应用 计算机应用 通信工程 通信工程 英语 英语
表2.3将关系与现实世界中的二维表格各自使用的术语进行了对照。
表2.3 术语对照表
关系术语 关系名 关系模式 关系 元组 属性 属性名 属性值 现实世界术语 表名 表头 二维表 记录 列 列名 列值
2.1.2 关系的形式化描述
在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。 1.域(Domain) 定义2.1 域是一组具有相同数据类型的值的集合,又称为值域(用D表示)。 例如,整数、实数和字符串的集合都是域。 域中所包含的值的个数称为域的基数(用 m 表示)。域表示了关系中属性的取值范围。 例如:
2.1.2 关系的形式化描述
表2.5 R1关系
D1 王 林 程小明 赵倪晓 D2 男 男 女
朱 庆
李运洪 张美红

女 女
下面是对定义2.3的几点说明。 ① 关系中元组个数是关系的基数。如关系 R1的基数为6。 ② 关系是一个二维表,表的任意一行对应 一个元组,表的每一列来自同一域。由于域可以 相同,为了加以区别,必须为每列起一个名字, 称为属性。n元关系有n个属性,属性的名字唯 一。 ③ 在数学上,关系是笛卡儿积的任意子集, 但在数据库系统中,关系是笛卡儿积中所取的有 意义的有限子集。
2.1.2 关系的形式化描述
② 元组中的每一个值di 叫做一个分量(Component),分量来自相应的域(di∈Di)。 ③ 笛卡儿积也是一个集合。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1, 2,…n),则笛卡儿积D1D2…Dn 的基数 M(即元素(d1,d2,…,dn)的个数)为 所有域的基数的累积,即
2.1.4 关系模式
在第1章已提到,在数据库中要区分“型”和“值”。关系数据库中,关系模式是“型”, 关系是“值”。 定义2.4 关系的描述称为关系模式(Relation Schema)。关系模式可形式化地表示为 R(U,D,dom,F) 其中,R为关系名;U为组成关系的属性名集合;D为属性组U中属性所来自的域;dom 为属性与域之间的映象集合;F为属性间依赖关系的集合。 由定义2.4可看出,关系模式是关系的框架,是对关系结构的描述。它指出了关系由哪些 属性构成,属性所来自的域以及属性之间的依赖关系等。关于属性间的依赖关系将在第5章讨 论,本章中关系模式仅涉及关系名R、属性集合U、域D、属性到域的映像dom这4个部分,即 R(U,D,dom)。 关系模式通常可简记为:R(U)或R(A1,A2,…,An)。其中R为关系名,A1, A2,…,An为属性名(i=1,2,…,n)。而域名、属性到域的映像则常以属性的类型、数据 长度来说明。 例如,在学生成绩数据库(XSCJ)中,有学生(XS)、课程(KC)、学生选课 (XS_KC)三个关系,其关系模式分别为: XS(学号,姓名,性别,出生日期,专业,总学分,班干否,备注) KC(课程号,课程性质,课程名,开课学期,总学时,学分) XS_KC(学号,课程号,成绩) 关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。关系是关系模式在 某一时刻的状态或内容,关系的各种操作将不断地更新数据库中的数据。
D1D2……Dn={(d1,d2,…,dn)| di∈Di,i=1,2,…,n}
其中: ① 每一个元素(d1,d2,d3,…,dn)称为一个 n 元组(n-tuple),简称元组 (Tuple)。注意元组中的每个分量di是按序排列的,如(07050101,王林,男)≠(王林, 07050101,男)≠(男,王林,07050101)。
2.1.1 关系
图2.1 二维表的关系表示图
在人们日常理解中,学生是一个抽象的概念,而学生王林是一个具体的学生,是学生 中的一员。在数据库领域中把学生称为实体“型”,学生王林则称为一个实体“值”或简 称实体。在关系模型中,关系模式描述了一个实体型,而关系实例则是关系模型的“值”, 关系实例通常由一组实体组成。 以下介绍关系模型中一些常用的术语。 ● 关系:以非形式化的描述,一个关系(Relation)就是指一张二维表。例如, “学生基本情况表”就是一个关系。
表2.4 D1,D2的笛卡儿积
D1 王 林 王 林 程小明 程小明 赵倪晓 赵倪晓 朱 庆 朱 庆 李运洪 李运洪 张美红 张美红 D2 男 女 男 女 男 女 男 女 男 女 男 女
例如,表2.4所示的D1×D2笛卡儿积中的许多元组都是没有实际意义的,因为一个学 生的性别只有一种。因此表2.4中的一个子集才是有意义的,见表2.5,表示了学生的性别, 将其取名为R1。
二维表具有如下特点: ① 每个表具有表名; ② 表由表头和若干行数据两部分构成; ③ 表头有若干列,每列都有列名; ④ 同一列的值必须取自同一个域。例如,专业只能取自该学校有的专业; ⑤ 每一行的数据代表一个实体的信息。 对二维表可以进行如下操作: ① 增加数据。例如,向“学生基本情况表”中增加一个同学的数据(07050103,王 俊,男,1989-10-1,计算机应用)。 ② 修改数据。例如,改正“学生基本情况表”中的错误数据。 ③ 删除数据。例如,从“学生基本情况表”中去掉一个学生的数据。 ④ 查询数据。例如,在“学生基本情况表”中按某些条件查找满足条件的学生。 2.关系 关系模型的数据结构非常简单,只包含单一数据结构,即关系。从用户角度看,一个 关系就是一个规范化的二维表。关系模型就是用关系这种二维表格结构来表示实体及实体 之间联系的模型,即关系模型是各个关系框架的集合。 一个关系由关系模式和关系实例组成。通常,它们分别对应于二维表的表名、表头和 数据。若将表2.1的“学生基本情况表”表示成关系,则如图 2.1 所示。
2.1.3 关系的性质
关系具有以下6条性质: ① 列是同质的(Homogeneous),即每列中的分量必须是同一类型的数据; ② 不同的列可以出自同一个域,但不同的属性必须赋予不同的属性名; ③ 列的顺序可以任意交换。交换时,应连同属性名一起交换; ④ 任意两个元组不能完全相同; ⑤ 关系中元组的顺序可任意,即可任意交换两行的次序; ⑥ 分量必须取原子值,即要求每个分量都是不可再分的数据项。
2.1 关系数据结构
2.1.1 关系
1.二维表 在日常工作中,经常会碰到成绩册、职工表等二维表格,这些二维表的共同特点是由多 个行和列组成。每个列有列名,表示了某个方面的属性,每行由多个值组成。例如,见表 2.1,学生基本情况表就是一个二维表,体现了某个班级的学生基本情况,定义表名为XS。
2.1.1 关系
相关文档
最新文档