当前位置: 首页 > 科技观察

浅谈关系型和非关系型数据库

时间:2023-03-19 20:29:43 科技观察

大家在做网站的时候,可能需要永久保存一些数据。这时候,我们通常会引入一个数据库来永久存储数据。那么,什么是数据库?数据库是建立在计算机存储设备上,按照数据结构对数据进行组织、存储和管理的仓库。数据库是如何分类的?数据库通常分为三种类型:层次数据库、网络数据库和关系数据库。不同的数据库根据不同的数据结构进行链接和组织。在当今的互联网中,最常见的数据库模型主要有两种,即关系型数据库和非关系型数据库。关系型数据库对比非关系型数据库对比看看非关系型数据库的特点Neo4j是一个高性能的NoSQL图数据库,将数据存储为图中的节点以及节点之间的关系。Neo4j中最基本的两个概念是节点和边。节点代表实体,边代表实体之间的关系。节点和边都可以有自己的属性,不同的实体通过各种关系关联起来,形成复杂的对象图。Neo4j提供了搜索和遍历对象图的功能:深度搜索、广度搜索。特点:完整的ACID支持;高可用性;轻松扩展到数亿个节点和关系;通过遍历工具进行高速数据检索;属性由Key-Value键值对组成。应用:社交网络、歌曲信息、状态图Hbase列式存储以流的方式将所有数据存储在列中。对于任何一条记录,索引都可以快速获取列上的数据;列存储支持行检索,但这需要从每一列中获取匹配的列值并重组行。HBase(HadoopDatabase)是一个高可靠、高性能、面向列、可扩展的分布式存储系统。利用HBase技术,可以在廉价的PCServer上搭建一个大规模的结构化存储集群。HBase是GoogleBigTable的开源实现,模仿并提供了Google基于文件系统的BigTable数据库的所有功能。HBase可以直接使用本地文件系统或Hadoop作为数据存储方式。但是,为了提高数据可靠性和系统健壮性,利用HBase处理大量数据的功能,需要使用Hadoop作为文件系统。HBase只能通过主键(行键)和主键的范围来检索数据。只支持单行事务,主要用于存储非结构化和半结构化的松散数据。Hbase中表的特点:大型、稀疏、面向列MongodDB是一个基于分布式文件存储的开源数据库系统,为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为文档,数据结构由键值对组成。特点:面向集合存储,易于存储对象类型数据;自由模式;支持动态查询;支持全索引,包括内部对象;支持查询;支持复制和故障恢复;使用高效的二进制数据存储,包括大对象(如视频);自动处理分片,支持云计算级别的可扩展性;支持RUBY、PYTHON、JAVA、C++、PHP、C#等多种语言;文件存储格式为BSON(JSON的扩展);可以通过网络访问。适用场景:网站数据;缓存;大容量、低价值的数据;高可扩展性场景;对象和JSON数据的存储。不适用场景:高事务性系统;传统商业智能应用;需要SQL的问题。RedisRedis是一个键值存储系统。key是字符串类型,value只能通过key进行操作。支持的数据类型包括字符串、列表、集合、zset(有序集合)和散列。Redis支持主从同步,数据可以从主服务器同步到任意数量的从服务器。Redis事务允许在一个步骤中执行一组命令。事务有两个属性:一个事务中的所有命令都作为一个独立的操作顺序执行;Redis事务是原子的,这意味着要么执行所有命令,要么不执行任何命令。Redis事务由命令MULTI发起,然后传递事务中所有需要执行的命令列表和整个事务,最后由EXEC命令执行。例如,假设我们使用关系型数据设计如下数据库Neo4jHbaseMongodbRedis,供同学们选择。比较优缺点。NewSQL是各种新型可扩展/高性能数据库的缩写。具有NoSQL存储和管理海量数据的能力,保持了传统数据库支持ACID和SQL的特性。NewSQL的共同特点:支持关系数据模型;使用SQL作为其主要接口。