走进NoSql

一、引入

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]



 

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

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

相关文章

Lora模型训练的参数-学习笔记

任何一个lora都会有三重属性,易调用性、泛化性和还原性,任何一个lora只能完美满足其中的两项; 易调用性:在已调用lora后,还需要多少提示词才能让该lora完全生效; 泛化性:能不能还原lora训练素…

全网超详细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查看历史记录方法

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

原码、补码、反码、移码是什么?

计算机很多术语翻译成中文之后,不知道是译者出于什么目的,往往将其翻译成一个很难懂的名词。 奇怪的数学定义 下面是关于原码的“吐槽”,可以当作扩展。你可以不看,直接去下一章,没有任何影响。 原码的吐槽放在前面是…

Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)

导航: 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 推荐视频: 黑马程序员全套Java教程_哔哩哔哩 尚硅谷Java入门视频教程_哔哩哔哩 推荐书籍&am…

基础动态规划题目基础动态规划题目

目录 题目1: P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles 代码示例: 题目2: Common Subsequence 代码示例 题目3 :最长上升子序列 最长不下降子序列 最长上升子序列oj答案 题目1: P1216 [USACO1.5]…

ASP.NET Core中创建中间件的几种方式

前言 今天我们一起来盘点一下在ASP.NET Core应用程序中添加和创建中间件常见的四种方式。 中间件介绍 ASP.NET Core中间件(Middleware)是用于处理HTTP请求和响应的组件,它们被安排在请求处理管道中,并按顺序执行。中间件的设计是为…

15- 微分方程

对三角函数不敏感

快捷:通过胶水语言实现工作中测试流程并行、加速

通过胶水语言实现工作中测试流程并行、加速 通过胶水语言实现工作中测试流程并行、加速工作场景(背景)问题抽象(挑战)如何做(行动)获得了什么(结果)后记相关资源 通过胶水语言实现工…

十大排序 之 快速排序

!!!排序仅针对于数组哦本次排序是按照升序来的哦代码后边有图解哦 介绍 快速排序英文名为Quick Sort 基本思路 快速排序采用的是分治思想,即在一个无序的序列中选取一个任意的基准元素base,利用base将待排序的序列分…

【BUG】已解决:error: subprocess-exited-with-error

已解决:error: subprocess-exited-with-error 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主…

Ubuntu上安装配置samba服务

Ubuntu上安装配置samba服务 在Ubuntu中安装配置samba共享服务,可以让你在网络上共享文件和打印机。以下是一个相对详细的步骤指南,介绍如何在Ubuntu上安装和配置Samba。 1. 安装Samba 首先,需要安装Samba软件包。打开终端并运行以下命令&a…

Python基础语法篇(上)

Python基础语法(上) 一、基知二、基本数据类型(一)标准数据类型(二)数据类型转换 三、字符串基本操作(一)字符串的索引和切片(二)字符串的拼接 三、运算符四、…

新一代大语言模型 GPT-5 对工作与生活的影响及应对策略

文章目录 📒一、引言 📒二、GPT-5 的发展背景 🚀(一)GPT-4 的表现与特点 🚀(二)GPT-5 的预期进步 📒三、GPT-5 对工作的影响 🚀(一&#xf…

STM32使用Wifi连接阿里云

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

元宇宙深入解析

元宇宙(Metaverse)是一个新兴的概念,它激发了技术专家、艺术家和商业领袖的无限想象。它代表着数字互动的新前沿,提供了一个平行的数字宇宙,用户可以在其中实时互动,超越物理世界的限制。 元宇宙是什么&am…

【java】力扣 合法分割的最小下标

文章目录 题目链接题目描述思路代码 题目链接 2780.合法分割的最小下标 题目描述 思路 这道题是摩尔算法的一种扩展 我们先可以找到候选人出来,然后去计算他在左右两边元素出现的次数,只有当他左边时,左边出现的次数2 >左边的长度&…

【C++】拷贝构造函数及析构函数

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

百分点科技签约潍坊市数据产业发展战略合作

近日,潍坊市数据产业发展战略合作签约仪式举行,潍坊市人民政府副市长张震生,潍坊市财政局党组书记、局长王金祥,潍坊市大数据局党组书记陈强出席大会并致辞。百分点科技受邀进行战略合作签约,共同见证潍坊市数据要素市…

力扣—长度最小的子数组

文章目录 题目解析解题思路代码实现 题目解析 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回…