news 2026/7/9 2:05:21

数据库期末复习(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据库期末复习(三)

数据库期末复习(三)

DBMS的主要作用

DBMS是用户/应用程序与物理数据之间的“中间软件层”,它负责安全、高效、统一地管理数据,并向上层屏蔽底层存储的复杂性。

具体来说,它的核心作用可以总结为以下四大职能

1. 数据定义与构建(搭架子)

  • 负责执行DDL(数据定义语言),建立我们之前讲的三级模式结构(外模式、概念模式、内模式),并定义数据的完整性约束(如主键、外键规则)。

2. 数据操纵与访问(做服务)

  • 负责执行DML(数据操作语言),为用户和应用程序提供增、删、改、查(CRUD)接口。它会把我们写的高层SQL语句,翻译成底层文件能理解的读写指令。

3. 数据的控制与管理(保安全)

  • 安全性:检查用户权限,防止非法访问(对应外模式的视图隔离)。
  • 完整性:保证数据符合规则(比如年龄不能是负数)。
  • 并发控制:处理多用户同时访问,避免数据错乱(通过事务和锁机制)。
  • 故障恢复:在系统崩溃后,利用日志将数据恢复到一致状态。

4. 实现数据独立性(核心价值)

  • 维护两级映射(外/概念映射、概念/内映射)。这正是我们上一题的核心:
    • 当DBA改变存储方式(建索引)时,应用程序不用改(物理独立性)。
    • 当表结构微调(加字段)时,用户视图可以不变(逻辑独立性)。

关系模型

关系模型是数据库领域的基础概念。它由IBM研究员E.F.Codd在1970年提出,是逻辑数据模型的一种。目前主流的关系数据库(如MySQL、Oracle、SQL Server)都基于此模型。

下面从数据结构、数据操作和完整性约束三个方面来说明关系模型,这也对应了数据模型的三要素。


1. 数据结构:二维表

关系模型的数据结构简单统一,就是二维表格。用户看到的数据和表之间的关系,都以这种逻辑上的二维表形式呈现。

相关术语对照如下:

  • 关系(Relation):对应一张二维表
  • 元组(Tuple):对应表中的一行(一条记录)。
  • 属性(Attribute):对应表中的一列(一个字段)。
  • 域(Domain):属性的取值范围,比如性别的域是{男,女}。
  • 分量(Component):元组中的一个属性值,即表格中的一个具体单元格。

关系必须满足的特性

  • 每个分量必须是不可分的数据项(满足第一范式)。
  • 表中不允许出现重复的行(元组唯一)。
  • 行与列的顺序可以任意交换,不影响逻辑含义。

2. 关系的键(码)

为了唯一标识表中的行,关系模型引入了键(Key)的概念:

  • 超键(Super Key):能唯一标识一个元组的属性或属性组合,可能包含多余属性。
  • 候选键(Candidate Key):能唯一标识元组且不含多余属性的属性组合。一个关系可能有多个候选键。
  • 主键(Primary Key):从候选键中选定一个,作为该表的唯一标识。主键值不能重复,也不能为空。
  • 外键(Foreign Key):一个表中的属性,如果它是另一个表的主键,则称为外键。外键用于建立表与表之间的联系。

3. 数据操作:关系代数与关系演算

关系模型的数据操作是日面向集合的,操作对象和结果都是关系(二维表)。用户不需要指定数据的物理存取路径,DBMS会负责优化。

  • 关系代数:以集合运算为基础,包含传统的集合运算(并、交、差、笛卡尔积)和专门的关系运算(选择、投影、连接、除)。
  • 关系演算:以谓词逻辑为基础,用户只需描述“要什么”,不需要描述“怎么取”。
  • SQL语言:SQL是关系数据库的标准语言,它综合了关系代数和关系演算的特点,是用户操作关系数据库的实际工具。

4. 完整性约束

关系模型定义了三类完整性规则,由DBMS自动维护:

  • 实体完整性:主键的属性值必须唯一,且不能取空值。
  • 参照完整性:外键的值要么为空,要么必须等于被参照表的主键值。
  • 用户定义完整性:根据业务需求自定义的约束,例如年龄范围(0-150)、性别只能为男或女等。

5. 关系模型的优缺点

优点

  • 数据结构简单,用户容易理解。
  • 数据独立性高,用户无需关心物理存储细节。
  • 有坚实的数学理论基础(集合论和逻辑学),便于优化和规范化。

缺点

  • 处理复杂对象或嵌套结构时表达能力有限(例如处理树形结构或图结构时操作不够直观)。
  • 对于大规模高并发场景,严格的ACID事务约束可能会限制性能扩展,这也是NoSQL数据库出现的原因之一。

关系代数

关系代数是一种过程化查询语言。它通过一组运算,以一个或多个关系(二维表)作为输入,并输出一个新的关系作为结果。核心特征是封闭性:运算的结果仍然是关系,因此可以嵌套组合,形成复杂查询表达式。

关系代数定义了8种基本运算,可以分成集合运算专门关系运算两类。


1. 集合运算(基于行)

这类运算来源于数学集合论,要求参与运算的两个关系必须并兼容:它们具有相同的属性个数,且对应属性的数据类型相同。

运算符号作用示例(求结果)
返回属于R或属于S的所有元组(去重)选修了数学课或英语课的学生集合
返回同时属于R和S的元组既选修了数学课又选修了英语课的学生集合
-返回属于R但不属于S的元组只选修了数学课但没选修英语课的学生集合
笛卡尔积×将R的每一行与S的每一行进行组合,生成一个更大的关系学生表 × 课程表 = 每个学生与每门课程的排列组合(无实际意义,常配合选择使用)

2. 专门关系运算(基于行列操作)

这类运算直接针对二维表的行和列进行操作,是查询中最核心的部分。

运算符号(希腊字母)作用类比SQL
选择σ(Sigma)按条件筛选行。从关系中选择满足给定条件的元组。WHERE条件子句
投影π(Pi)按列筛选。从关系中选择指定的若干属性,并去除重复行。SELECT列名
连接⨝(Join)将两个关系根据条件组合成一个新关系。这是笛卡尔积 + 选择条件的组合。JOIN ... ON ...
÷(Division)适合处理“查询全部/所有”的问题。例如:查询选修了所有必修课程的学生。通常用NOT EXISTS实现

3. 连接运算的进一步细分

连接是关系代数中最常用也最重要的运算,按条件不同分为:

  • θ连接(Theta Join):最通用的连接,在笛卡尔积基础上应用一个比较条件(如R.A > S.B)。
  • 等值连接(Equi Join):θ连接的特例,连接条件只能是相等(如R.id = S.id)。
  • 自然连接(Natural Join):等值连接的特例。它自动寻找两个关系中同名的属性,自动做等值连接,并去掉重复的同名列。这是实际中最常用的连接方式。
  • 外连接(Outer Join):在自然连接基础上,保留未匹配成功的行(左外、右外、全外)。

4. 重命名运算

  • 符号:ρ(Rho)
  • 作用:给关系或属性起临时别名。常用于自连接(一个表与自身连接)或嵌套查询中。

5. 关系代数与 SQL 的关系

  • 关系代数是SQL语言的理论基础。SQL的SELECT语句本质上就是关系代数表达式的具体实现。
  • 对应关系:SELECT ... FROM ... WHERE ... GROUP BY ...的底层解析,最终会被数据库优化器转换成关系代数操作树进行优化。
  • 过程化特征:关系代数指明了运算的顺序(先做什么、后做什么)。与之相对的是关系演算,它只描述“要什么”而不描述“怎么做”,SQL更接近关系演算,但执行时被转换成关系代数。

6. 示例说明(方便理解)

假设有两个表:学生(学号,姓名)选课(学号,课程)

查询:查找选修了“数据库”课程的学生的姓名。

关系代数表达式

π_姓名( σ_课程='数据库'( 学生 ⨝ 选课 ) )

运算步骤

  1. 学生 ⨝ 选课:做自然连接,得到“学号-姓名-课程”的完整信息。
  2. σ_课程=‘数据库’:选择出课程为“数据库”的行。
  3. π_姓名:只投影出“姓名”这一列。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 2:02:18

IP检测能查出账号关联风险吗?一文理清真相与避坑要点

之前帮一个做了好几年多账号运营的朋友处理风控问题,他花了钱做IP检测,测出来所有IP都显示干净,结果还是一批账号被判定关联封号,这半年身边至少有五六个朋友问我同一个问题:IP检测到底能不能查出账号关联风险&#xf…

作者头像 李华
网站建设 2026/7/9 2:01:26

SQL 注入之报错型注入

SQL 注入之报错型注入漏洞 — 当页面不说话,就让错误来开口 上节课我们用 Union 联合查询把数据库翻了个底朝天。但问题来了——如果 Union 用不了怎么办? 页面没有回显位置、字段数不匹配、单引号被过滤……别慌,这节课教你报错型注入&#…

作者头像 李华
网站建设 2026/7/9 2:00:06

基于 STM32 的智能防走失腰带设计与实现

一、系统概述 智能防走失腰带针对老人、儿童及认知障碍人群设计,以 STM32 为主控核心,集成 GPS 定位、GSM 通信、蓝牙近场告警、一键 SOS 求救等功能,当佩戴者超出安全范围或主动求助时,立即向监护人手机发送位置信息与告警信号。 二、硬件选型与接线 2.1 主控芯片选型 …

作者头像 李华
网站建设 2026/7/9 1:58:23

在合肥,想找一份薪资1W的硬件工作

大家好,我是记得诚。 一个读者咨询来合肥找工作的事情,如下是对话,大家觉得如何? 读者: 老板,我想咨询合肥找工作,找硬件这方面工作的事情 此处是一个红包 能不能方便解答 记得诚&#xff1a…

作者头像 李华
网站建设 2026/7/9 1:58:15

2026百度网盘下载还卡在几十KB?老用户分享真实提速经验

老铁们,最近在社区里看到不少兄弟在埋怨云端资源下载慢、大文件动辄卡在 100KB/s 挂机到天亮。作为一名十几年的后端研发,看到这种长轴距的 I/O 阻塞调优场景,手就有满负荷敲代码的冲动。其实这种云端大文件传输遭遇通道优化的底层逻辑很简单…

作者头像 李华