关系型数据库和非关系型数据库的区别与联系_谈谈关系型数据库与非关系型数据库的联系和区别-程序员宅基地

技术标签: 数据库  

数据库

一、概念

  1. 数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合

  2. 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

二、分类

  1. 关系型数据库

  2. NOSQL

三、NoSQL与关系型数据库的区别

  1. 存储方式

    传统的关系型数据库采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便。

    非关系型数据不适合这样的表格存储方式,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档

  2. 存储结构

    关系型数据库按照结构化的方法存储数据, 每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表的可靠性和稳定性都比较高,但带来的问题就是一旦存入数据后,如果需要修改数据表的结构就会十分困难。

    NoSQL数据库由于面对的是大量非结构化的数据的存储,它采用的是动态结构,对于数据类型和结构的改变非常的适应,可以根据数据存储的需要灵活的改变数据库的结构。

  3. 存储规范

    关系型数据库为了避免重复、规范化数据以及充分利用好存储空间,把数据按照最小关系表的形式进行存储,这样数据管理的就可以变得很清晰、一目了然,当然这主要是一张数据表的情况。如果是多张表情况就不一样了,由于数据涉及到多张数据表,数据表之间存在着复杂的关系,随着数据表数量的增加,数据管理会越来越复杂。

    NoSQL数据库的数据存储方式是用平面数据集的方式集中存放,虽然会存在数据被重复存储,从而造成存储空间被浪费的问题(从当前的计算机硬件的发展来看,这样的存储空间浪费的问题微不足道),但是由于基本上单个数据库都是采用单独存放的形式,很少采用分割存放的方式,所以这样数据往往能存成一个整体,这对于数据的读写提供了极大的方便。

  4. 扩展方式

    关系型数据库将数据存储在数据表中,数据操作的瓶颈出现在多张数据表的操作中,而且数据表越多这个问题越严重,如果要缓解这个问题,只能提高处理能力,也就是选择速度更快性能更高的计算机,这样的方法虽然可以一定的拓展空间,但这样的拓展空间一定有非常有限的,也就是关系型数据库只具备纵向扩展能力。

    NoSQ

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45158297/article/details/103130936

智能推荐

清华大学计算机科学陈莉,Institute of Computer Graphics and Computer-Aided Design | Li Chen(陈莉)...-程序员宅基地

文章浏览阅读422次。PublicationsLi Chen, Issei Fujsihiro, and Kengo Nakajima, "Optimizing Parallel Performance of Unstructured Volume Rendering for the Earth Simulator", Parallel Computing, Vol. 29, No. 3, 355-371, 2003...._li chen发表文章

Postman教程——发送第一个请求_使用postman发送第一个请求-程序员宅基地

文章浏览阅读1k次。系列文章首发平台为果冻想个人博客。果冻想,是一个原创技术文章分享网站。在这里果冻会分享他的技术心得,技术得失,技术人生。我在果冻想等待你,也希望你能和我分享你的技术得与失,期待。前言过年在家,闲来无事,正好我们小组年前一直都在使用Postman这个工具,很多新来的小伙伴很多时候都不能正确的使用Postman这个工具,或者说不能高效率的使用Postman这个工具。为了普及一下..._使用postman发送第一个请求

shell脚本中echo显示内容带颜色_怎么用shell脚本改变文件里面内容的颜色-程序员宅基地

文章浏览阅读373次。外壳脚本中的回波显示内容带颜色显示,回波显示带颜色,需要使用参数-e 格式如下:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如:echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色,36的位置是代表字的颜色 注:   1,字背景颜色和文字颜色之间是英文的“”   2,文字颜色..._怎么用shell脚本改变文件里面内容的颜色

《剑指Offer》读书笔记---面试题28:字符串的排列,(扩展:求字符串的所有组合)_剑指offer 字符串的排列扩展-程序员宅基地

文章浏览阅读3.2k次。题目:输入一个字符串,打印出字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。书上的解法:#include#include#include#include#includevoid Permutation( char *pStr ) ;void Permutation(_剑指offer 字符串的排列扩展

