数据库系统(学习笔记)

数据库系统

第一讲 初步认识数据库系统

101 什么是数据库

  1. 起源于规范化“表”的处理
  2. 表里有什么
    理解–区分–命名–表达
  3. 表的组成
班级课程教师
1123数据库李四
1124计算机李五

表名
行/元组/记录
列/字段/数据项/属性

数据库:相互之间有关联关系的表的集合

102 什么是数据库系统

  1. 五个要素

     数据库DB 
     数据库管理系统DBMS   
     数据库应用DBAP
     数据库管理员DBA
     计算机基本系统
    

103 什么是数据库管理系统(用户角度)

  1. 数据库定义
    数据库定义语言:DDL
    定义表的格式
  2. 数据库操纵
    数据库操纵语言:DML
    对数据库进行增删改查等
  3. 数据库控制
    数据库控制语言:DCL
    使用DCL描述控制数据库权限等
  4. 数据库维护
    由DBA(数据库管理员)
    综合起来作为数据库语言:SQL
    一条数据库语言可以相当于多条高级语言
    嵌入式数据库语言:可以嵌入高级语言

104 什么是数据库管理系统(系统角度)

  1. 功能
    (1)数据库语言
    (2)数据库系统
  2. 为完成DB管理,在后台运行这一系列程序
    语言编译器
    查询优化与查询实现
    数据库存取与索引
    通信控制
    事务管理
    。。。

第二讲 数据库系统的标准结构

201 数据库系统的标准结构

  1. 数据库系统抽象
    三个层次
    (1)外部层次(用户层次)
    某一用户能够看到处理的数据
    (2)概念层次(逻辑层次)
    从全局角度理解数据
    (3)内部层次(物理层次)
    存储在介质上的数据

  2. 数据/视图 与 模式
    数据:某一表示形式表现出来的数据
    模式:对数据库进行的一种结构性描述

  3. 三级模式/三级视图
    (1)外模式
    用户看到的结构描述
    (2)概念模式
    全局性的概念描述
    (3)内模式
    存储介质上的结构描述

  4. 两层映像
    E-C映像:外模式—>概念模式,便于用户观察使用
    C-I映像 : 概念模式->内模式,便于计算机存储处理

  5. 两个独立性
    不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
    (1)逻辑数据独立性:当概念模式改变时,可以不改变外部模式
    (2)物理数据独立性:当内模式改变时,可以不改变概念模式,从而不改变外部模式

202 什么是数据模型

  1. 模式 与数据的结构:数据模型
    规定模式描述方式的模型
    包括:数据结构,操作和约束
    模式:描述数据的结构
    数据模型:描述模式的结构(数据的结构的结构)
  2. (1) 关系模型:表(第二代)
    (2)层次模型:树 (第一代)
    (3)网状模式:图 (第一代)

203 数据库系统演变与发展

  1. 四阶段:
    (1)探索阶段:研制成功格式文件系统
    (2)数据库技术确立阶段:三大数据库相继提出并进行深入研究
    (3)成熟阶段:提出了标准化数据库系统,DB系统快速发展,应用普及
    (4)数据库技术深入发展:逐步理论化,理论不断完善
  2. (1)由文件系统到数据库:
    文件系统:数据与程序密切结合,不用考虑存储物理细节,但共享性差,冗余度高,不一致性高
    数据库系统:由DBMS统一存取,统一的控制功能,整体数据结构化
    (2)由层次,网状到关系数据库
    层次网状:复杂的指针系统
    关系数据库:不依赖于路径信息或过程信息
    支持集合操作

数据库重大发展

  1. 关系的第一范式:数据项的不可再分性
  2. 对象–关系数据库
    以对象来封装需分解的数据项
  3. 面向对象数据库
    支持复杂数据类型
    支持面向对象一些特性
  4. 多种多样数据库到多数据库开放式互联
    ODBC JDBC
    开放数据库接口
  5. 新型数据库

第三讲 关系模型概念

301 什么是关系模型

  1. 一个关系一个Table
    关系模型处理Table

  2. 关系模型三要素
    (1)基本结构 :关系/Table
    (2) 基本操作

     	交,并,差,广义积,选择,投影,连接,除
    

    (3)完整性约束
    实体完整性,参照完整性,用户自定完整性

  3. 关系运算: 关系代数和关系演算:关系演算:元组演算和域演算
    R:F表示选择运算 R%表示投影运算

  4. 元组运算

  5. 域演算

