浅谈NoSQL数据库

news2024/9/28 23:37:42

数据库

数据库,又称为数据管理系统,是处理的数据按照一定的方式储存在一起,能够让多个用户共享、尽可能减小冗余度的数据集合,简而言之可视为电子化的文件柜——存储电子文件的处所。

数据库有:Oracle数据库、ACCESS数据库、SQL数据库、DB2数据库、Sybase、MySQL、MariaDB、VF、SqlServer、SQLite等等。

数据库分类

  • 关系型数据库(RDBMS)

关系型数据库建立在关系模型的基础上,SQL就是关系型数据库的查询语言。

  • 非关系型数据库(NoSQL)

非关系型数据库,包含了键值型数据库、文档型数据库、搜索引擎、列表存储、图形数据库。

  • 键值型数据库(NoSQL)

键值型数据库通过 Key-Valye 方式来存储数据,Key 和 Value 可以是简单对象,也可以是复杂对象。Key 作为唯一的标识符。 比较流行的有 Redis

优点 :查询速度快;
缺点: 无法和关系型数据库一样进行条件过来,如果要进行范围查找,需要遍历所有的键,会消耗大量的计算。

文档型数据库

文档型数据库可以用来管理文档,文档作为处理信息的基本单位,相当于一个文档相当于一个记录,比较常用的有 MonogoDB

更多精彩内容,请微信搜索“前端爱好者戳我 查看 。‘

NoSQL

什么是NoSQL

对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL 数据库(意即"不仅仅是SQL")并非表格格式,其存储数据的方式与关系表不同。
NoSQL 数据库的类型因数据模型而异。
主要类型包括文档、键值、宽列和图形。它们提供了灵活的模式,可以随大量数据和高用户负载而轻松扩展。

NoSQL数据库的分类

  • 列存储(HBase)
  • 文档存储(MongoDB)
  • Key-Value存储(Redis)
  • 图存储(FlockDB)
  • 对象存储(db4o)
  • XML存储(BaseX)

为什么要用NoSQL?

  • 简单(没有原子性、一致性、隔离性等复杂规范)
  • 便于横向扩展
  • 适合超大规模数据的存储
  • 很灵活地存储复杂结构的数据(Schema Free)

每日一课:02. 说说 Node. js 有哪些全局对象?

JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。

在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。

按照 ECMAScript 的定义,满足以下条件的变量是全局变量:

  • 在最外层定义的变量;
  • 全局对象的属性;
  • 隐式定义的变量(未定义直接赋值的变量)。

当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦然。

需要注 意的是,在 Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文。

注意: 最好不要使用 var 定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。

Node.js v20.2.0 文档:https://nodejs.cn/api/

全局对象

将全局对象分成两类:

  • 真正的全局对象
  • 模块级别的全局变量

真正的全局对象

  • Class:Buffer: 可以处理二进制以及非Unicode编码的数据,
    • 官网地址:https://nodejs.cn/api/buffer.html
  • process:process 对象提供有关当前 Node.js 进程的信息并对其进行控制。
    • 官网地址:https://nodejs.cn/api/process.html
  • console:node:console 模块提供了一个简单的调试控制台,类似于网络浏览器提供的 JavaScript 控制台机制。
    • 官网地址:https://nodejs.cn/api/console.html#%E6%8E%A7%E5%88%B6%E5%8F%B0
  • clearInterval、setInterval:设置定时器与清除定时器
  • clearTimeout、setTimeout:设置延时器与清除延时器
  • global:全局命名空间对象,墙面讲到的process、console、setTimeout等都有放到global中。
    • 官网地址:https://nodejs.cn/api/globals.html

模块级别的全局变量

