Nosql 概念释义

2023-11-16

  进几年常常听到一个高大上的名字Nosql,再加上鼓吹者说Nosql将会消灭关系数据库,今天怀着好奇心里,简单了解了以下Nosql的概念,发现其实没有那么神秘,被鼓吹者夸大其词了,导致我等门外汉一下子给打懵了。
  我认为,一个新技术要想让大家使用,首先得有一个好的来龙去脉,知道这个技术出现的原因,从而学习时候也就能抓住重点。
  Nosql的出现原因是,关系数据库是一个重量级的工具,可是如果要管理一个比较简单的数据库,比如要管理一个电话本,只有名字和电话号两个信息,采用关系数据库必然造成系统消耗资源且不易使用,因此可以就这类情况有针对性的开发一些只针对该需求的数据库,Nosql就是这类数据库的统称。
  下面就今天的简单理解,做一个记录。
  本文并不涉及任何Nosql的技术细节,只是一个概念普及,期望能起到一个破除神秘感的效果。

引言

  Nosql是NOT ONLY SQL的意思,Nosql之前,比较流行的数据库就是关系数据库。
  SQL(Structured Query Language:结构化查询语言)是关系数据库最常见的工具语言。
  Nosql实质是一些非关系数据库的统称,为了和关系性数据库区别所以起了一个比较拉风的名字,好让大家尽快认识。和SQL语言没什么关系,其实更合理的名字应该是 NOT ONLY Relation。

Nosql和关系数据库

  其两者的关系,可以借用一句话说明:“随便拿一把刀,都可以用来切菜,切肉,打架,砍树,削水果;但是这把刀肯定不是最适合这些所有工作的,因此需要菜刀,水果刀,斧子等”。关系数据库就是一把通用的刀,可以做很多工作,Nosql就是一把为具体业务使用的刀。
  并不是所有的数据都比较适合关系数据库的,比如数据结构就是简单的N组(key,value)对,那么使用关系数据库就是大材小用,且会导致效率低下,此时采用hash等方式不失为一个比较简单快速的方法。
  关系数据库是一个很好的通用型数据库,这里面你可以放任何东西,而且它的一切都是可以预期的。随着行业的发展,大家开始对业务上的一些问题了解越来越深入,而且这些业务的量也大到了你愿意单独为它搭一套系统。此时,不同的nosql作为不同特定问题的工具出现就自然而然了。

Nosql 

常见的Nosql数据库有以下几种:

  1. 键值(Key-Value)存储数据库
  2. 列存储数据库
  3. 文档型数据库  
  4. 图形(Graph)数据库

