惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Forbes - Security
Forbes - Security
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
W
WeLiveSecurity
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News and Events Feed by Topic
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
Engineering at Meta
Engineering at Meta
PCI Perspectives
PCI Perspectives
Martin Fowler
Martin Fowler
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
WordPress大学
WordPress大学
S
Security Affairs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
SegmentFault 最新的问题
P
Privacy International News Feed
IT之家
IT之家
M
MIT News - Artificial intelligence
G
GRAHAM CLULEY
Hacker News: Ask HN
Hacker News: Ask HN
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Check Point Blog
美团技术团队
Security Latest
Security Latest
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
H
Help Net Security
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
The Last Watchdog
The Last Watchdog
The Cloudflare Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AI
AI
I
InfoQ
N
News | PayPal Newsroom
TaoSecurity Blog
TaoSecurity Blog

猫涅的秘密结社

hackthissite-org 关于在与我互动前你可能需要了解的事 信安roadmap 个人主页开发汇报 六级生词速记本——附考后感想 数据结构C++自学相关 NewStarCTF-2025 三款steam付费番茄钟软件测评 夏令营-ai hello-world qt环境下的c++程序编写 新新的年 qq机器人配置二三事 搞点java 读书笔记-当下的力量 网页小修时间 glibc更新记录 Vulhub在线靶场记录 Vulhub记录(旧的) 神奇脚本在哪里-CTF之Pwn BaseCTF高校联合新生赛2024 逆逆逆逆逆向-CTF之reverse 求解 夺旗时间 学学学 渗透测试相关 协议/漏洞/网络 最新的知识点 数据分析相关 zico2解析 OverTheWire-bandit解析 CTF实战相关2 靶机解析-gigachad ctf实战相关1 复习time 开学季 维修时间 小小修整 学校实训-笔记 每周靶机之Beelzebub 读书笔记-如何阅读一本书 DC-4解析 DC-2解析 每周靶机之ted 靶机-DC-1 每周靶机之bob potato解析 xss跨站点脚本攻击 每周靶机之Tommyboy1dot0 owasp命令执行漏洞 owasp文件包含漏洞 每周靶机之WALLABY'S-NIGHTMARE owasp上传漏洞 Hackademic.RTB1 owasp与sql注入与sqlmap liunx中sudo服务相关知识 liunx中ssh服务相关知识 moneybox解析 C语言相关1 关于加入aplayer的方式 再来一次 关于在next7.8.0中建设评论功能这件事 目前的进展 编辑小提示
数据库原理相关
nirvana_felis · 2026-03-07 · via 猫涅的秘密结社

该文章还在更新中 更新进度大概为我也不知道 最新一次更新的日期为 2026年4月7日
如果那个日期是很久以前的 那该文章大概是腰斩了 不用太过伤心

因为有这样的课所以开个新文 内容后边跟上

理论部分

第一章 绪论

数据库技术的基本术语

1.DB 数据库
通俗的讲 可以把数据库比作仓库
仓库是保存和管理物资的 并能根据其服务对象的要求随时提供所需物资
数据库是存储和管理数据并负责向用户提供所需数据的”机构” 只不过这个仓库是在计算机存储设备上 同时数据是按一定的格式存放的
所谓数据库 是指长期存储在计算机内的 有组织的 可共享的数据集合

2.DBS 数据库系统
数据库系统包括和数据库有关的整个系统 一般由数据库、数据库管理系统、应用程序、数据库管理员和用户等构成
当然 人们也常把除人以外与数据库有关的硬件和软件系统称为数据库系统
数据库的设计、建立、管理、维护和协调各用户对数据库的要求等工作 只靠一个数据库管理系统远远不够 还要有专门的人员来完成 这些人被称为 数据库管理员 (Database Administrators,DBA)
DBA应该对程序语言和系统软件(如OS、DBMS等)都比较熟悉 还要了解各应用部门的所有业务工作
因此DBA不一定只是一个人 尤其对于一些大型数据库系统 它往往是一个工作小组

3.DBMS 数据库管理系统
数据库管理系统是专门用于建立和管理数据库的一套软件 介于应用程序和操作系统之间
它为用户或应用程序提供访问数据库的方法 包括数据库的定义 查询 更新 和 各种数据控制
也就是说 DBMS不仅具有最基本的数据管理功能 还能保证数据的完整性、安全性、提供多用户的并发控制 当数据库出现故障时对系统进行恢复

三者之间的关系是DBS包括DB和DBMS

随后讲的是数据管理技术的发展 这部分略过

数据库系统的三级模式结构

模式(概念级) 外模式(用户级) 内模式(物理级)组成

外模式 模式 内模式
数据库用户所看到的数据视图 是用户和数据库的接口 所有用户的公共视图 数据在数据库内部的表示方式
可以有多个外模式 只有一个模式 只有一个内模式
每个用户只关心与他有关的外模式 屏蔽大量无关的信息 有利于数据保护 以某种数据模型为基础 统一综合考虑所有用户的需求 并将这些需求有机地结合成一个逻辑实体
面向应用程序和最终用户 由数据库管理员(DBA)决定 由DBMS决定

