CPT-103复习3

主要是数据库设计方法

Lec6

  1. Database Design

    两种被广泛使用的设计方法
    1. Entity Relationships Modeling

      1. Top-down approach
      2. Suitable to structurally construct database
    2. Normalization

      1. Bottom-up approach
      2. Suitable to transform/fit excel data into database
           flowchart
         A(Conceptual Model)-->B(Logical Model)-->C(Physical Implementation)
  2. Entity Relationships Modeling

    1. Components:

      1. Entities : objects or items of interest. 指实体
      2. Attributes : properties of an entity. 指实体的属性
      3. Relationships : links bewtwwn entities. 指实体之间的关系
    • 实体间的关系可以是
      1. 一对一的,例如一个导员对应一个班级,同时一个班级也只有一个导员
      2. 一对多的,例如一个导员管理多个学生,同时每个学生都只有一个导员
      3. 多对多的,例如一个学生学习多个科目,同时一个科目中会有多个学生
  3. Designing ER Models

    1. 先找出实体,他们通常是名词
    2. 将实体使用圆弧方框在空间中排列
    3. 再寻找实体之间的关系,使用菱形表示在空间中。
    4. 寻找关系的类型,并以此关联实体
    5. 拆分多对多的关系,使用添加实体的方法将其变为多个一对多的关系
    6. 合并一对一的关系,将两个实体合为一个
    7. 寻找实体的属性,并保证相互关联的实体拥有相同的沟通属性
    • 步骤5,6酌情处理。
    • 当难说某个东西是实体还是属性时,一般准则
      • 实体可以有属性,但属性不会有更小的部分
      • 实体之间可以有关系,但属性只属于单一的实体

Lec7

  1. Normalization

    1. 范式

      1. 1NF 第一范式

        1. 符合1NF的关系中的每个属性都不可再分。不存在表中套表的情形
        2. 所有的键的属性(列)都已经定义
        3. 没有任何重复的组。每行和每列的交汇处有且只有一个值。
        4. 所有的属性(列)都依赖于主键
        • 问题:
          1. 数据冗余过大
          2. 插入异常
          3. 删除异常
          4. 修改异常
      2. 2NF 第二范式

        1. 表遵循第一范式
        2. 表不包含部分依赖。即非主属性完全函数依赖于主属性
        • 概念
          1. 函数依赖
            在一张表中,在属性或属性组K的值确定的情况下,那么属性Y的值也被确定了。这种映射可以被称为函数依赖。例如 学生学号姓名 就是函数依赖
            1. 完全函数依赖
              在一张表中,若,并且对于X的任何一个真子集,,那么Y对于X完全函数依赖,计作。例如 (学号,科名)分数
            2. 部分函数依赖
              同时,那么Y则部分函数依赖于X,计作
            3. 传递函数依赖
              假如同时,那么,Z传递函数依赖于X,计作
          2. 设K为某表中的一个属性或属性组,若除K之外的所有属性都完全函数依赖于K,那么我们称K为候选码,简称。一张表中可以有不止一个码
          3. 主属性
            包含在任意一个码中的属性称为主属性
          4. 非主属性
            不包含在任何一个码中的属性称为非主属性
      3. 3NF 第三范式

        1. 表遵循第二范式
        2. 表不包含函数传递依赖
      4. BCNF BC范式/3.5范式

        1. 表遵循第三范式
        2. 主属性不依赖于主属性