【系统分析师】-案例篇-数据库

news2024/9/20 9:45:43

1、分布式数据库

1)请用300字以内的文字简述分布式数据库跟集中式数据库相比的优点。

(1)坚固性好。由于分布式数据库系统在个别结点或个别通信链路发生故障的情况下,它仍然可以降低级别继续工作,系统的坚固性好,可靠性和可用性好。

(2)可扩充性好。可根据发展的需要增减结点,或对系统重新配置,这比用一个更大的系统代替一个已有的集中式数据库要容易得多。

(3)可改善性能。在分布式数据库中可按就近分布,使大部分数据可以就近访问,避免了集中式数据库中的瓶颈问题,减少了系统的响应时间,提高了系统的效率,而且也降低了通信费用。

(4)自治性好。数据可以分散管理,统一协调,即系统中各结点的数据操纵和相互作用是高度自治的,不存在主从控制。

2)分布透明性是指用户不必关心数据的逻辑分片,不必关心数据存储的物理位置分配细节,也不必关心局部场地上数据库的数据模型。分布透明性包括哪三种透明性。

分片透明性、位置透明性和局部数据模型透明性【逻辑透明】。

3)数据表进行分片设计。一般有四种分片方法:

(1)水平分片(2)垂直分片(3)导出分片(4)混合分片

4)分布式数据库中各局据库应满足集中式数据库的基本需求,除此以外还应保证数据库的全局数据(一致性 )、并发操作的可串行性和故障的全局可恢复性

2、数据库索引

1)针对每条SQL语句都建立索引的建议是否合适请简要说明理由。

①如果建立索引不当,数据库管理系统将不利用已经建立的索引,而采取全表扫描。

②当更新操作成为系统瓶颈时,因为每次更新操作会重建表的索引,则需要考虑删除某些索引。

③应该针对不同应用情况选择适当的索引类型。例如,如果经常使用范围查询,则B树索引比散列索引更加高效。

④应该将有利于大多数据查询和更新的索引设为聚类索引。

⑤需要对建立的索引进行实际的测试,因为索引的使用是由数据库管理系统(数据库优化器)决定的。

 2)列举出4条SQL语句优化的基本策略

①建立物化视图或尽可能减少多表查询。

②以不相干子查询替代相干子查询。

③只检索需要的列。

④用带IN的条件子句等价替换OR子句。

⑤经常提交COMMIT,以尽早释放锁。

⑥避免嵌套的游标(Cursor)和多重循环等

3、数据架构

张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;

刘工建议采用分布式的数据架构,并提出在开发中通过“局部数据库+缓存”的读写分离结构实现,具有较好的运行性能和可扩展性。

1)说明张工和刘工提出的数据架构的基本思想

(1)张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。

(2)刘工提出的分布式数据架构使用多个计算机系统上的多个局部数据库系统构成,数据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。

2)如何实现刘工建立CRSS的数据库系统,数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。

分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。

3)对于数据的读取、添加、更改和删除操作分别如何实现。

(1)读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。

(2)添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。

(3)更改数据:应用更改局部数据库中的数据,将缓存中的数据标记为失效。

(4)删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。

4)分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性

张工提出的集中式数据架构通过向上扩展(Scale Up)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。

 刘工提出的分布式数据架构通过向外扩展(Scale Out)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。

4、读写分离

1)简述主从复制给系统带来的好处。

①避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。

 ②提高查询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。

2)My SQL 数据库中,主从复制是通过 binary log 来实现主从服务器的数据同步。请简述主从复制的过程。

当在从库上启动复制时,首先创建I/O线程连接主库,

主库随后创建Binlog Dump线程读取数据库事件并发送给I/O线程,

I/O线程获取到事件数据后更新到从库的中继日志Relay Log中去,

从库上的SQL线程读取中继日志Relay Log中更新的数据库事件并应用。

3)主从复制可以采用同步、异步、半同步复制。请简述每种复制技术的特点。

(1)同步复制主数据库需要等待所有备数据库均操作成功才可以响应用户,影响用户体验。这种方式保证了系统的一致性,但牺牲了数据的可用性。