302 什么是关系

  1. 列 的取值范围 域
    在这里插入图片描述

  2. 定义元组(行),所有可能的元组(笛卡尔积)
    在这里插入图片描述
    在这里插入图片描述

  3. 关系
    一组域的笛卡尔积的子集,笛卡尔积中具有某一方面意义的元组称作一个关系。
    在这里插入图片描述

  4. 关系模式/表标题:
    R(A1:D1,A2:D2,…An:Dn),简记为R(A1,A2,A3…An)
    Ai为属性,
    Di为域,
    n为关系的度
    关系中元组的数目为关系的基数

  5. 关系模式与关系

     关系模式是稳定的:而关系是某一时刻的值,随时间改变
    

303 关系的特性

  1. 列必须是同质
  2. 不同列可能来自同一个域,不同属性要给不同属性名
  3. 行/列 确定靠名字或值
    列位置互换性
    行位置互换性
  4. 关系任意两个元组不能完全相同,Table可能不遵守
  5. 属性不可再分:关系第一范式

304 候选码/候选键

  1. 关系中的一个属性组,只能唯一标识一个元组,若从该属性组中去掉任何一个属性,他就不具有这一特质。这样的关系组称为 候选码
  2. 注码/主键
    当有多个候选码时选择一个作为主码
  3. 主属性与非主属性:包含在任何一个候选码中的属性称为主属性
  4. 外码/外键:两个关系通过外码连接
    在这里插入图片描述

304 关系模型完整性

  1. 实体完整性
    关系主码的属性值不能为空值(不知道或无意义的值)
    空值不能够参与计算
  2. 参照完整性
    外码可以取空值在这里插入图片描述
  3. 用户自定义完整性
    用户针对具体应用环境定义的完整性约束条件
  4. DBMS对关系完整性的支持

第四讲 关系模型之关系代数

401 什么是关系代数

  1. 基于集合,提供的一系列关系代数操作:
    并,差,笛卡尔积,选择,投影,更名
    拓展:交,链接,关系除
  2. 基本形式
    在这里插入图片描述
  3. 关系代数基本操作
    (1)集合操作
U 并RSR U S
RSR ∩ S
RSR- S
笛卡尔积RSR x S

(2)纯关系操作
在这里插入图片描述

402 并相容性基本概念

  1. 定义:
    关系R和关系S存在相容性,当且仅当
    (1)关系R和关系S属性数
    目必须相同
    (2)对于任意i,关系R和第i个属性的域相同在这里插入图片描述

403 并操作(Union)

  1. 加入关系R和关系S是相容的,则R和S运算结果也是关系在这里插入图片描述
  2. 示例: R∪S 在这里插入图片描述

404 差运算(Difference)

  1. 关系R和关系S是并相容的,R-S:它是由出现在R但不出现在S中元组构成
  2. 示例: S-R
    在这里插入图片描述

405 广义笛卡尔积(Cartesian Product)

  1. 关系R(<a1,a2,…an>)和关系S(<b1,b2,…,bm>)的广义笛卡尔积,记作:R x S
    由R中元组和S中元组进行的所有的拼接操作构成
  2. 数学描述
    在这里插入图片描述
  3. 示例: R x S = S x R
    在这里插入图片描述在这里插入图片描述
  4. 笛卡尔积的 度(属性个数)和 基数(元组个数)
    在这里插入图片描述

406 选择操作(Select)

  1. 给定一个关系R,同时给定一个条件condition,选择运算结果也是一个关系
  2. 数学描述在这里插入图片描述
  3. 示例
    在这里插入图片描述
    运算次序:括弧>比较运算>非>与>或

407 投影操作(Progect)

  1. 给定一个关系R,投影运算结果也是关系 ,记作Πa®,他从关系R中选出属性包含在A中的列构成。
  2. 数学描述
    在这里插入图片描述
  3. 示例
    在这里插入图片描述
    在这里插入图片描述

408 交操作(Intersection)

  1. 假设关系 R和S是相容的,则关系R∩S是指同时传现在R和S中元组构成
  2. 数学描述
    3.
  3. 示例
    在这里插入图片描述

409 连接操作(θ-Join,theta-Join)

  1. 对多个表进行操作
    在这里插入图片描述
  2. 示例 B<=H 进行连接
    在这里插入图片描述
  3. 更名操作
    在这里插入图片描述
  4. 等值连接操作在这里插入图片描述
  5. 等值连接 示例:在这里插入图片描述

