18-01 数据库架构设计综述

news2024/11/22 8:51:39

数据库架构设计的基本思路

在这里插入图片描述

需求分析阶段(最困难、最耗时)

  • 整个设计过程的基础
    • 需求分析做得是否充分以及准确,决定了数据库设计的速度与质量
    • 极端场景下,需求分析做得不好,可能会导致整个数据库设计返工、重做

在这里插入图片描述

  • 需求分析目标
    • 了解系统的工作情况
    • 明确用户的各种需求
    • 在此基础上确定新系统的功能
    • 明确信息要求、数据要求、处理要求、安全性要求
  • 调查用户需求的步骤
    • 在这里插入图片描述
  • 调查用户需求的方法
    • 开调查会
    • 跟班作业
    • 请专人介绍
    • 调查表
    • 查阅记录
    • 每种方式都需要用户的参与和配合
  • 分析用户需求
    • 结构化分析(Structured Analysis,SA):采用自顶向下、逐层分解的方式分析系统
  • 确认需求
    • 数据库分析报告
  • 数据字典
    • 有关数据的描述
    • 需求分析阶段建立,在数据库设计的过程中不断完善

概念结构设计阶段(关键)

  • 整个数据库设计的关键
  • 通过对用户需求进行综合、归纳和抽象,形成一个独立于具体数据库管理系统的概念模型

逻辑结构设计阶段

  • 逻辑结构设计是将概念结构转换为某个数据库管理系统所支持的数据模型,并做优化

物理结构设计阶段

  • 为逻辑数据模型选取一个最合适的物理结构

实施阶段

  • 根据逻辑设计和物理设计的结果建立数据库,编写应用、组织数据入库,并调试、运行

运行与维护阶段

  • 在数据库系统运行过程中必须不断的进行评估、调整与修改

数据库架构设计基本原则

表设计原则

  • 注释
  • 表数据量
    • 单表大于八百万,可开率分库分表
    • 如果没有分库分表的计划,可将数据归档到其他地方
  • 表字段原则
    • 不保存大字段
    • 单表字段不宜过多,不建议超过30个
  • 平衡冗余与范式

索引设计原则

  • 索引个数
    普通表不建议超过10个,写入频繁的表不建议超过5个
  • 单个索引包含的字段不建议超过5个
  • 组合索引
    满足最左前缀原则、将区分度大的字段放在前面
  • 不在索引列进行计算
    where id = 12 + 1
  • JOIN的字段创建索引,且拥有相同类型与字符集,避免隐式转换

数据库优化原则

在这里插入图片描述

数据库架构原则

  • 合适的数据库架构方案
  • 一主一从、一主多从、多主
  • 读写分离、双写、多写
  • 分库分表:中间件、应用上做
  • 高可用方案:MMM/PXC/MGR
  • 容灾…

数据库技术选型

在这里插入图片描述

MySQL体系结构

在这里插入图片描述

连接层

  • 连接池:解决资源频繁分配、释放造成的问题
  • 作用:
    • 身份验证
    • 线程重用
    • 连接限制
    • 检查内存
    • 缓存

SQL层

  • MySQL的核心
  • 管理服务和工具组件
    备份恢复、MySQL复制、集群
  • SQL接口
    接收各种SQL命令,并返回需查询的结果
  • 查询解析器
    验证和解析SQL命令(验证权限并解析语法结构)
  • 查询优化器
    针对传入的SQL语句做各种优化
  • 缓存
    • 查询缓存。如果查询缓存能够命中查询结果,就直接从查询缓存获取数据
    • MySQl5.6开始,默认禁用;MySQL8.0已废弃查询缓存

存储引擎层

  • 插件式的存储引擎,根据MySQL文件访问层的接口定制文件访问机制,主要负责数据的存储和提取
  • 在这里插入图片描述

文件系统层

  • 将数据库的数据,存储在操作系统的文件系统上,并提供接口和存储引擎层交互

InnoDB存储结构

在这里插入图片描述