总结

  Nosql没有那么神秘,其泛指非关系型数据库;也并不会向有些人说的那样,Nosql比关系数据库强大,两者各有优势,用途不同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nosql 概念释义 的相关文章

  • 嵌入定义绑定变量的 Oracle PL/SQL 代码的 Shell 脚本

    如果我运行下面的脚本 我会收到错误SP2 0552 未声明绑定变量 OUTRES 那么 如何定义绑定变量OUTRES以及在哪里定义呢 usr bin bash sqlplus s scott tiger lt lt EOF declare
  • NOLOCK 和 UNCOMMITTED 之间有什么区别

    我使用 SQL Server 2012 我写了两个查询 但是它们之间有什么不同NOLOCK and UnCommitted SELECT lastname firstname FROM HR Employees with READUNCOM
  • 插入MYSQL时自动初始化GETDATE()

    类似问题 https stackoverflow com questions 17700239 mysql column automaticly current time of insert w3schools 也许有用的链接 http w
  • SQL最近的命令?微软SQL

    我只是编写一个查询来查看我的客户数据库并列出他们下了多少订单等 我正在努力添加到此查询中的是只显示该电子邮件的最新 OrderID 有任何想法吗 这是我的查询 select top 1000 BuyerEMail COUNT HowMany
  • 使用实体框架创建临时表

    我想使用实体框架在 SQL Server 中创建临时表 我有什么办法可以做到这一点吗 如果我可以创建临时表 我的下一个问题是 如何读取它 提前致谢 Andr 好吧 所以你不喜欢存储过程路线 说实话我也不喜欢 但这是我能想到的最快的方法 基于
  • 用于选择项目/属性列表中具有多个属性的项目的 SQL 语句是什么?

    假设我有一个表 其中列出的项目和属性如下 frog green cat furry frog nice cat 4 legs frog 4 legs 我想从项目列中选择同时具有绿色和 4 条腿属性的唯一对象 在这种情况下 我希望只返回青蛙对
  • 从另一个表中选择范围之间的记录

    我有两张桌子 比如说Table1 and Table2 Table1 ID RN 11 1 12 2 13 3 14 4 15 5 16 6 17 7 18 8 19 9 10 10 Table2 ID FromRN ToRN 1 1 3
  • 处理多种权限类型的最佳方法是什么?

    我经常遇到以下场景 我需要提供许多不同类型的权限 我主要使用 ASP NET VB NET 和 SQL Server 2000 Scenario 我想提供一个可以处理不同参数的动态权限系统 假设我想授予某个部门或特定人员访问应用程序的权限
  • 如何比较两个日期以查找 SQL Server 2005 中的时间差,日期操作

    我有两列 job start job end 2011 11 02 12 20 37 247 2011 11 02 13 35 14 613 如何使用 T SQL 查找作业开始和作业结束之间经过的原始时间量 我试过这个 select job
  • Rails 5.2.2(活动记录)WITH 语句

    我正在使用 Rails 5 2 2 并且有一个使用 WITH 语句的复杂查询 我需要使用左外连接创建该语句 我该如何做WITH活动记录中的语句 我的 TOTAL PROFILES 由查询对象驱动 并且会发生变化 而其余部分将始终保持不变 所
  • 分区表查询仍然扫描所有分区

    我有一个包含超过十亿条记录的表 为了提高性能 我将其分区为30个分区 最常见的查询有 id 在他们的 where 子句中 所以我决定对表进行分区id column 基本上 分区是这样创建的 CREATE TABLE foo 0 CHECK
  • SELECT * FROM 员工 WHERE NULL IS NULL; SELECT * FROM 员工 WHERE NULL = NULL;

    最近开始学习oracle和sql 在学习的过程中 我遇到了我的朋友在面试时被问到的几个问题 SELECT FROM Employees WHERE NULL IS NULL 此查询生成Employees 表中的所有行 至于我所理解的Orac
  • 执行Insert命令并返回Sql中插入的Id

    我正在 MVC 4 中使用 C 将一些值插入到 SQL 表中 实际上 我想插入值并返回最后插入记录的 ID 我使用以下代码 public class MemberBasicData public int Id get set public
  • PostgreSQL 8.3 中不为空且唯一约束的增量字段

    我有一个表 项目 其中有一列 位置 位置具有唯一且非空的约束 为了在位置 x 插入新行 我首先尝试增加后续项目的位置 UPDATE items SET position position 1 WHERE position gt x 这会导致
  • 删除除一行之外的所有具有重复值的行

    我有一个包含三列的表 KEY VALUE and LAST UPDATED 有重复的VALUE字段 我想删除所有具有相同的行VALUE和其他人一样except获取最新更新的信息 因此 如果表包含这些行 1 A 2013 11 08 2 B
  • HQL:从 Eager 表中获取连接集合

    我有四张桌子 RootNode Will return multiple root nodes SubNode Will return one sub node per root node SubNodeChildren1 Will ret
  • mysql 中的 max(长度(字段))

    如果我说 select max length Name from my table 我得到的结果是 18 但我也想要相关数据 所以如果我说 select max length Name Name from my table 这是行不通的 我
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn
  • 如何设置 ssrs 报告上日期和时间的格式?

    在 SSRS 报告中我需要显示todays date and current time 我试过这个 FormatDateTime Now MM dd yyyy hh mm tt 但这对我来说不起作用 给出了错误 任何人请帮助我express
  • PostgreSQL:用以前的值填充时间序列查询中的 NULL 值

    我有一个包含时间相关信息的数据库 我想要一个包含每分钟值的列表 像这样 12 00 00 3 12 01 00 4 12 02 00 5 12 03 00 5 12 04 00 5 12 05 00 3 但是 当几分钟内没有数据时 我得到如

