nosql数据库期末考试知识点总结

news2024/11/19 23:32:18

目录

1、什么是nosql数据库,它包括哪些  文档数据库  建数据  哪一种是最简单的

2、什么是文档数据库

3、创建mongodb时默认会建造三个数据库,是哪三个

4、mongodb支持的数据类型有哪些  

5、它的常规语句有哪些

6、副本集和分片集有什么作用 复制  性能

7、副本集的副本节点之间如何获得主节点数据

8、启动mongo时  mongod  mongos是什么意思,之间有什么区别

9、cap原则

10、nosql的全称

11、base的基本原则

12、cap各自的组合分别用字啊什么场景

13、mongodb集群的四个核心组件,他们的作用

14、给一个集群,怎样建立分片集  端口号 集群名称

15、mongodb的特点

16、查看副本集的那几条命令,创建、查看状态啥的

17、分片集同上

18、副本集有三种节点状态

19、mongodb组件的默认格式

20、关系数据库和nosql数据的优缺点

21、关系数据库和nosql之间的区别


1、什么是nosql数据库,它包括哪些  文档数据库  建数据  哪一种是最简单的

包括文档数据库、键值数据库、图形数据库、列族数据库。

1、键值数据库:这种类型的数据库主要使用散列表来存储数据,其简单和易部署,能更快速的数据定位。

2、文档数据库:这种类型的数据库的存储格式类似于JSON的文档格式。文档数据库的优点是可以方便地处理半结构化数据。

3、列族数据库:这种类型的数据库主要用于分布式存储的海量数据。

4、图形数据库:这种类型的数据库主要用于存储图结构数据。

其中键值数据库更加简单。

2、什么是文档数据库

文档数据库是一种非关系型数据库,它将数据存储为一系列的文档,通常使用JSON、XML格式。与传统的关系型数据库使用预定义的固定表结构不同。文档型数据库允许每个文档具有不同的数据结构,为数据的存储和检索提供了更大的灵活性和可扩展性,特别适合于处理半结构化和快速变化的数据。

3、创建mongodb时默认会建造三个数据库,是哪三个

在MongoDB中,默认会自动创建三个数据库,它们是:

admin:这是MongoDB的管理数据库,主要用于管理用户权限和执行一些管理员操作。

local:这是MongoDB的本地数据库,用于存储与单个MongoDB实例相关的数据。

config:这是MongoDB的配置数据库,在使用分片部署时,用于存储分片相关的配置信息。

MongoDB还有一个默认数据库是test,具有测试的作用。

4、mongodb支持的数据类型有哪些  

MongoDB支持的数据类型丰富多样,包括一些基本和常用的数据类型。具体如下:

String: 这是最常用的数据类型,用于存储数据。在MongoDB中,字符串必须是UTF-8编码。

Int:此类型用于存储数值。整数可以是32位或64位,具体取决于您的服务器。

Boolean:布尔型,只有两个值true和false。

Double: 用于存储浮点数。

Arrays:用于存储数组或列表。

Object:用于存储字典类型的数据。

Null: 空数据类型。

Timestamp:时间戳.

Date:日期。

5、它的常规语句有哪些

6、副本集和分片集有什么作用 复制  性能

1)、副本集:副本集可以提供冗余和数据可用性,通过在不同数据库服务器上提供多个数据副本,以防止丢失单个数据库服务器。

2)、分片集:解决大量数据存储问题,通过将数据分散到多个服务器上存储,提高系统的存储能力和性能。

7、副本集的副本节点之间如何获得主节点数据

在MongoDB副本集中,副本节点通过复制主节点的数据来保持与主节点数据的同步。副本节点(Secondary)会通过复制主节点的操作日志来获得主节点的数据。副本节点定期从主节点拉取操作日志中未复制的部分,然后将这些操作应用到自身的数据集中,实现数据的同步。

8、启动mongo时  mongod  mongos是什么意思,之间有什么区别

在启动MongoDB时,mongod、mongo和mongos各自具有不同的含义和功能。

