走进NoSql

news2024/11/15 21:41:00

一、引入

1.1什么是NoSql

NoSQL(Not Only SQL)是一组非关系型数据库(或称为非SQL数据库)的统称,它们提供了与传统的关系型数据库不同的数据存储和检索方式。NoSQL数据库通常用于处理大量的、分布式的、非结构化或半结构化的数据,并且它们能够在大规模并行处理方面表现出色。 

 1.2NoSQL数据库的特点

1. **可扩展性**:NoSQL数据库通常更容易在多台机器上水平扩展,这允许它们处理巨大的数据量。

2. **高性能**:它们被设计为能够处理高并发读写操作,尤其是在大数据集上。

3. **灵活的数据模型**:NoSQL数据库不要求预定义数据模式,这意味着它们可以存储不同类型的数据而不需要像关系型数据库那样定义表结构。

4. **最终一致性**:许多NoSQL数据库在数据一致性方面采取了更宽松的策略,如Amazon DynamoDB使用的“eventual consistency”,这在某些高可用性场景下是有益的。

5. **键-值存储**:许多NoSQL数据库使用键-值对存储数据,这是最简单且最直接的数据存储方式之一。

6. **不同的数据类型支持**:不同类型的NoSQL数据库支持不同类型的数据模型,包括键值存储、文档存储、列族存储和图数据库。

 1.3NoSQL数据库的主要类型

- **键值存储**(Key-Value Stores):如Redis、Riak、Amazon DynamoDB。
- **文档存储**(Document Databases):如MongoDB、CouchDB。
- **列族存储**(Wide-Column Stores):如Cassandra、HBase。
- **图数据库**(Graph Databases):如Neo4j、ArangoDB。

1.4总结 

NoSQL数据库的兴起,在很大程度上是由于Web 2.0应用和社交媒体的需求,这些应用需要处理大量的用户生成数据,并且需要高可用性和可扩展性。然而,NoSQL并不是万能的,每种数据库都有其适用的场景和局限性。在实际应用中,需要根据具体的业务需求和数据特性来选择合适的数据库。

二、实战

2.1选择题

1. (单选题)关于NoSQL数据库和关系数据库,下列说法不正确的是( )。

  • A. NoSQL数据库和关系数据库各有优缺点,但随着NoSQL的发展,终将取代关系数据库
  • B. 关系数据库有关系代数理论作为基础,NoSQL数据库没有统一的理论基础
  • C. NoSQL数据库可以支持超大规模数据存储,具有强大的横向扩展能力
  • D. 大多数NoSQL数据库很难实现数据完整性

 正确答案: A :NoSQL数据库和关系数据库各有优缺点,但随着NoSQL的发展,终将取代关系数据库;

2. (单选题)大数据时代,数据的存储与管理不需满足以下哪个要求()。

  • A. 满足用户 的高并发读写
  • B. 要适应多变的数据结构
  • C. 满足完整性的约束条件
  • D. 数据管理系统具有很高的扩展性,适应海量数据库的迅速增长

正确答案: C :满足完整性的约束条件;

3. (单选题)下列关于NoSQL数据库和关系型数据库的比较,不正确的是( )。

  • A. NoSQL数据库缺乏统一的查询语言,而关系型数据库有标准化查询语言
  • B. NoSQL数据库具有弱一致性,关系型数据库具有强一致性
  • C. NoSQL数据库很容易实现数据完整性,关系型数据库很难实现数据完整性
  • D. NoSQL数据库的可扩展性比传统的关系型数据库更好

正确答案: C :NoSQL数据库很容易实现数据完整性,关系型数据库很难实现数据完整性;

4. (单选题)以下不属于NoSQL数据库的是( )。

  • A. Cassandra
  • B. MySQL
  • C. MongoDB
  • D. CouchDB

正确答案: B :MySQL;

5. (单选题)NoSQL一词表示的含义是( )。

  • A. 没有SQL
  • B. 非关系型数据库
  • C. 不是SQL
  • D. 关系型数据库

