开发者社区> 华章计算机> 正文

《数据库原理与应用(第3版)》——3.2 关系模型的基本术语

简介:
+关注继续查看

本节书摘来自华章出版社《数据库原理与应用(第3版)》一 书中的第3章,第3.1节,作者:何玉洁,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 关系模型的基本术语

在关系数据模型(简称关系模型)中,现实世界中的实体、实体与实体之间的联系都用关系来表示,关系模型源于数学,它有自己严格的定义和一些固有的术语。
关系模型采用单一的数据结构——实体以及实体间的联系均用关系来表示,并且用直观的观点来看,关系就是二维表。表3-1和表3-2所示的都是关系。
下面分别介绍关系模型中的有关术语。
1.?关系(relation)
通俗地讲,关系就是二维表,二维表的名字就是关系的名字,图3-1中的关系名就是“学生”。
2.?属性(attribute)
二维表中的列就称为属性(或叫字段),每个属性有一个名字,称为属性名。二维表中对应某一列的值称为属性值;二维表中列的个数称为关系的元数。如果一个二维表有n个列,则称其为n元关系。表3-1所示的学生关系有学号、姓名、年龄、所在系、性别5个属性,是一个五元关系。
3.?值域(domain)
二维表中属性的取值范围称为值域。例如在表3-1中,“年龄”列的取值为大于0的整数,“性别”列的取值为“男”和“女”两个值,这些就是列的值域。
4.?元组(tuple)
二维表中的一行称为一个元组(记录值),例如,表3-1所示关系中的元组有:
(0512101,李勇,男,19,计算机系)
(0512102,刘晨,男,20,计算机系)
(0512103,王敏,女,20,计算机系)
(0521101,张立,男,22,信息系)
(0521102,吴宾,女,21,信息系)
5.?分量(component)
元组中的每一个属性值称为元组的一个分量,n元关系的每个元组有n个分量。例如,元组(0512101,李勇,男,19,计算机系)有5个分量,对应学号属性的分量是“0512101”、对应姓名属性的分量是“李勇”、对应年龄属性的分量是“19”、对应性别属性的分量是“男”,对应所在系属性的分量是“计算机系”。
6.?关系模式(relation schema)
二维表的结构称为关系模式,或者说,关系模式就是二维表的表框架或表头结构。设关系名为R,其属性分别为A1,A2,…,An,则关系模式可以表示为:
R(A1,A2,…,An)
对每个Ai(i = 1,…,n)还包括该属性到值域的映像,即属性的取值范围。例如,表3-1所示关系的关系模式为:
学生(学号,姓名,性别,年龄,所在系)
如果将关系模式理解为数据类型,则关系就是一个具体的值。
7.?目或度(degree)
关系表包含的属性个数即为目或度。
8.?关系数据库(relation database)
对应于一个关系模型的所有关系的集合称为关系数据库。
9.?候选键(candidate key)
如果一个属性或属性集的值能够唯一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。候选键又称为候选关键字或候选码。在一个关系上可以有多个候选键。
10.?主键(primary key)
主键也称为主关键字,是表中的属性或属性组,用于唯一地确定一个元组。主键可以由一个属性组成,也可以由多个属性共同组成。例如,表3-1所示的学生基本信息表中,学号就是此学生关系的主键,因为它可以唯一地确定一个学生。而表3-2所示的学生选课关系的主键就由学号和课程号共同组成。因为一个学生可以修多门课程,而且一门课程也可以有多个学生选择,因此,只有将学号和课程号组合起来才能共同确定一行记录。我们称由多个属性共同组成的主键为复合主键。当某个表是由多个属性共同作为主键时,我们就用括号将这些属性括起来,表示共同作为主键。比如,表3-2的主键是(学号,课程号)。
注意,我们不能根据关系在某时刻所存储的内容来决定其主键,这样做是不可靠的,只能是猜测。关系的主键与其实际的应用语义有关、与关系模式的设计者的意图有关。例如,对于表3-2所示的“选课”关系,用(学号,课程号)作为主键在一个学生对一门课程只能有一次考试的前提下是成立的,如果实际情况是一个学生对一门课程可以有多次考试,则用(学号,课程号)作主键就不够了,因为一个学生对一门课程有多少次考试,则其(学号,课程号)的值就会重复多少遍。如果是这种情况,就必须为这个关系添加一个“考试次数”列,并用(学号,课程号,考试次数)作为主键。
有时一个关系中可能存在多个可以作主键的属性,比如,对于“学生”关系,假设增加了“身份证号”列,则“身份证号”列也可以作为学生表的主键。如果关系中存在多个可以作为主键的属性,则称这些属性为候选键属性,相应的键为候选键。
当一个关系中有多个候选键时,可以从中选择一个作为主键。每个关系只能有一个主键。
11.?主属性(primary attribute)和非主属性(nonprimary attribute)
包含在任一候选键中的属性称为主属性。不包含在任一候选键中的属性称为非主属性。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java 最常见的 208 道面试题(十八)
Java 最常见的 208 道面试题
7 0
Java - 字节流 & 字符流区别
Java - 字节流 & 字符流区别
7 0
Navicat如何设置外键和为空
Navicat如何设置外键和为空
7 0
冬季实战营第一期:从零到一上手玩转云服务器 | 学习报告
训练营日期:2022年1月17日 - 2022年1月23日 需要先报名后学习,实际是17-21共5天5个场景的学习,链接地址:https://developer.aliyun.com/adc/series/wintercamplist1?spm=a2c6h.26268694.J_3660455150.2.503610f8RnszVx 我是5月份学习的,并没有实时参加训练营,因为觉着本次训练营课程设置很实用,所以对本次学习做个总结。
6 0
心中有“树”!图文并茂介绍数据结构中常见的树(一)
提到数据结构中的树(Tree) ,大家应该都不陌生,相关书籍中都有大段篇幅的介绍,刷 Leetcode 的时候会遇到很多相关问题。很多人往往会用 “手写红黑树” 来形容面试难度很高。
10 0
心中有“树”!图文并茂介绍数据结构中常见的树(二)
计算机科学家尼古拉斯·沃斯(Niklaus Wirth)曾说过:编程=数据结构+算法 ,可见数据结构在编程中的重要性。
5 0
心中有“树”!图文并茂介绍数据结构中常见的树(三)
在前面两篇文章中,我们简要介绍了数据结构中的各种【树】在搜索、数据库等领域的使用场景,希望对大家有所帮助。
11 0
如何在小游戏制作工具中使用云函数
本节试图以最简单的方式带你了解如何在小程序后台申请和开通云开发服务,创建并编写第一个云函数并在小游戏制作工具中对其进行调用。
11 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载