数据库基础考点自我总结

分布式数据库的4种透明:

  1. 分片透明:用户不必关心数据是如何分片或者分块
  2. 复制透明:用户不关系数据在各个节点的复制情况
  3. 位置透明:用户不必知道所操作的数据放在什么位置
  4. 逻辑透明:局部映像透明,用户不必关心数据模型和数据操作语言

关系表达式:

  1. 选择等价的关系表达式
    1. Π和σ下的数字和属性字符串的互换,若数字大于去重后的个数,则肯定是笛卡尔积
    2. 笛卡尔积相同属性不去重,连接的笛卡尔积去重  
  2. 准换成SQL语句
    1. 连接的SQL语句肯定存在属性相等且用AND连接的条件表达式(where后面)
    2. from后面一般是两个表,使用逗号连接
  3. 3.关系的除法,比如R÷S
    1. 找出R与S不相同的属性列
    2. 将该列的值去重求出象集 
    3. 找出R中和S相同的象集

      例子:R÷(ΠA1,A21<3(S))

R S
A1 A2 A3 A1 A2 A4
1 2 3 1 9 1
2 1 4 2 1 8
3 4 4 3 4 4
4 6 7  4 8 3

          求出被除的关系为S',象集为A1A2={(2,1),(3,4)}

A1 A2
2 1
3 4

          

          找出R与S'不相同的列:A3

          将A3列的值去重:(3,4,7)

          求出象集(值来自R与S'相同的列):A1A2(3)={(1,2)},A1A2(4)={(2,1),(3,4)},A1A2(7)={(4,6)}

          找出于S‘象集相同的象集A1A2(4),所以被除后得出的结果是{4}          

SQL语句的查询效率:

经过条件过滤的R和S,与未经过条件过滤的R'和S',RxS的效率比R'xS'的效率高

  1. 比如σ1=‘A’(R)xσ2=‘B’(S)的效率比RxS的效率高

查询语句越短,效率也可能越高

事务:

在进行事务处理时,数据内容先写入日志文件

系统正常或一定时间间隔后,数据从缓冲区写入数据文件

分解:

一般题目会出一个关系模式R(A1,A2,...,AN)、关系模式R的函数依赖集F和一个分解关系模式集p{R1,R2,...},让我们判断p是否是无损连接以及函数依赖

无损连接判断:

1. 构造一个表格,列表头为R的属性,行表头为p的关系

例如:R(A1,A2,A3,A4),F{A1A3->A2,A2->A3},p{(A1,A2),(A1,A3)}

  A1 A2 A3 A4
(A1,A2)        
(A1,A3)        

2. 往表格里填值,填值规则:

如果列表头的属性在行表头中存在,则填入 an,n与属性的N对应

  A1 A2 A3 A4
(A1,A2) a1 a2    
(A1,A3) a1   a3  

如果列表头的实行在行表头中不存在,则填入bij,i为行号,j为列号

  A1 A2 A3 A4
(A1,A2) a1 a2 b13 b14
(A1,A3) a1 b22 a3 b24

3. 根据函数依赖,修改表格里bij的值:

函数依赖F{A1A3->A2,A2->A3}中A1A3->A2,所以第二行第二列的b22可以改成a2,A2->A3,所以第一行 第三列可以改成a3

  A1 A2 A3 A4
(A1,A2) a1 a2 a3 b14
(A1,A3) a1 a2 a3 b24

4. 若表中任意一行存在a1到an则说明是无损连接,否则就是有损连接

注意:不要使用依赖的传递性

函数依赖判断:

基本上有损连接不是函数依赖,因为在判断无损连接的时候就有函数依赖作为依据

注意区分伪传递依赖(若X->Y,WY->Z,则XW->Z)和传递依赖(若X->Y,Y->Z,则X->Z)

主属性&非主属性:

主要就是候选码的判断,只要是候选码集合中的属性都是主属性(集合中可能是单个属性也可能是属性组),不是的为非主属性

  1. 根据函数依赖F画出有向图
  2. 看有没有入度为零的属性(没有箭头指向该属性)且能遍历剩余的其他属性,全能遍历则是候选码
  3. 属性组能否遍历剩余的其他属性,全都能遍历则属性组中的所有属性都是是候选码

范式:

  1. 第一范式(1NF):属性的值不可拆分,没有重复的属性列
    1. 有冗余
    2. 修改操作不一致
    3. 插入异常
    4. 删除异常
  2. 第二范式(2NF):有传递依赖
  3. 第三范式(3NF):没有传递依赖
  4. BC范式(BCNF):没有任何属性依赖于非主属性
  5. 第4范式(4NF):属性组能唯一表示,但是属性组中的子集不行

耦合类型:

由低到高:

  1. 无直接:无直接关系,不在同一模块,不传递任务信息
  2. 数据:传递数据(参数)
  3. 标记:传递数据结构(结构体)
  4. 控制:一个模块调用另一个模块,传递控制变量
  5. 外部:软件之外的环境联系
  6. 公共:公共数据环境
  7. 内容:直接使用另一个模块中的内部数据

内聚类型:

由低到高:

  1. 偶然(巧合):没有任何联系
  2. 逻辑:逻辑上功能相似
  3. 时间:需要同时执行
  4. 过程:按指定的过程执行,一个模块完成多个任务
  5. 通信:使用相同的输入数据或者产生相同的输出数据,同一数据结构上操作
  6. 顺序:必须按顺序执行
  7. 功能:所有元素共同作用完成一个功能,缺一不可

巧记:巧逻时过通顺功,无数标控外公容

完整性约束:

  1. 实体完整性约束:主键不能有空,不能重复
  2. 参照完整性约束:外键的值要么为空,要么为对应关系的主键值
  3. 用户自定义完整性约束:一般用于限制某字段的取值范围
  4. 若三者都不是,就需要考虑建立触发器

分布式数据库的特性

  1. 数据独立性
  2. 集中+自治:各局部有独立的DBMS,系统设有集中控制机制,控制各DBMS
  3. 可靠+可用:在不同场地存储同一个数据的多个副本,增加数据冗余度
  4. 全局一致性+可串行性+可恢复性

简答题

主要考的是E-R模型,常考题型:

  1. 补充联系,标识联系类型
    1. 根据题目描述区分,比如:每个部门有多名员工,一个经理负责一个部门等,注意:每、一、多这些字眼
    2. 题目的分数可以明确联系的个数
    3. 尽量使用联系1、2、3、4替代,而不是自己琢磨联系名
    4. 三元联系(难点)
  2. 补充关系模式中的空缺
    1. 题目描述中已有的属性
    2. 联系相关的外键属性(难点)  
  3. 确定某关系模式下的主键和外键
    1. 注意主键可能是属性组
    2. 外键可能有多个
  4. 增设实体,修改关系模式
    1. 尤其注意增设的实体与另外哪个实体建立联系
    2. 确定需要的属性(难点)
  5. 关系的除法,比如R÷S
  6. 冲突:
    1. 属性冲突:同一属性存在于不同的分E-R图,但属性的类型、取值范围和数据单位可能不一致
    2. 命名冲突:相同意义的属性在不同的分E-R图中有着不同的命名,或者名词相同的属性在不同的分E-R图中代表不同的意义
    3. 结构冲突:同一对象在某一分E-R图中被抽象为实体,在另一分E-R图中被抽象为属性
posted @ 2021-08-24 10:09  注入灵魂  阅读(180)  评论(0)    收藏  举报