|数据库有哪些分类?应该怎样选择?终于有人讲明白了
导读:数据库通常用来存储结构化数据 , 这些数据有明确定义的格式 。 在过去的几年中 , 已经发布了许多数据库 , 可供我们选择的数据库每年都在增长 。 这些数据库中有许多是为特定类型的数据模型和工作任务设计的 。 其中一些支持多种模型 , 通常被归类为多模型数据库 。
了解数据库的各种分类有助于你在设计应用时选择正确的数据库 。
作者:Boris Scholl, Trent Swanson, Peter Jausovec
来源:华章科技
本文插图
01 键值数据库
通常 , 只需要使用主键甚至是部分键来检索应用程序的数据 。 键/值数据库可以被看作一个非常大的哈希表 , 该表在唯一的键下存储了一些值 。 存储的值可以通过键或者部分键高效地检索到 。 因为该值对于数据库是不透明的 , 所以如果需要按值来查找一条记录的话就需要逐条扫描 。
键/值数据库中的键可以包含多个元素 , 甚至可以排序以提高查询效率 。 一些键/值数据库允许使用键的前缀进行查找 , 从而可以使用复合键 。 如果数据可以通过一些简单的键嵌套查询 , 那键/值数据库会是个不错的选择 。
例如 , 我们将客户xyz的订单存储在键/值数据库中 , 可以使用客户ID作为键的前缀 , 结合订单号组成键“xyz-1001”来存储订单 。 可以使用整个键来检索特定的订单 , 也可以使用“xyz”前缀检索客户xyz的所有订单 。
本文插图
说明:键/值数据库通常是比较便宜的 , 且具有高度可伸缩性的数据存储 。 键/值数据库能够根据键对数据进行分区甚至重分区 。 使用键/值数据库时 , 选择键很重要 , 因为这将对数据存储的规模和读写性能产生重大影响 。
02 文档数据库
文档数据库和键/值数据库类似 , 因为它也通过主键存储文档(值) 。 与键/值数据库不同的是 , 文档数据库中的文档需要符合某些定义好的结构 , 而键/值数据库几乎可以存储任意值 。 这使得文档数据库可以启用诸如维护二级索引的功能以及基于文档查询数据的功能 。
通常存储在文档数据库中的值是哈希图(JSON对象)和列表(JSON数组)的组合 。 JSON格式在文档数据库中很常用 , 尽管许多数据库引擎使用了更高效的内部存储格式 , 例如MongoDB的BSON 。
建议:当你从关系型数据库转换到基于文档的数据库时 , 你需要思考如何去组织数据 。 许多人需要时间来过渡到这种不同的数据建模方法 。
本文插图
传统关系型数据库(如PostgreSQL)存储的数据大部分也可以存储在文档数据库中 。 它们正变得越来越流行 , 与关系数据库不同 , 这些存储的文档可以很好地映射成编程语言中的对象 , 并且不需要对象关系映射(ORM)工具 。
这些数据库通常不强制要求定义数据模式(schema) , 这对于在软件持续交付(CD)过程中需要更新数据模式的情形具有一些优势 。
说明:不强制要求定义模式的数据库通常被称为“读时模式(schema on read)” , 因为尽管数据库未强制要求模式 , 但是在使用数据的应用中存在固有的模式 , 并且需要知道如何转化读到的数据 。
03 关系型数据库
关系型数据库将数据组织到称为表的二维结构中 , 该结构由列和行组成 。 一张表中的数据可以与另一表中的数据有关联 , 数据库系统可以保证这种关联 。 关系型数据库通常强制执行严格的模式 , 也称为“写时模式(schema on write)” , 在该模式中 , 向数据库写入的数据必须符合数据库中定义的结构 。
关系型数据库已经存在很长时间了 , 许多开发人员都有使用它们的经验 。 迄今为止 , 最流行和最常用的数据库仍然是关系型数据库 。 这些数据库非常成熟 , 可以处理包含大量关系的数据 , 并且拥有大量知道如何使用它们的工具和应用程序生态系统 。
推荐阅读
- 技术编程|如何利用数据库进行世界史研究
- 群众网|还有哪些互联网最初的记忆在逐渐淡出大众的视线,你还记得吗
- 科技零接触|出差旅游必备的哪些数码设备,你一般都带哪些出门?
- 互联网|跨境电商运营具体都做哪些工作
- 编辑器|PDF编辑器有哪些文本工具?分别有什么作用?
- 修养|一个好文案有哪些专业修养?
- 数据库|面试官:说说MySQL数据库分库分表,并且会有哪些问题?
- 科学|蛇最长可活40年?中国十大毒蛇有哪些?
- 拍照摄影|关于手机摄影,有哪些外置设备?该如何选择合适的外置摄影设备?
- 小蚁爆款文案|和日常的内容选题相比,追热点有哪些附加的价值 ?