段(segment)

  • 由N个区(extent)和32个零散的页组成,可分为数据段、回滚段、索引段等
  • 段空间以区(extent)为单位扩展
    • 在初始状态下,一个段会包含1个区
    • 如果存储数据时发现一个区不够,就会额外扩展一个新的区
    • 默认情况下,没创建一个索引,会创建2个段,分别对应索引的非叶子节点和叶子节点

区(extent)

  • 由64个连续的页(page)组成,这事物理连续的一段空间,也被翻译成簇

页(page)

  • MySQL磁盘管理的最小单位,可分为数据页和回滚页等
  • 默认情况下,一个页是16K,可通过innodb_page_size去调整
  • 一个页至少可以存2行数据。虚拟最小行及虚拟最大行用来限定页里面行记录的范围,从而保证B+Tree节点是双向链表结构
  • 在这里插入图片描述

行(row)

  • 对应的是数据库里面的每一条记录
  • 按照行格式存放
    • REDUNDANT
    • COMPACT(5.6默认)
    • DYNAMIC(5.7+默认)
    • COMPRESSED

MySQL内存结构

  • Mysql 内存分配规则是:用多少给多少,最高到配置的值,不是立即分配
  • 在这里插入图片描述
  • 在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RSBBS 报表接口 query跳转 RRI

这里只讲RSBBS的goto query,不讲query里面的替换路径。 报表接口就是从一个query跳转到另一个目的地。从下面能看到,可以跳转到一个BW系统下的query,或者能跳转到ERP系统的一个ABAP report也行,或者可以通过archive link去从quer…

node之excel转化成json格式的数据

1. node环境(自己看教程搭建) 2.安装node-xlsx和fs yarn node-xlsx 3.写代码。简单实例如下(如果需要处理数据,自己处理) 实例: 目录: b.js var xlsx require(node-xlsx); var fs require(fs); const path requ…

基于布谷鸟优化算法(CS)在微电网优化中的应用研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Mybatis】SpringBoot整合Mybatis之增删改查

目录 一、准备 1、选择依赖 2、配置文件 3、映射接口 二、Select 三、Delete 四、Update 五、Insert 一、准备 1、选择依赖 在我们创建SpringBoot项目的时候,需要选择Mybatis与MySQL的依赖 2、配置文件 然后我们需要在配置文件里配置MySQL的连接信息 spr…

UEBA技术在ADAudit Plus中的应用

摘要:用户和实体行为分析(UEBA)技术是当今信息安全领域的重要工具之一。本文将介绍UEBA技术在ADAudit Plus中的应用,探讨其在提供安全性和监控能力方面的优势,并解释为何ADAudit Plus是一种出色的UEBA解决方案。 UEBA …

免费下载|《建设数字中国 升级数智底座-企业数智化底座白皮书》

企业数智化历经多年的演进,已经从最初的“局部推动业务提质增效”,发展为“利用技术全面赋能业务创新活动”,数智化能力的建设正逐步与企业的战略目标深度融合。企业践行数字化优先,以智能化促进发展,根本上需要依托健…

高并发系统的三把利器

目录 1.限流 2.缓存 2.1.缓存的使用场景 3.降级 3.1.什么是降级? 3.2.服务降级方式 4.其他高并发手段 4.1. 集群 4.2.拆分 4.2.1 应用拆分 4.2.2 数据库 4.3. 静态化 4.4.削峰 4.5.限流 5.总结 参考 保护高并发系统的三大利器:限流、熔…

【Proteus仿真】基于VSM 51单片机定时计数器闹钟例程

【Proteus仿真】基于VSM 51单片机定时计数器闹钟例程 🎬例程仿真功能操作演示: ✨本例程可从软件内部所提供的历程中找到,但是需要自行安装SDCC编译器才能对其源代码重新编译。 ⚡需要自行安装SDCC编译器。 🛠Proteus内部安装SDCC编译器方法 🌿将窗口切换到Source Co…

少儿编程 中国电子学会图形化编程等级考试Scratch编程四级真题解析(判断题)2023年3月

