博客
关于我
数据库笔记3——数据库管理系统体系结构,访问管理,数据分布,查询优化,恢复机制,并发控制
阅读量:733 次
发布时间:2019-03-21

本文共 1438 字,大约阅读时间需要 4 分钟。

数据库管理系统体系结构

数据库管理系统(DBMS)是现代信息系统的核心技术之一,其体系结构涵盖内核、运行状态及分布式环境下的优化等多个层面。本文将深入探讨DBMS的关键组成部分及其在实际应用中的表现。

DBMS内核

DBMS的内核是其核心模块,处理数据的存取和操作。其自上而下的架构包含以下主要组件:

  • 语法分析与编译器:分析SQL语句并生成语法树,确保命令的正确解析。
  • 权限检查:在执行操作前验证用户的访问权限。
  • 语义分析与查询处理:解析逻辑结构并调用底层存储管理功能,从而执行具体操作。
  • 并发控制、访问管理与恢复机制:确保多用户环境下的数据一致性和效率。
  • 上述模块依赖操作系统,通过其接口进行数据操作。

    运行进程结构

    在DBMS运行过程中,进程结构主要呈现单线程、多线程或多进程模式:

    • 单进程:应用程序与DBMS核心绑定运行,资源占用较低,但限制了并发处理能力。
    • 多进程:为每个连接创建独立进程,通过管道或socket进行通信,适合分布式环境下的并发需求。
    • 多线程:在一个进程内创建多个线程,提升内核层次的利用率。

    线程与进程具有资源共享特性,本质上线程是进程的轻量级实例。

    分布式数据库管理系统核心组件

    分布式DBMS的核心包括通信控制、数据目录管理、事务处理和全局查询优化等模块:

    • 通信控制(DC):确保节点间的数据通信。
    • 数据目录管理(DD):提供元数据的组织与存储信息。
    • 分布式数据库核心(DDBK):负责数据的分布式事务管理,包含并发控制、恢复机制及全局查询优化等关键功能。

    数据分布策略

    数据分布策略直接影响系统性能。常见策略包括:

  • 集中式:所有数据集中存储,适合简单系统但缺乏扩展能力。
  • 分区式:按元组或属性划分数据,提升 querying效率,但需处理分布一致性问题。
  • 复制式:实现数据副本,适合高并发读取需求。
  • 混合式:结合多种策略,提供灵活性,但设计复杂度较高。
  • 数据分布的设计需平衡灵活性与一致性,其分割标准需满足完整性和重构能力。

    数据分布单位

    分布式数据的基本单位是片段,水平或垂直分割常见:

    • 水平分割:按关系分布,元组分布最常见。
    • 垂直分割:按属性划分,适合多属性查询。
    • 混合分割:结合上述两种方式,满足复杂需求。

    并行数据库与目录分发

    并行数据库通过不同的锁机制提高透明度和效率:

    • 垂直平行:拆分复杂的查询步骤,提升处理速度。
    • 水平平行:利用独立存储装置并行处理定性数据。

    目录管理与分发是DBMS的重要环节,包含数据对象类型、存储位置、访问路由、授权信息及查询优化统计等内容。

    查询优化

    查询优化分代数优化和操作优化两大部分,目标是提升效率:

    • 代数优化:重组查询顺序,优化操作顺序,逐步简化查询树。
    • 操作优化:选择合适的数据片段和访问方式,尤其优化连接操作,减少IO次数。

    常用技术包括嵌套循环、归并扫描、B+树索引和哈希连接等。

    恢复机制与并发控制

    恢复机制确保故障后数据可恢复,常用策略包括周期性备份和日志记录。分情况处理未完成事务及系统故障。

    并发控制通过锁机制(X锁、S锁、U锁)实现,这些锁结合严格的两阶段协议,保证事务的ACID性质。

    事务管理与隔离级别

    事务管理确保操作原子性、一致性、隔离性和持久性。隔离级别从读未提交到可串行化的严格协议,根据需求选择适合的等级。

    总结

    从体系结构到具体实现,DBMS的每个环节都围绕数据操作、高效率和可靠性展开。理解其内部机制有助于更好地设计和优化分布式数据库系统,为实际应用提供坚实基础。

    转载地址:http://gqhgz.baihongyu.com/

    你可能感兴趣的文章
    mysql-开启慢查询&所有操作记录日志
    查看>>
    MySQL-数据目录
    查看>>
    MySQL-数据页的结构
    查看>>
    MySQL-架构篇
    查看>>
    MySQL-索引的分类(聚簇索引、二级索引、联合索引)
    查看>>
    Mysql-触发器及创建触发器失败原因
    查看>>
    MySQL-连接
    查看>>
    mysql-递归查询(二)
    查看>>
    MySQL5.1安装
    查看>>
    mysql5.5和5.6版本间的坑
    查看>>
    mysql5.5最简安装教程
    查看>>
    mysql5.6 TIME,DATETIME,TIMESTAMP
    查看>>
    mysql5.6.21重置数据库的root密码
    查看>>
    Mysql5.6主从复制-基于binlog
    查看>>
    MySQL5.6忘记root密码(win平台)
    查看>>
    MySQL5.6的Linux安装shell脚本之二进制安装(一)
    查看>>
    MySQL5.6的zip包安装教程
    查看>>
    mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
    查看>>
    Webpack 基本环境搭建
    查看>>
    mysql5.7 安装版 表不能输入汉字解决方案
    查看>>