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

目录

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.mfbz.cn/a/365884.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FPGA高端图像处理开发板:鲲叔1号,寄托了未来的一块开发板

前言 在CSDN写博客传播FPGA开发经验已经一年多了,帮助了不少人,也得罪了不少人,有的人用我的代码赢得了某些比赛、得到了心仪的offer,也有的人天天骂我,anyway,哪怕只要还能帮助一个即将毕业的学生找到工作…

深入了解键盘:分类、工作原理与操作指南

键盘 键盘是计算机使用的主要输入设备之一,键盘主要由创建字母、数字和符号并执行附加功能的按钮组成,通常用于向计算机或其他数字设备输入文本、命令和各种控制信号。 键盘是计算机中最重要的字符输入设备,其基本组成元件是按键开关&#…

Python算法题集_矩阵置零

Python算法题集_矩阵置零 题73:矩阵置零1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【三层循环】2) 改进版一【纵横计数器】3) 改进版二【原地算法】 4. 最优算法 本文为Python算法题集之一的代码示例 题73:矩阵置零…

JAVAEE初阶 网络编程(十)

http协议 一.HTTP协议简介二. HTTP捕获工具的使用三. 请求和响应包含的部分四. 认识URL 一.HTTP协议简介 HTTP协议最主要的应用场景就是网站,在浏览器和服务器之间,传输数据, 所谓网页,就是用超文本标记语言HTML和CSS,…

废品上门回收小程序搭建全过程

随着人们对环境保护意识的不断增强,废品回收成为了一项重要的社会活动。为了方便废品回收的顾客和回收者之间的联系,废品上门回收小程序成为了一种流行的解决方案。然而,如何选择一款合适的废品上门回收小程序搭建平台呢?下面将为…

如何衡量代码的复杂度

圈复杂度概要 最近的培训中了解到了一个概念,叫做圈复杂度。 圈复杂度(Cyclomatic Complexity)是一种衡量程序复杂度的度量方法。它由美国计算机科学家 Thomas J. McCabe 在 1976 年提出。圈复杂度通过统计程序的控制流图中的决策结构&…

Centos Cron设置定时任务

这本是很简单的问题,但是我服务器重装系统两次,遇到的问题都不一样,所以记录一下 1.首先要确保服务器上有 cron 服务 sudo systemctl status crond2.设置时区 sudo timedatectl set-timezone Asia/Shanghai3.重启crond 服务使crond服务的时…

CentOS 8最小安装和网络配置

文章目录 简介下载地址VMware 17创建虚拟机最小化安装拥有的外部命令yum源有问题网络配置开启SSH Server服务关闭防火墙(目前这个地方还是有问题-加上端口依然不能访问)设置host配置JDK环境完整参考 简介 CentOS 8的IOS如果下载DVD版本至少有10G 这里我们直接选择最小安装&…

CSS常用属性

CSS常用属性 1. 像素的概念 概念:我们的电脑屏幕是,是由一个一个“小点”组成的,每个“小点”,就是一个像素(px)。规律:像素点越小,呈现的内容就越清晰、越细腻。 注意点&#xff…

YOLOv8-Segment C++

YOLOv8-Segment C https://github.com/triple-Mu/YOLOv8-TensorRT 这张图像是运行yolov8-seg程序得到的结果图,首先是检测到了person、bus及skateboard(这个是检测错误,将鞋及其影子检测成了滑板,偶尔存在错误也属正常),然后用方…

Vue 环境准备

1.安装vscode https://code.visualstudio.com/ 2.安装开发vue所需插件: Vetur —— 语法高亮、智能感知、Emmet等 包含格式化功能, AltShiftF (格式化全文),CtrlK CtrlF(格式化选中 代码,两…

分库分表原则

分库分表原则 单表数据到达千万级别或者20存储空间 优化已经解决不了问题一 IO瓶颈导致性能问题 拆分策略 垂直分库 以表为依据,根据业务将不同的表拆分到不同库中,有点像微服务 垂直分表 以字段为依据,根据字段属性将不同字段拆分到不同…

App ICP备案获取iOS和Android的公钥和证书指纹

依照《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,向iOS和安卓平台提交App时需要先提交ICP备案信息。 iOS平台: 1、下载appuploader工具:Appuploader home -- A tool improve ios develop efficiency such as submit ipa to…

Tencent Tinker:移动应用热修复的未来之路

Tencent Tinker:移动应用热修复的未来之路 1 引言 移动应用热修复是一项在移动应用开发领域中日益重要的技术,它可以帮助应用程序开发者快速修复线上应用的bug、漏洞和功能问题,而无需重新发布整个应用。这种能力对于提高用户体验、降低用户…

Pymysql将爬取到的信息存储到数据库中

爬取平台为电影天堂 获取到的数据仅为测试学习而用 爬取内容为电影名和电影的下载地址 创建表时需要建立三个字段即可 import urllib.request import re import pymysqldef film_exists(film_name, film_link):"""判断插入的数据是否已经存在""&qu…

Flink 1.18.1 部署与配置[CentOS7]

静态IP设置 # 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改文件内容 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.18.128 NETMASK255.255.255.0 GATEWAY192.168.18.2 DEFROUTEyes IPV4_FAILURE_FATALno IPV6INIT…

在openfeign客户端如何获取到服务端抛出的准确异常信息?? openfeign调用(请求/响应)的各个大致过程

在openfeign客户端如何获取到服务端抛出的准确异常信息?? 相关参考背景引入浏览器直接访问Spring的Restful接口(最普遍、简单的访问)示例结论 openfeign客户端调用的情况调用过程示例场景之一(其他场景可类比&#xff…

数据结构与算法面试系列-03

1. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 程序代码 package com.jingxuan.system;public class Sphere {public static void main(String[] args) {double s = 0;double t = 100;for (int i…

vue2 组件注册

简单分享怎么将组件注册为全局组件,主要分为三部分: 一、使用 Vue.install 方法将自义定的组件挂载到 Vue 实例上,如下: 二、注册为全局组件,如下: 三、页面使用,如下:

Vue3+vite引入Tailwind CSS

Tailwind CSS 是一个为快速创建定制化 UI 组件而设计的实用型框架。与其他 CSS 框架或库不同,Tailwind CSS 组件没有预先设置好样式。可以使用 Tailwind 的低级实用类来为 CSS 元素设置样式,如 margin、flex、color 等。 自从 2017 年发布以来&#xff…
最新文章