mongod是守护进程,负责实际的数据存储和管理,并处理来自客户端的查询请求。

mongo是MongoDB的客户端命令行工具,用于连接到MongoDB数据库实例并与数据库进行交互。通过mongo命令,用户可以在命令行中执行各种数据库操作。

mongos则是“MongoDB碎片实用程序”,它是一种针对MongoDB分片配置的路由服务,用于处理来自应用层的查询,并确定这些数据在分片集群中的位置。同时,mongos通过动态迁移数据片段来平衡各个分片服务器上的负载,以实现负载均衡。

9、cap原则

CAP理论是指在一个分布式系统中,一致性、可用性、分区容错性,三者不可兼得。

1)、一致性(C):更新操作成功后,所有节点在统一时间的数据完全一致;

2)、可用性(A):保证每个请求不管成功或者失败都有响应;

3)、分区容错性(P):系统中任意信息的丢失和失败不会影响系统的继续运作。

10、nosql的全称

Not Only Sq也被称为非关系型数据库

11、base的基本原则

1)、基本可用:

基本可用指分布式系统出现故障时,系统允许损失部分可用性,即保证核心功能或者当前最重要功能可用。

2)、软状态:

允许不同节点的副本之间存在暂时的不一致性。

3)、最终一致性:

要求系统中数据副本最终能够一致,而不需要实时保证数据副本一致。它是base原理的核心,也是nosql数据库的主要特点。

12、cap各自的组合分别用字啊什么场景

1)、CA场景:在一些对数据一致性要求较高的场景,如金融系统、核心业务系统等,可能会选择牺牲一部分可用性和分区容错性,以保证数据的一致性。

2)、CP场景:在对数据一致性和分区容错性要求较高的场景,如数据库系统、分布式存储系统等,可能会选择牺牲一部分可用性,以保证数据的一致性和系统的容错性。

3)、AP场景:在对可用性要求较高的场景,如互联网应用、大规模分布式系统等,可能会选择牺牲一部分一致性,以保证系统的可用性和分区容错性。

13、mongodb集群的四个核心组件,他们的作用

1)、分片 (Shard): 分片是MongoDB中数据存储的基本单位,每个分片都包含一部分数据。当数据集过大时,可以增加分片来提高性能和存储能力。

2)、配置服务器 (ConfigServer) : 配置服务器保存了整个集群的元数据信息,包括集群有哪些分片、各个分片存储哪些集合以及数据块的分布情况等。这些信息对于分片的路由和数据的均衡分布至关重要。

3)、路由代理 (Mongos):路由代理作为客户端应用程序与分片集群之间的接口,负责接收和处理客户端的请求,并根据请求的信息将请求路由到对应的分片上。

4)、副本集 (Replica Set): 副本集用于MongoDB的高可用性,它由一组MongoDB服务器组成,用于存储相同的数据副本。当主节点出现故障时,副本集中的其他节点可以选举出一个新的主节点,以保证服务的连续性。

14、给一个集群,怎样建立分片集  端口号 集群名称

建立分片集,给你机器九个机器的集群,做规划,建分片集有个表,每个表的作用,端口号,集群名称,去做规划

根据你提供的情况,我们可以进行如下的分片集规划:

集群规模:由于有九个机器,我们可以将其划分为三个分片。

分片键选择:根据实际的业务需求和数据特点,选择适合的分片键。在这里,假设我们的数据有一个"category"字段,可以使用该字段作为分片键。这样相同category的数据将被分配到同一个分片上,以实现数据的均衡分布和查询性能的提升。

集群名称:为了方便识别和管理,我们可以给集群起一个有意义的名称,例如"my_sharded_cluster"。

分片服务器(Shard Server):

机器1、2、3:作为第一个分片(Shard 1),每台机器上启动一个分片服务器。端口号分别为27017、27018、27019。

机器4、5、6:作为第二个分片(Shard 2),每台机器上启动一个分片服务器。端口号分别为27017、27018、27019。

机器7、8、9:作为第三个分片(Shard 3),每台机器上启动一个分片服务器。端口号分别为27017、27018、27019。

