首页 > 数据库 >高级系统架构师学习(九)数据库系统

高级系统架构师学习(九)数据库系统

时间:2023-09-30 09:55:21浏览次数:47  
标签:数据库 高级 视图 模式 架构师 数据库系统 数据 备份 属性

一、数据库概述

数据库模式

三级模式:

  • 外模式:视图
  • 模式(也称为概念模式):数据库表
  • 内模式:物理文件

两层映像:两层映像可以保证数据库中的数据具有较高的逻辑独立性物理独立性

  • 外模式 - 模式映像
  • 模式 - 内模式映像

物理独立性:即数据库的内模式发生改变时,应用程序不需要改变

逻辑独立性:逻辑结构发生改变时,用户程序不需要改变。(逻辑独立性比物理独立性更难实现)

聚簇索引:会影响内模式

分布式数据库

  特点:

1、数据独立性:除了数据的逻辑独立性物理独立性外,还有数据分布独立性(分布透明性)。

2、集中与自治共享结合的控制结构:各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。

3、适当增加数据冗余度:在不同的场地存储同一数据的多个副本,可以提高系统的可靠性可用性,同时也能提高系统性能。

4、全局的一致性、可串行性和可恢复性

分布式透明性

  • 分片透明性:用户感受不到分片存在
    • 水平分片(按记录分)
    • 垂直分片(按字段分)
    • 混合分片
  • 位置透明性:用户无需知道数据存放的物理位置
  • 局部数据模型透明性(逻辑透明):用户或应用程序无需知道局部场地使用的是哪种数据模型。

两阶段提交协议【2PC】

  • 表决阶段:形成一个共同的决定。【形成决定】
  • 执行阶段:实现这个协调者的决定。【实现决定】

两条全局提交规则

  • 1、只要有一个参与者撤销事务,协调者就必须做出全局撤销决定。【一否全否】
  • 2、只有所有参与者都同意提交事务,协调者才能做出全局提交决定。【全过才提交】

分库分区分表

分区和分表的异同

分区的常见方式

分区的优点

  • 1、相对于单个文件系统或是硬盘,分区可以存储更多的数据
  • 2、数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可。
  • 3、精准定位分区查询数据,不需要全表扫描查询,大大提高数据检索效率
  • 4、可跨多个分区磁盘查询,来提高查询的吞吐量
  • 5、在涉及聚合函数查询时,可以很容易进行数据的合并。

索引和视图

  关系的3种类型:

  • 基本关系(通常又称为基本表或基表):实际存在的表,实际存储数据的逻辑表示。
  • 查询表:查询结果对应的表。
  • 视图表:由基表或其他视图表导出的表,本身不独立存储,数据库只存放它的定义,常称为虚表。
    • PS:视图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据。

  视图:并不在数据库中实际存在,而是一种虚拟表

  优点:

  • 1、视图能简化用户的操作
  • 2、视图机制可以使用户以不同的方式查询同一数据
  • 3、视图对数据库重构提供了一定程度的逻辑独立性
  • 4、视图可以对机密的数据提供安全保护

  物化视图:实体化视图,其本身会存储数据

    • PS:当原始表中的数据更新时,物化视图也会更新

二、数据库设计过程

数据库设计过程

  • 1、需求分析
  • 2、概念结构设计
  • 3、逻辑结构设计
  • 4、物理设计

1、需求分析

  前置背景:

  • 当前和未来应用的数据要求
  • 数据处理要求

  产出:

  • 数据流图
  • 数据字典
  • 需求说明书

2、概念结构设计

  前置背景:(与需求分析阶段一致)

  • 当前和未来应用的数据要求
  • 数据处理要求

  产出:

  • ER模型

3、逻辑结构设计

  前置背景:

  • 转换模型、规范化理论
  • DBMS特性
  • 数据处理要求

  产出:

  • 关系模式
  • 视图
  • 完整性约束
  • 应用处理说明书

4、物理设计

  前置背景:

  • DBMS特性
  • 硬件、OS特性

概念结构设计过程

  E-R图集成的方法:

  • 一次集成:多个局部E-R图一次集成。
  • 逐步集成:以累加的方式一次集成两个局部E-R。

  集成产生的冲突及解决办法:

  • 属性冲突:包括属性域冲突和属性取值冲突。
  • 命名冲突:包括同名异义和异名同义。
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
  • 解决方法:根据应用的语义对实体联系的类型进行综合或调整。