软件项目基线_软件基线-程序员宅基地

文章浏览阅读2.3w次,点赞10次,收藏46次。基线(base line)是软件工程活动从一个环节转入另外一个环节时对阶段产品或组件的标识。因为软件规模的膨胀和分工的细化,软件开发过程变得越来越复杂,每个阶段可能由不同类型的角色和人员来完成,因此有必要清晰标识上一阶段完成的成果和下阶段开始工作的基础。这种标识活动就是建立基线。根据同行评审或阶段评审的结果建立基线是质量保证人员(Quality Assurance,QA)的职责,项目参与人员(设计..._软件基线

华为服务器鼠标不响应,华为笔记本电脑鼠标失灵没反应如何解决-程序员宅基地

文章浏览阅读1w次。华为笔记本电脑鼠标失灵没反应如何解决阅读:4662时间:2019-12-23 17:17:50华为笔记本电脑鼠标失灵没反应如何解决?对于电脑来说,鼠标是一个非常重要的输入设备,没有了鼠标,许多用户操作起来就会比较麻烦,虽然说现在的笔记本电脑是可以无鼠标操作的,但是有鼠标和没有鼠标还是有很大的区别的。万一遇到了笔记本电脑鼠标失灵没反应的情况要如何解决?请看下文的详细介绍吧。具体 的解决方法:1、..._华为笔记本电脑鼠标没反应怎么办

随便推点

几种TCP连接中出现RST的情况_rst端口-程序员宅基地

文章浏览阅读3.1k次。目录[-]1 端口未打开2 请求超时3 提前关闭4 在一个已关闭的socket上收到数据总结参考文献:应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,_rst端口

Vue开发笔记-- 配置resolve映射路径_vue路径映射-程序员宅基地

文章浏览阅读3k次。 在Vue-Cli项目开发中,我们常会引用到文件资源,如果文件路径很长,使用起来很不方便,且代码看着不美观。例如:引用图片时,每次都要在图片路径前面加" ../../../assets/images ”字符串,如果我们不想使用这些字符串就需要配置webpack的resolve了。 打开webpack配置文件:在bulid文件夹下 找到resolve属性。..._vue路径映射

lostash Timeout executing grok 问题排查-程序员宅基地

文章浏览阅读2.3k次。Timeout executing grok 问题排查使用logstash的时候发现会有这个报错,导致logstash不稳定,input端是kafka,就会导致kafka的反复rebalance,一开始排查思路有问题,而且网上的资料可能都是其中的一个原因,所以导致我的排查思路偏了。1. 问题背景我有一组logstash 从kafka中消费日志数据,解析后丢到ES当中,提供一些日志的检索能力。大概的配置是这样的。1. 基础配置logstash版本 7.5.0jvmjava -ver_timeout executing

html几张图片自动互换,JavaScript实现切换多张图片-程序员宅基地

文章浏览阅读1.1k次。本文实例为大家分享了JavaScript实现切换多张图片的具体代码,供大家参考,具体内容如下循环切换图片HTML+CSS+JavaScripthtml部分 上一张下一张css部分* {padding: 0;margin: 0;}.outer {width: 1000px;background-color: #bfa;margin: 50px auto;text-align: center;pad..._3张图片js更换图片

Windows7--MQ队列管理器双向通道的建立_windows版 ibmmq创建发送通道-程序员宅基地

文章浏览阅读1.2k次。队列名队列属性 DATA本地队列define qlocal(DATA)REMOTE.DATA.R远程队列指向队列:DATA.R 指向队列管理器:TEST_RQMdefine qremote(REMOTE.DATA.R) rname(DATA.R) rqmname(TEST_RQM_windows版 ibmmq创建发送通道

Android 开源组件和第三方库汇总_stackblur组件-程序员宅基地

文章浏览阅读1.4w次,点赞4次,收藏46次。自己总结的Android开源项目及库。1、 github排名 https://github.com/trending,github搜索:https://github.com/search2、https://github.com/wasabeef/awesome-android-ui_stackblur组件

推荐文章

热门文章

相关标签