410 自然连接(Natural-Join)

1.自然连接是一种特殊的等值连接,他由R和S的笛卡尔积中选取相同属性组B上值相等的元组构成
2. 数学描述在这里插入图片描述
3. 示例:在这里插入图片描述
在这里插入图片描述

411 关系代数组合与应用

例题与应用

412 除操作(Division)

  1. 除运算常用于解决“查询… 全部的/所有的”
  2. 前提条件:
    给定关系R(A1,A2,A3…An)n度关系,关系S(B1,B2,B3…Bm)为m度操作,如果可以进行关系R与关系S的除运算,当且仅当:属性集{B1,B2,…Bm}是属性集{A1,A2,…An}的真子集,即m<n
  3. 在这里插入图片描述在这里插入图片描述
  4. 示例在这里插入图片描述

413 外连接(Out-Join)

  1. R和S进行连接是,如果R元组在S元组中找不到匹配组,避免该元组信息丢失,将元组与S中假设存在的全为空值的元组连接,放置在结果关系中,成为外连接
  2. 基本操作缺陷,失去老师信息在这里插入图片描述
    在这里插入图片描述
  3. 示例:

在这里插入图片描述在这里插入图片描述
(1)查询搜有老师信息在这里插入图片描述
(2)查询所有课程信息在这里插入图片描述
(3)查询所有老师可=和课程信息
在这里插入图片描述

第五讲 关系模型之关系演算

501 什么是关系元组演算

  1. 关系元组演算公式
    {t | P(t) }
    表示所有的使谓词P为真的元组t的集合
    在这里插入图片描述

502 简单运用元组演算

  1. 检索出所有年龄不是最小的同学
    s[A]和u[B]为元组分量,A,B为某些关系属性
    {t | t ∈ student ∧ ∃(u∈student)(t[Sage]>u[Sage])}

503 存在量词和全称量词

1.∀,∃ 又称量词,前者为全称量词,后者为存在量词。
2. 被∀或∃限定的元组变量t,或者说,元组变量t前有存在量词或者全称量词,则该变量称为“约束变量”,否则被称为“自由变量” 在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

504 等价变换

  1. 等价性
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

505 四个典型示例

1.在这里插入图片描述
解:
在这里插入图片描述
2.求没学过李明老师课程的学生
在这里插入图片描述
3. 至少学过一门李明老师课程
在这里插入图片描述
4. 至少有一门没学过
在这里插入图片描述

506 元组演算实现关系运算

  1. 在这里插入图片描述

507 关系域演算

  1. 域演算基本形式
    {<x1,x2,…xn> | P (x1,x2,…xn) }

在这里插入图片描述

508 QBE

  1. 基本操作
    在这里插入图片描述
  2. 示例
    (1)插入
    在这里插入图片描述
    (2)查询条件
    在这里插入图片描述
    在这里插入图片描述
    (3)与 运算 和 或运算
    在这里插入图片描述
    在这里插入图片描述
    (4)多个表连接
    在这里插入图片描述

509 QBE应用

  1. 简单且 查询
    在这里插入图片描述
  2. 简单 或 查询
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 并操作
    在这里插入图片描述
  4. 差 操作
    在这里插入图片描述
  5. 乘积操作
    在这里插入图片描述
  6. 投影操作
    在这里插入图片描述
  7. 选择操作
    在这里插入图片描述

510 关系运算安全性

  1. 关系代数是一种集合演算,是安全的
    结合本身是有限的,有限元素的集合仍旧是有限的
  2. 关系演算不一定是安全的
    R(t)是有限的, 不在R(t)中元素可能为无限的
  3. 对关系演算施加约束条件
    安全约束有限集合DOM
    在这里插入图片描述
  4. 安全元组演算表达式
    在这里插入图片描述

511 关系运算比较

  1. 三种运算
    (1)关系代数 (2)关系元组演算 (3)关系元组演算和关系域演算
    在这里插入图片描述
  2. ISBL语言
    在这里插入图片描述

第六讲 SQL语言概述

601 利用SQL建立数据库

606 修正与撤销数据库

alter table tablename

  1. 增加新列
    add colname datatype,…
  2. 删除完整性约束
    drop 完整性约束名
  3. 修改列定义
    modify colname datatype,…

第七讲 利用SQL语言复杂查询

