Python大数据:关系型数据库与非关系型数据库的区别

关系型数据库与非关系型数据库的区别

存储方式

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

非关系型数据库是以数据集的方式进行存储,即将大量数据都集中在一起存储,类似于键值对、图结构或者文档。

存储结构

关系型数据库按照结构化的方法存储数据,在插入数据前需定义好存储数据的表结构,这使得整张数据表的可靠性和稳定性都比较高,但数据表存储数据后,若要修改数据表的结构就会十分困难。

非关系型数据库采用的是动态结构,如果面对大量非结构化数据的存储,它可以非常轻松的适应数据类型和结构的改变,也可以根据数据存储的需要灵活的改变数据库的结构。

存储规范

关系型数据库为了规范化数据、避免重复数据以及充分利用存储空间将数据按照最小关系表的形式进行存储,这使得数据管理变得很清晰、一目了然。不过随着表数量的增加,表之间的关系会导致数据的管理变得越来越复杂。

非关系型数据库采用用平面数据集的方式集中存放数据,虽然会出现数据被重复存储造成浪费存储空间的情况。但是通常单个数据库都是采用单独存储的形式,很少采用分割存储的方式,因此数据往往被存储成一个整体对数据的读写提供了极大的方便。

扩展方式

关系型数据库主要通过提高计算机自身性能缓解存储与读写压力,即所谓的纵向扩展。因为数据表之间存在着各种关系,所以采用横向扩展的方式会较为复杂,需要保证具有关联的数据表在同一服务器。

非关系型数据库采用数据集存储数据,这使得数据之间无关联性,可以分布式存储,因此可以采用横向扩展方式来扩展数据库,也就是说,可以添加更多数据库服务器到资源池来缓解存储与读取压力。

查询方式

关系型数据库是采用结构化查询语言(即SQL)来对数据库进行查询,SQL支持数据库的CRUD操作,具有非常强大的功能。

非关系型数据库使用的是非结构化查询语言(UnQL),UnQL以数据集(如文档)为单位来管理和操作数据,由于没有统一的标准,所以每个数据库厂商提供产品标准是不一样的。

规范化

在关系型数据库中,一个数据实体需要分割成多个部分,然后再对分割的部分进行规范化,规范化后再分别存储到多张关系型数据表中,这是一个复杂的过程。

非关系型数据库不需要规范化数据,通常是在一个单独的存储单元中存储一个复杂的数据实体。

授权方式

关系型数据库包括Oracle、SQLServer、DB2以及MySQL等,除了MySQL以外,大多数的关系型数据库都是非开源的,若要使用的话,则需要支付高昂的费用。

非关系型数据库包括Redis、HBase、 MongoDB、 Memcache等都是开源的,使用时不需要支付费用(企业版除外)。

给TA打赏
共{{data.count}}人
人已打赏
python

Python开发实例:Python中如何操作Surface对象绘制图形?

2023-2-23 22:45:28

python

Python中自动化办公的库有哪些?盘点史上最全的34个Python 自动化办公库

2023-8-12 21:41:56

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
打开微信,扫描左侧二维码,关注【旅游人lvyouren】,发送【101】获取验证码,输入获取到的验证码即可解锁复制功能,解锁之后可复制网站任意一篇文章,验证码每月更新一次。
提交