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

一篇文章带你了解什么是NoSQL

时间:2023-03-15 08:26:39 科技观察

1.什么是NoSQLNoSQL是一种非SQL(关系型)数据库,它使用预定义的表和列以外的其他数据模型。此类包含许多不同类型的数据库以及用于数据存储和操作的方法。2.什么是SQLNoSQL与事实上的标准关系(SQL)数据库相对立了几十年。SQL数据库将数据存储在由具有严格数据类型的列组成的预定义表中。表可以具有唯一性(表中行之间的关系)、检查约束(行中数据的验证)或外键约束(不同表中数据之间的关系)。示例关系数据模型:SQL是一种标准查询语言,用于在关系数据库中定义、操作和搜索数据。基本SQL查询:selectcustomer_no,first_name,last_name,last_purchasefromcustomerswhereaddress_state='CA'为什么关系数据库不够用?模式灵活性——关系数据库有一个固定的模式,这意味着它们只能保存数据库管理员预定义的对象(在表中)和属性(在列中)(写模式)。开发中的敏捷性——在写入数据之前必须定义模式会使开发数据库的速度变慢。在NoSQL数据库中,当需要读取数据的时候,只需要写数据,不用担心数据格式(读取schema),开发更加敏捷。数据大小——许多NoSQL数据库在构建时都考虑到了大规模数据,并且能够存储大量行或对象,从而牺牲了对其完整性的管理。三、NoSQL数据库的类型1、文档数据库文档数据库将数据存储在JSON文档中,JSON文档是键值对的分层集合。文档可能很复杂并且包含子文档和列表。这是代表客户的示例文档:{"id":"1","name":{"firstName":"John","lastName":"Doe"},"address":{"street":"Lombardstreet","city":"SanFrancisco","state":"CA","country":"US",}}热门文档数据库:MongoDBDynamoDBCouchbaseCouchDB2,key-value存储Key-value存储是最基本的NoSQL数据库,将数据存储在简单的键值对中(最简单的情况下都是纯字符串),这意味着您可以在特定标签下存储一些值。Redis的一个示例:>setcustomer1JohnDoe的流行键值存储:RedisBerkleyDB3,图形数据库图形数据库将数据表示为由节点和关系构建的网络。流行的图数据库:Neo4JGiraph4,宽列存储宽列存储类似于关系数据库,它们将数据存储在表中,但数据在物理上是按列组织的。宽列数据库中的数据是稀疏的,这意味着空列不占用空间,并且允许在表中创建数百、数千甚至数百万列。流行的宽列数据库:ApacheCassandra。阿帕奇HBase。谷歌大表。