正确答案: B :非关系型数据库;

2.2语句练习

1. 在s集合中插入以下数据。(insert、insertOne、insertMany都试试)

db.s.insert({sno:'1001',sname:' zhangsan', sage:'10'})
db.s.insertOne({sno:'1002',sname :'lisi',sage:'18'})
db.s.insertMany([{sno:'1003',sname:' wangwu',sage:'10"},{sno:'1004',sname:'zhaoliu', sage:'88'}])
db.s.insert({sno:'1005',sname:'lisi',addr:'hebei'})
db.s.insert({sno:'1006',sname:'zhangsan',addr:['beijing','hebei']})

2.查询学号为1001同学的姓名

db.s.find({sno:'1001'})

3.查询学生的人数

db.s.find().count()

 

4.查询18岁的lisi的学号和姓名

db.s.find({$and:[{ sname:'lisi'},{sage:'18'}]})

 

5.查询zhangsan及所有18岁同学的信息

db.s.find({$or:[{sname:'zhangsan'},{sage:'18'}]})

 

6.查询年龄为11或18岁的同学的姓名

db.s.find({sage:{$in:['11','18']}})

7.查询第一个文档

db.s.find()[0]

 

8.查询第五个文档

db.s.find()[4]



 

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

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

相关文章

STM32使用Wifi连接阿里云

目录 1 实现功能 2 器件 3 AT指令 4 阿里云配置 4.1 打开阿里云 4.2 创建产品 4.3 添加设备 5 STM32配置 5.1 基础参数 5.2 功能定义 6 STM32代码 本文主要是记述一下,如何使用阿里云物联网平台,创建一个简单的远程控制小灯示例。 完整工程&a…

BurpSuit的intruder模块结果进行筛选和导出

文章目录 一、搭建的测试网站第一步 先抓去数据包,查看数据包第二步 可以控制返回信息一条一条的显示第三步 使用intrude模块进行遍历,每次只显示一条用户信息第四步 配置过滤规则第五步 查看结果显示第六步 进行数据导出第七步 查看导出的表格二、实际项目中使用免责声明一、…

PCIe驱动开发(3)— 驱动设备文件的创建与操作

PCIe驱动开发(3)— 驱动设备文件的创建与操作 一、前言 在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即…

Azure Repos 仓库管理

从远端仓库克隆到本地 前提:本地要安装git,并且登录了账户 1.在要放这个远程仓库的路径下,打git 然后 git clone https://.. 如果要登录验证,那就验证下,点 generate git credentials,复制password 克隆完后,cd 到克隆的路径, 可以用 git branch -a //查看分…

Spring Cloud环境搭建

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 开发环境安装 1.1 安装JDK ​1.2 安装MySQL 2. 案列介绍 2.1 …

Linux 命令 —— top命令(查看进程资源占用)

文章目录 top 命令显示信息介绍top 命令使用 top 命令显示信息介绍 top 命令是 Linux/Unix 系统中常用的进程监控工具,可以实时动态显示系统中各个进程的资源占用情况,包括CPU、内存等。 进入 linux 系统,直接输入 top,回车&…

全网超详细Redis主从部署(附出现bug原因)

主从部署 整体架构图 需要再建两个CentOs7,过程重复单机部署 http://t.csdnimg.cn/zkpBE http://t.csdnimg.cn/lUU5gLinux环境下配置redis 查看自己ip地址命令 ifconfig 192.168.187.137 进入redis所在目录 cd /opt/software/redis cd redis-stable 进入配置文件 vim redi…

书生大模型第三关-Git基础

1.任务1: 破冰活动:自我介绍 目标: 每位参与者提交一份自我介绍。 提交地址:https://github.com/InternLM/Tutorial 的 camp3 分支~ 行动: 首先Fork项目到自己Repo中,然后git clone在本地上 然后创建一个…

liunx面试题目

如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 查看物理cup: cat /proc/cpuinfo|grep -c ‘physical id’ 查看每颗cup核数 cat /proc/cpuinfo|grep -c ‘processor’ 若希望自动实现软件包的更新,可以使用yum-cron并启动该服务 yum -y …

【java计算机毕设】农产品仓库管理系统系统MySQL ssm JSP maven项目代码+文档 前后端一体 暑假作业

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】农产品仓库管理系统系统MySQL ssm vue maven项目代码文档 前后端一体 暑假作业 2项目介绍 系统功能: 农产品仓库管理包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改个人信息和…

60K起?“软件安全岗”比“网络安全岗”薪资高在哪里?

在网络世界的江湖中,“软件安全”与“网络安全”这两大“武林高手”都肩负着守护数字领域和平的重任。不过,眼尖的小伙伴们可能发现了,软件安全岗位的薪资待遇往往比网络安全岗位要丰厚那么一些,这到底是为啥呢?今天&a…

【AI绘画教程】Stable Diffusion 1.5 vs 2

在本文中,我们将总结稳定扩散 1 与稳定扩散 2 辩论中的所有要点。我们将在第一部分中查看这些差异存在的实际原因,但如果您想直接了解实际差异,您可以跳下否定提示部分。让我们开始吧! Stable Diffusion 2.1 发布与1.5相比,2.1旨在解决2.0的许多相对缺点。本文的内容与理解…

数字化转型“破局”:低代码开发平台如何缩短开发交付周期,提升效率

日新月异的数字时代,各行业正经历着前所未有的变革与转型。随着大数据、云计算、人工智能等技术的不断成熟与融合,数字化转型的步伐愈发坚定而迅速,成为企业转型升级、实现可持续发展的必由之路。然而,传统的软件开发模式受限于高…

35.UART(通用异步收发传输器)-RS232(2)

(1)RS232接收模块visio框图: (2)接收模块Verilog代码编写: /* 常见波特率: 4800、9600、14400、115200 在系统时钟为50MHz时,对应计数为: (1/4800) * 10^9 /20 -1 10416 …

如何防止漏洞攻击

随着信息技术的日新月异,企业在日常运营中对网络和数字化系统的依赖日益加深。然而,这种高度依赖也伴随着网络安全威胁的急剧增长,对企业的核心资产与数据构成了严峻挑战。为了有效捍卫企业利益,确保运营无忧,积极构建…

Monaco 使用 DocumentHighlightProvider

Monaco 中有一个文字高亮的功能,就是选中一个单词,会高亮文字文档中所有出现该单词的位置,效果如下: Monaco 默认就有这个功能,可以根据具体需求进行定制。通过 registerDocumentHighlightProvider 进行注册 实现 pro…

无人机之图传距离的决定因素

一、发射功率:图传设备的发射功率越大,信号能够传播的距离就越远 二、工作频段:不同频段具有不同的传播特性,一些频段在相同条件下可能具有更远的传输距离。 三、天线性能:优质的天线可以增强信号的发送和接收能力&a…

9.11和9.9哪个数更大?所有模型测试

目录 通义千问2.5 通义千问2_0.5b kimi 智谱清言 ​编辑讯飞星火 秘塔搜索 文言一心 豆包 腾讯元宝 海螺AI ChatGPT 3.5 Gemini 1.0 通义千问72B Claude-3 天工AI 参赛选手:讯飞星火、文言一心、腾讯元宝、海螺AI、通义千问72B、天工AI、 通义千问2…

实验七:图像的复原处理

一、实验目的 熟悉常见的噪声及其概率密度函数。熟悉在实际应用中比较重要的图像复原技术,会对退化图像进行复原处理。二、实验原理 1. 图像复原技术,说简单点,同图像增强那样,是为了以某种预定义的方式来改进图像。在具体操作过程中用流程图表示,其过程就如下面所示: 2…

git查看历史记录方法

0 Preface/Foreword 1 git reflog git reflog显示所有的操作,不仅仅是commit,也包括git pull,checout等动作。 1.1 查看本地和远程仓库的区别 远程仓库:中间的提交是直接在web端编辑 远程仓库:最新的提交是在本地编…