数据库期末复习(四)

📅 2026/7/9 1:12:46
数据库期末复习(四)
数据库期末复习四SQL语言SQLStructured Query Language结构化查询语言是关系数据库的标准操作语言。它基于关系代数和关系演算为用户操作数据库中的数据提供了统一的接口。下面从功能分类、语言特征和执行机制三个维度来说明。1. 按功能分类SQL 的功能覆盖了数据管理的全生命周期通常分为五类分类英文全称主要命令对应数据库层面DDL数据定义语言Data Definition LanguageCREATE建表/库、ALTER修改结构、DROP删除结构定义和修改概念模式和内模式。比如DBA建表、建索引。DML数据操作语言Data Manipulation LanguageINSERT插入、UPDATE修改、DELETE删除对表中的数据元组进行增、删、改。DQL数据查询语言Data Query LanguageSELECT从数据库中检索数据。这是SQL最复杂、使用最频繁的部分。DCL数据控制语言Data Control LanguageGRANT授权、REVOKE回收权限管理用户权限和安全性对应外模式的访问控制。TCL事务控制语言Transaction Control LanguageCOMMIT提交、ROLLBACK回滚、SAVEPOINT设置保存点管理事务的原子性和一致性保证并发和故障恢复。2. 核心特征非过程化声明式SQL 最重要的特征是非过程化。用户只需在SQL语句中描述“要什么”结果不需要指定“怎么去取”数据的路径例如先读哪个索引、再访问哪个数据块。对比关系代数关系代数是过程化的需要写明运算顺序如先做选择还是先做连接。SQL则更接近关系演算只描述结果特征。示例查询所有年龄大于20岁的学生姓名。SQL写法SELECT 姓名 FROM 学生表 WHERE 年龄 20;只描述结果条件关系代数写法π_姓名(σ_年龄20(学生表))指明了先做选择、再做投影的顺序执行过程用户写SQL后DBMS的查询优化器负责将SQL语句转换成等价的关系代数执行计划并选择最优的存取路径。最终在磁盘上执行的是由DBMS生成的物理操作序列。3. SQL 与关系代数的对应关系SQL 的SELECT语句在底层直接对应关系代数的几个基本运算SQL 子句对应的关系代数运算WHERE条件选择σ——筛选行SELECT列名投影π——筛选列JOIN ... ON ...连接⨝——组合两张表UNION并并∪EXCEPT差差-INTERSECT交交∩子查询/相关子查询通常可转换为除÷运算4. SQL 在数据库系统中的位置结合三级模式结构外模式通过CREATE VIEW定义视图实现用户只能看到自己权限内的视图。概念模式通过CREATE TABLE定义基本表实现是DBA定义的整体逻辑结构。内模式通过CREATE INDEX定义索引或存储参数设置实现对用户透明。DBMS 执行SQL时先解析SQL语法语义再通过两级映射把逻辑操作概念模式转换为对物理文件内模式的读写调用。视图和表在关系数据库中表和视图是两种不同性质的对象。简单来说表是实际存储数据的物理载体视图是基于表的逻辑窗口。下面从五个维度进行区分1. 本质物理 vs 逻辑表Table物理存在。数据以行和列的形式实际存储在磁盘上占用物理存储空间数据文件。视图View逻辑存在。它不存储数据本身只存储一条SELECT查询语句的定义。当用户查询视图时DBMS会执行这条定义语句从基础表中动态生成结果。2. 存储方式表存的是具体数据值。插入一行磁盘就多一行记录。视图存的是查询指令。磁盘上只保存视图的定义文本如CREATE VIEW ... AS SELECT ...不保存查询出来的数据行。3. 数据依赖性表独立存在。删除表数据就永久丢失。视图依赖基础表。如果视图所依赖的基础表被删除视图定义虽然还在但查询时会报错失效。4. 在三级模式中的位置结合之前内容表结构定义属于概念模式全局逻辑结构由CREATE TABLE(DDL) 定义。视图定义属于外模式用户视图。DBA可以通过创建视图让不同用户只看到允许他们看的数据行和列从而实现安全性和逻辑数据独立性。存储细节表的数据存储属于内模式如索引、分区视图不涉及内模式。5. 数据操作DML的差异表对表执行INSERT、UPDATE、DELETE是直接修改物理存储的数据。视图对视图进行增删改有严格限制。如果视图基于单张表且包含主键未使用聚合函数或分组通常可以更新实际会映射回基础表。如果视图涉及多表连接、分组、聚合函数SUM/AVG、或包含DISTINCT则不可更新。一句话总结表是“仓库里的真实货架”存的是实实在在的货物数据视图是“货架前的玻璃橱窗”只展示货物的一部分或组合样子橱窗本身不存货物里面展示的东西随货架变化而动态变化。