(2)异步复制:当用户请求更新数据时,主数据库处理完请求后可直接给用户响应,而不必等待备数据库完成同步,备数据库会异步进行数据的同步,用户的更新操作不会因为备数据库未完成数据同步而导致阻塞。这种方式保证了系统的可用性,但牺牲了数据的一致性。

(3)半同步复制:用户发出写请求后,主数据库会执行写操作,并给备数据库发送同步请求,但主数据库不用等待所有备数据库回复数据同步成功便可响应用户,也就是说主数据库可以等待一部分备数据库同步完成后响应用户写操作执行成功。

5、缓存一致性

1)数据库缓存同步过程

1.根据key读缓存;

2.读取成功则直接返回;

3.若key不在缓存中时,根据key (读数据库) ;

4.读取成功后,(更新缓存) ;

5.成功返回。

数据操作的基本步骤:

1.根据key值写 (数据库) ;

2.成功后 (更新/删除缓存Key值/使缓存Key值失效) ;

3.成功返回。 .

2)Redis分布式存储方案
主从复制模式、哨兵(sentinel)模式、集群(Cluster)模式。
String类型可用于缓存层或计数器,如视频播放量、文章浏览量等。
Hash类型可用于描述用户信息。
list类型可用于回复评论、点赞。
Zset类型可用于数据排名。

6、反规范化

1)反规范化设计方法

常见的反规范化方法有:

1、增加冗余列:增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。

2、增加派生列:增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。

3、重新组表:重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。

4、水平分割表:按记录进行分割,把数据放到多个独立的表中,主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上时使用。

5、垂直分割表:对表进行分割,将主键与部分列放到一个表中,主键与其它列放到另一个表中, 在查询时减少 I/0 次数。

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

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

相关文章

线程:线程创建pthread_create,线程间的同步与互斥

线程的创建 线程的创建是通过调用pthread_create函数来实现的。该函数的原型如下: int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);参数说明: thread:指向pthread_t类型…

开源word文档相似度对比 软件WinMerge

WinMerge 官网下载 :GitHub - WinMerge/winmerge: WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and hand…

ros2_python编程_多个文件python打包_目录拷贝_解决import错误问题ModuleNotFoundError

1.问题 ros2 python编写程序, 有多个python文件 如何打包多个python文件?解决import错误问题如何打包 有python目录结构的工程 1.ros2 多个python文件示例 代码目录结构, gitee 在线代码 tree 7_multi_file_setup/ 7_multi_file_setup/ ├── file1.py ├── main_node.…

飞书怎么关联任意两段话

最近开始用飞书记文档,体验实在是非常的丝滑,对我来说感觉没有找到更好的竞品了。废话不多说,接下来简单介绍一下怎么关联任意两段话吧。 首先说明,关联可以单向,也可以双向。 直接举例。 我想要将蓝字关联到最下面的…

国标GB28181视频监控EasyCVR视频汇聚平台国标注册被陌生IP入侵如何处理?

GB28181国标/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级…

Java基础(包装类)

文章目录 前言 一、包装类的概述 二、自动拆装箱 三、128陷阱(面试重点) 四、自动拆装箱例题分析 前言 该篇文章创作时参考查阅了如下文章 Java种的包装类 Java包装类(自动拆装箱) Java--自动拆箱/装箱/实例化顺序/缓存…

第三期书生大模型实战营之茴香豆工具实践

