安派尔

软考系统架构设计师(5)-数据库设计基础知识

2025/07/20
3
0

软考系统架构设计师(5)-数据库设计基础知识

数据库基本概念

1.数据模型
3要素

  • 数据结构:对象类型的集合,是对系统静态特性的描述
  • 数据操作:对数据库中各种对象的实例允许执行的操作集合
  • 数据的约束条件:一组完整性规则的集合,数据需遵循特定的语义约束条件,以保证数据的正确、有效

2.数据库管理系统(DBMS)
功能:数据定义、数据库操作、数据库运行管理、数据组织、存储和管理、数据库的建立和维护
特点:

  • 数据结构化且统一管理
  • 有较高的数据独立性
  • 数据控制功能
    • 数据库的安全性
    • 数据的完整性
    • 并发控制
    • 故障恢复

3.数据库三级模式

Snipaste_2025-08-19_17-12-25-768x494.png

  • 视图层:最高层次的抽象,描述整个数据库的某个部分的数据
  • 逻辑层:描述数据库中存储的数据以及这些数据间存在的关系
  • 物理层:描述数据在存储器中是如何存储的

三级模式

  • 外模式:用户与数据库系统的接口,是用户需要使用的部分数据的描述
  • 概念模式(模式):数据库中全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成
  • 内模式:存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的标识方式

关系型数据库

基本术语:
属性:在现实世界中,要描述事物常常取若干特征来表示,这些特征称为属性
域:每个属性的取值范围对应一个值的集合,称为属性的域
目或度:指一个关系中属性的个数
候选码:关系中的一个属性或属性组的值能唯一标识一个元组,该属性或属性组为候选码
主码:或称主键,一个关系有多个候选码,可选定其中一个作为主码
主属性:包含在任何候选码中的属性称为主属性
外码:属性不是关系R中的码,但它是其他关系的码,则该属性对关系R而言是外码,外键
全码:关系模型的所有属性组是这个关系模式的候选码,称为全码

关系的完整性约束:保证授权用户对数据库做修改时不会破坏数据的一致性

  • 实体完整性:要求每个数据表都必须有主键,作为主键的所有字段是唯一且非空值
  • 参照完整性:关系R中的外码对应关系S中的主键,则该外码为空值或为S中的主键值
  • 用户定义完整性:反应某一具体应用所涉及的数据必须满足的语义要求

1.关系运算
关系代数运算符有4类:集合运算符、专门的关系运算符、算术比较符、逻辑运算符

并(union)
img

差(Difference)
img

笛卡尔积
img

交(intersection)
img

投影(Projection)
按列选取,符号π,
img

选择(Selection)
按行选取,符号σ
img

连接:分3种连接,连接运算时从两个关系的笛卡尔积种选取满足条件的元组
θ连接:在笛卡尔积中选取属性满足一定条件的元组

Snipaste_2025-08-20_14-19-33-1024x297.png

等值连接:是θ的特例
img

自然连接:自然连接=等值连接+去除重复属性组

除(Division):
img

外连接:左外连接、右外连接、全外连接
左外连接:⟕
取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值null填充所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中
img

右外连接:⟖
取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值null填充所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中
img

全外连接:⟗
完成左外连接和右外连接的操作
img

聚合函数:聚合函数输入一个值的集合,返回单一值作为结果,如sum、avg、count等函数

2.关系数据库设计基本理论

  • 函数依赖:在属性(属性组)X的值确定的情况下,必定能够确定属性Y的值。
    记为 X→Y。如:学号→学生姓名,(学号,课程)→成绩
  • 非平凡函数依赖:如果 X→Y,Y⊄X,则称 X→Y 是非平凡的函数依赖,
    如:(学号,课程)→成绩,因为成绩不在(学号,课程)中
  • 平凡的函数依赖:如果 X→Y,但 Y⊆X,则称 X→Y 是平凡的函数依赖。
    如:(学号,姓名)→姓名,因为姓名在(学号,姓名)中
  • 完全函数依赖:例如,有学生关系模式(学号,系号,系主任,课程号,成绩),该关系模式的主码是学号+课程号,(学号,课程号)→成绩是完全函数依赖。
  • 部分函数依赖:上述例子中,(学号,课程号)→系号就属于部分函数依赖,因为对于系
    号来说有学号就可以推出系号。
  • 传递依赖:上述例子中,学号→系号,系号→系主任名,则称系主任名传递依赖于学号。

