浅谈NoSQL数据库

数据库

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

数据库有: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

猜你喜欢

转载自blog.csdn.net/BradenHan/article/details/130939443