#创作者激励#常见数据库类型 原创

鸿蒙坚果派
发布于 2023-3-18 10:20
浏览
0收藏

【本文正在参加2023年第一期优质创作者激励计划】
#创作者激励#常见数据库类型-鸿蒙开发者社区

坚果,润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,多个平台的专家博主。
主页:https://ost.51cto.com/person/posts/14830231

今天我要带大家了解的是数据库,本文主要会从数据库的定义,分类,以及在HarmonyOS/OpenHarmony中如何使用数据库来进行数据管理。

数据库现在比较常见,很多应用都会使用数据库来管理储存数据。

什么是数据库

数据库(DataBase,简称DB),是指可以长期存放在计算机内部的、可以进行数据管理的仓库(可以直接理解为储存数据的仓库)。

  • 数据库是依据数据结构来构建的,所以我们看到的数据是比较”条理化“的(数据库分为库、表和一条条记录)
  • 查找的速度较快
  • 数据共享

不过数据库有哪些类型,估计很多人都分不清楚,目前数据库类型大致分为三种

数据库类型有哪些?

数据库共有3种类型,为关系数据库、非关系型数据库和键值数据库。

1、关系数据库

关系型数据库是把数据以表的形式进行储存,然后再各个表之间建立关系,通过这些表之间的关系来操作不同表之间的数据。常见的关系型数据库有MySQLOraclePostgreSQLMicrosoft Access等等。

关系型数据库是依据关系模型来创建的数据库,所谓的关系模型是指 “一对一、一对多、多对多”,通过关系模型来构建二维表格

  • 一对一:身份证号、校园卡
  • 一对多:班级-学生、部门-职员
  • 多对多:课程-学生、书籍-作者

优点

  • 数据安全(磁盘)、数据一致性
  • 二维表结构直观,易理解
  • 使用SQL语句操作非常方便,可用于比较复杂的查询

缺点

  • 读写性能较差
  • 不擅长处理较复杂的关系

2、非关系型数据库(NoSQL)

相比于关系型数据库,表与表之间是有关系的,利用表与表之间的关系进行各种操作。而NoSQL没有固定的表结构,且数据之间不存在表与表之间的关系,数据之间可以是独立的,因此NoSQL也可以用于分布式系统上。

NoSQL大致可以分为四种:

分类 数据模型 优势 举例
键值数据库(key-value) 哈希表 查询快、易部署、高并发 Redis、Memcached
列存储数据库 列式数据存储 查询快,数据压缩率高,不需要额外建立索引 HBase
文档型数据库 键值对扩展 将数据以文档的形式储存,数据结构不定 MongoDB
图数据库 节点和关系组成的图 利用图结构的相关算法 Neo4j、JanusGraph
  • 键值数据库(key-value)

键值数据库类似于传统语言中使用的哈希表。可以通过key来添加、删除、查询数据,因为使用key主键来访问,所以键值数据库有很高的性能及拓展性。

例如现在很火的Redis,由于其数据是储存于内存,读写速度非常快。Redis在一秒内读写可以超过十万个键值。它虽然是作为数据库来开发的,现在更广泛的应用于缓存、消息队列。另外就是不论在分布式数据服务中,还是首选项中,都是存在KV数据模型。

  • 列存储数据库

不同于关系型数据库的以行为单位储存,列存储数据库将数据存储于列族中,一个列族存储经常被一起查询的相关数据。由于它的查询速度快,列式数据库则应该发挥他查询速度方面的优势,主要用于海量数据分析一类的方面。

  • 文档型数据库

文档型数据库与键值数据库是类似的,只不过它将数据用文档的形式储存,数据存储可以是XML、JSON等多种形式。

  • 图数据库

图数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。因为使用的是灵活的图模型,所以可以拓展到多个服务器上。图数据库一般用于推荐系统、处理社交网络等等。

最后关于OpenHarmony中的数据管理,大家可以阅读这个文档,了解更多细节。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-3-20 18:32:17修改
收藏
回复
举报
回复
    相关推荐