时间:2022-12-24 04:30:01 | 来源:信息时代
时间:2022-12-24 04:30:01 来源:信息时代
关系模式 : 对关系的逻辑结构和特征的描述。在关系数据库中,关系是一张规范化了的二维表,一张二维表中的数据称为一个关系实例。关系实例由表中的行组成,这些行称为元组,列称为属性。由于关系操作在不断地更新着关系中的数据,关系也就是某一时刻关系模式的当前值。由此可见,关系模式是型,关系是值,关系模式是静态的、稳定的,而关系是动态的。关系模式对关系的描述内容主要分为两部分:
1. 关系的命名结构
关系是元组的集合,关系中的一个元组就是该关系所涉及属性集的笛卡儿积的一个元素,因此,关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系等。其次,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡儿积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。因此,关系模式应描述这些关系名、属性名、属性值域。
2.数据完整性约束条件
由于现实世界随着时间在不断地变化,关系模式的关系也在不断地被更新,现实世界的许多已有事实和规定,限定了关系模式中的关系必须满足一定的完整性约束条件。这些约束或者限定了属性的取值范围,例如,学生的考试成绩必须在0~100分之间;或者通过属性值间的相互关联和依赖反映出来,例如,一个学生只能有一个学号且不能为空值等。因此,关系模式应当刻画出这些完整性约束条件,主要体现在: 主键的选择、各种数据依赖和值的限制及各种操作的影响等。
定义一个关系模式为一个五元组,它可形式化地表示为: R(U,D,dom,I,F)。其中,R为关系名,U为组成该关系的属性名集合,D为属性集U中属性所来自的域,dom为属性向域的映象集合,I为一组完整性约束条件,F为属性间数据的依赖关系集合。
通常关系模式也可以简记为: R(U)或R(A1,A2,…,An)。其中,R为关系名,R(U)或R(A1,A2,…,An)为属性名。而域名及属性向域的映象常常直接说明为属性的类型和长度。
例如,学生选课系统中,包含有实体型关系“学生”、“课程”和联系型关系“选修”。学生关系的属性有学号、姓名、性别、年龄和学生所在系,学号为主键;课程关系的属性有课程号、课程名、开课系和任课教师,课程号为主键; 学生和课程之间有多对多的联系(一个学生可选多门课程,一门课程可以被多个学生选修),这种联系通过选修关系实现,选修关系的属性有学号、课程号和成绩,学号和课程号为组合键。其实体-联系图如图1所示,各关系实例如图2所示。
图1 学生选课系统实体-联系图
学生关系
学号 | 姓名 | 性别 | 年龄 | 学生所在系 |
060403 | 王小倩 | 女 | 20 | 计算机 |
060511 | 肖林 | 男 | 21 | 工商管理 |
060423 | 秦军伟 | 男 | 20 | 计算机 |
062315 | 唐伟强 | 男 | 21 | 机械电子 |
课程关系
课程号 | 课程名 | 开课系 | 开课教师 |
32521 | C语言 | 计算机 | 王德芳 |
32533 | 操作系统 | 计算机 | 李永新 |
34255 | 英语 | 外语 | 彭大年 |
35164 | 概率 | 物学 | 张楠 |
选课关系
学号 | 课程号 | 成绩 |
060403 | 32521 | |
060403 | 32533 | |
060403 | 34255 | |
060511 | 32521 | |
060511 | 32255 | |
060511 | 35164 | |
060423 | 32521 | |
060423 | 32533 | |
060423 | 34255 | |
062315 | 32521 | |
062315 | 32255 | |
062315 | 35164 |
图2 学生选课系统关系实例表