逻辑结构设计过程

任务

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

相关概念

  • 目或度:关系模式中属性的个数。
  • 候选码(候选键)【可以唯一地标识一个元组的属性或属性组】
  • 主属性与非主属性:组成候选码的属性就是主属性,其它的就是非主属性。
  • 主码(主键)
  • 外码(外键)
  • 全码(ALL-Key):关系模式的所有属性组是这个关系的候选码。【所有属性当作一个码】
  • 简单属性复合属性派生属性多值属性

数据库性能优化

三、关系代数

  结果为二者元组之和去除重复行

  结果为二者重复行

  结果去除两者重复行

笛卡尔积

  结果的属性列数为二者属性列数之和,结果的元组行数为二者元素数乘积

投影

  对属性列的选择列出。

选择

  对属性列的选择列出。

自然连接

  结果列数为二者属性列数之和减去重复列行数为二者同名属性列其值相同的结果元组

四、规范化理论

非规范化存在的问题

  问题:数据余、更新异常、插入异常、删除异常。

相关概念

函数依赖

部分函数依赖

传递函数依赖

Amstrong公理

  对关系模式R<U,F>来说有以下的推理规则:

  • 自反律:Y ⊆ X ⊆ U,则X -> Y成立。
  • 增广律:Z ⊆ U且X -> Y,则XZ -> YZ成立。
  • 传递律:X -> Y且Y -> Z,则X -> Z成立。

  根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:

  • 合并规则:X -> Y,X -> Z,有X -> YZ。(A2,A3)
  • 伪传递规则:X -> Y,WY -> Z,有XW -> Z。(A2,A3)
  • 分解规则:X -> Y及Z ⊆ Y,有X -> Z。(A1,A3)

候选键

  主属性与非主属性:组成候选码的属性就是主属性,其它的就是非主属性。

  将关系模式的函数依赖关系用“有向图”的方式表示。

  找到入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键。

  若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。

范式

反规范化

  反规范化手段:

  • 增加派生性冗余列:已有单价和数量列,增加“总价”列
  • 增加冗余列:已有学号列,增加“姓名”列
  • 重新组表:把拆分的表重新组表
  • 分割表:表数据分区、分表

  优点:连接操作少,检索快,统计快,需要查的表减少,检索容易。

  缺点:

  • 数据冗余,需要更大存储空间:无解
  • 插入、更新、删除操作开销更大:无解
  • 数据不一致可能产生添加、修改、删除异常:触发器或应用程序数据同步
  • 更新和插入代码更难写:无解

五、数据控制

数据控制的功能

  • 安全性
  • 完整性
  • 并发控制
  • 故障恢复 

安全性保障措施

  • 用户标识和鉴定:最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式。
  • 存取控制:对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。
  • 密码存储和传输:对远程终端信息用密码传输。
  • 视图的保护:对视图进行授权。
  • 审计:使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来。

事务的特性【ACID】

  • 原子性【A】
  • 一致性【C】
  • 隔离性【I】
  • 持久性【D】

并发请求数据库产生的问题

封锁技术

  排他型封锁(简称X锁,也称为写锁):如果事务T对数据A(可以是数据项、记录、数据集、乃至整个数据库)实现了X封锁,那么只允许事务T读取和修改数据A,其他事务不能对其加锁和操作。

  共享型封锁(简称S锁,也称为读锁):如果事务T对数据A实现了S封锁,那么只允许事务T读取数据A,不能修改数据A,其他事务可以读取数据A,并且可以对数据A加S锁,但不能加X锁。

故障恢复

  • (1)冷备份【静态备份】:是将数据库正常关闭,在停止状态下,将数据库的文件全部备份 (复制)下来。
  • (2)热备份【动态备份】:是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
  • (3)完全备份:备份所有数据。
  • (4)差量备份:仅备份上一次完全备份之后变化的数据。
  • (5)增量备份:备份上一次备份之后变化的数据。
  • (6)日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。

数据库故障与恢复

六、NoSQL

  定义:不仅仅只是 SQL,泛指非关系型的数据库。

NoSQL与关系数据库对比