第八讲 SQL数据库完整性与安全性

801 数据库完整性概述

  1. 数据库完整性
    在任何情况下的正确性,有效性,一致性
    (1)广义完整性
    语义的完整性,并发控制,安全控制,db故障恢复
    (2)狭义完整性
    语义的完整性
  2. 完整性涉及
    实体完整性:关系中主键不为空
    参照完整性:外键可以取空值,取其作为主键的表的值
    用户自定义完整性
  3. 完整性管理的作用
    防止和避免不合理数据的出现
    应自动防止DB语句中不合理现象
  4. 怎么保证完整性
    允许用户定义一些完整性约束规则
    DBMS自动按照完整性约束条件进行检查
  5. 在这里插入图片描述

802 完整性分类

  1. 约束对象
    (1) 域完整性
    施加于某一列
    (2) 关系完整性约束条件
    施加于表/多条关系,表完整性
  2. 来源
    (1)结构约束
    函数约束,主键约束,外键约束(只关心数值相等或是否空值)
    (2)内容约束
    关系属性的取值范围
  3. 状态
    (1)静态约束
    在任何时候都应满足的约束
    (年龄永远大于0)
    (2)动态约束
    当一种状态变为另一种状态是满足的约束
    (涨工资,只能数值变大)

803 表完整性和列完整性

  1. 静态约束
    列完整性–域完整性
    表完整性–关系完整性
  2. 动态约束
    触发器
    3.
  3. Create table
    定义完整性约束:列/表完整性
    create table tablename(colname datatype [default {default_constant | null }] [col_constr {col_constr…}]
    |,table_constr)
    {,{colname datatype [default {default_constant | null }] [col_constr {col_constr…}]
    |,table_constr}
    …});
    在这里插入图片描述
    在这里插入图片描述
    有名字约束可以单独处理,无名字约束不能够单独处理
    在这里插入图片描述
    reference 表名 列名 on delete cascade (外键,删除后置空)
  4. 表约束
    在这里插入图片描述
    涉及到多列用表约束
    在这里插入图片描述
    在这里插入图片描述
    复杂查询
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

804 SQL的断言及其应用

  1. 断言
    一个断言就是一个谓词表达式,它表达了数据库总希望满足的条件
    表约束和列约束就是一些特殊的断言
    SQL提供了复杂条件表达的断言
    CREARTE ASSERTION CHECK

断言增加了数据库维护的负担降低了效率
在这里插入图片描述
在这里插入图片描述

805 SQL触发器概念

  1. 动态约束–触发器
    在这里插入图片描述
  2. 触发器Trigger
    过程完整性约束,是一段程序,可以在特定时刻被 自动执行
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    示例
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    OPAR:约束对象,约束规则,触发条件,响应动作

810 自主安全性机制

  1. DNMS怎么实现自主安全性
    在这里插入图片描述
    2.
  2. 员工管理数据库示例
    3.
    如何实现
    (1)按名控制安全性:存储矩阵
    在这里插入图片描述
    (2)按内容控制安全性

811两种自主安全性控制

第一种:存储矩阵
在这里插入图片描述
第二种:视图
在这里插入图片描述
在这里插入图片描述

812 SQL安全性控制

  1. 三个级别
    在这里插入图片描述
  2. 授权命令 DRANT
    在这里插入图片描述

  3. 在这里插入图片描述
    在这里插入图片描述

813 自主安全性控制

  1. 创建过程
    在这里插入图片描述
  2. 深度和广度

814 强制安全性机制

  1. 安全性分级
    在这里插入图片描述
    在这里插入图片描述

第二十一讲 数据库查询优化技术

2101 什么是查询优化

  1. 如何使数据库查询时间最短
    语义优化:模型的语义及完整性
    语法优化:逻辑层-语法结构,优化操作顺序
    执行优化:物理层-存取路径和执行算法的选择与执行次序优化

2102 查询优化总体思路

  1. 语义优化–内容等价性
    在这里插入图片描述
  2. 语法优化(逻辑层)–语法等价性
    在这里插入图片描述
  3. 执行优化(物理层)
    在这里插入图片描述
    在这里插入图片描述
  4. 总结
    在这里插入图片描述

