学习,永无止境!|

韩熙隐ario

园龄:2年11个月粉丝:1关注:0

2025-03-04 22:01阅读: 42评论: 0推荐: 1

《数据库系统概论》(王珊第五版)知识点回顾

第一章 绪论

数据库系统概述

数据库(DB):长期存储在计算机内、有组织的、可共享的大量数据的集合。

数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件,主要功能包括数据定义、数据操纵、数据库的运行管理、数据库的建立和维护等。

数据库系统(DBS):由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)构成。

数据模型

概念模型:主要用于数据库设计,如 E - R 模型,用实体、属性、联系来描述现实世界。

逻辑模型和物理模型:逻辑模型包括层次模型、网状模型、关系模型等。关系模型是目前应用最广泛的,它用二维表结构来表示实体及实体间的联系。物理模型描述数据在存储介质上的组织结构。

第二章 关系数据库

关系数据结构

关系:一个关系对应一张二维表,表中的一行称为一个元组,一列称为一个属性。

候选码:能唯一标识一个元组的属性或属性组。主码是从候选码中选定的一个。

关系模式:关系的描述,一般表示为关系名 (属性 1, 属性 2, …, 属性 n)。

关系操作

关系操作包括查询(选择、投影、连接、除、并、交、差等)和更新(插入、删除、修改)操作。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。

关系的完整性

实体完整性:主码的取值不能为空且唯一。

参照完整性:外码要么取空值,要么取被参照关系中主码的值。

用户定义的完整性:用户针对具体的应用环境定义的完整性约束条件。

第三章 SQL 语言

SQL 概述

SQL 是结构化查询语言,是关系数据库的标准语言,具有数据定义、数据操纵、数据控制等功能。

数据定义

创建表

CREATE TABLE <表名>

( <列名> <数据类型> \[列级完整性约束条件]

&#x20; \[, <列名> <数据类型> \[列级完整性约束条件]]

&#x20; …

&#x20; \[, <表级完整性约束条件>] );

修改表

ALTER TABLE <表名>

\[ADD \[COLUMN] <新列名> <数据类型> \[完整性约束]]

\[DROP \[COLUMN] <列名> \[CASCADE | RESTRICT]]

\[ALTER COLUMN <列名> <数据类型>];

删除表

DROP TABLE <表名> \[RESTRICT | CASCADE];

数据查询

单表查询

SELECT \[ALL | DISTINCT] <目标列表达式>\[, <目标列表达式>]…

FROM <表名>

\[WHERE <条件表达式>]

\[GROUP BY <列名1> \[HAVING <条件表达式>]]

\[ORDER BY <列名2> \[ASC | DESC]];

连接查询:包括等值连接、自然连接、非等值连接、外连接(左外连接、右外连接、全外连接)等。

嵌套查询:将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询。

数据更新

插入数据

INSERT INTO <表名> \[(<属性列1>\[, <属性列2>…])]

VALUES (<常量1>\[, <常量2>…]);

修改数据

UPDATE <表名>

SET <列名>=<表达式>\[, <列名>=<表达式>]…

\[WHERE <条件表达式>];

删除数据

DELETE FROM <表名>

\[WHERE <条件表达式>];

第四章 数据库安全性

数据库安全性概述

数据库安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。

数据库安全性控制

用户身份鉴别:常用方法有口令、生物特征识别等。

存取控制:包括自主存取控制(DAC)和强制存取控制(MAC)。DAC 通过 GRANT 和 REVOKE 语句来实现对不同用户授予或收回不同的权限。

GRANT <权限>\[, <权限>]…

ON <对象类型> <对象名>

TO <用户>\[, <用户>]…

\[WITH GRANT OPTION];

REVOKE <权限>\[, <权限>]…

ON <对象类型> <对象名>

FROM <用户>\[, <用户>]… \[CASCADE | RESTRICT];

视图机制、审计、数据加密等也是保障数据库安全的重要手段。

第五章 数据库完整性

实体完整性

在 CREATE TABLE 语句中,通过 PRIMARY KEY 定义主码来实现实体完整性。

参照完整性

在 CREATE TABLE 语句中,通过 FOREIGN KEY 定义外码,并使用 REFERENCES 指定被参照表及主码来实现参照完整性。

用户定义的完整性

包括列值非空(NOT NULL)、列值唯一(UNIQUE)、检查列值是否满足一个布尔表达式(CHECK)等约束条件,在 CREATE TABLE 语句中定义。

第六章 关系数据理论

函数依赖

设 R (U) 是一个属性集 U 上的关系模式,X 和 Y 是 U 的子集。若对于 R (U) 的任意一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等, 而在 Y 上的属性值不等,则称 “X 函数确定 Y” 或 “Y 函数依赖于 X”,记作 X→Y。

范式

1NF:每一个分量必须是不可分的数据项。

2NF:若关系模式 R∈1NF,并且每一个非主属性都完全函数依赖于 R 的码,则 R∈2NF。

3NF:若关系模式 R∈2NF,并且每一个非主属性都不传递函数依赖于 R 的码,则 R∈3NF。

BCNF:关系模式 R<U,F>∈1NF,若 X→Y 且 Y⊈X 时 X 必含有码,则 R<U,F>∈BCNF。

模式分解

模式分解的目标是消除数据冗余和操作异常,分解要具有无损连接性和保持函数依赖。

第七章 数据库设计

数据库设计概述

数据库设计的任务是根据一个单位的信息需求、处理需求和数据库的支撑环境(包括硬件、操作系统与 DBMS),设计出数据模式和应用程序。

数据库设计步骤

需求分析:通过调查收集用户对数据库的信息需求、处理需求等。

概念结构设计:采用 E - R 模型,设计出反映用户需求的概念模型。

逻辑结构设计:将概念模型转换为关系模型,并进行优化。

物理结构设计:为关系数据模型选择合适的存储结构和存取方法。

数据库实施:建立数据库,编写和调试应用程序,组织数据入库等。

数据库运行和维护:对数据库进行评价、调整、修改等维护工作。

第八章 数据库编程

嵌入式 SQL

将 SQL 语句嵌入到高级语言(如 C、Java 等)程序中,利用高级语言的过程性结构来弥补 SQL 语言在实现复杂应用方面的不足。需要解决 SQL 语句与主语言之间的通信等问题。

动态 SQL

允许在程序运行过程中根据实际需要动态生成 SQL 语句,提高程序的灵活性。

第九章 关系查询处理和查询优化

关系查询处理步骤

查询分析:对查询语句进行语法分析、语义检查等。

查询检查:检查用户权限等。

查询优化:选择一个高效执行的查询处理策略,包括代数优化(基于关系代数等价变换规则)和物理优化(选择合适的存取路径和操作算法)。

查询执行:根据优化后的策略执行查询。

查询优化的重要性

可以极大地提高查询效率,减少系统开销,尤其是在大数据量和复杂查询情况下。

第十章 数据库恢复技术

事务

事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),即 ACID 特性。

故障类型

事务内部故障:如运算溢出、违反完整性约束等。

系统故障:如操作系统故障、DBMS 代码错误等。

介质故障:如磁盘损坏等。

恢复技术

日志文件:用于记录事务对数据库的更新操作,是恢复的重要依据。

恢复策略:针对不同故障类型,采用不同的恢复策略,如事务故障恢复采用撤销事务操作,系统故障恢复采用撤销未完成事务和重做已提交事务,介质故障恢复需要重装数据库副本并重做已提交事务等。

本文作者:韩熙隐ario

本文链接:https://www.cnblogs.com/arioya/p/18751599

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   韩熙隐ario  阅读(42)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起