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

news/2025/3/4 22:01:46/文章来源:https://www.cnblogs.com/arioya/p/18751599

第一章 绪论

数据库系统概述

数据库(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 代码错误等。

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

恢复技术

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893653.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20250305

1 烧碱的C浪回调后 开始布局中线多单。

玄机靶场通关(持续更新)

穷,没钱开靶场,全是看网上WP尝试自学。 你这应急响应,还真是高高在上呢……玄机靶场通关 全部要VIP,所以穷鬼我要看别人的WP来学 Windows应急-应急与研判训练计划一 服务器场景操作系统 Windows 服务器账号密码 administrator P@ssw0rd 题目来源公众号 ©州弟学安全 任…

代码在线运行工具网站神器——OneCompiler,程序员必备!

今天给大家分享一款功能强大的代码在线运行工具网站——OneCompiler,它可以让你轻松实现代码的编写、运行和分享。 网址 OneCompiler目前已经被收录在【3M万能在线工具箱】的【编程开发】工具中,这里也提供大家直接的网址: OneCompiler:https://onecompiler.com/ 支持70多种…

OV5640摄像头驱动学习

简介: OV5640的功能框架如图:增益放大器(AMP)以及ISP等可以通过寄存器(registers)来配置,配置寄存器的接口就是SCCB接口,该接口协议兼容IIC协议。 SCCB (Serial Camera Control Bus)串行摄像头控制总线。该总线控制着摄像头大部分的功能,包括图像数据格式、分辨率以…

基于PID控制器的双容控制系统matlab仿真

1.课题概述 基于PID控制器的双容控制系统matlab仿真,仿真输出PID控制下的水位和流量两个指标。2.系统仿真结果 (完整程序运行后无水印) 3.核心程序与模型 版本:MATLAB2022a% 绘制结果图形 t1 = 0:1:times; t2 = 0:1:(times-1); hmax = 23*ones(1,times); % 硬约…

【APP逆向37】hook失败之ptrace占坑

现象使用attach方式hook,frida -UF -l hook.js原因unable to access process with pid 17124 due to system restrictions; try `sudo sysctl kernel.yama.ptrace_scope=0`, or run Frida as root这是ptrace占坑的标志。ptrace可以让一个进程监视和控制另一个进程的执行,并且…

AI训练进行web前后端开发协助

周五我们进行了针对web开发辅助的ai训练,以下是训练过程: 首先我搭建好了环境 然后我根据编程习惯将web前后端分成了这几点:之后我就将其丢给了deepseek,它直接帮我生成了上到mysql表格建立,下到前端jsp页面的所有文件, 哎,这之前怎么没觉得ai这么好用啊,要是用上这种开…

JavaWeb学习(六)

JavaWeb学习(六):Web前端开发 —— 其余内容 目录JavaWeb学习(六):Web前端开发 —— 其余内容Ajax前端工程化Vue 组件库 ElementVue 路由打包部署 本文为个人学习记录,内容学习自 黑马程序员Ajax概念:Asynchronous JavaScript And XML,异步的 JavaScript 和 XML作用:…

leetcode hot 19

解题思路:这题思路主要是用某个容器(数组等)来存储链表,然后再用双指针或者同时遍历的方法就可以判断。我使用栈进行存储,出栈的元素相当于链表倒序,如果和链表正序的结果相同就证明是回文。如果想用O(1)的空间,就把前一半或后一半的链表倒转,然后遍历就可以了。 /*** D…

code.c WriteUp

题目链接: https://pan.baidu.com/s/1u8bGbKcUF6_gLaw63L3jyA?pwd=h8r5 提取码: h8r5 WriteUp 题目名称:code.c 分类:Reverse 描述:得到源码的输出结果 解题思路 首先用Vscode查看code.c文件,发现该文件对argv[]进行判断处理,其中很容易联想到这和输出结果紧密联系。依次…

6. Calcite添加自定义函数

1. 简介 在上篇博文中介绍了如何使用calcite进行sql验证, 但是真正在实际生产环境中我们可能需要使用到用户自定义函数(UDF): 通过代码实现对应的函数逻辑并注册给calcitesql验证: 将UDF信息注册给calcite, SqlValidator.validator验证阶段即可通过验证 sql执行: calcite通过调…

P10945 Place the Robots 紫 题解

Part 1. 题意 在 \(N \times M\) 的矩阵中的空地放人机,任一人机上下左右走到边界或墙之前遇不到另一人机。 我已经尽力写得简短了。。Part 2. 思路 我们先思考无墙的情况。 若无墙,则同車的放置,把草方块当作禁止放車的方块即可,。 贴一下车的放置的代码: #include <b…