问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据库系统架构设计:从三级模式到关系表详解

创作时间:
作者:
@小白创作中心

数据库系统架构设计:从三级模式到关系表详解

引用
51CTO
1.
https://blog.51cto.com/u_14202100/13633952

数据库系统是软件开发和数据管理的核心组成部分,其设计和实现需要遵循一定的架构和规范。本文将从数据库系统的知识点概述、三级模式结构、两层映射关系以及关系表的三种类型等方面进行详细讲解。

一、数据库系统 软考 知识点概述

数据库系统的设计和实现需要遵循一定的架构和规范。本文将从数据库系统的知识点概述、三级模式结构、两层映射关系以及关系表的三种类型等方面进行详细讲解。

数据库系统 软考 知识点

  • 数据库模式:数据库的总体结构,分为外模式、概念模式、内模式。
  • 外模式:用户与数据库交互视图。
  • 概念模式:全局逻辑结构。
  • 内模式:物理存储细节。
  • 分布式数据库:数据分布在多个物理节点中,通过网络。
  • 数据库设计阶段
  • 需求分析:明确用户需求。
  • 概念设计:ER模型描述数据关系。
  • 逻辑设计:将ER模型转换为关系模型。
  • 物理设计:确定存储结构与索引。
  • 实施与维护:建库、调优与优化。
  • 概念结构设计 - ER模型:将需求抽象为可视化模型。
  • 表现形式:实体(矩形)、属性(椭圆)、联系(菱形)。
  • 实体关系:1:1、1:N、M:N。
  • 逻辑结构设计 - 关系模型:将ER模型转为关系模型,核心是设置主键、外键、完整性约束。
  • 转换规则:实体→表,属性→列,联系→外键或关联表。
  • 关系代数
  • 选择(σ):筛选行。
  • 投影(π):筛选列。
  • 连接(⋈):合并相关表。
  • 其它操作:并、差、笛卡尔积等。
  • 规范化理论:通过分解关系模式,消除冗余和异常(插入/删除/更新异常),确保数据的一致性和完整性。
  • 并发控制:通过锁(共享锁S、排他锁X)、时间戳、多版本控制等手段解决脏读、不可重复读、幻读。
  • 数据库安全性:用户认证,GRANT/REVOKE授权,传输/存储加密,审计日志。
  • 数据库备份与恢复技术:完全备份、增量备份、差异备份,日志恢复(UNDO回滚、REDO重做),检查点恢复(快速恢复点)。
  • 数据库性能优化:通过索引优化避免全表扫描,通过查询优化分析执行计划,通过结构优化实现分库分表、读写分离,通过设置缓存。

二、数据库模式

数据库模式体系是数据库系统的核心架构,采用三级模式结构和两层映射关系实现数据独立性和安全性。

1、数据库系统 三级模式

  • 外模式:又称子模式或用户模式,是用户与数据库系统的交互接口。
  • 数据来源:外模式的数据来源是概念模式。
  • 使用者:是数据库对外展示的内容,对应用户视图级别,使用者是程序员和用户应用程序。
  • 对应关系:每个用户都对应一个外模式。
  • 逻辑数据独立性:概念模式修改不影响外模式,也就是数据库表结构修改不需要修改用户程序代码。
  • 概念模式:数据库的逻辑结构,描述所有实体、属性、关系及约束。
  • 组成部件:实体关系模型(ER模型),关系模式,完整性约束(主键、外键、CHECK约束)。
  • 数据来源:概念模式的数据来源是内模式。
  • 使用者:对应DBA(数据库管理员)级别,使用者是数据库管理员和程序员。
  • 概念模式是数据库体系的核心,基本表。
  • 内模式:物理存储结构,描述数据在存储介质上的组织方式,对应的是数据库的存储文件。
  • 使用者:内模式对应的使用者是数据库的开发者。

2、数据库系统 两层映射关系