路由器(Router):选择一台机器作为路由器,它将接收客户端的请求并将请求路由到正确的分片服务器。可以选择机器1作为路由器,端口号为27017。

配置服务器(Config Server):为了保证元数据的可靠性和复原能力,需要至少部署三个配置服务器。可以选择机器2、3、4作为配置服务器。端口号分别为27017、27018、27019。

表的作用:在分片集中,可以创建多个表来存储不同的数据集合。具体每个表的作用需要根据业务需求来确定。例如,可以创建"user"表用于存储用户信息,"order"表用于存储订单信息等。

15、mongodb的特点

1)、面向文档的数据模型:MongoDB是一种文档数据库,使用BSON格式存储数据。这种结构非常灵活,可以存储不同结构、大小和类型的文档,方便表示复杂的数据结构。

2)、高性能和可扩展性:MongoDB具有快速的读写能力,并支持水平扩展。通过在集群中添加更多的服务器节点,可以提高性能和容量,满足大量数据和高并发访问的需求。

3)、强调数据灵活性:MongoDB的灵活性使得可以轻松地对文档进行增删改查操作,无需预先定义表结构。可以根据应用程序的需求动态修改文档的结构,使得数据模型更具弹性。

4)、支持多种查询方式:MongoDB提供强大而灵活的查询功能,支持多种查询方式,包括基本的查找、范围查询、排序、聚合等。同时,还支持全文搜索和地理空间查询等特殊查询需求。

5)、数据复制和故障恢复:MongoDB支持数据的复制和故障恢复机制。可以通过副本集设置来自动在多个服务器上复制数据,提高数据的可靠性和可用性。

6)、丰富的工具和生态系统:MongoDB提供了丰富的工具和生态系统,支持开发人员和管理员进行数据管理、性能优化、监控和部署等方面的工作。同时,拥有一个友好的社区,可以获取与MongoDB相关的帮助和资源。

7)、高度可定制:MongoDB具有可定制性,可以根据实际需求进行配置和调整。可以根据应用程序的需求选择合适的存储引擎、数据分片策略和安全设置等。

16、查看副本集的那几条命令,创建、查看状态啥的

在MongoDB中,可以使用以下命令来查看副本集的状态:

1. `rs.status()`: 显示当前副本集的状态信息,包括成员列表、状态、投票等。

2. `rs.conf()`: 显示当前副本集的配置文件信息,包括副本集名称、成员列表、选举策略等。

3. `rs.printReplicationInfo()`: 打印出副本集中所有成员的复制状态信息,包括主机名、端口号、角色、同步状态等。

4. `rs.add("hostname:port")`: 将一个MongoDB实例添加到当前副本集中。

5. `rs.remove("hostname:port")`: 从当前副本集中移除一个MongoDB实例。

6. `rs.stepDown()`: 手动将当前副本集的Primary节点降级为Secondary节点。

7. `rs.reconfig()`: 重新配置当前副本集的拓扑结构,可以添加或删除成员、更改选举策略等。

17、分片集同上

sh.status(): 显示当前分片集的状态信息,包括分片、数据库、集合等。

sh.getBalancerState(): 显示平衡器的状态信息,包括是否正在平衡、平衡的进度等。

sh.addShard("shard_host"): 将一个分片添加到当前分片集中。

sh.enableSharding("database"): 对指定数据库启用分片功能。

sh.disableSharding("database"): 对指定数据库禁用分片功能。

sh.shardCollection("database.collection", {"field": 1}): 为指定数据库中的集合设置分片键,用于将数据分配到不同的分片上。

sh.moveChunk("database.collection", {"field": "value"}, "shard_host"): 将指定数据库中指定集合的数据块移动到指定的分片上。

sh.splitAt("database.collection", {"field": "value"}): 将指定数据库中指定集合的数据分割成多个部分,每个部分存储在一个单独的分片上。

sh.removeShard("shard_host"): 从当前分片集中移除一个分片。

sh.forceRebalance(): 强制进行重新平衡操作,将数据重新分布到各个分片上。

18、副本集有三种节点状态