2023年3月scratch编程等级考试四级真题 判断题(共10题,每题2分,共20分) 11、在使用自定义积木时,不可以传递布尔型参数 答案:错 考点分析:考查自定义积木的使用,使用自定义积木的时候可以传递数字、文本和布尔型参数,所以错误 12、执行如下图程序后,输出的结果为“…

论文总结+公式分析

目录 1.Learning with Noisy Correspondence for Cross-modal Matching(NCR)1-1.贡献和创新点1-2.图1-2-1.总图1-2-2.Co-divide1-2-3. Co-Rectify1-2-4.Robust Cross-modal Matching 1.Learning with Noisy Correspondence for Cross-modal Matching(NCR) 1-1.贡献和创新点 提…

来报名丨下一代因子挖掘统一框架:打破界限的流式实时计算平台

大家期待已久的量化科技嘉年华,现在正式开启报名啦! 2023年6月2日-3日,DolphinDB 联合主办的 “2023量化科技嘉年华” 将在上海世博中心召开,本次大会主题涵盖因子/数据/交易/算法/算力,通过国内外顶尖量化金融专家最…

AIGC出击研发、营销,文心一言们要改变鞋服行业产业链条?

(图片来源于网络,侵删) 文 | 螳螂观察 作者 | 叶小安 你敢设想这样一种未来吗? 看到的消费品广告都是AI设计的,甚至连电影、电视甚至直播带货都是由AI机器人制作好的画面。 2022年尾,ChatGPT的诞生刷爆…

继内存条、固态硬盘后国产CPU再度发力,性能已媲美10代酷睿

这两年内存条、固态硬盘之内卷,放在整个电脑硬件发展历程中也是相当炸裂了。 国产厂商崛起带动了储存行业飞跃式发展,一是储存芯片成本大幅降低。 二是经历了前几年经济冲击,大家对 PC 电子产品需求明显下滑,各大厂库存难以消化。…

基于html+css的图展示78

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

DRMS-关于开展防范风险整改工作的工作计划

防范风险整改工作 工作计划 2023年5月10日 尊敬的【DRMS】集群用户: 根据河南省郑州市国家高新技术产业开发区市场监督管理局《关于河南数权数字信息科技研究院网络违规整改通知》及…

Unity 动画

Unity现存两套动画系统:Legacy动画系统和Mecanim动画系统。 Unity的Mecanim动画系统,是一套基于状态机的动画控制系统,是一个面向动画应用的动画系统 Animator Avatar:动画节点导引替身,与动画复用(尤其…

四信机房环境监测与安全预警解决方案

随着网络信息技术的不断发展,各行业对计算机依赖性显著提高,机房作为信息交换的枢纽,其数量及建设规模不断扩大。而机房系统的可靠与否直接关系着网络能否正常稳定的运行,因此企业必须严格按照国家相关标准和具体需要建立包含供配…

华为OD机试真题 Java 实现【数字加减游戏】【2023Q1 200分】

一、题目描述 小明在玩一个数字加减游戏,只使用加法或者减法,将一个数字s变成数字t。 每个回合,小明可以用当前的数字加上或减去一个数字。 现在有两种数字可以用来加减,分别为a,其中b没有使用次数限制。 请问小明…

常用MQ介绍与区别

RabbitMQ RabbitMQ是实现AMQP协议(0.9.1) 的消息中间件的一种,由RabbitMQ Technologies Ltd开发并且提供商业支持的,最初起源于金融系统,服务器端用Erlang语言编写,用于在分布式系统中存储转发消息,在易用性、扩展性、…

bug:生产问题,Golang解决csv文件用excel打开中文乱码问题及常见编码和BOM头关系

bug:Golang解决csv文件用excel打开中文乱码问题 1 场景及分析 场景:今天在生成csv文件之后,测试发现用office和wps打开乱码 分析:经过测试之后发现使用记事本打开不乱码,同时用记事本打开之后另存为ANSI编码之后用off…