• 软考中级软件设计师--4.数据库知识


    软考数据库

    参考

    1. 数据模型的分类:
      1. 概念数据模型:从信息世界中抽象的数据模型,独立与计算机系统,一般采用 实体-联系方法(E-R 方法)来表示,用于信息世界建模
      2. 结构数据模型(数据模型DBSM):直接面向数据库的逻辑结构,一般会考察数据模型中的关系模型和相应的关系模式
    2. 概念数据模型常用术语:
      1. 实体:客观存在相互区别的事务,例如 一个人,一个单位,一个外部系统
      2. 属性:用来描述实体的特性,例如 人的姓名,单位的地址
      3. 码|键:唯一标识实体的属性或属性集
      4. 域:属性的取值范围
      5. 联系:实体之间的对应关系
    3. 实体之间的联系分为三种:一对一(一个班级对应一个班长),一对多(一个班级对应多个学生),多对多(一个老师可以对应多个班级,一个班级也可以有多个老师)
    4. E-R图(实体-联系):
      1. 实体 – 矩形表示
      2. 属性 – 椭圆表示
      3. 联系 – 菱形表示
      4. 使用无向边链接,用 1:n, n:1, n:m 来表示联系的类型
    5. 结构数据模型主要分为:层次模型,网状模型,关系模型和面向对象模型
    6. 三级模式和两级映射:
      1. 外模式(用户模式或者子模式):对应外部视图,和用户交互
      2. 概念模式:对应数据库基本表
      3. 内模式(存储模式):实际数据库存储文件
      4. 模式-内模式映像:实现了概念模式和内模式之间的转换,保持数据的物理独立性
      5. 外模式-模式映像:实现了外模式和概念模式之间的转换,保持数据的逻辑独立性
    7. 关系模型中基本术语:
      1. 关系:一个关系就是一个二维表
      2. 元祖:表中的一行就是一个元祖,对应一个记录值
      3. 属性:表中的一个列就是一个属性,列的第一行就是属性名,其他为属性值
      4. 域:属性的取值范围
      5. 关系模式:对关系的描述,格式:实体(属性1,属性2,…属性n)
      6. 候选码|候选键:能够唯一标识一个元祖的属性或者属性组合
      7. 主码|主键:一个关系中可能会有多个候选码,从中选择一个作为主码
      8. 外码|外键:一个关系中的属性或属性组并非该关系的码,但是是别的关系中的主码,则称其为该关系的外码|外键
      9. 全码:一个候选码,包含关系中的所有属性,则该候选码为全码
      10. 超码:包含候选码的属性集
      11. 主属性:候选码中的都是主属性,其他的时非主属性
    8. 关系模型完整性约束:
      1. 实体完整性:主键的值不能空
      2. 参照完整性:外键的值可以为空,但是如果有值,则其值一定能在对应的表中找到
      3. 用户定义完整性:用户定义的对某一数据的指定约束条件
    9. 关系代数运算:
      1. ∪ (并集):R ∪ S, R,S所有元祖|记录 合并,删除重复记录后的结果
      2. - (差):R-S, 从 R 中删除存在于 S 中的记录
      3. ∩ (交集):R ∩ S, R,S 中同时存在的记录组成
      4. × (笛卡尔积): R × S, R 中每条记录与S中的每条记录拼接组合成新的记录
      5. π (投影):π 1,3 ® 从关系R 中抽取第 1,3 列属性,组成新的关系,(其中 1,3 列号,也可以用对一个属性名代替)
      6. 6 (选择):6 1=5 ® 从关系R 中选择所有第 1 列的值等于第 5 列值的记录,组成新的记录
      7. 链接:链接就是在两个关系的笛卡尔积中选择符合条件的行
      8. 等值链接:连接条件为两列值相等
      9. 自然链接(|><|):不需要写链接条件,自然链接中会选出两个表中同名属性对应值相同的记录,并且生成的新关系中去除了重复的属性列
      10. 左外链接:R 自然链接 S,在自然链接基础上,将左侧关系 R 中在自然链接结果中丢失的记录与自然链接结过拼接的结果,用空值 NULl 来填充右侧属性
      11. 右外链接:与左侧链接相反
      12. 全外链接:左外链接与右外链接的结果叠加
    10. 关系代数转 SQL 语句:查看 SQL 查询语句
    11. 关系模式:
      1. R 也就是 关系名<属性组, 属性的域, 属性到域的映射, 属性组中属性的数据依赖关系> 通常 D dom 可以省略,例如:R<{A, B, C, D}, {A->B, A->C, C->D}> “->” 可以理解为“推导出”或者“决定”的意思
      2. 完整函数依赖:例如 (学号,课程) -> 成绩,但是单独的 学号 或者 课程不能直接推导出 成绩,这就是完整函数依赖
      3. 部分函数依赖:例如(学号,课程号)-> 姓名,单独的 学号 也可以推导出 姓名,这就是部分函数依赖
      4. 依赖传递:A->B , B->C ,则称 C 对 A 传递依赖
      5. 属性闭包计算(挑选主键),由推导关系选出可以完全推导出所有属性集的某个属性或者某几个属性组合,例如:R<{A, B, C, D}, {A->B, A->C, C->D}> 中 A 属性可以完全推导出 {A, B, C, D},A 就是主键,有多个情况,则可以有多个候选键
      6. 冗余函数依赖:例如 {A->B, B->C, A->C, C->D} 中 A->C 即为冗余,因为 A->B->C 有传递依赖,传递依赖优先(自己的理解)
    12. 范式 – 应试技巧
      1. 1NF -> 2NF: 消除非主属性对码的部分函数依赖
      2. 2NF -> 3NF: 消除非主属性对码的传递函数依赖
      3. 3NF -> BCNF: 消除主属性对码的部分函数依赖和传递函数依赖
      4. BCNF -> 4NF: 消除非平凡且非函数依赖的多值依赖
      5. 结题技巧:
        1. 一般都满足1NF,除非有类似 工资(基本工资,加班工资,实发工资)这种可在细分的属性
        2. 通过函数依赖集,找到 “码”,以及主属性与非主属性(能被推导出的属性都不是主属性或者码)
        3. 判断非主属性是否对码有部分函数依赖,即非主属性是否能通过码的一部分就推导出来(如果是 码中的成员+非主属性A -> 非主属性B 这种则不算部分函数依赖)符合则至少是 2NF
        4. 看有没有传递函数依赖(类似 A->B, B->C; 或者是伪传递时的某些情况:A->B, BC->D 那么可以有 AC->D),符合则至少是 3NF,
        5. 查看主属性对候选码是否有部分函数依赖或者传递依赖, 符合则至少是 BCNF
        6. 看有没有多值依赖,并且多值依赖的左边是码,例如A->B,A->C,并且A是码,那就符合第四范式
    13. 判断是否为无损连接:直接把分解后的关系,通过“自然链接”链接,看看得到的结果是否与原来一致,不一致则是有损
    14. 判断是否为“保持函数依赖”:就看分解后的两个关系中是有原来函数依赖集的那些依赖关系,如果没有就是不保持
    15. 数据库设计步骤:1.用户需求分析 – 数据流图;2.概念设计 – E-R 图;3. 逻辑设计 – 关系模式
    16. E-R模型:
      1. 实体:矩形表示;
      2. 弱实体:双边矩形表示,一个实体的存在必须依赖另外一个实体为前提,这类实体就是弱实体
      3. 联系:菱形表示,无向边上标明联系的类型 1:n n:1 n:m,弱实体的联系为双边菱形
      4. 属性:椭圆形表示;
        1. 简单属性:不可再分的属性;复合属性:可以细分为更小的部分
        2. 多值属性:双边椭圆表示,多值属性就是一个属性可以对应一组值,
        3. 派生属性:虚线椭圆表示,可以通过其他属性计算得来的属性
    17. E-R 图之间的冲突类型:
      1. 属性冲突:属性的类型、取值范围、数据单位冲突
      2. 命名冲突:相同意义属性在不同 E-R 图中有不同命名
      3. 结构冲突:同一个对象在某个 E-R 图中抽象为实体,在另一个 E-R 图中抽象为属性,或者同一实体在不同E-R 中有不同属性
    18. 关系模型转换:
      1. 1:1 关系转换为关系模式:把联系对应的属性放到任意一个实体中,同时将另外的实体的主键也放到这个实体中
      2. 1:n 关系转换为关系模式:把联系对应的属性放到 n 对应的实体中,同时将另外的实体的主键也放到这个实体中
      3. n:n 关系转换为关系模式:把联系单独作为一个新的关系, 其他实体的主键组合为这个新关系的主键
      4. 关系模式规范化的要求:至少满足 3NF
    19. 事务管理的特性:
      1. 原子性:事务是原子的,要么都做,要么都不做
      2. 一致性:事务执行的结果必须保证从一个一致性状态 变到另一个一致性状态
      3. 隔离性:事务间互相隔离,多个事务并发时,任意事务的变更操作知道其成功提交的整个过程对其他事务都是不可见的
      4. 持久性:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效
    20. 数据库备份方法:
      1. 静态转储与动态转储,动态指在转储期间允许对数据库的存取修改操作,静态则不允许
      2. 海量存储与增量存储,增量是指仅转储距离上次转储更新的数据
      3. 日志文件,把对数据库的每次操作写入日志文件,一旦发生故障,则利用日志文件撤销事务,回退到事务前的数据状态
    21. 封锁:
    22. 排它锁:就是加了这个锁那么其他的排它锁和共享锁都不能加了,直到这个锁被释放了才可以加其他的排它锁和共享锁
    23. 共享锁:就是加了这个锁那么不能加排它锁,但是可以加共享锁,直到这个锁被释放了才可以加排它锁
    24. 分布式数据库:
      1. 分片透明:指不需要知道表具体是如何分块存储的
      2. 复制透明:采用复制技术的分布式方法时,用户不需要知道复制到了那些节点,和如何复制的
      3. 位置透明:无需知道数据存放的物理位置
      4. 逻辑透明:无需知道局部使用的时那种数据模型
      5. 共享性:数据存储在不同的节点数据共享
      6. 自治性:每个节点对本地数据独立管理
      7. 可用性:某一个场地故障,系统可以使用其他场地的副本而不至于整个系统瘫痪
      8. 分布性:数据在不同场地存储
    25. 存储过程:
      1. 存储过程是在大型数据库系统中,一组为完成特定功能的SQL语句集
      2. 通过提供存储过程让第三方调用,将需要更新的数据传入存储过程,从而避免了向第三方提供系统的表结构,保证了系统的数据安全
  • 相关阅读:
    武汉某厂前端中高级面试题一面
    数据结构复习题
    数字逻辑·时序线路分析【常见的时序线路】
    IO流 之 转换流( InputStreamReader 字节输入转换流 和 OutputStreamWriter 字节输出转换流)
    实验2 创建数据集(一)
    mybatis 07: sql标签中 "#{}" 和 "${}" 的作用和比较
    基于生物地理学优化的BP神经网络(分类应用) - 附代码
    免费的AI写作软件-智能AI写作工具
    LeetCode 387---First Unique Character in a String
    Linux进程(三)--进程切换&命令行参数
  • 原文地址:https://blog.csdn.net/mjzhang1993/article/details/126986798