1)、Primary(主节点):主节点是副本集中的活动节点,负责处理所有的读写请求。它是数据的原始来源,并且维护了完整的数据副本集。

2)、Secondary(从节点):从节点是主节点的数据副本,它们复制了主节点上的所有数据并保持与主节点的数据同步。从节点可以处理读请求,但不能处理写请求。

3)、Arbiter(仲裁节点):仲裁节点是用于选举主节点的特殊类型的节点。它不保存数据,只参与主节点的选举过程。仲裁节点的作用是帮助副本集决定在主节点不可用时谁将成为新的主节点。

19、mongodb组件的默认格式

MongoDB的默认格式是BSON(Binary JSON),这是一种类似于JSON的二进制格式。

20、关系数据库和nosql数据的优缺点

关系数据库和NoSQL数据库是两种常见的数据库类型,它们在数据存储和处理方面有各自的特点和适用场景。以下是它们的优缺点比较: 关系数据库(Relational Database):

优点:

1)、结构化数据:关系数据库使用表格结构来组织和存储数据,适用于处理结构化数据,保证数据的一致性和完整性。

2)、强一致性:关系数据库支持强一致性,确保数据的正确性,适合在事务处理方面具有严格要求的应用场景。

3)、SQL查询:关系数据库使用SQL语言进行数据查询和操作,具有丰富的查询功能,易于理解和使用。

缺点:

1)、扩展性限制:关系数据库的扩展性有一定的限制,无法方便地水平扩展到大规模的集群系统。

2)、大规模数据处理:当数据量达到一定规模时,关系数据库的性能可能会出现瓶颈,难以满足高并发和大规模数据处理需求。

3)、模式迁移困难:关系数据库的模式定义需要在设计阶段进行,若需求变更或数据结构需要调整,可能需要进行较大规模的模式迁移。

NoSQL数据库(Not Only SQL):

优点:

1)、高可扩展性:NoSQL数据库采用分布式架构,具有良好的横向扩展性,可以方便地扩展到大规模集群系统,适合处理大量数据和高并发场景。

2)、灵活的数据模型:NoSQL数据库不需要严格定义数据模式,可以自由灵活地存储半结构化或非结构化数据,更加适用于存储各种类型的数据。

3)、高性能:NoSQL数据库通过优化数据访问和存储结构,提供高性能的读写操作,适合需要快速响应和低延迟的应用场景。

缺点:

1)、相对较弱的一致性:NoSQL数据库可能对数据一致性放宽要求,提供的是最终一致性,在一些特定场景下可能出现数据冲突或不一致的情况。

2)、查询功能相对受限:相对于关系数据库的SQL查询功能,NoSQL数据库的查询语言和功能相对较简单,可能无法满足复杂查询的需求。

3)、缺乏事务支持:一些NoSQL数据库在事务支持方面相对较弱,不支持像关系数据库那样的原子性和事务隔离。

综上所述,关系数据库适用于结构化数据、需要强一致性和复杂查询的应用场景,而NoSQL数据库适用于需要高扩展性、灵活数据模型和高性能的大规模数据处理场景。选择合适的数据库类型应根据具体的业务需求和数据特点进行权衡和决策。

21、关系数据库和nosql之间的区别

关系数据库(Relational Database)和 NoSQL 数据库之间存在一些关键区别。以下是它们之间的几个主要区别:

1)、数据模型:

关系数据库:关系数据库使用表和行的结构来存储数据,表之间通过主键和外键建立关系。

NoSQL 数据库:NoSQL 数据库采用非关系型的数据模型,可以是键值存储、文档存储、列存储或图形数据库等。

2)、数据结构灵活性:

关系数据库:关系数据库需要事先定义表的结构和字段,一旦定义完成,表的结构较为固定,难以灵活变化。

NoSQL 数据库:NoSQL 数据库可以灵活地存储非结构化和半结构化的数据,无需提前定义表结构,可以根据需要随时添加、修改或删除字段。

3)、可伸缩性:

关系数据库:关系数据库的可伸缩性通常受限于单个服务器的容量,对于处理大规模数据和高并发访问的场景,需要进行垂直扩展(增加服务器硬件资源),或者使用分片技术进行水平扩展。

NoSQL 数据库:NoSQL 数据库天生具备可伸缩性,可以通过简单的水平扩展来应对负载增长,通过添加更多服务器节点来提高性能和容量。

4)、数据一致性:

关系数据库:关系数据库强调数据的一致性,支持 ACID(原子性、一致性、隔离性和持久性)事务处理。

NoSQL 数据库:NoSQL 数据库在一些情况下可能会牺牲一致性,追求更高的可用性和性能,可以通过弱一致性模型来实现分布式系统的效率。

5)、查询语言:

关系数据库:关系数据库使用结构化查询语言(SQL)进行数据查询和操作。

NoSQL 数据库:NoSQL 数据库的查询语言多样,有些数据库使用类似于 SQL 的语法,而其他数据库则使用各自专有的查询语言。

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

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

相关文章

Linux中make和makefile

make与makefile 简单介绍常见用法符号替代自动寻找设置变量取消打印提示 简单介绍 make是Linux中一个命令,与之匹配的是makefile,makefile是一个文件。make会根据makefile中的内容完成对应的工作 创建一个名为makefile的文件 vim打开makefile 第一行是依…

Linux文本三剑客-awk

一、awk的介绍: 1.awk的简介: AWK 是一种处理文本文件的语言,是一个强大的文本分析工具 可以在无交互的模式下实现复杂的文本操作 相较于sed常作用于一整个行的处理,awk则比较倾向于一行当中分成数个字段来处理,因…

将vite项目(vue/react)使用vite-plugin-pwa配置为pwa应用,只需要3分钟即可

将项目配置为pwa模式,就可以在浏览器里面看到安装应用的选项,并且可以将web网页像app一样添加到手机桌面或者pad桌面上,或者是电脑桌面上,这样带来的体验就像真的在一个app上运行一样。为了实现这个目的,我们可以为vue…

openmax

通过EmptyThisBuffer传递未解码的buffer给component,component收到该命令后会去读取input port buffer中的数据,将其组装为帧之后进行解码,buffer处理完成后会通过EmptyBufferDone通知上层输入使用完成,上层收到命令可以继续送输入…

区块链游戏解说:什么是 SecondLive

数据源:SecondLive Dashboard 作者:lesleyfootprint.network 什么是 SecondLive SecondLive 是元宇宙居民的中心枢纽,拥有超过100 万用户的蓬勃社区。它的主要使命是促进自我表达,释放创造力,构建梦想中的平行宇宙…

Easy-Es操作Elasticsearch

文章目录 1 Easy-Es1.1 简介1.2 MySQL与Easy-Es语法对比1.3 集成及配置1.3.1 pom.xml1.3.2 配置 1.4 使用1.4.1 注解的使用1.4.2 EsMapper接口1.4.3 简单搜索 1.5 使用案例1.5.1 综合商品搜索1.5.2 相关商品推荐1.5.3 聚合搜索商品相关信息 1 Easy-Es 使用过Spring Data操作ES…

线性代数:矩阵的初等变换

目录 一、初等行变换 行阶梯 / 行最简 性质 二、矩阵的标准型 三、矩阵的等价 四、初等矩阵 五、重要性质与定理 一、初等行变换 行阶梯 / 行最简 性质 二、矩阵的标准型 三、矩阵的等价 四、初等矩阵 五、重要性质与定理

滑动窗口最终弹

力扣30.串联所有单词的子串&#xff08;巨困难&#xff09; 这个最难的是什么 1.代码的编写 2.容器的使用 class Solution {List<Integer>retnew LinkedList<>();//保存字典中所有单词的频次public List<Integer> findSubstring(String s, String[] words) …

美赛常见数据收集网站(最新、最全、全部可用+所有网站使用说明)