文章目录 基础任务作业记录1. 环境准备2. 模型准备3. 修改配置文件4. 知识库创建6. 启动茴香豆webui 基础任务 在 InternStudio 中利用 Internlm2-7b 搭建标准版茴香豆知识助手,并使用 Gradio 界面完成 2 轮问答(问题不可与教程重复,作业截图…

IDEA2023版本创建SSM项目框架

按图中红色数字顺序,先点击Maven,设置该项目为maven构建管理的项目,然后点击create进行项目创建 配置该项目的相关maven信息,按下图顺序进入到maven配置页面后进行本地maven相关信息配置。 创建web模块依次按下图中顺序进行点击 配…

朴世龙院士团队《Global Change Biology 》精确量化全球植被生产力对极端温度的响应阈值!

本文首发于“生态学者”微信公众号! 随着全球气候变暖的加剧,极端温度事件对陆地生态系统的影响日益显著。植被作为生态系统的重要组成部分,其生产力对温度变化的响应尤为敏感。然而,关于极端温度如何以及在何种程度上影响植被生产…

TCP三次握手过程详解

三次握手过程: 客户端视角: 1.客户端调用connect,开启计时器,发送SYN包,如果重传超时,认为连接失败 2.如果收到服务端的ACK,则进入ESTABLISHED状态 3.清除重传计时器,发送ACK&…

windows权限维持汇总

Windows 权限维持 一、文件层面 1)attrib 使用 Attrib s a h r 命令 s:设置系统属性(System) a:设置存档属性(Archive) h:设置隐藏属性(Hidden) r&#…

深度学习基础--11个专题带你入门Pytorch上

目的 本专栏更新深度学习基础,包括pytorch、tensorflow的使用以及CNN、RNN、yolo、GAN、LSTM、Transformer等神经网络的理论基础 前言 Pytorch是最常用的深度学习框架,里面包含了大量关于构建神经网络及其运算的APIPytorch基础入门分为上下两篇文章&am…

基于事件总线EventBus实现邮件推送功能

什么是事件总线 事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 关于这个概念,网上有很多讲解的,这里我推荐一个讲的比较好的&#x…

光伏设计时要画出哪些模型?

在光伏系统的设计中,为了确保项目的顺利实施与高效运行,设计师需要绘制多种模型来综合考虑各种因素,包括参照物、障碍物以及楼顶配房等。这些模型不仅有助于预测光伏系统的发电效率,还能帮助规划最佳的安装布局,减少阴…

碎片笔记|Computer Journal 期刊投稿注意事项

前言:3月份把之前做的一篇工作转投到了computer journal,8月7号来信说我投稿的工作之前因为挂在arXiv上,因此和正常的投稿要求不太一致,需要更换投稿方式,编辑提供了两种选择如下。 The first choice is to keep your …

python 接口自动化测试中的高阶函数!

高阶函数简介 高阶函数是指接受函数作为参数或者返回函数作为结果的函数。在 Python 中,有许多内置的高阶函数,如 map, filter, reduce 等,它们可以极大地简化代码并提高代码的可维护性。 summer camp map 函数 map 函数接收一个函数和一个…

Jmeter下载、配置环境变量

Jmeter下载 下载地址:Apache JMeter - Download Apache JMeter 下载后无需安装,解压后即可使用。解压后目录如下 配置环境变量 JMETER_HOME 环境变量Path %JMETER_HOME%\bin 环境变量CLASSPATH %JMETER_HOME%\lib 验证是否配置成功 在cmd命令窗中 输入…

玄机又成国漫首创!IP与AI融合,凭实力火出圈

现在国漫越来越卷了,不仅卷制作质量,还卷各种花式联动。最近玄机科技和百度文库联合举办的AI漫画大赛圆满结束,这还是国内的IP第一次和AI技术融合,而且产出了不少好作品。下面就一起来看看吧! 提到玄机科技&#xff0c…

机器人笛卡尔空间轨迹规划-直线差补和圆弧差补

上一文,我们讨论了三次多项式和五次多项式的差补算法,那么这边文章具体讨论一下笛卡尔空间轨迹规划的直线差补和圆弧差补。 步骤 (1)知道起始点和终止点的位姿,和速度信息。 (2)根据两点能确定一…

湖仓一体大数据平台:开启企业数据管理新时代(附Hudi案例)

湖仓一体大数据平台:开启企业数据管理新时代(附Hudi案例) 前言湖仓一体大数据平台 前言 在当今数字化浪潮汹涌澎湃的时代,数据如同企业发展的珍贵宝藏,而如何高效地挖掘、管理和利用这些宝藏,成为了企业在…