数据库概念关键词

各章小结的概念、关键词

四个部分

  • 关系型数据库
  • 数据库设计
  • 底层物理存储实现
  • 事务管理和恢复

关系型数据库

第一章

基础概念 在后续章节都有

  • 关系型数据库
  • 数据库设计
  • 底层物理存储实现
  • 事务管理和恢复

第二章

关系型数据模型

  • 主码 码 外码
  • 主码约束(参照性约束如何添加)
  • 参照完整性约束:其实就是外键约束
  • 外码的参照关系

数据库查询语言

关系代数(面向过程)

关系代数常用操作

  • 投影
  • 连接
  • 交并差…
  • 复杂查询
  • 关联查询

SQL

SQL是面向用户的

第三章

数据库定义语言(DDL)

  • 数据库建表
  • 对表结构的修改

数据库操作语言(DML)

  • 增删改查 常见操作
  • 复杂查询(关联 嵌套)

完整性约束

  • 主码约束
  • 用户自定义约束

第四章

  • 完整性约束的类型
  • 视图和权限

第五章

程序里访问SQL语句:

  • Python
  • Java JDBC
  • C++

第六章

关系代数与SQL对应关系(查询优化会用到)

数据库设计

第七章

  • ER图
  • 关系模式 (转换)
    数据库设计包含哪几个阶段?每个过程用来干什么的?ER图在哪个阶段?(概念设计阶段)
    逻辑阶段(ER图转化为关系模式)
    给定数据需求, 画出ER图
    给定ER图,写出关系模式
    弱实体集如何表示?
    联系集如何表示?有哪些类型?映射基数如何判定?
    根据数据需求 判断映射基数 用ER图表示出来
    外键约束 合并
    外键一般放在many那一端
    多值属性 复合属性如何表示?

第八章 关系规范化

各个关系范式:

  • 1范式
  • 2范式
  • 3范式
  • BC范式

如何判定?

  • 候选码
  • 属性闭包

原则:无损连接分解 函数依赖保持

合并律 分解律 伪传递律

数据存储

第十章

存储相关的文件结构:

  • 序列
  • 哈希
  • 多簇

索引文件:可用于加速查询。

索引的类型有哪些?

  • 顺序索引
  • 散列索引
  • 还可以继续细分

什么场景选择什么类型的索引?

主索引 聚集索引的原理是什么?

索引加在哪个属性上可以加速查询(例如select)呢?加在哪会减速?

什么索引方式是有帮助的?

十二、十三章:

查询处理的过程(P、O、E)

  • P:语法分析与翻译
  • O:优化
  • E:执行

查询—>语法分析器与翻译器—>关系代数表达式—>优化器—>执行计划—>执行引擎—>查询结果

代价评估:CPU时间、磁盘存取、并行/分布式数据库系统中的通信代价。

大型数据库中磁盘存取数据的代价是主要的代价。

查询优化(核心),怎样做查询优化?

  • 找到等价的表达式,写出优化后的查询树
  • 基于代价式的优化、基于启发式的优化?
  • 启发式优化策略

优化策略:

  • 选择 投影尽可能先执行(在连接之前执行)
  • 分配律的使用

事务管理和事务的调度、并发控制、恢复

事务的几个特性、每个特性是如何书写的
ACID:

  • Atomicity
  • Consistency
  • Isolation
  • Durability

四大特性解析:

  • 原子性:全或无
  • 一致性:隔离执行事务
  • 隔离性:并发(每个事务感觉不到系统中有其他事务在并发地执行)
  • 持久性:事务完成后 对数据库的改变是永久的

如何判定事务的调度是有效的?

  • 冲突可串行化。
  • 如果调度S可以经过一系列非冲突指令交换转换成S’,我们称S与S’是冲突等价的。
  • 若一个调度S与一个串行调度冲突等价,则称调度S是冲突可串行化。
  • 为确定一个调度是否冲突可串行化,可以使用优先图的方法。并且调用环检测算法。

如何判断事务的调度是可恢复的?说明原因。

  • 一个可恢复的调度(recoverable schedule)应满足:
    对于每对事物Ti和Tj,如果Tj读取了之前由Ti所写的数据项,则Ti先于Tj提交。
  • 原因:若出现部分调度的情况,后一个事务中读取了前一个事务写的内容,但是前一个事务之后并没有提交并且发生了故障,那么后一个事务无法在故障后正确恢复。

第十五章:锁

并发控制

给一个并发调度,判断是否符合。

第十六章:事务恢复

如何写日志

如何根据日志恢复事务


数据库概念关键词
https://liaoweiquan.github.io/2019/01/12/数据库笔记/
作者
泉泉
发布于
2019年1月12日
许可协议