授人以鱼不如授人以渔&#xff0c;本次将会为大家更新如何去寻找赛中我们需要的数据集。 在数模界一直流传着一个数据库,据说报告了各种各样的数据收集网站,大家可能手里也有这样的数据库。但是这数据从2018我知道开始到现在一直没有变过。里面80%甚至90%的网站都无法使用&…

php的性能要比node.js高很多吗?

在当今的编程世界中&#xff0c;PHP和Node.js是两种广泛使用的服务器端编程语言。虽然它们都用于构建高效的网络应用程序&#xff0c;但关于它们性能的争论一直存在。有些人认为PHP的性能要比Node.js高很多&#xff0c;而另一些人则持相反意见。 性能通常指的是计算机程序或系…

人脸识别的多样化和稀疏关注对姿势变化和遮挡具有鲁棒性

DSA-Face: Diverse and Sparse Attentions for Face Recognition Robust to Pose Variation and Occlusion 一、创新点 1.提出了成对自我对比注意力来强制模型提取不同的局部特征&#xff1b; 2.设计注意力稀疏性损失是为了鼓励注意力图中的稀疏反应&#xff0c;阻止对分散注意…

【亲测有效】无法获得下列许可 SOLIDWORKS Standard 无效的(不一致的) 使用许可号码 (-8,544,0)

在观看本文章前&#xff0c;请注意看你的报错代码是否和我的一致&#xff0c;如果不是&#xff0c;直接跳过本文章。 前言&#xff1a;我安装的是SOLIDWORKS2022版&#xff0c;软件已经安装完毕&#xff0c;SolidWorks_Flexnet_Server文件夹里面的两个注册表已经安装完毕&#…

xss 盲打使用

使用beef等内网xss平台&#xff0c;或外网xss平台&#xff08;XSS平台-仅用于xss安全测试专用、XSS平台 - &#xff08;支持http/https&#xff09;XSS Platform&#xff09; 将生成的js脚本写到网站的留言框处&#xff0c;但对应的用户(尤其是admin)查看留言&#xff0c;就会…

MySQL原理(一)架构组成之逻辑模块(1)组成

总的来说&#xff0c;MySQL可以看成是二层架构&#xff0c;第一层我们通常叫做SQL Layer&#xff0c;在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的&#xff0c;包括权限判断&#xff0c;sql解析&#xff0c;执行计划优化&#xff0c;query cache的处理等等&…

centos 7 部署若依前后端分离项目

目录 一、新建数据库 二、修改需求配置 1.修改数据库连接 2.修改Redis连接信息 3.文件路径 4.日志存储路径调整 三、编译后端项目 四、编译前端项目 1.上传项目 2.安装依赖 3.构建生产环境 五、项目部署 1.创建目录 2.后端文件上传 3. 前端文件上传 六、服务启…

Linux——存储管理

文章目录 基本分区磁盘简介磁盘分类linux的磁盘命名磁盘的分区方式 管理磁盘虚拟机添加硬盘查看磁盘信息磁盘分区流程创建分区创建文件系统挂载mount查看挂载信息 剩余空间继续分区MBR如何划分更多的分区为什么只能有4个主分区扩展分区的引入 逻辑卷LVM是什么特点术语创建LVMVG…

【二进制漏洞】缓冲区溢出漏洞

天命&#xff1a;好像复现成功了&#xff0c;又好像没有完全成功 学习视频&#xff1a;抓住漏洞&#xff01;缓冲区溢出漏洞利用实例&#xff0c;如何利用溢出执行Shell Code_哔哩哔哩_bilibili 漏洞复现 实验环境&#xff1a;kali &#xff08;其实啥都试过&#xff0c;windo…

二叉树(1)

1 树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&a…

Git―基本操作

Git ⛅认识 Git⛅安装 GitCentos(7.6)Ubuntu ⛅Git―基本操作创建本地仓库&#x1f342;配置本地仓库&#x1f342;工作区, 暂存区, 版本库&#x1f342;版本库工作区 添加文件&#x1f342;查看文件&#x1f342;修改文件&#x1f342;版本回退&#x1f342;☃️案例 撤销修改…

Linux一键部署telegraf 实现Grafana Linux 图形展示

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…