数据库系统

数据库体系结构

集中式数据库体系结构

三级模式

  1. 外部模式(External Schema)

    • 外部模式也称为用户模式,它定义了用户如何看待和访问数据的方式。
    • 每个外部模式对应着一个或多个用户的视图,这些视图描述了用户所需的数据以及他们对数据的操作。
    • 外部模式隐藏了数据库内部的细节,用户只需关心与其相关的数据。
  2. 概念模式(Conceptual Schema)

    • 概念模式是数据库的全局逻辑结构的描述,它描述了数据库中存储的所有数据以及这些数据之间的关系。
    • 概念模式定义了数据库中的实体(Entity)以及实体之间的联系(Relationship)。
    • 概念模式独立于任何特定用户或应用程序,并且对数据库的整体视图提供了一致的抽象。
  3. 内部模式(Internal Schema)

    • 内部模式是数据库的物理存储结构的描述,它定义了数据在存储介质上的实际存储方式。
    • 内部模式包括数据的存储方式、索引、数据分区等细节信息,以及如何在物理层面上组织和管理数据。
    • 内部模式通常是数据库管理系统(DBMS)的内部实现细节,用户一般不直接操作或访问内部模式。

两级映像

  1. 逻辑独立性(Logical Independence):数据的逻辑结构发生变化后,用户程序也可以不修改。但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像。

  2. 物理独立性(Physical Independence):当数据的物理结构发生改变时,应用程序不用改变。但是为了保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像。

分布式数据库体系结构

特点

  1. 数据独立性:除了数据的逻辑独立性和物理独立性外,还有数据分布独立性(分布透明性)。
  2. 集中与自治共享结合的控制结构:各局部的DBMS可以独立地管理局部数据库,具有自治功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
  3. 适当增加数据冗余度:在不同的场地存储同一数据的多个副本,可以提高系统的可靠性和可用性,同时也能提高系统性能。
  4. 全局的一致性、可串行性和可恢复性

透明性

  1. 分片透明:用户不必关心数据分不分片,怎么分片
  2. 位置透明:用户不必关系数据存放在何处
  3. 复制透明:用户不必关心各个结点数据的复制与同步更新
  4. 逻辑透明:用户不必关系局部DBMS支持哪种数据模式、使用哪种语言

数据库设计

数据库设计过程

  1. 需求分析阶段

    • 任务:与利益相关者(如客户、用户、管理人员)一起收集和分析系统的需求和业务规则。
    • 产物:数据流图、数据字典、需求说明书等。
  2. 概念设计阶段

    • 任务:基于需求分析结果,设计数据库的概念模型,确定实体、属性和它们之间的关系。
    • 产物:E-R模型。
  3. 逻辑设计阶段

    • 任务:将概念模型转换为规范化的关系模式,确定关系模式之间的关系,以及实施数据完整性和一致性的约束。
    • 产物:关系模式(表结构)。
  4. 物理设计阶段

    • 任务:确定数据库的物理存储结构,包括索引、分区、存储过程等。
    • 产物:物理存储模式、索引设计文档、分区方案。

概念结构设计

  1. 抽象数据
  2. 设计局部ER模型
  3. 合并局部ER模型消除冲突
  4. 重构优化消除冗余
  • 集成的方法
    • 多个局部E-R图一次集成。
    • 逐步集成,用累加的方式一次集成两个局部E-R图。
  • 集成产生的冲突及解决办法
    • 属性冲突:包括属性域冲突和属性取值冲突
    • 命名冲突:包括同名异义和异名同义
    • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同

逻辑结构设计

  1. 转化为数据模型
  2. 关系规范化
  3. 模式优化
  4. 设计用户子模式
  • E-R图向关系模式的转换
    • 实体向关系模式的转换
    • 联系向关系模式的转换
  • 关系模式的规范化
  • 确定完整性约束(确保数据的正确性)
  • 用户视图的确定(提高数据的安全性和独立性)
    • 根据数据流图确定处理过程使用的视图
    • 根据用户类别确定不同用户使用的视图
  • 应用程序设计

关系代数

  1. 投影(Projection): 投影操作用于从关系中选择指定属性的数据,去除其他属性。投影操作可以通过关系中的列(属性)来进行。在关系代数中,投影操作通常用符号 (\pi)(Pi)表示。

    例如,假设有一个关系 R 包含属性 A、B 和 C,我们可以使用投影操作选择只包含属性 A 和 B 的数据子集,这样就得到了一个新的关系,表示为 (\pi_{A, B}(R))。

  2. 选择(Selection): 选择操作用于从关系中选择满足指定条件的元组(行),并去除不满足条件的元组。选择操作可以通过关系中的行来进行。在关系代数中,选择操作通常用符号 (\sigma)(Sigma)表示。

规范化理论

阿姆斯特朗公理体系

  • 自反律:如果Y是X的一个子集,那么X→Y总是成立。
  • 增广律:如果X→Y,那么对于任何属性集Z,XZ→YZ也成立。
  • 传递律:如果X→Y且Y→Z,那么X→Z也成立。

数据库设计过程中的规范化理论主要包括以下几个层次:

  1. 第一范式(1NF):确保每个表格的原子性,表中的每个字段都是不可分割的最小数据单位。
  2. 第二范式(2NF):在第一范式的基础上,消除非主属性对主键的部分函数依赖。
  3. 第三范式(3NF):在第二范式的基础上,消除非主属性对主键的传递函数依赖。
  4. 博茨-科德范式(BCNF):更严格的第三范式,要求表中的每一个决定因素都必须是候选键。
  5. 第四范式(4NF):在BCNF的基础上,消除表中的多值依赖。
  6. 第五范式(5NF):确保数据的完全规范化,消除表内的所有连接依赖。

模式分解

是否保持函数依赖的判断:分解后的关系模式,属性间保留的函数依赖合并后与合并前一致,则保留函数依赖。

是否无损的判断:满足交集推导出差集的函数依赖则满足无损。

并发控制

三级封锁协议

  1. 一级封锁协议:事务T在修改数据项X之前必须先对其加上X锁(排他锁)。这保证了任何时刻只有一个事务可以修改数据项,防止了丢失修改。
  2. 二级封锁协议:在一级封锁协议的基础上,要求事务T在读取数据项X之前必须先对其加上S锁(共享锁)。事务结束时释放所有锁。这除了防止丢失修改,还防止了脏读。
  3. 三级封锁协议:在二级封锁协议的基础上,要求事务T只能在结束时才能释放其所有的S锁和X锁。这除了防止丢失修改和脏读,还防止了不可重复读。

两段锁协议

  • 加锁阶段:事务可以获取任意数量的锁,但不能释放任何锁。
  • 解锁阶段:事务可以释放锁,但不能再获取新的锁。
posted @ 2024-02-22 21:00  Jathon-cnblogs  阅读(8)  评论(0编辑  收藏  举报