数据库分类

  • 键值对数据库:键值对存储。常见缓存数据库(Redis)
  • 列存储数据库:以列簇式存储,同一列数据存到一起。常见分布式文件系统(HBase)
  • 文档型数据库:与键值对存储类似,但其值为结构化数据。常见web应用类数据库(MongoDB)
  • 图形数据库:利用图结构相关算法,构建关系图谱。常见社交网络,推荐系统等(Neo4J)
 

标签:数据库,高级,视图,模式,架构师,数据库系统,数据,备份,属性
From: https://www.cnblogs.com/riches/p/17708694.html

相关文章

  • 网工软考 | 软考高级里哪个好考?
    IT行业是一个快速发展的行业,各种新技术层出不穷,每年都有大量的考生参加软考高级考试,以提升个人的职业水平并获取更广阔的职业发展空间。但是对于新手来说,面对众多的科目,很难选择一个最适合自己的科目。本文将从不同的角度为大家推荐几个最适合考高级资格软考的科目。01从专业背景......
  • 架构与架构师
    架构是概念,包含技术架构和人员组织架构技术架构:合理组织技术和方案支撑核心业务,技术架构模型,最基本的是分层架构,所有架构都可归结到此模型。 架构师:理解需求,搭建模型 架构技能:分与合、职责分配、耦合管理......
  • 接口自动化--postman(3)高级用法,全局变量和环境变量
    Postman提供了GUI界面的变量管理窗口,可以管理全局变量和环境变量全局变量:整个Postman都能使用的变量环境变量:选中环境后,才会全局生效的变量,叫做环境变量环境变量作用:可以通过变量进行参数化,方便集中管理测试数据;同时环境变量还可以起到快速切换环境的作用。Postman界面......
  • mysql入门和高级教程概念
    入门教程MySQL是一个流行的开源关系型数据库管理系统,被广泛用于各种应用程序和网站开发中。以下是一个简单的MySQL教程,介绍了如何入门使用MySQL数据库:1.安装MySQL首先,您需要在计算机上安装MySQL数据库。您可以从MySQL官方网站下载适用于您的操作系统的MySQL安装程......
  • JAVA高级教程
    高级教程数据结构枚举一种从数据结构中取回连续元素的方式位集合可以单独设置和清楚的位或标志向量Vector是一个基于动态数组的集合类栈实现了一个后进先出的数据结构字典定义了键映射到值的数据结构哈希表在用户定义键结构的基础上来组织数据的手......
  • 接口自动化--postman(3)高级用法,断言详解
    postman断言的流程①在postman的tests页签中截取要对比的响应信息;②利用断言语句tests[]或chai.js形式把实际响应信息与期望结果对比;③执行请求进行结果查看;二、Postman断言的语法1、语法一:tests[‘测试用例名称’]=逻辑表达式; ......
  • 接口自动化--postman(2)高级用法
    Postman管理测试用例Postman可以使用自带的用例集管理测试用例(Collection)Collection:类似于一个文件系统,可以添加文件、子文件、请求等等,它是Postman内部的模拟的文件系统,不是真的文件系统第一步:添加用例集第二步:用例集下添加子文件夹第三步:添加请求如果有多个接口或者接口......
  • 公司架构师说不写代码,我直接怼他了!
    1不是不写代码相反,一些核心组建核心代码都会参与,这些代码会在各种项目中去使用,对于健壮性,性能等各方面要求非常高,需要有一定水平的人才能写好。阮一峰博客有一句话:“警惕那些很长时间没有编写任何代码、却在设计系统的人。”2一般不深度参与业务代码编写因为业务代码上线过......
  • MySQL 高级(进阶) SQL 语句
    MySQL高级(进阶)SQL语句usegy;createtablelocation(Regionchar(20),Store_Namechar(20));insertintolocationvalues('East','Boston');insertintolocationvalues('East','NewYork');insertintolocationvalues(......
  • 架构师需要掌握的单词4
    scattereda.分散的buildv.建造,建立,组合describevt.描述,沿…运行technologyn.工艺,技术,制造学reenterv.重新进入actuala.实际的,现实的necessarya.必要的,必然的criticala.&n.临界的;临界值turnkeyn.总控钥匙ringn.&v.环,圈;按铃reorderv.(按序)排列......