这些对象在所有模块中都可用。 以下变量可能看起来是全局的,但实际上不是。 它们只存在于模块范围内,见 模块系统文档(https://nodejs.cn/api/globals.html):

  • __dirname
  • __filename
  • exports
  • module
  • require()

此处列出的对象特定于 Node.js。

参考文档

  • https://www.runoob.com/nodejs/nodejs-global-object.html
  • https://nodejs.cn/api/
  • https://vue3js.cn/interview

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

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

相关文章

代码随想录算法训练营第四十五天 | 力扣 70. 爬楼梯(进阶), 322. 零钱兑换, 279.完全平方数

70. 爬楼梯(进阶) 题目 70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 改为:一步一个台阶,两个台阶,三个台阶&#xff…

【浅学 JDBC】

浅学JDBC 笔记记录 一、1. JDBC的概念2. JDBC快速入门2.1 DriverManager2.2 Connection2.3 Statement2.4 ResultSet 3. JDBC入门案例使用3.1 查询所有学生信息3.2 根据id查询学生信息&&新增学生信息&&修改学生信息&&删除学生信息 一、 1. JDBC的概念 …

中科易安8周年,与你相约联网智能门锁

中科易安与物联网技术发展同频 持续推动安防信息化建设 打造多场景应用的数智化通行解决方案 促进技术与安全精准对接 联网智能门锁技术硬核 中科易安打造集NB-IoT、Sub-1G Cat.1、Wifi、RS485和BLE 5.0 在内的六大通信技术组网方案 以“联网”赋能智能门锁 实现通行数…

C++11之atomic原子操作

atomic介绍 多线程间是通过互斥锁与条件变量来保证共享数据的同步的,互斥锁主要是针对过程加锁来实现对共享资源的排他性访问。很多时候,对共享资源的访问主要是对某一数据结构的读写操作,如果数据结构本身就带有排他性访问的特性&#xff0c…

chatgpt赋能python:Python中的等待:理解和优化

Python中的等待:理解和优化 Python是一种强大的编程语言,在构建各种应用程序时很常用。但是,随着应用程序越来越复杂,需要等待一些操作时,Python中的等待传统上会导致性能下降。在这篇文章中,我们将深入了…

可持续能源技术改变世界

文章目录 一、你在工作或生活中接触过可持续能源技术吗?可以分享下你的经历与看法。二、你认为可持续能源技术的优势和挑战有哪些?三、你了解过可持续能源技术的应用现状吗?四、对于可持续能源技术真的否改变世界这个问题你怎么看&#xff1f…

ifconfig工具与驱动交互解析(ioctl)

Linux ifconfig(network interfaces configuring) Linux ifconfig命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置。同netstat一样,ifconfig源码也位于net-tools中。源码位于net-tools工具包中&am…

《消息队列高手课》课程笔记(七)

如何使用异步设计提升系统性能? 异步设计如何提升系统性能? 假设我们要实现一个转账的微服务 Transfer(accountFrom, accountTo, amount),这个服务有三个参数:分别是转出账户、转入账户和转账金额。 这个例子的实现过程中&…

chatgpt赋能python:Python中如何反转字符串:三种简单方法

Python中如何反转字符串:三种简单方法 当我们在处理字符串时,有时需要将其反向排列。在Python中,这可以通过以下三种简单方法实现: 1. 使用内置的切片方法 在Python中,可以使用字符串的切片方法将其反转。这种方法非…

(浙大陈越版)数据结构 第三章 树(上) 3.4 小白专场:树的同构(PTA编程题讲解)

题意理解和二叉树表示 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换变成T2,则称两棵树是“同构”的。 eg1:现请你判断如下两棵树(左侧为T1,右侧为T2)是否为同构树? 显然T1可以通过有限次左右孩子…

REST风格 -- SpringMVC入门保姆级教程(四)

文章目录 前言四、REST风格1.了解REST风格2.REST风格写法一般步骤3.REST风格快速开发4.REST风格中的注解5. 案例:基于REST风格页面数据交互 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然&#…

Redis高级篇 - 分布式缓存

分布式缓存 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题: 1.Redis持久化 Redis有两种持久化方案: RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件)&#xff0c…

iPad触屏笔哪个牌子好用?Apple Pencil的平替笔

从无纸化的广泛使用,电容笔成为无纸化中不可替代的一部分。但由于原装电容笔的昂贵,市面上的电容笔品牌众多,不知如何下手,今天给大家推荐几款好用又平价的Apple Pencil平替笔。顺便给不知道如何挑选电容笔的小伙伴科普一下电容笔…

车载网络测试 - CANCANFD - 基础篇_02

目录 七、与CAN总线相关的标准 1、ISO 11898,ISO16845 2、SAE J1939,ISO 11783,NMEA 2000,CANopen 3、ISO15765/ISO14229 4、ISO 17356/OSEK 5、CCP(CAN Calibration Protocol) 6、GMLAN,VWTP,FNOS,DCNet,MCNet 八、CAN总线的特点 九、CAN总线基本概念 七、与CAN总线相…

机器学习-4 决策树算法

决策树算法 算法概述分类算法与分类器决策树算法树模型决策树的原理决策树算法的关键决策树构造的基本思路 算法基本思想决策树的训练与测试三种经典的决策树生成算法基于信息增益的ID3算法基于信息增益率的C4.5算法C4.5算法C5.0算法 基于基尼系数的CART算法 算法流程算法关键问…

chatgpt赋能python:Python中的包

Python中的包 对于使用Python进行编程的开发者来说,包是一个非常重要的概念。包可以看作是一个包含了多个模块的文件夹,这些模块可以在代码中使用。通过使用Python中的包,开发者可以使代码更加模块化,提高代码的可维护性和可读性…

Emacs之git操作(一百零五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

Apache Impala(1):Impala简介

1 Impala 基本介绍 impala 是 cloudera 提供的一款高效率的 sql 查询工具,提供实时的查询效果,官方测试性能比 hive 快 10 到 100 倍,其 sql 查询比 sparkSQL 还要更加快速,号称是当前大数据领域最快的查询 sql 工具&#xff0c…

小主机折腾记13

这个月折腾的事比较多,记个流水账 1.600g2mt加装wifi模块; 买了ngff转pcie的转接卡,发现竟然不能原生支持蓝牙,需要额外接一个4pin转9针usb的线,600g2mt是没有那种通用的usb9针口的…… 而内建蓝牙的转接卡网上也有卖&…

【项目】ROS下使用N100模块

本文主要记录如何使用WHEELTEC N100 模块。 之前的版本是CP2102串口芯片,而2022年5月之后的N100采用的是CH9102串口芯片。 一、修改串口号: 工具:链接:https://pan.baidu.com/s/13Pdq45_Z0ZRwuaNN0I84Cg 提取码:i6j…