常见数据库类型
今天我要带大家了解的是数据库,本文主要会从数据库的定义,分类,以及在HarmonyOS/OpenHarmony中如何使用数据库来进行数据管理。
数据库现在比较常见,很多应用都会使用数据库来管理储存数据。
什么是数据库
数据库(DataBase,简称DB),是指可以长期存放在计算机内部的、可以进行数据管理的仓库(可以直接理解为储存数据的仓库)。
- 数据库是依据数据结构来构建的,所以我们看到的数据是比较”条理化“的(数据库分为库、表和一条条记录)
- 查找的速度较快
- 数据共享
不过数据库有哪些类型,估计很多人都分不清楚,目前数据库类型大致分为三种
数据库类型有哪些?
数据库共有3种类型,为关系数据库、非关系型数据库和键值数据库。
1、关系数据库
关系型数据库是把数据以表的形式进行储存,然后再各个表之间建立关系,通过这些表之间的关系来操作不同表之间的数据。常见的关系型数据库有MySQL、Oracle、PostgreSQL、Microsoft 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中的数据管理,大家可以阅读这个文档,了解更多细节。
相关文章
- 记录使用Hibernate查询bean中字段和数据库列类型不匹配问题
- MySQL数据库备份
- PDO连接mysql和pgsql数据库
- 一文读懂数据库优化之分库分表
- 数据库治理利器:动态读写分离
- 向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))
- 利用PHP执行SQL文件,将SQL文件导入到数据库【转】
- 解密:金融级海量数据库OceanBase
- 优化MySQL数据库性能的八种方法
- MySQL数据库数据类型之集合类型SET测试总结
- 数据库中字段类型对应的C#中的数据类型
- 如何查看类型为LRAW的SAP ABAP数据库表字段的内容
- Atitit db deadlock prblm cause and solu 数据库死锁原因与解决 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享
- Atitit nosql的艺术 attilax著作 目录 1. 1.5NoSQL数据库的类型1 1.1. 1.5.1键值(Key/Value)存储1 1.2. 1.5.2面向文档的数据库1 1
- Database:五大数据库类型的简介(NDBMS/HDBMS/OODBMS/RDBMS/NoSQL)、两大主流数据库对比—关系型数据库VS非关系型数据库(存储方式/存储结构/存储规范等)之详细攻略
- 数据库MySQL、Oracle、SQLServer、db2分页查询语句
- 从零开始学数据库(一)——安装、启动、进入、创建表、检查表结构、类型说明、更改表项名、插入值
- Database:五大数据库类型的简介(NDBMS/HDBMS/OODBMS/RDBMS/NoSQL)、两大主流数据库对比—关系型数据库VS非关系型数据库(存储方式/存储结构/存储规范等)之详细攻略
- 数据库BLOB类型字段 判断是否为空
- 〖Python 数据库开发实战 - MySQL篇①〗- 数据库简介
- 〖Python 数据库开发实战 - Redis篇⑥〗- Redis数据结构 - 字符串类型
- Redis的那些事儿:关系型和非关系型数据库,非关系型数据库的类型,redis数据类型、编码格式、高性能、可以做什么、分布式锁失效的原因,string为采用sds数据类型,为什么是二进制安全的,
- 数据库范式
- 数据库中字段类型对应的C#中的数据类型
- 字段类型:mysql中int(3)与int(11)有什么区别吗?优化数据库字段占据磁盘的大小
- linux重置mysql数据库root密码
- VC++ 中ADO数据库的配置(Access2003-Access2007)