随机推荐

  • 华为od机试题1 真题

    华为od机试题 真题 86 射击比赛成绩排序 85 计算屏幕字母数量 84 组成最大数字 82 输出字符串中最小数字 81 数字4的个数 80 整数排列 79 多条件排列 78 时间排序 以下题目附带Java解法 是我个人写的 不一定是标准
  • vue新ref语法糖争议

    近日 Vue 发明人尤雨溪在 Vue RFCs 下提交了一份新的 Ref 语法糖提案 该提案一经发布便引来了不少争议 提案内容 这份提案就是在单文件组织 SFC 中引入一个新的script 标签写法 写法为 关于为什么这样做 尤雨溪表示 一
  • 基于EEGLAB的ICA分析

    目录 1 ICA原理 2 ICA的实现 3 ICA成分识别 4 ICLabel识别并去除伪迹 5 ICA成分识别练习 1 ICA原理 得到的每一个地形图 实际上就是它的权重谱 投射 根据原成分恢复原始信号 选择性投射 去伪 2 ICA的实现
  • java Comparator 多个字段比较

    List 中元素需要排序时 需要比较元素值 当元素是复杂对象时 有时需要根据多个字段进行排序 package com example demo domain import lombok Getter import lombok NoArgs
  • 八十九.计数排序、基数排序(查找与排序(四))——JAVA

    查找与排序 一 查找与排序 二 查找与排序 三 计数排序 一句话 用辅助数组对数组中出现的数字计数 元素转下标 下标转元素 步骤 1 找出原数组中元素值最大的 记为max 2 创建一个新数组helper其长度是max加1 其元素默认值都为0
  • Linux bluez蓝牙开发的准备工作

    最近为了搞这个蓝牙的事情 忙碌了好几天 我就是想结合 bluez 的代码随便玩一下蓝牙设备 而且能够参考源码写点测试程序来操作这个蓝牙设备 这里只是说明 Linux 下的准备工作而非嵌入式的arm 1 系统支持 我用的是真机安装的 Debi
  • springboot:整合rabbitmq之重试机制

    当我们消息消费失败的时候 可以进行重试 什么情况下会重发消息 1 网络抖动 2 程序抛出异常没有try catch RabbitMQ自动补偿机制触发 多用于调用第三方接口 1 当我们的消费者在处理我们的消息的时候 程序抛出异常情况下 默认无
  • FFmpeg测试视频的实时码流(音视频学习笔记五)

    前言 这篇博文记录一个简单的实时码流测试程序 事实上FFmpeg打开媒体文件后就可以获得整个视频的平均码流 只计算视频码流 但是无法获取实时码流 因为后面的工作需要对编解码做一些优化 需要实时观测码流 这里先实现一个比较简单的版本 运行结果
  • 简单的控制台学生信息系统

    package studentsystem import java util ArrayList import java util Scanner public class APP ArrayList
  • 华为OD机试 - 英文输入法 - 逻辑分析(Java 2023 B卷 100分)

    目录 专栏导读 一 题目描述 1 需求如下 2 注意 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 3 说明 4 区分大小写 如果联想不到 输出前缀 华为OD机试 2023B卷题库疯狂收录
  • tms xdata开发连接sqlite数据库的rest server

    1 使用向导 2 设置fdconnection的连接属性 3 设置授权 否则服务无法运行 4 运行tms data modeler 工具 5 将刚刚生成的unipersons pas文件加入到工程中 6 结果
  • 互联网摸鱼日报(2023-07-20)

    互联网摸鱼日报 2023 07 20 InfoQ 热门话题 龙蜥操作系统重磅更新 全面支持智能计算 兼容主流AI框架 微软赢麻了 联合Meta 重磅发布开源 可直接商用大模型Llama 2 网友 OpenAI 感觉如何 ChatGPT 提效
  • 【redis事务】@Transactional对Redis事务起作用(包含redis+lua)

    redis事务 Transactional对Redis事务起作用 包含redis lua 一 前言 二 准备 三 StringRedisTemplate 开启事务 四 关键代码 验证 Transactional对redis事务是否生效 五
  • java帧结构_详细解析Java虚拟机的栈帧结构

    什么是栈帧 正如大家所了解的 Java虚拟机的内存区域被划分为程序计数器 虚拟机栈 本地方法栈 堆和方法区 什么 你还不知道 赶紧去看看 Java虚拟机内存结构及编码实战 这次要介绍的栈帧 Stack Frame 就是Java虚拟机中的虚拟
  • stm32F1的JTAG、SWJ作为普通引脚使用。禁用JTAG、SWJ。

    stm32F1的JTAG SWJ引脚 为 PA13 PA14 PA15 PB3 PB4 单片机复位后 默认功能为 JTAG SWJ 而实际使用中 一般只使用 SWCLK SWDIO这两个引脚做 Debug 其余的引脚可以空出来 重新定义为普
  • 红外避障小车(ZK-2)初步拼装

    红外避障小车 ZK 2 初步拼装 一 拼装零件 1 M330螺丝4个 2 M312铜柱4个 3 M8螺丝4个 M36螺丝8个 4 码盘2个 5 M3螺母8个 6 T型小支架4个 7 船型开关1个 8 轮胎2个 9 万向轮1个 10 电池盒1
  • [Java反序列化]AspectJWeaver反序列化

    Java反序列化 AspectJWeaver反序列化 前言 2021年二月份ysoserialize增加了这条AspectJWeaver链子 之后陆续在2021年的D3CTF以及国赛决赛中都出现了这条链子的攻击 所以学习一下AspectJW
  • 深入学习jquery源码之replaceWith()和replaceAll()

    深入学习jquery源码之replaceWith 和replaceAll replaceWith content fn 概述 将所有匹配的元素替换成指定的HTML或DOM元素 参数 content String Element jQuery
  • 网络推广引流方法大全

    在互联网的圈子里有关网络推行的问题是一个永久的话题 你的商品哪怕再好假如没有推行进来一切都是白搭 经常听有人说 酒香不怕巷子深 但分离当今社会的方式 特别是在竞争日益严酷的今天我想 酒香也会怕巷子深了 进入互联网时期 企业产品推行再也不能仅
  • Nosql 概念释义

    进几年常常听到一个高大上的名字 osql 再加上鼓吹者说Nosql将会消灭关系数据库 今天怀着好奇心里 简单了解了以下Nosql的概念 发现其实没有那么神秘 被鼓吹者夸大其词了 导致我等门外汉一下子给打懵了 我认为 一个新技术要想让大家使用