关系型数据库和非关系型数据库的区别以及应用的场景_有了非关系型数据库还需要关系型数据库么-程序员宅基地

技术标签: 8月学习打卡  

关系型数据库:
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
常见的关系型数据库:mysql,oracle,SQL Server
存储方式::行存储,一个表里每一个对象的记录存储一行,一行里包括了该记录的所有特征
在这里插入图片描述
优缺点以及应用场景:
优点:

1)复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

2)事务支持使得对于安全性能很高的数据访问要求得以实现。

缺点:

1)不擅长大量数据的写入处理

2)不擅长为有数据更新的表做索引或表结构(schema)变更

3) 字段不固定时应用不方便

4)不擅长对简单查询需要快速返回结果的处理

使用场景:

1)需要做复杂处理的数据;

2)数据量不是特别大的数据;

3)对安全性要求高的数据;

4)数据格式单一的数据;

非关系型数据库:
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
常见的非关系型数据库:

(1)键值对存储(key-value):Redis键值对存储,优势:快速查询,缺点:存储数据缺少结构化。

(2)列存储:Hbase,优势:快速查询,扩展性强。缺点:功能相对于局限。

(3)文档数据库存储:MongoDB,早起应用多。优势:要求不特别的严格。缺点:查询性不高,缺少统一查询语法。

(4)图形数据库存储:应用于社交网络,优势:利用图结构相关算法。缺点:需要整个图计算才得出结果,不容易做分布式集群方案。
存储方式:
以列为单位进行数据的存储,一列作为一个记录,每个对象的记录会存储多行,各行相对独立;
在这里插入图片描述
优缺点以及使用场景:
优点:

1)nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。

2)nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。

3)nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。

4)不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。

缺点:

1)无法对表进行复杂的计算,不支持join等功能。

使用场景:

1)海量数据存储;

2)多格式的数据存储;

3)对查询速度要求快的数据存储;
对非关系型数据库中又该如何选择合适的数据库呢
redis是一个高性能的(key/value)分布式内存数据库,
应用的场景:
(1) 缓存(数据查询,短连接,新闻内容,商品内容等),使用最多
(2) 聊天室在线好友列表
(3) 任务队列(秒杀,抢购,12306等)
(4) 应用排行榜
(5) 网站访问统计
(6) 数据过期处理(可以精确到毫秒)
(7) 分布式集群架构中的session问题

Mongodb存储的也是key/value,只不过它的value是json类型,适合存储对象类型的数据,
1)网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2)缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。
3)高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。

关系型数据库和非关系型数据库的比较

区别 关系型数据库 非关系型数据库(Nosql)
存储方式 表格式存储。 存储在表的行和列中。他们之间很容易关联协作存储,提取数据很方便 通常存储在数据集中,就像文档、键值对或者图结构。
存储结构 结构化数据。 数据表都预先定义了结构(列的定义),结构描述了数据的形式和内容。这一点对数据建模至关重要,虽然预定义结构带来了可靠性和稳定性(优点),但是修改这些数据比较困难(缺点)。 基于动态结构,使用与非结构化数据。因为Nosql数据库是动态结构,可以很容易适应数据类型和结构的变化。
查询方式 结构化查询语言来操作数据库(就是我们通常说的SQL) 关系型数据库表中主键 关系型数据库使用预定义优化方式(比如索引)来加快查询操作 以块为单元操作数据,使用的是非结构化查询语言(UnQl),它是没有标准的 Nosql中存储文档的ID 更简单更精确的数据访问模式
事务 遵循ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)) 支持对事务原子性细粒度控制,并且易于回滚事务。 遵循BASE原则(基本可用(Basically Availble)、软/柔性事务(Soft-state )、最终一致性(Eventual Consistency)) Nosql数据库是在CAP(一致性、可用性、分区容忍度)中任选两项,因为基于节点的分布式系统中,很难全部满足,所以对事务的支持不是很好,虽然也可以使用事务,但是并不是Nosql的闪光点。
性能 为了维护数据的一致性付出了巨大的代价,读写性能比较差。在面对高并发读写性能非常差,面对海量数据的时候效率非常低。 Nosql存储的格式都是key-value类型的,并且存储在内存中,非常容易存储,而且对于数据的 一致性是 弱要求。Nosql无需sql的解析,提高了读写性能。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46043015/article/details/107896330

智能推荐

DB2对SEQUENCE进行授权_db2 sequence授权-程序员宅基地

文章浏览阅读1k次。场景:在A模式下创建了序列TEST_SEQ,但是当B模式使用该序列时发现报错。此时就需要对B模式授权。具体步骤如下A模式下执行授权:grant usage on sequence igw.TEST_SEQ to ipay;B模式下创建别名:create or replace alias ipay.TEST_SEQ for sequence igw.TEST_SEQ这样模式A和B可以共用..._db2 sequence授权