2104 逻辑层查询优化

  1. 优化示例
    在这里插入图片描述
    (1)语法树:反映了操作的先后次序在这里插入图片描述
    逻辑优化策略
    a. 尽可能早做选择和投影:是中间结果变小
    b. 把选择和又硬串接起来:一元计算序列可一起执行,只需对关系扫描一遍
    c. 把投影与前后的二元运算结合起来:在第一次用关系时去掉一些无关属性
    d. 把某些选择和其前的笛卡尔积操作结合成一个连接操作:当SxR前有选择并且其中有条件是S,R属性间的比较运算时,可将其转化为连接
    e. 执行连接操作前对关系做适当的处理:文件排序,建立临时索引
    f. 找出表达式里的公共子表达式:若公共子表达式结果不大,则预先计算,以后可读入此计算结果,节省时间,尤其视图情况下

2104 关系代数操纵等价性

  1. 基本操作
    在这里插入图片描述
  2. 定理一:连接与连接 积与积的交换律
    在这里插入图片描述
    在这里插入图片描述
  3. 定理三:投影串接律
    在这里插入图片描述
    在这里插入图片描述
  4. 定理四:选择串接律
    在这里插入图片描述
    在这里插入图片描述
  5. 定理五:选择和投影交换律
    在这里插入图片描述
    在这里插入图片描述
  6. 定理六:选择和积的交换律
    在这里插入图片描述
    在这里插入图片描述
  7. 定理七:投影和积的交换律
    在这里插入图片描述
    在这里插入图片描述
  8. 定理八:选择和并交换律
    在这里插入图片描述
  9. 定理九:选择和差交换律
    在这里插入图片描述
  10. 定理十:投影和并的交换律
    在这里插入图片描述

2105 查询优化算法实例

  1. 算法
    在这里插入图片描述
  2. 示例
    在这里插入图片描述
    步骤:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    分组:
    在这里插入图片描述

2106 物理层查询优化

  1. 总体思路
    在这里插入图片描述
  2. 各种实现算法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2107 代价估算

  1. 估算一个投影的大小
    在这里插入图片描述
  2. 估算选择运算
    在这里插入图片描述
    在这里插入图片描述

第二十二讲 数据库事务处理并发控制

2201 为什么进行并发控制

  1. 三种典型不一致现象
    丢失修改
    不能重复读
    脏读

2202 深入认识事物

  1. 事物的宏观性
    在这里插入图片描述
  2. 事务的微观性
    在这里插入图片描述
  3. 事物的特性 ACID
    原子性:要么不做,要么全做
    一致性:不能出现三种典型的不一致性
    隔离性:两个事物之间独立,互不影响
    持久性:已提交的事物影响是永久的,撤销的是可恢复的

2203 事务调度和可串行性

  1. 基本概念
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 怎么判断并发调度正确性
    可串行性

在这里插入图片描述

  1. 可串行性模型
    在这里插入图片描述
  2. 冲突可串行性
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 冲突可串行性判别算法
    在这里插入图片描述

    在这里插入图片描述

2204 基于锁的并发控制

  1. 怎么产生一个并发调度2.


  2. 在这里插入图片描述
    L(A)加锁—U(A)解锁
    在这里插入图片描述
    在这里插入图片描述

  3. 锁的类型
    在这里插入图片描述

  4. 相容性矩阵
    在这里插入图片描述
    在这里插入图片描述

  5. 加锁解锁的时机
    在这里插入图片描述
    不可重复读,幻读和脏读的区别

  6. 封锁粒度
    在这里插入图片描述

2205 基于时间戳的并发控制

  1. 时间戳
    将某一时刻转化为一个数值
    时间戳具有唯一性和递增性
  2. 事物的时间戳在这里插入图片描述
  3. 时间戳并发控制在这里插入图片描述
  4. 一种简单的调度规则
    在这里插入图片描述
    (1)读写并发
    在这里插入图片描述
    示例
    在这里插入图片描述
  5. 基于时间戳的另一种调度规则
    在这里插入图片描述
    托马斯规则注意的问题
    在这里插入图片描述
    另一种调度规则
    在这里插入图片描述
    对于来自T的读写请求,调度器:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    另一种调度规则总结
    在这里插入图片描述

2206 基于有效性的并发控制

  1. 时间戳并发思想和有效性并发思想异同

在这里插入图片描述

  1. 基于有效性控制的调度器
    在这里插入图片描述
    在这里插入图片描述
  2. 冲突一
    在这里插入图片描述
  3. 冲突二
    在这里插入图片描述
    总结:
    在这里插入图片描述
    例:
    在这里插入图片描述
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值