画布 1
数据库系统概论
  视图
    概念
      从一个或多个表导出的虚拟的表，其内容由查询定义
      具有普通表的结构，但是不实现数据存储
    对视图的修改
      单表视图一般用于查询和修改，会改变基本表的数据
      多表视图一般用于查询，不会改变基本表的数据
    作用
      简化了操作，把经常使用的数据定义为视图
      安全性，用户只能查询和修改能看到的数据
      逻辑上的独立性，屏蔽了真实表的结构带来的影响
    缺点
      性能差
      修改限制
  数据库的结构
    数据库的三层模式结构
      模式（逻辑模式）
        全体数据的逻辑结构和特征
        所有用户的公告数据视图
      外模式（子模式）
        数据库用户能看见使用的局部数据的逻辑结构和特征
        数据库用户的数据视图
        与某一应用有关的数据的逻辑表示
      内模式（存储模式）
        一个数据库只有一个内模式
        数据物理结构和存储方式
        数据在数据库内部的组织方式
    二级映像功能与数据独立性
      外模式/模式映像（逻辑独立性）
        映像改变，外模式不变
      模式/内模式映像（物理独立性）
        映像改变，模式不变
      作用
        使数据的定义和表述可以从应用程序中分离
        简化应用程序编制，减少应用程序的维护与修改
  数据库系统的组成
    硬件平台及数据库
      足够大的 RAM
      足够大的 磁盘空间
      系统有较高的通信能力，提高数据传送率
    软件
      数据库管理系统
      操作系统
      高级语言
        支持数据库接口
        用于开发应用程序
      数据库应用系统
    人员
      数据库管理员（DBA）
        决定数据库中的信息内容与结构
        决定数据库的存储结构和存取策略
        定义数据的安全性要求和完整性约束条件
        监控数据库的使用和运行
        数据库的改进和重组、重构
      系统分析员和数据库设计人员
      应用程序员
      用户（最终用户）
  关系数据结构及形式化定义
    关系
      域（domain）
        一组具有相同数据类型的值的集合
      笛卡儿积
        一个域允许的不同取值个数叫做 基数
      关系
        候选码
          能唯一地标识一个元组，其自己不能的属性组
          多个候选码选一个做主码，非候选码成为 非主属性（非码属性）
          关系所有属性都为候选码，则称为全码
        三种类型
          基本关系
            6条性质
              列 同质
              不同列可来自同一域
              列可乱序
              候选码的值必须独一无二（unique）
              行可乱序
              分量必须取原子值
            关系模型要求关系必须规范化
              关系每一分量必须是不可分的数据分量
          查询表
          视图表（虚表）
    关系模式
      关系的描述
    关系数据库
      关系数据库的型也被称为关系数据库模式，是对关系数据库的描述
      关系数据库的值是这些关系模式在某一时刻对应的关系的集合，通常称为——关系数据库
    关系模型的存储结构
  数据模型
    概念
      是对现实世界数据特征的抽象
      是数据库系统的核心与基础
    2类数据模型
      概念模型
        用户对信息建模
        用于数据库设计
      逻辑和物理模型
        逻辑模型
          概念
            按计算机系统的角度建模（也就是用什么数据结构实现）
            主要用于数据库管理系统的实现（通常数据库用 B+ 树保存数据）
          组成
            层次模型
            网状模型
            关系模型
            面向对象数据模型
            对象关系数据模型
            半结构化数据模型
        物理模型
          描述数据在系统内不的表示方式和存取方法，或在磁盘/磁带上的存储、读取方式（可以理解为如何将数据结构转化为二进制数据保存在载体上）
    概念模型
      基本概念
        实体
        属性
        码（键）
        实体型
        实体集
        联系
      表示方法
        实体-联系方法：E-R 图
    数据模型的组成要素
      数据结构
        数据库组成对象和对象之间的联系
      数据操作
        数据库各种对象（型）的实例（值）允许执行的操作的集合，包括操作及有关的操作规则
      数据的完整性约束条件
        一组完整性约束规则
  关系代数
    是一种查询语言，用对关系的运算来表达关系
    传统的集合运算
      并
      差
      交
      笛卡儿积
    专门的关系运算
      选择
      投影
      连接
        等值连接
          θ 为 ”=“
          悬浮元组：被舍弃的元组
          外连接
            悬浮元组也保存到结果关系中，其他属性填 NULL; 右侧为全外连接的表达式
            左外连接
              只保留左侧
            右外链接
              只保留右侧
        自然连接（特殊的等值连接）
          分量必须同名属性
          删去重复属性列
      除运算
  SQL
    略
  存取控制
    概念
      定义用户权限
      合法权限检查
      共同组成了数据库管理系统的存取控制子系统
    自主存取控制与强制存取控制
      自主存取控制
        GRANT 与 REVOKE
        用户权限由 数据库对象 和 操纵类型 构成
          比如说，授权用户 A 可以使用数据库 B 的 Insert 操作
        控制对象不仅数据本身，还有数据库模式
      强制存取控制
        概念：对数据本身进行密级标记，只有符合密级标记的用户才可以操作数据，从而提升安全性
        密级次序：绝密（TS) >= 机密（S） > =可信（C） >= 公开（P）
  规范化理论（P180）
    分类
      函数依赖
      码
      范式（NF）
        关系满足不同程度要求的为不同范式
      2NF
      BCNF（3NF）
      多值依赖
        特性
          对称性
          传递性
          函数依赖是多值依赖的特殊情况
        多值依赖和函数依赖区别
          有效性与属性范围有关
          断言区别
      4NF
    小结
      目的是 消除数据依赖不合适的部分
      “一事一地”的模式设计原则
      实质是概念的单一化
      过程是对关系模式的分解实现的
        低一级的关系模式分解为若干个高一级的关系模式
  数据库设计的基本步骤
    需求分析阶段
    概念结构设计阶段
    逻辑结构设计阶段
    物理结构设计阶段
    数据库实施阶段
    数据库运行和维护阶段
  概念结构设计、重中之重：E-R图设计；E-R 模型
    实体之间的联系
      两个实体之间的联系
        一对一联系
        一对多联系
        多对多联系
      两个以上的实体型之间的联系（同上）
      单个实体型内的联系
    E-R 图（P 215）
      提供了表示实体型、属性和实体型的方法
      基本 E-R 图
        实体型用矩形
        属性用椭圆形
        联系用菱形
      ISA 联系
      Part-of 联系
  数据库逻辑结构设计
    E-R 图向关系模型的转换
      一个实体型转换为一个关系模式
        1:1 联系可以独立也可以以合并
        1:n 联系可以独立也可以和 n 端对应的关系模式合并
        m:n 联系可以独立
        3个或3个以上的实体间的多元联系可以转变为一个关系模式
        具有相同码的关系模式可合并
    数据模型的优化
      数据库逻辑设计结果不是唯一的
      方法
        确定数据依赖
        对于各个关系模式之间得数据依赖最小化处理，消除冗余联系
        对关系模式逐一分析，考察是否存在部分函数依赖、传递函数依赖、多值依赖，确定关系属于第几范式
        根据需求分析阶段得到的结果来判断模式是否合理，是否需要合并或分解
          并不是规范化程度越高得关系越优
        对关系模式必要分解，提高数据操作效率和存储空间利用率
    设计用户子模式
      使用更符合用户习惯的别名
      可以对不同级别的用户定义不同的视图
      简化用户对系统的调用
  数据库三大完整性约束条件、断言、触发器（P158)
    实体完整性
      PRIMARY KEY（主码）
    参照完整性
      定义
        FOREIGN KEY（外码）
        REFERENCES（引用）
      违约处理
        拒绝（No Action）—— 默认策略
        级联（CASCADE）
        设置为空值
    用户定义的完整性
      属性上的约束条件
        非空（NOT NULL）
        唯一（UNIQUE）
        检查是否满足（CHEAK）
      元组上的约束条件
    断言（ASSERTION）
      涉及到的操作都会校验
    触发器（TRIGGER）
      AFTER
      BEFORE
      INSTEAD
  嵌入式 SQL、过程化 SQL、存储过程和函数
    嵌入式 SQL
      没什么卵用，看书上吹逼（P248）；重点可能是对游标（Cursor）的考察
      简单来说就是程序里保存的 SQL 语句
    过程化 SQL
      SQL 中的流程控制、变量声明（P253)
    存储过程和函数
      存储过程
        定义：过程化 SQL 写的过程，经编译优化后存储在数据库服务中
        优点
          运行效率高（可以理解为 C 和 Python 的对比，预编译）
          降低 C/S 的通讯量
          方便实施企业规则
        存储过程用户接口（P256）—— 如何创建、使用
      函数（P258）
        自定义函数，用于 SQL 中调用
  现实 -> 信息 -> 机器