qt5.9+vtk7.1.1+pcl1.8.1(使用qvtkWidget控件显示)_#include "qvtkwidget.h-程序员宅基地

文章浏览阅读571次,点赞3次,收藏3次。1.new file or project2.Qt Console A…3.add qvtkWidget.proSOURCES += \ main.cpp \ mainwindow.cppHEADERS += \ mainwindow.hFORMS += \ mainwindow.uiINCLUDEPATH += /usr/include/eigen3INCLUDEPATH += /usr/local/include/v_#include "qvtkwidget.h

UE5常用操作_ue5怎么隐藏摄像机-程序员宅基地

文章浏览阅读270次。使用ctrl+B跳转到对应object目录。_ue5怎么隐藏摄像机

2023全国职业院校技能大赛“云计算应用”赛项_全国大学生云计算大赛-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏11次。2023全国云计算应用赛项对比2022国赛改点:改点一:由个人赛改为双人团体赛改点二:openstack版本还是采用2022年国赛版本Train版,k8s版本从v1.22.1升级为v1.25改点三:公有云部分新增边缘计算改点四:私有云30分不变,容器云由于原来的40分减少到30分,而公有云从30分增加到40分改点五:时间由三天改为一天有关于比赛任何问题或需要备赛提前了解环境的选手欢迎加q私聊学习交流省赛、国赛、职业院校技能大赛_全国大学生云计算大赛

科学计算机计算内插法,线性插值计算器-程序员宅基地

文章浏览阅读4.5k次。本文部分提供的计算器可用于解析几何计算中,以找出介于两个已知比率之间的线性插值未知值。让点 (x1, y1), (x2, y2)和 (x3,y3)在xy平面上的同一直线上。该计算器可用于找出介于两个已知比率之间的未知值。范例 :让两个点(0,1)和(4,9)在一条直线上。我们可以使用此计算器找到k的值,以使点(k,5)在包含点(0,1)和(4,9)的线上。您可以分别用(0, 1)和(4, 9)代替..._内插法计算器

超详细NMAP安装保姆级教程,Nmap的介绍、功能并进行网络扫描,2023年收藏这一篇就够了-程序员宅基地

文章浏览阅读759次,点赞25次,收藏24次。超详细NMAP安装保姆级教程,Nmap的介绍、功能并进行网络扫描,2023年收藏这一篇就够了

随便推点

QT 网络编程(一)-程序员宅基地

文章浏览阅读1.1k次,点赞38次,收藏20次。Qt 网络编程相关

软工视频总结-程序员宅基地

文章浏览阅读614次。经过十天的时间,对软工视频进行一下简单的总结。软工视频总共有24讲,一讲大约50分钟。前3章介绍软工视频的历史。 第 6 讲 1.需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决,目标系统的“做什么”的问题。 2.问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。

python bad magic number_科学网-python反编译软件推荐uncompyle6-Bad magic number in .pyc-陈照强的博文...-程序员宅基地

文章浏览阅读2.6k次。背景从友方那边获得了pyc文件,但是由于他当时用的是python2.6编译的,而现在python2.6几乎被淘汰掉了,安装了python2.7 等其他版本无法运行该pyc文件,报错 RuntimeError: Bad magic number in .pyc file 。安装了python 2.6 后,运行该文件不报错,但是依赖模块openbabel,openbabel在python2.6中安装稍..._bad magic number in .pyc file

C语言中的数组(1)-程序员宅基地

文章浏览阅读902次,点赞29次,收藏17次。一维数组的创建和初始化,一维数组的使用,一维数组在内存中的存储,以及计算数组元素的个数的方法。

android app启动页(闪屏页)白屏快速优化方案实践_android启动页大小闪屏-程序员宅基地

文章浏览阅读770次,点赞8次,收藏8次。希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。这里放一下资料获取方式:GitHub好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。_android启动页大小闪屏

win10下安装最新版HALCON19.05_halcon19.11 x86下载-程序员宅基地

文章浏览阅读9.7k次,点赞4次,收藏24次。借鉴博客 https://www.51halcon.com/thread-387-1-1.html1.下载HALCON官网下载地址 https://www.mvtec.com/download/halcon/找了很多教程,终于成功安装好HALCON了,在这里该大家分享一下过程,亲测有效。按照上图中标记选择下载,下载过程应该是需要注册一个邮箱,注册就好。2.安装下载完就可以直接安装..._halcon19.11 x86下载

推荐文章

热门文章

相关标签