极其感动!!!当时学数据库的时候,没白学!!
- 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固
- 真的是语雀分享要花钱,要不一定把笔记给贴出来
- (;´༎ຶД༎ຶ`) ,除了vue和react之外,最常看的一份笔记了!!!!
xd们,一定要收藏粘贴下来,真的没有自夸!!!!
- 当时学的时候,想来:就一份笔记么?脑子有病的人才一直记来记去的【框框自嘲】!有啥可分享的?现在,真香!!!
文章目录
- 一、 数据库基本知识
- 1-1
- 1-2 数据库系统的体系结构
- 1-2-1 三层模式
- 1-2-1-1 模式:
- 1-2-1-2 外模式(子模式或用户模式)
- 1-2-1-3 内模式(存储模式)
- 1-2-2 二级映像
- 1-2-3
- 1-3 数据模型
- 1-3-1 关系模型
- 1-3-2 XML
- 1-3-3 JSON
- 二、 关系数据模型【章节思路不清】
- 2-1 数据结构
- 2-2 关系数据结构
- 2-2-1 域: 一组具有 相同数据 类型的值的集合
- 2-2-2 笛卡尔积
- 2-2-3 关系 (Relation):
- 2-2-3-1 关于属性的几个概念:
- 2-2-3-2 三类关系
- 2-2-3-3 关系的性质
- 2-3 关系模式:
- 2-4 关系数据库
- 2-5 关系操作
- 2-6 关系的完整性约束
- 2-6-1 实体完整性
- 2-6-2 参照完整性
- 2-6-3 用户自定义完整性
- 六、 关系数据语言--关系代数【13练习没看】
- 6-1 基础
- 6-2 传统的集合运算
- 6-3 投影和选择
- 6-3-1 投影
- 6-3-2 选择(Selection)
- 6-4 笛卡尔积,连接
- 6-4-1 笛卡尔积(Cartesian Product)
- 6-4-2 连接(Join)
- 6-4-3 两类常用连接运算 --- 等值连接
- 6-4-3 两类常用连接运算 ---自然连接
- 6-4-4 重命名
- 6-5 练习
一、 数据库基本知识
1-1
-
基本概念 :
- 数据(Data) : 数据是数据库中存储的基本对象,是描述事物的符号记录
- 数据库(Database , DB): 存储数据的仓库
- 永久存储: 长期存在计算机中,
- 有组织、
- 可共享
- 数据管理系统(Database ManagementSystem , DBMS): 专门用于数据库创建和管理的软件
- DDL :数据定义语言,定义数据库中的数据对象
- DML: 数据操纵语言,增删改查
- 运行管理:
- 数据库的建立和维护
- 数据库系统(DatabaseSystem ,DBS): 支持数据库的相关计算机硬件/软件、人员
- 构成: 数据库
- 数据库管理系统(Database Administrator,DBA)
- 应用系统
- 相关人员
-
数据的发展趋势:
-
人工管理阶段
-
文件系统阶段
-
数据库系统阶段 :
- 数据具结构化
- 数据共享
- 数据独立性高
- 数据统一由DBMS管理和控制
-
1-2 数据库系统的体系结构
三层模式和二级映像
1-2-1 三层模式
三层模式是 对数据的三个抽象级别
1-2-1-1 模式:
-
在 用户(应用程序)到数据库之间,DB的数据结构 由3个层次:
-
外部模型,逻辑模型和内部模型
-
三个层次要用DB的数据定义语言(DDL),定义为“模式”
-
-
逻辑模式 ( 模式):
- 数据库中全体数据 的逻辑结构和特征的描述,综合了所有用户的需求的公共数据视图
- 一个数据库只有一个逻辑模式
-
逻辑模式的地位 :
-
数据库系统模式结构的中间层
-
与 数据的物理存储细节 和 硬件环境无关
- 与具体的应用程序、开发工具及高级程序设计语言无关
-
-
逻辑模式的内容:【Student(id,name,)】
- 数据的逻辑结构(数据项的名字。类型。取值范围)
- 数据之间的联系
- 数据有关的安全性、完整性要求
1-2-1-2 外模式(子模式或用户模式)
一个用户对应多个外模式,一个外模式对应多个应用程序
-
数据库用户(包含应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
-
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
-
外模式的地位:
- 介于模式和应用之间
- 逻辑模式与外模式的关系 : 一对多
- 外模式通常是逻辑模式的子集
-
外模式与应用的关系 : 一对多
-
外模式用途 :
- 保证数据库安全性的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据
- 保证数据独立性的有力措施
1-2-1-3 内模式(存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储)
- 索引的组织方式
- 数据是否压缩存储
- 数据是否加密
- 数据存储记录结构的规定
- 内模式只有一个
1-2-2 二级映像
二级映像在DBMS内部实现这三个抽象层次的联系 和转换
- 外模式/逻辑模式映像
- 逻辑模式/内模式映像
- 外模式/模式映像 :
- 定义外模式与逻辑模式之间的对应关系
- 每一个外模式都对应一个 外模式/模式映像
- 映像定义通常包含在各自外模式的描述中
- 逻辑模式/内模式映像
- 定义了数据全局
- 逻辑结构和存储结构之间的对应关系
- 例子: 说明逻辑记录和字段在内部是如何表示的
- 数据库中模式/内模式映像是唯一的
- 该影响定义通常包含在逻辑模式描述中
- 定义了数据全局
1-2-3
- 保证了数据独立性
- 指用户的应用程序 与 数据库的逻辑结构是相互独立的
- 数据的逻辑结构改变,应用程序不变
- 外模式/ 模式映像保证了数据的逻辑独立性
- 物理独立性 :
- 用户的应用程序与 存储在磁盘上的数据库中数据是相互独立的
- 当数据的物理存储改变,应用程序不用改变
1-3 数据模型
- 在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息
- 数据模型 三要素:
- 数据结构 :用于描述静态特性
- 数据操作 : 用于描述动态特性
- 数据的约束条件 : 是一组完整性规则的集合
- 数据模型的分类 :
- 关系模型
- 半结构化的数据模型
- 网状模型
- 层次模型
- XML
- JSON
1-3-1 关系模型
- 数据机构 – 表
1-3-2 XML
- XML是可扩展标记语言(eXtensible Markup Language)的缩写
- 常用于传输和存储数据
1-3-3 JSON
- JSON : JavaScript Object Notation的缩写,去除所有JS执行代码,只保留JavaScript 的对象格式
- JSON作为数据传输的格式,显著优点:
- JSON只允许使用双引号作为key,特殊字符用\转义
- 浏览器内置JSON支持,把数据用JSON发送给浏览器,可以用JavaScipr直接处理
二、 关系数据模型【章节思路不清】
2-1 数据结构
-
关系型 : 表、SQL
- mysql
- oracle
- sql server
-
非关系型 : noSQL,21世纪, 特殊需求
- hadoop
- mongoDB
- redis
- cassar
-
关系数据库系统 :
-
关系数据库系统是支持 关系模型 的数据库系统
-
1970年 IBM 公司的E.F.Codd 提出 关系数据模型
-
之后 提出了关系代数和关系演算的概念
-
1972年提出了关系的第一、第二、第三范式
-
1974年 提出了关系的BC范式
-
2-2 关系数据结构
- 关系数据结构
- 关系操作
- 完整性约束
-
关系数据结构 :
- 单一的数据结构–关系 : 现实世界的实体 以及实体之间的各种联系均用关系来表示
- 数据的逻辑结构 – 二维表
- 用户角度:关系模型中数据的逻辑结构 是一张二维表
-
关系模型建立在集合代数的基础上
-
域
-
笛卡尔积
-
关系
-
关系模型
-
关系数据库
-
2-2-1 域: 一组具有 相同数据 类型的值的集合
- 整数
- 实数
- 指定长度的字符串集合
- 介于某个取值 范围 的整数
{
男,
女}
- 介于某个取值范围的日期
2-2-2 笛卡尔积
-
给定一组域D1…Dn
- 这些域可以完全不同
- 也可部分或全部相同
-
D1…Dn 的笛卡尔积为:
- 所有域的所有取值的一个组合
- 不能重复
-
笛卡尔积 的二维表示方法 :
- 表中的 每行 对应一个元组
- 表中的每列对应一个域
2-2-3 关系 (Relation):
-
D1 × D2 × … ×Dn 的子集 叫做 在域 D1 , D2 . … ,Dn 上的关系
-
表示为 :R (D1 , D2 . … ,Dn)
- R : 关系名
- n: 关系的目或度(Degree)
-
- 当n=1时,称该关系为单元关系(Unary relation)
- 当n=2时,该关系为 二元关系(Binary relation)
-
- 关系举例: 在笛卡尔积中取出有 实际意义的元组来构造关系
- SAP(SUPERVISOP, SPECIALITY,POSTGRADUATE)
- 假设 :
- 专业与导师 : 1: a
- 倒是与研究生: 1:n
- 关系的表示 :
- 关系也是一个二维表
- 表的每行对应一个元组
- 表的每列对应一个域
- 关系也是一个二维表
2-2-3-1 关于属性的几个概念:
-
码(Key,键) : 由一个或多个属性组成
- 候选码(Candidate Key): 在关系中能唯一标识元组的属性或属性集
- 主属性(Prime Attribute):候选码的各个属性
- 主码(Primary Key) : 用户选作元组标识的候选键
- 全码(All-key) :关系的所有属性 是这个关系的候选码
-
一个关系 必须 有一个key
2-2-3-2 三类关系
- 基本关系(基本表或基表):
- 实际存在的表,是实际存储数据的逻辑表示
- 查询表:
- 查询结果对应的表
- 视图:
- 由基本表或其他试图导出来的表,是虚表,不对应实际存储
- 基本关系的性质:
- 列是同质的
- 每一列中的分量 是同一类型 的数据,来自同一个域
- 不同的列可出自同一个域
- 其中的每一列称为一个属性,不同的属性要给予不同的属性名
- 列的 顺序无所谓
- 任意两个元组不能完全相同
- 行的顺序无所谓
- 分量必须取 原子值
- 列是同质的
- 一个关系有多少种等价形式?
2-2-3-3 关系的性质
- 一个关系实力的属性个数和元组个数,考虑到元组的顺序和属性的顺序,则这个实例有多少种不同的表示形式?
- 3个属性,3个元组。例如关系Account?
- 3!× 3! = 36
- 3个属性,3个元组。例如关系Account?
2-3 关系模式:
-
什么是关系模式
- 关系模式(Relation Schema)是对关系的描述
- 关系模式是型,关系是值
- 弹幕 : 关系模式是类 关系是对象,类的实例
-
- 关系和关系模式 :
- 关系模式通常记为 : R(U) 或 R(A1,A2,…,An)
- R : 关系名
- A1,A2,…,An :属性名
学生(学号,姓名,年龄,性别,籍贯)
-
- 关系模式
- 对关系的描述
- 静态的、稳定的
- 关系
- 关系模式在某一时刻的状态或内容
- 动态的、随时间不断变化的
- 关系模式
2-4 关系数据库
-
在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库
-
教学管理数据库中有四个关系 :
教室关系T,课程关系C,学生关系S,选课关系SC
-
-
关系数据库模式是关系数据库的型,是对关系数据库的描述
-
教学管理数据库中有四个 关系模式
-
2-5 关系操作
- 常用的关系操作: 查询、插入、删除、修改
- 关系操作的特点 : 集合操作方式
- 关系数据语言的种类:
- 关系代数语言
- 关系演算语言
- 具有上两者 双重特点的语言,SQL
- 关系数据语言的特点 :
- 一种高度过程化的语言
- 能够嵌入高级语言中使用
2-6 关系的完整性约束
- 关系模型的完整性规范是指对关系的某种约束条件
- 关系模型中的三类完整性约束:
- 实体完整性
- 参照完整性
- 用户定义的完整性
- 实体完整性 和 参照完整性 是关系模型必须满足的完整性约束条件,被称为关系的两个不变性
2-6-1 实体完整性
- 实体完整性 :
- 主码唯一且不为空
- 主属性不能取空值
2-6-2 参照完整性
-
关系间的引用
-
外码必须是另一个关系的主码,或者有唯—约束的列
-
Foreign Key (外键) : 如果一个关系R中的一个属性F 对应着 另一关系S 的主码K
- 那么F在关系R中称为外码
2-6-3 用户自定义完整性
六、 关系数据语言–关系代数【13练习没看】
- 关系代数,关系演算
- SQL
6-1 基础
-
- 并、差、交
- 投影、选择
- 笛卡尔积、连接
- 重命名
-
关系代数 :
- 一种抽象的数据查询语言
- 用对关系的运算来表达查询
- 运算对象 : 关系
- 运算符: 4类
- 运算结果: 关系
-
关系运算符 :
-
传统集合运算符:
- U – ∩
- 将关系看成元组的集合
- 所有的运算对象必须具有相同的结构
-
专门的关系运算符
-
辅助 专门的关系运算符 :
-
6-2 传统的集合运算
-
并运算的例子 :
- 差运算
-
交运算
6-3 投影和选择
6-3-1 投影
-
用于从R中选择出 若干属性列组成新的关系
ΠL®
- L为R属性列表
- 结果为只包含R中某些列的新的关系
- 结果要去掉重复元组
-
例子:
-
例子二:
6-3-2 选择(Selection)
-
用于在关系R中选择满足 给定条件的各个元组
- C : 选择条件,是一个逻辑表达式
- 结果为只包含R中某些元组的新的关系
-
例子二:
-
例子三:
-
例子四 : 投影+选择
6-4 笛卡尔积,连接
6-4-1 笛卡尔积(Cartesian Product)
-
R关系 : n个属性,k1个元组
-
S关系: m个属性,k2个元组
-
R×S :
- 将R中的每个元组t1和S中的每个元组t2配对连接
- 列数: n+m
- 前n列是关 系R的一个元组t1
- 后m列是关系S的一个元组t2
- 行数 : K1 ×k2
- 当R和S中有重名属性A时,则采用R.A和S.A分别命名对应的属性列表
6-4-2 连接(Join)
- 连接运算 : 从R和S的笛卡尔积 R×S中 选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较条件的元组
6-4-3 两类常用连接运算 — 等值连接
- 等值连接概念:
- 为“=”的连接运算称为等值运算
- 等值连接的含义 :
- 从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组
6-4-3 两类常用连接运算 —自然连接
-
自然连接 : 在公共属性(组)上进行的等值连接
-
两个关系中必须具有公共属性(组)
-
在结果中把重复的属性列去掉
-