软考——系统架构师Nosql数据库
Posted 桃花键神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软考——系统架构师Nosql数据库相关的知识,希望对你有一定的参考价值。
🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
文章目录
关系型数据库的缺点
- 不满足高并发读写需求 : 网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
- 不满足海量数据的高效率读写: 网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的。
- 不满足高扩展性和可用性: 在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。
集群方式虽然可以缓解上述问题,但仍然存在下列缺陷:
- 复杂性–集群配置、部署、管理都和复杂。
- 延迟性–主数据库压力较大时,会产生较大延迟。主备切换时候可能需要人工参与。
- 扩容性–集群中增加新机器时,对整个数据集重新分区,非常复杂。
ACID理论
ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性
Nosql数据库
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来
的挑战,尤其是大数据应用难题。
CAP理论
主要概念 | 解释 |
---|---|
C(Consistency)一致性 | 一致性是指更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,与ACID的C完全不同。 |
A(Availability)可用性 | 可用性是指服务一直可用,而且是正常响应时间。 |
P(Partition tolerance)分区容错性 | 分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。 |
鱼与熊掌不可兼得。一个分布式系统不可能同时满足一致性、可用性、分区容忍性这三个需求,最多只能同时满足其中两个。
BASE理论
我们理想中的情况:
实际中的情况:
CA | 优先保证一致性和可用性,放弃分区容错。缺点:不再是分布式系统 |
---|---|
CP | 优先保证一致性和分区容错性,放弃可用性。缺点:牺牲用户体验 |
AP | 优先保证可用性和分区容错性,放弃一致性。缺点:全局数据的不一致性 |
基本可用 | 软状态 | 最终一致性 |
---|---|---|
指分布式系统在出现不可预知故障的时候,允许损失部分可用性。允许分区失败的情形出现。 | 硬状态数据库状态必须一直保持数据库一致性。软状态状态可以有一段时间不同步 | 系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。 |
Nosql数据库与sql数据库的比较
特征 | SQL数据库 | Nosql数据库 |
---|---|---|
数据类型 | 结构化 | 非结构 |
数据一致性 | 强一致性 | 弱一致 |
事务 | 高事务性 | 弱事务性 |
扩展性 | 一般 | 好 |
数据容量 | 有限数据 | 海量数据 |
标准化 | 是 | 否 |
技术支持 | 高 | 低 |
可维护性 | 复杂 | 复杂 |
Nosql的主要类型
键值(key-Value)数据库
列族数据库
- SQL模式
- 行式存储
- 列式存储
HBase
文档数据库
图形数据库
送书福利
内容介绍:
本书精选Kubernetes的硬核知识,帮助读者快速进阶和积累Kubernetes实战经验。本书共8章,主要包括认识Kubernetes,快速构建Kubernetes集群,Kubernetes核心对象使用,Kubernetes容器编排实践,Kubernetes系统运维与故障处理,构建Kubernetes高可用集群,Kubernetes监控与告警(Prometheus+Grafana)和基于Kubernetes的CI/CD项目综合实践(GitLab+ Harbor+Jenkins)。
本书前三章可以帮助读者快速掌握Kubernetes核心知识和高频操作;第4、第5章帮助读者快速掌握Kubernetes的进阶使用;第6~8章是Kubernetes及其外围系统的综合应用,帮助读者快速积累实战经验。
本书既可以作为云原生及相关行业从业者的技术参考书,也可以作为高等院校计算机、云计算和大数据相关专业的教材。
本书由机械工业出版社提供
[架构之路-5]:架构师 - 中国计算机技术职业资格(软考)考试是如何定义系统架构师?
目录
第1章 中国计算机技术职业资格(软考)等级
高级资格:系统分析师重在需求分析
高级资格:系统架构师重在系统设计
系统分析师:熟悉应用领域的业务,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制订项目开发计划,协调信息系统开发与运行所涉及的各类人员,能指导制订企业的战略数据规划,组织开发信息系统,能评估和选用适宜的开发方法和工具,能按照标准规范编写系统分析、设计文档,能对开发过程进行质量控制与进度控制,能具体指导项目开发;具有高级工程师的实际工作能力和业务水平。
系统架构师:是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。
主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。
系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。
第2章 考试要求与技能要求
(1)掌握计算机硬软件与网络的基础知识; -- IT基础支持
(2)熟悉信息系统开发过程; -- 软件开发流程
(3)理解信息系统开发标准、常用信息技术标准; -- 软件标准
(4)熟悉主流的中间件和应用服务器平台; -- 主流平台架构
(5)掌握软件系统建模、系统架构设计基本技术; -- 架构建模
(6)了解用户的行业特点,并根据行业特点架构合适的系统设计;-- 业务领域
(7)熟练掌握信息安全技术、安全策略、安全管理知识; -- 安全技术
(8)了解信息化、信息技术有关法律、法规的基础知识; -- 法律法规
(9)掌握应用数学基础知识; -- 数学基础
(10)熟练阅读和正确理解相关领域的英文文献; -- 英文文献
第3章 关于题型与分值
三门,每门满分75, 45分及格,3门要同时通过,有一门不通过成绩不做保留,下次继续重新考全部的。
上午选择题:75道,共75 空,每空是1分;满分:75 分;时间:150 分钟
下午案例题:考核时间:90分钟满分:75分,5道大题(第1题必做,后4题选做2题)
论文:系统架构设计论文,考试时间为120分钟,笔试,论文题。从给出的4道试题(试题一至试题四)中任选1道题解答。
考试有一个原则,知识点很多,只需要掌握80%的知识通过考试就行了,所以对于一些不重要的知识点,可以放弃,如果能知道哪些是重难点,就可以少走很多的弯路了。
第4章 教材内容
通过教材的内容,基本看出,架构设计师需要哪些技术技能。
第1章 操作系统 1
1.1 操作系统的类型与结构 1
1.1.1 操作系统的定义 1
1.1.2 操作系统分类 2
1.2 操作系统基本原理 4
1.2.1 进程管理 4
1.2.2 存储管理 13
1.2.3 设备管理 20
1.2.4 文件管理 23
1.2.5 作业管理 27
第2章 数据库系统 30
2.1 数据库管理系统的类型 30
2.2 数据库模式与范式 31
2.2.1 数据库的结构与模式 31
2.2.2 数据模型 33
2.2.3 数据的规范化 35
2.2.4 反规范化 37
2.3 数据操纵和使用 38
2.4 数据库设计 39
2.4.1 数据库设计的特点 39
2.4.2 数据库设计的方法 40
2.4.3 数据库设计的基本步骤 42
2.4.4 需求分析 44
2.4.5 概念结构设计 48
2.4.6 逻辑结构设计 64
2.4.7 物理结构设计 72
2.4.8 数据库应用程序设计 75
2.5 事务管理 77
2.5.1 并发控制 77
2.5.2 故障与恢复 79
2.6 备份与恢复 80
2.7 分布式数据库系统 81
2.7.1 分布式数据库的概念 82
2.7.2 分布式数据库的架构 84
2.8 并行数据库系统 89
2.8.1 功能和结构 89
2.8.2 并行处理技术 91
2.9 数据仓库 94
2.9.1 数据仓库的概念 94
2.9.2 数据仓库的结构 95
2.9.3 数据仓库的实现方法 97
2.10 数据挖掘 99
2.10.1 数据挖掘的概念 99
2.10.2 数据挖掘的功能 100
2.10.3 数据挖掘常用技术 101
2.10.4 数据挖掘的流程 103
2.11 NOSQL 104
2.12 大数据 105
第3章 数据通信与计算机网络 107
3.1 数据通信基础知识 107
3.1.1 信道特性 107
3.1.2 数据传输技术 110
3.2 网络架构与协议 111
3.2.1 网络互联模型 111
3.2.2 常见的网络协议 113
3.2.3 IPv6 115
3.3 局域网与广域网 115
3.3.1 局域网基础知识 116
3.3.2 无线局域网 117
3.3.3 广域网技术 119
3.3.4 网络接入技术 120
3.4 网络互连与常用设备 122
3.5 网络工程 124
3.5.1 网络规划 124
3.5.2 网络设计 126
3.5.3 网络实施 128
3.6 网络存储技术 129
3.7 综合布线 131
第4章 系统性能评价 133
4.1 性能指标 133
4.1.1 计算机 134
4.1.2 网络 136
4.1.3 操作系统 137
4.1.4 数据库管理系统 137
4.1.5 Web服务器 138
4.2 性能计算 138
4.3 性能设计 139
4.3.1 系统性能调整 140
4.3.2 阿姆达尔解决方案 142
4.3.3 负载均衡 143
4.4 性能评估 145
4.4.1 基准测试程序 145
4.4.2 Web服务器的性能评估 147
4.4.3 系统监视 147
第5章 开发方法 149
5.1 软件生命周期 149
5.2 软件开发模型 150
5.2.1 瀑布模型 150
5.2.2 演化模型 153
5.2.3 螺旋模型 153
5.2.4 增量模型 154
5.2.5 构件组装模型 155
5.3 统一过程 155
5.4 敏捷方法 158
5.4.1 极限编程 159
5.4.2 特征驱动开发 162
5.5 软件重用 164
5.5.1 软件重用 164
5.5.2 构件技术 165
5.6 基于架构的软件设计 165
5.6.1 ABSD方法与生命周期 166
5.6.2 基于架构的软件开发模型 168
5.7 形式化方法 173
第6章 系统计划 174
6.1 项目的提出与选择 174
6.1.1 项目的立项目标和动机 174
6.1.2 项目提出的角色和工作范围 177
6.1.3 项目的选择和确定 177
6.1.4 项目提出和选择的结果 180
6.2 可行性研究与效益分析 181
6.2.1 可行性研究的内容 182
6.2.2 成本效益分析 183
6.2.3 可行性分析报告 185
6.3 方案的制订和改进 185
6.4 新旧系统的分析和比较 188
6.4.1 遗留系统的评价方法 188
6.4.2 遗留系统的演化策略 191
6.5 资源估计 193
第7章 系统分析与设计方法 195
7.1 定义问题与归结模型 195
7.1.1 问题分析 195
7.1.2 问题定义 198
7.2 需求分析与软件设计 200
7.2.1 需求分析的任务与过程 200
7.2.2 如何进行系统设计 202
7.2.3 软件设计的任务与活动 203
7.3 结构化分析与设计 204
7.3.1 结构化分析 205
7.3.2 结构化设计 210
7.3.3 模块设计 213
7.4 面向对象的分析与设计 214
7.4.1 面向对象的基本概念 215
7.4.2 面向对象分析 216
7.4.3 统一建模语言 219
7.5 用户界面设计 232
7.5.1 用户界面设计的原则 233
7.5.2 用户界面设计过程 233
7.6 工作流设计 234
7.6.1 工作流设计概述 234
7.6.2 工作流管理系统 236
7.7 系统的文件设计 237
7.8 网络环境下的计算机应用系统的设计 239
7.9 简单分布式计算机应用系统的设计 241
7.10 系统运行环境的集成与设计 242
7.11 系统过渡计划 244
第8章 软件架构设计 246
8.1 软件架构概述 246
8.1.1 软件架构的定义 247
8.1.2 软件架构的重要性 248
8.2 架构需求与软件质量属性 249
8.2.1 软件质量属性 249
8.2.2 6个质量属性及实现 251
8.3 架构设计 257
8.4 软件架构文档化 259
8.5 软件架构评估 263
8.5.1 软件架构评估的方法 263
8.5.2 架构的权衡分析法 263
8.5.3 成本效益分析法 265
8.6 构件及其复用 265
8.6.1 商用构件标准规范 266
8.6.2 应用系统簇与构件系统 267
8.6.3 基于复用开发的组织结构 268
8.7 产品线及系统演化 269
8.7.1 复用与产品线 269
8.7.2 基于产品线的架构 270
8.7.3 产品线的开发模型 271
8.7.4 特定领域软件架构 271
8.7.5 架构及系统演化 272
8.8 软件架构建模 273
8.8.1 架构的模型 273
8.8.2 架构风格 275
8.8.3 架构风格举例 277
8.9 软件架构视图 279
8.9.1 软件视图的分类 279
8.9.2 模块视图类型及其风格 280
8.9.3 C&C视图类型及其风格 282
8.9.4 分配视图类型及其风格 284
8.9.5 各视图类型间的映射关系 286
第9章 设计模式 287
9.1 设计模式概述 287
9.1.1 设计模式的概念 287
9.1.2 设计模式的组成 288
9.1.3 GoF设计模式 288
9.1.4 其他设计模式 290
9.1.5 设计模式与软件架构 291
9.1.6 设计模式分类 291
9.2 设计模式及实现 292
9.2.1 Abstract Factory模式 292
9.2.2 Singleton模式 295
9.2.3 Decorator模式 296
9.2.4 Facade/Session Facade模式 298
9.2.5 Mediator模式 300
9.2.6 Observer模式 301
9.2.7 Intercepting Filter模式 303
9.3 设计模式总结 305
第10章 测试评审方法 307
10.1 测试方法 307
10.1.1 软件测试阶段 307
10.1.2 白盒测试和黑盒测试 309
10.1.3 缺陷的分类和级别 311
10.1.4 调试 312
10.2 评审方法 313
10.3 验证与确认 314
10.4 测试自动化 316
10.5 面向对象的测试 316
第11章 嵌入式系统设计 319
11.1 嵌入式系统概论 319
11.1.1 嵌入式系统的基本概念 319
11.1.2 嵌入式系统的分类 320
11.2 嵌入式系统的组成 322
11.2.1 硬件架构 322
11.2.2 软件架构 326
11.3 嵌入式应用软件与开发平台 327
11.3.1 嵌入式窗口系统 327
11.3.2 嵌入式窗口系统实例分析 331
11.3.3 嵌入式系统的Java虚拟机 332
11.3.4 嵌入式系统软件开发平台 337
11.3.5 嵌入式开发调试 338
11.4 嵌入式网络系统 342
11.4.1 现场总线网 342
11.4.2 家庭信息网 344
11.4.3 无线数据通信网 349
11.4.4 嵌入式Internet 357
11.5 嵌入式数据库管理系统 358
11.5.1 使用环境的特点 358
11.5.2 系统组成与关键技术 359
11.5.3 实例解析 362
11.6 实时系统与嵌入式操作系统 363
11.6.1 嵌入式系统的实时概念 363
11.6.2 嵌入式操作系统概述 365
11.6.3 一般结构 366
11.6.4 实时嵌入式操作系统 367
11.6.5 内核对象 370
11.6.6 内核服务 374
11.6.7 主流嵌入式操作系统介绍 381
11.7 实时多任务调度与多任务设计 381
11.7.1 并发识别与多任务设计 382
11.7.2 多任务调度算法 384
11.7.3 任务的同步与通信 389
11.7.4 资源分类与资源请求模型 391
11.7.5 死锁 391
11.7.6 优先级反转问题 393
11.8 中断处理与异常处理 397
11.8.1 异常和中断的概念 397
11.8.2 中断处理 398
11.8.3 中断服务例程的设计问题 401
11.9 嵌入式系统开发设计 401
11.9.1 嵌入式系统设计概述 402
11.9.2 开发模型与设计流程 404
11.9.3 嵌入式系统设计的核心技术 406
11.9.4 嵌入式开发设计环境 408
11.9.5 嵌入式软件设计模型 408
11.9.6 需求分析 412
11.9.7 系统设计 413
11.9.8 系统集成与测试 419
11.9.9 嵌入式系统的软件移植 419
11.9.10 可移植性软件的设计 422
第12章 开发管理 426
12.1 项目的范围、时间与成本 426
12.1.1 项目范围管理 427
12.1.2 项目成本管理 427
12.1.3 项目时间管理 428
12.2 配置管理与文档管理 429
12.2.1 软件配置管理的概念 429
12.2.2 软件配置管理的解决方案 430
12.2.3 软件文档管理 433
12.3 软件需求管理 437
12.3.1 需求变更 437
12.3.2 需求跟踪 438
12.4 软件开发的质量与风险 438
12.4.1 软件质量管理 438
12.4.2 项目风险管理 440
12.5 人力资源管理 445
12.6 软件的运行与评价 450
12.7 软件过程改进 450
第13章 信息系统基础知识 453
13.1 信息系统概述 453
13.1.1 信息系统的发展阶段 453
13.1.2 信息系统的组成 455
13.1.3 信息系统实现的复杂性 456
13.1.4 信息系统的生命周期 459
13.1.5 信息系统建设的原则 460
13.1.6 信息系统开发方法 462
13.2 信息系统工程 465
13.2.1 信息系统工程的概念 465
13.2.2 信息系统工程的内容 467
13.2.3 信息系统工程的总体规划 470
13.2.4 总体规划的方法论 476
13.3 政府信息化与电子政务 483
13.3.1 我国政府信息化的历程和策略 483
13.3.2 电子政务的内容和技术形式 487
13.3.3 电子政务建设的过程模式和技术模式 490
13.4 企业信息化与电子商务 493
13.4.1 企业信息化概述 493
13.4.2 企业资源规划 496
13.4.3 客户关系管理 502
13.4.4 产品数据管理 506
13.4.5 企业门户 509
13.4.6 企业应用集成 511
13.4.7 供应链管理 514
13.4.8 电子商务概述 516
13.5 信息资源管理 520
13.5.1 信息孤岛 520
13.5.2 信息资源分类 523
13.5.3 信息资源规划 524
13.5.4 信息资源网建设 528
13.6 知识管理与商业智能 531
13.6.1 知识管理 531
13.6.2 商业智能 533
13.7 业务流程重组 534
第14章 基于中间件的开发 537
14.1 中间件技术 537
14.1.1 中间件的概念 538
14.1.2 中间件的分类 539
14.1.3 中间件产品介绍 540
14.2 应用服务器技术 541
14.2.1 应用服务器的概念 542
14.2.2 主要的应用服务器 544
14.3 J2EE 545
14.3.1 表示层 546
14.3.2 应用服务层 547
14.4 .NET 549
14.4.1 .NET平台 550
14.4.2 .NET框架 551
14.5 企业应用集成 556
14.6 轻量级架构和重量级架构 559
14.6.1 Struts框架 559
14.6.2 Spring框架 560
14.6.3 Hibernate框架 561
14.6.4 基于Struts、Spring和Hibernate的轻量级架构 562
14.6.5 轻量级架构和重量级架构的探讨 563
第15章 安全性和保密性设计 565
15.1 加密和解密 565
15.1.1 对称密钥加密算法 566
15.1.2 不对称密钥加密算法 567
15.2 数字签名与数字水印 569
15.2.1 数字签名 569
15.2.2 数字信封 571
15.3 数字证书与密钥管理 572
15.3.1 密钥分配中心 572
15.3.2 数字证书和公开密钥基础设施 573
15.4 安全协议 576
15.4.1 IPSec协议简述 577
15.4.2 SSL协议 580
15.4.3 PGP协议 583
15.5 计算机病毒与防治 586
15.5.1 计算机病毒概述 586
15.5.2 网络环境下的病毒发展新趋势 588
15.5.3 计算机病毒的检测与清除 589
15.5.4 计算机病毒的预防 591
15.6 身份认证与访问控制 592
15.6.1 身份认证技术 592
15.6.2 访问控制技术 597
15.7 网络安全体系 600
15.7.1 OSI安全架构 600
15.7.2 VPN在网络安全中的应用 602
15.8 系统的安全性设计 605
15.8.1 物理安全问题与设计 605
15.8.2 防火墙及其在系统安全中的应用 605
15.8.3 入侵检测系统 607
15.9 安全性规章 609
15.9.1 安全管理制度 609
15.9.2 计算机犯罪与相关法规 611
第16章 系统的可靠性分析与设计 614
16.1 可靠性概述 614
16.2 系统故障模型 615
16.2.1 故障的来源以及表现 615
16.2.2 几种常用的故障模型 616
16.3 系统配置方法 616
16.3.1 单机容错技术 617
16.3.2 双机热备份技术 617
16.3.3 服务器集群技术 618
16.4 系统可靠性模型 619
16.4.1 时间模型 619
16.4.2 故障植入模型 619
16.4.3 数据模型 620
16.5 系统的可靠性分析和可靠度计算 621
16.5.1 组合模型 621
16.5.2 马尔柯夫模型 623
16.6 提高系统可靠性的措施 625
16.6.1 硬件冗余 625
16.6.2 信息冗余 628
16.7 备份与恢复 629
第17章 软件的知识产权保护 631
17.1 著作权法及实施条例 631
17.1.1 著作权法客体 631
17.1.2 著作权法的主体 632
17.1.3 著作权 633
17.2 计算机软件保护条例 634
17.3 商标法及实施条例 635
17.4 专利法及实施细则 636
17.5 反不正当竞争法 638
第18章 标准化知识 640
18.1 标准化概论 640
18.2 标准分级与标准类型 643
18.2.1 标准分级 643
18.2.2 强制性标准与推荐性标准 645
18.3 软件开发规范与文档标准 646
18.3.1 软件开发规范 646
18.3.2 软件文档标准 647
第19章 应用数学 649
19.1 运筹方法 649
19.1.1 网络计划技术 649
19.1.2 线性规划 653
19.1.3 决策论 656
19.1.4 对策论 659
19.1.5 排队论 661
19.1.6 存储论 664
19.2 数学建模 666
第20章 虚拟化、云计算与物联网 669
20.1 虚拟化 669
20.1.1 虚拟化技术的分类 669
20.1.2 虚拟化的模式 671
20.2 云计算 672
20.2.1 云计算的特点 673
20.2.2 云计算的类型 674
20.2.3 云计算的应用 674
20.3 物联网 675
20.3.1 物联网的层次结构 676
20.3.2 物联网的相关领域与技术 677
20.3.3 物联网的应用
以上是关于软考——系统架构师Nosql数据库的主要内容,如果未能解决你的问题,请参考以下文章
阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较
阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较