数据库系统两层映射关系:三级模式之间存在两层映射关系,

  • 外模式 - 概念模式 映射:该映射保证了数据库的"逻辑独立性",允许修改表结构而不影响应用程序。
  • 逻辑独立性:外部应用程序与数据库的逻辑基本表是相互独立的,数据库表逻辑结构发生变化时,应用程序不需要随时发生改变,只需要修改二者之间的映射关系即可。
  • 概念模式 - 内模式 映射:该映射保证了数据库的"物理独立性",允许调整存储结构而不修改逻辑模式。
  • 物理独立性:概念模式与内模式之间的对应关系是相互独立的,数据库迁移后,不需要修改数据库表的结构,自然更不需要修改程序结构。

三、关系表

数据库基本表都是针对关系数据库来说的,因此基本表又称为"关系表"。

1、关系表 的 三种类型 - 基本表、查询表、视图表

关系表有三种类型:

  • 基本表:又称为"基本关系",数据库中实际存储数据的逻辑表示,是用户直接创建和管理的实体表。
  • 创建基本表:使用SQL语句
    CREATE TABLE TABLE_NAME
    
    创建的表就是基本表。
  • 查询表:查询结果对应的表,执行SELECT查询语句后返回的结果集,是临时性的数据集合。
  • 临时性:仅在查询执行期间存在,不持久存储。
  • 动态性:数据内容基于当前数据库状态生成,可能随基表数据变化而变化。
  • 创建示例
    SELECT Name FROM Student WHERE Age > 18;
    
  • 视图表:由一个或多个基本表(或视图)导出的虚拟表,仅存储查询逻辑,不存储实际数据存储查询视图的SQL语句
  • 虚表:数据来源于基表,访问视图时动态计算生成结果。
  • 安全性:可隐藏基表细节,提供数据访问权限控制。
  • 创建示例:使用CREATE VIEW语句定义查询逻辑,如:
    CREATE VIEW AdultStudents AS SELECT Name FROM Student WHERE Age > 18;
    

2、关系表 的 三种类型 对比

基本表、查询表、视图表对比:

  • 基本表是数据库的基石,存储真实数据。
  • 查询表是动态生成的临时结果,用于即时分析。
  • 视图表是逻辑抽象工具,提升数据安全性和查询便捷性。
对比维度
基本表
查询表
视图表
存储方式
物理存储实际数据
不存储,临时生成结果集
仅存储查询定义的逻辑结构
生命周期
永久存在,需手动删除
查询执行后立即失效
依赖视图定义,删除视图后失效
是否可修改
支持增删改(DML操作)
不可直接修改
部分可更新*(需满足条件)
用途
持久化存储核心业务数据
临时数据分析或中间结果展示
简化复杂查询、数据权限控制、逻辑抽象

3、数据库视图 的 优缺点

数据库视图概念:由一个或多个基本表(或视图)导出的虚拟表,仅存储查询逻辑,不存储实际数据存储查询视图的SQL语句

数据库视图缺点:

数据库视图同真实的数据库表一样,包含一系列的行列数据,这些数据仅仅是查询出来的临时数据;
性能低:由于数据库视图是其效率和性能比较低;

数据库视图优点:

  • 简化用户操作:数据库视图是从某个视角,从若干个基本表或其它视图中选取某些数据,不再需要关联多个表格对比查询数据;
  • 多种角度观察数据:数据库视图可以令用户以多种角度观察同一数据;
  • 逻辑独立性:数据库视图对重构数据库提供了逻辑独立性支持,关系表发生变化时,不需要修改程序代码,只需要调整视图与概念模式的映射关系即可;
  • 安全保护:数据库视图只能读,不能写,提供了对机密数据的安全保护;

4、物化视图

物化视图不再是虚拟视图,不再是虚表,而是实体化的视图,物化视图本身会存储数据;

当基本表(原始表)中的数据更新时,物化视图中的数据也会随之更新;

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号