Armstrong公理
1)A1 自反律:若 Y⊆X⊆U,则 X→Y 为 F 所蕴含。
2)A2 增广律:若 X→Y 为 F 所蕴含,且 Z⊆U,则 XZ→YZ 为 F 所蕴含。
3)A3 传递律:若 X→Y,Y→Z 为 F 所蕴含,则 X→Z 为 F 所蕴含。
根据上面三条推理规则,又可推出下面三条推理规则:
1)合并规则:若 X→Y,X→Z,则 X→YZ 为 F 所蕴含。
2)伪传递规则:若 X→Y,WY→Z,则 XW→Z 为 F 所蕴含。
3)分解规则:若 X→Y,Z⊆Y,则 X→Z 为 F 所蕴含。

范式:

  • 第一范式(1NF):若关系模式 R 的每一个分量(每一列)是不可再分的数据项,则关系模式 R 属

    于第一范式。

    存在4个问题:

    • 冗余度大
    • 引起修改操作的不一致性
    • 插入异常
    • 删除异常
  • 第二范式(2NF):若关系模式 R∈1NF,且每一个非主属性完全依赖主码时,则关系式
    R 是 2NF(第二范式)。(消除非主属性的部分函数依赖)

  • 第三范式(3NF):当 2NF 消除了非主属性对主码的传递函数依赖,则称为 3NF。

  • BC 范式(BCNF):如果关系模式 R∈1NF,且每个属性都不传递依赖于 R 的候选码,
    那么称 R 是 BCNF 模式

以上内容需要在考前重点复习

数据库设计

数据库设计分6个阶段

  • 用户需求分析:主要任务是综合各个用户的应用需求,对现实世界要处理的对象进行详细调查,获得用户对系统的信息要求、处理要求、系统要求

  • 概念结构设计

    对现实事物抽象认识的3种分类方法:

    • 分类:对现实世界的事物,按照其具有的共同特征和行为,定义一种类型
    • 聚集:定义某一类型所具有的属性
    • 概括:由一种已知类型定义新的类型

    概念结构设计工作步骤:

    • 选择局部应用

    • 逐一设计分E-R图

    • E-R图合并

      合并E-R图会存在3种冲突:

      • 属性冲突:同一属性存在于不同的分E-R图中,对属性的类型、取值范围、数据单位可能不一致
      • 命名冲突:相同意义的属性,在不同的分E-R图中有不同的命名或名称相同的属性有不同的意义
      • 结构冲突:同一实体在不同的分E-R图中有不同的属性
  • 逻辑结构设计
    工作步骤:E-R图转换为关系模式、关系模式规范化、确定完整性约束、确定用户视图、反规范化
    反规范化操作:冗余列、派生表、表重组、表分割,其中表分割分水平分割和垂直分割

  • 物理结构设计:工作步骤为确定数据分布、确定数据的存储结构、确定数据的访问方式

  • 数据库实施阶段:

    • 建立实际的数据库结构

      在定义数据库结构时,应包含一下内容

      • 数据库模式与子模式,以及数据库空间等描述
      • 数据库完整性描述:数据的完整性指数据的有效性、正确性、一致性
      • 数据库安全性描述:对用户的数据操作进行控制
      • 数据库物理存储参数描述
    • 数据加载:分手工录入和使用数据转换工具两种

    • 数据库试运行和评价

  • 数据库运行和维护阶段

    • 对数据库性能的检测和改善
    • 数据库的备份及故障恢复
    • 数据库重组和重构

NoSQL数据库

1.分类与特点

  • 列式存储数据库:按数据库记录的列来组织和存储数据的,数据库仲每个表由一组页链的集合组成,每条页链对应表中的一个存储列
  • 键值对存储数据库:典型数据结构一般为数组链表:先通过Hash算法得出HashCode,找到数据的某一位置,然后插入链表
  • 文档型数据库
  • 图数据库

NoSQL数据库特征:易拓展、大数据量,高性能、灵活的数据模型、高可用

redis 相关知识需要补充

2.体系框架
NoSQL整体框架分4层:数据持久层、数据分布层、数据逻辑模型层、接口层

  • 数据持久层:定义了数据的存储形式,主要包括基于内存、硬盘、内存和硬盘接口、定制可插拔
  • 数据分布层:定义数据式如何分布的,相对关系型数据库,NoSQL可选的机制比较多,有3种形式:CAP支持、多数据中心支持、动态部署支持
  • 数据逻辑层:数据的逻辑表现形式
  • 接口层:为上层应用提供了方便的数据调用接口,提供的选择多余关系型数据库