关系数据库基础解析:关系、域与笛卡尔积

张开发
2026/4/11 5:16:02 15 分钟阅读
关系数据库基础解析:关系、域与笛卡尔积
1.关系与域的基础概念1.1关系相关概念关系定义从用户角度看关系是一张包含行和列的二维表是逻辑结构在关系数据库中实体和联系都用关系二维表表达且基于集合代数。联系与关系区别联系是实体及实体之间的关联关系是特例的二维表。1.2域的概念域的含义域有两种可能一是时域如性别男、女二是问题域。在数据库中域通常指值域即取值范围。值域类型值域分为两种一种是给出上下限的范围如年龄取值范围是大于等于 0 小于等于 100另一种是枚举型将所有可能取值全部列出如性别男、女。但有些值域无法枚举如全体中国人的姓名此时采用数据类型加长度的方式描述如姓名字符型 8 位中文为 4 个字符这种方式效率高但不精确。2.笛卡尔积与关系术语2.1笛卡尔积定义笛卡尔积是所有列的所有取值组合具有严格顺序可通过定位指针确定顺序类似于时针、分针、秒针的转动顺序。计算方法笛卡尔积的基数取值可能总数可通过各列取值可能数连乘得到如导师有 2 种取值可能专业有 2 种取值可能研究生有 3 种取值可能则笛卡尔积的基数为 2×2×3 12。相关术语笛卡尔积的每一行称为一个元组有几列就叫几元组元组中的某一个元素称为分量基数是计算笛卡尔积所有取值的可能。2.2关系定义关系是从笛卡尔积当中选取能够真实描述客观世界的一个子集其表述形式为 r(第一, 第二, …, 第 n)括号内为列名关系名称用于明确描述的内容。关系性质关系的行和列顺序无所谓因为集合的特征就是顺序无所谓任意两个元组的主码不能相同否则无法区分分量必须取原子值即不能再划分。3.数据库表结构3.1基本表与查询表基本表关系数据库中的基本表至少有两列因为要建立主键参照即 a 的数据对应 b 的数据至少需要一列主码和一列外码。查询表查询表是执行 SQL 语句从硬盘数据库中提取部分数据送入内存并显示在屏幕上的临时表数据不能修改是单向取数据。3.2视图定义视图是一种抽取规则不是执行语句。打开视图时规则生效从硬盘按规则读数据送内存和屏幕数据可双向修改即修改的数据会写回硬盘。特点视图本身是临时的但视图里改的数据会影响硬盘上的表。4.数据库模式4.1关系模式定义两级模式关系模式分数据库级和表级。数据库级模式包含各种数据库对象如基本表、视图、索引、查询、函数、过程、约束、触发器等表级模式是一张表的表头如学号、姓名、年龄、性别等。五元组关系模式是一个五元组包括关系名称、字段集合、域集合、从域中选取数据并变换的规则、数据间的关系。通常会省略后三个部分简写为关系名及对应的列字段。4.2数据与关系数据自身数据包括属性名称、属性的域以及从域中挑选数据的规则即映射关系通常是直接选取也可进行抽取并转换。数据间关系在一张表中各字段之间存在数据依赖关系如学号能决定姓名、年级等信息。完整性约束完整性约束包括实体完整性、参照完整性和自定义完整性用于保证数据质量。5.数据库操作5.1关系操作类型典型操作关系的典型操作包括选择从行中挑选、投影从列中挑选和连接从多个表中挑选。集合操作包括并、交、差。交可以用并和差推导得到。特殊操作除操作是为适应高频场景将复杂操作简化为一条命令本质上可拆解为多个基本步骤。5.2基本操作关系操作的 5 种基本操作为笛卡尔积、选择、投影、并、差。连接是笛卡尔积的一个子集除不是基本操作。5.3语言分类关系代数语言通过代数表达式进行推理和化简。关系演算语言包括元组关系演算和域关系演算谓词相当于一条命令根据作用对象是行还是列分为不同类型。SQL语言结构化查询语言具有关系代数和关系演算双重特点既可以进行数据推理又可以发布命令。

更多文章