数据库基础知识

  1. 数据库四类故障
    1. 事务内部故障
    2. 系统故障
    3. 介质故障
    4. 计算机病毒
  2. 数据库恢复
    1. 原理:建立冗余数据。确定数据库是否可恢复的方法就是其包含的每一条信息是否都可以利用冗余存储在别处的信息重构。
  3. 数据库系统的体系结构
    1. 集中式数据库系统
    2. 客户端/服务器体系结构(c/s):客户端负责数据表示服务,服务器负责数据库服务
      1. 数据库服务器
        1. 事务服务器(主查询)
        2. 数据服务器(主交互,客户端和服务器可以进行交互)
    3. 并行数据库系统:多个物理上连在一起的CPU,而分布式是地理上分布
      1. 共享内存式多处理器(多处理器共享内存和公共磁盘接口)
      2. 无共享式并行体系结构(每一个处理器都承担自己的数据和任务)
    4. 分布式数据库系统
      1. 物理上分布、逻辑上集中(把单位的数据模式按数据来源和用途合理分布在系统的多个节点上,是大部分数据可以就地或就近存取)
      2. 物理上分布、逻辑上分布(由两部分组成,一是本节点的数据模式,二是本节点共享的其他结点上有关的数据模式,结点间的数据共享由双方协商决定,利于扩展)
  4. 数据库的三级模式结构
    1. 概念模式
    2. 外模式(用户模式/子模式)
    3. 内模式(存储模式)
    4. 两级映像(模式/内模式映像、外模式/模式映像)
  5. ER模型(Entity-Relationship,实体联系模型,用ER图描述)
    1. 实体(用矩形表示,框内写明实体名)
    2. 联系(用菱形表示,框内写明联系名,用无向边连接实体,同时标注联系的类型)
    3. 属性(用椭圆表示,框内写明属性名)
  6. 网络模型(采用网络结构表示数据与数据之间联系的数据模型)
  7. 关系模型(若干个关系模式组成的集合)
  8. 面向对象模型
  9. 关系代数
    1. 基本概念
      1. 属性和域
        1. 域:每个属性的取值范围对应的一个值的集合
        2. 第一范式:所有的域都应该是原子数据
      2. 笛卡尔积与关系
      3. 关系的相关名词
        1. 目或度
        2. 候选码:关系中的某一属性或属性组的值能唯一的标识一个元组;
        3. 主码:一个关系有多个候选码,则选定其中一个为主码
    2. 完整性约束
      1. 实体完整性:规定R的主属性A不能为空值
      2. 参照完整性
      3. 用户定义完整性
    3. 五中关系代数运算
      1. 广义笛卡尔积
      2. 投影
      3. 选择
    4. 扩展的关系代数运算
      1. 连接
        1. 0连接
        2. 等值连接
        3. 自然连接
  10. SQL
    1. 索引
      1. 作用:
        1. 通过创建索引唯一索引,可以保证数据记录的唯一性
        2. 可以大大加快数据的检索速度
        3. 可以加速表与表之间的连接
        4. 在使用ORDER BY和GROUP BY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。
        5. 使用索引可以再检索数据的过程中使用优化隐藏起,提高系统性能
      2. 分类
        1. 聚集索引(索引表中索引项的顺序与表中记录的物理顺序一致的索引)
        2. 非聚集索引
      3. 建立索引
        1. 语句格式:
          1. CREATE [UNIQUE][CLUSTER]INDEX <索引名> ON <表名>(<列名>[次序][,<列名>[次序]])...
        2. 参数说明
          1. 次序:可选ASC(升序)或DSC(降序),默认值为ASC
          2. UNIQUE:表明次索引的每一个索引值只对应唯一的数据记录
          3. CLUSTER:表明要建立的索引是聚簇索引,意思是索引项的顺序与表中记录的物理顺序一致的索引组织。
      4. 删除索引
        1. 语句格式:DROP INDEX <索引名>
  11. 视图:从一个或者多个基本表或视图中导出的表,其结构和数据是建立在对表的查询基础上的

    1. 语句格式:

      CREATE VIEW 视图名 (列表名)
          AS SELECT 查询子句
          [WITH CHECK OPTION]
      
    2. 注意,视图创建要遵循以下规定
      1. 子查询可以使任意复杂的SELECT语句,但是通常不允许含有ORDER BY子句和DISTINICT短语
      2. WITH CHECK OPTION表示对UPDATE,INSERT,DELETE操作时保证更新,插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)
      3. 组成视图的属性列名或者全部省略或者全部指定。如果省略属性列名,则隐含该视图由SELECT子查询目标列的主属性组成。
  12. SQL访问控制

    1. 数据控制 控制的是用户对数据的存储权利,是由DBA决定的。所以DBMS应该具有下列功能
      1. 通过GRANT和REVOKE将授权通知系统,并存入数据字典
      2. 当用户提出请求时,根据授权情况检查是否执行操作请求
    2. 授权的语句格式

      GRANT <权限>[,<权限>]...[ON<对象类型><对象名>] TO <用户>[,<用户>]...
          [WITH GRANT OPTION]
      
    3. 收回权限

      REVOKE <权限>[,<权限>]...[ON<对象类型><对象名>] FROM <用户>[,<用户>]...
      
  13. 关系数据库的规范化
    1. 函数依赖
    2. 规范化
      1. 1NF(第一范式):若关系模式R中的每一个分量是不可再分的数据项,则R属于第一范式
      2. 2NF(**):
        1. 若关系模式R 属于 1NF,且每一个非主属性完全依赖于码,则R属于2NF
        2. 当1NF消除了非主属性对码的部分函数依赖,则称为2NF
      3. 3NF(**)
        1. 若关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性Z(Z不包含于Y)使得X->Y(Y不可以推得X),Y->Z成立,则关系模式R属于3NF
        2. 即当2NF消除了非主属性对码的传递函数依赖,则称为3NF
      4. BCNF(**)
      5. 4NF(**)
      6. 5NF(**)
    3. 模式分解:对一个给定的模式进行分解,使得分解后的模式是否与原来的模式等价有三种情况
      1. 分解具有无损连接性
      2. 分解要保持函数依赖
      3. 分解既要无损连接性,又要保持函数依赖
  14. 数据库的控制功能
    1. 事务管理(是一个操作序列,要么都做,要么都不做)
      1. BEGIN TRANSACTION 事务开始
      2. COMMIT事务提交
      3. ROLLBACK事务回滚
    2. 事务具有ACID性质
      1. 原子性(atomicity):要么都做,要么都不做
      2. 一致性(consistency):数据库从一个一致性状态到另一个一致性装态
      3. 隔离性(isolation):事务互相隔离;事务成功提交的整个过程,事务对于其他事务都是不可见的
      4. 持久性(durability):一旦事务成功提交,那么即使数据崩溃,数据库的更新操作也永久有效
  15. 数据库备份与恢复
    1. 备份方法
      1. 恢复的基本原理是建立数据冗余(重复存储)。建立数据冗余的方法是进行数据转储和登记日志文件。数据转储分为静态转储、动态转储、海量转储、增量转储
      2. 静态转储和动态转储:区别在于转储期间是否允许对数据库进行任何存取、修改操作
      3. 海量存储和增量存储。
        1. 海量指每次转储全部数据
        2. 增量指每次只转储上次转储后更新过的数据
      4. 日志文件:把数据库的每次操作写入日志文件,一旦故障则通过日志文件撤销对数据库的改变,回退到初始状态。
    2. 恢复
      1. 反向扫描文件日志(从后往前扫),查找事务的更新操作
      2. 对事物的更新操作进行逆操作
      3. 继续反向扫描,继续查找更新操作,继续逆操作,知道事务开始的标志
    3. 数据库镜像
  16. 并发控制
    1. 并发带来的问题
      1. 丢失修改
      2. 不可重复读
      3. 读脏数据
    2. 并发控制技术
      1. 封锁
        1. 排它锁
        2. 共享锁
      2. 三级封锁协议
        1. 一级封锁协议
        2. 二级封锁协议
        3. 三级封锁协议
    3. 活锁与死锁
    4. 并发调度的可串行性
    5. 两段封锁协议
    6. 封锁的粒度

你可能感兴趣的:(数据库)