数据库系统的二级独立性

物理独立性逻辑独立性
物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的

第二章 关系数据库

笛卡尔积
笛卡尔积的概念是两个集合之间所有可能有序对的集合

运算 符号 作用
选择 σ 选行
投影 Π 选列
笛卡尔积 × 全组合
并集 合并
差集 相减

sql语句中的查询功能 大部分便是利用了这些运算

第三章 结构化查询语言

重点在这部分

数据定义语句 三大类
Create Drop Alter
Insert Update Delete
Grant Revoke

有各自的用途和语句方式

最简单的 select * from 表名 列出表中所有信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Create [数据库名]; //创建数据库
Drop [数据库名]; //删除数据库
Create table [表名] (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
列名3 数据类型 [约束]
); //创建表

Alter TABLE [表名] //修改表
Add [新列名] [数据类型] | [完整性约束] //添加
Drop column [列名] | [完整性约束] //删除
Modify column [列名] [数据类型] [完整性约束] //修改

select [All|Distinct] [目标列表达式]
from [表名或视图名]
where [条件表达式]
Group by [列名1] having [条件表达式]
order by [列名2] ASC|DESC //查询语句

insert //用于插入单行 多行数据 甚至子查询结果
update //更新数据
delete //删除数据

外/内/链接查询

嵌套查询
在where后加入in来使得范围得到进一步限制

1
2
3
4
CREATE VIEW 视图名称
AS 查询语句 // 创建视图

视图建立在已有表的基础上

第四章 数据库编程和存储程序

declare定义 select set为局部变量赋值
用print显示字符数据类型+cast()或convert()显示信息
raiserror 显示错误信息

批处理 —— 成组执行的一条或多条t-sql指令

流程控制语句 begin…and if…else while

goto 慎用
给出个标签 然后goto 标签能直接过去

waitfor delay “” 延时执行命令

存储过程

1
2
3
4
5
6
CREATE PROCEDURE 存储过程名称([参数列表]) // 定义一个存储过程
BEGIN
-- SQL语句
END;

CALL 存储过程名称(); //调用该存储过程

delimiter mysql解释器

在存储过程中还可加输入部分

mysql 存储函数

1
2
3
4
5
6
CREATE FUNCTION func_name ([param_name type[,...]])
RETURNS type
[characteristic ...]
BEGIN
routine_body
END;

SQL 触发器

1
2
3
4
5
6
CREATE TRIGGER 触发器名称
ON { table | view }
{ FOR | AFTER | INSTEAD OF }
{ [INSERT] | [UPDATE] | [DELETE] }
AS
SQL语句[,...n]

*第七章 关系数据库设计理论

函数依赖

对于数学中形如Y=f(x)的函数 它代表X与Y数值上的一个对应关系 即给定一个X值 都有一个Y值和它对应 X函数决定Y或Y函数依赖于X

还分平凡/非平凡函数依赖 完全/部分函数依赖 传递函数依赖

先来说依赖吧 先举个例子 A→B 意指知晓了A 便能推出B

部分函数依赖 AB→C 但 A→C 这种情况 称为 部分函数依赖

完全函数依赖 AB→C 且 A和B都不单独依赖于C 称为 完全函数依赖

传递函数依赖 A→B B→C 可以推出 A→C 但他们之间并不是直接的依赖 需要B作为桥梁

候选码

定义:能决定属性的最小属性集 (能完全函数依赖所有的属性)

主属性:包含在任意候选码中的属性

非主属性:不在任何候选码中的属性

超码:包含候选码的集合

多值依赖

口诀:”两个一对多 两个’多’独立”

我们来假设有一个表如下所示

课程 老师
01 SQL
01 C
01 SQL
01 C

此情况下 函数依赖不成立 因为课程只有一个“01” 课程对应了两个老师 每位老师对应了两本书籍

但教师与参考书之间是相互独立的 都依赖于01 对于01 每个老师都要用上C和SQL

因此产生了多值依赖 记作课程→→老师 老师→→书

范式

根据关系模式满足的不同性质和规范化的程度 把关系模式分为第一范式 第二范式 第三范式 BC范式 第四范式 第五范式

1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF

判断范式的关系模式时 采用如下方式:

1.先找出候选码(只出现在箭头左边的元素 默认为候选码)

2.区分主属性与非主属性

实操部分

下载了Mysql workbench8.0 参考了csdn的教程

1

软件页面

写完命令 点击上方小闪电就是 会执行命令

2

查询相关的结果会被显示在底下

结尾/引用

全文提纲与大部分内容摘自教科书 第3版 《数据库原理及应用》 清华大学出版社


We are just another visitor in a transient world.