ITPub博客

首页 > 数据库 > 数据库开发技术 > 一文了解不同类型的数据库

一文了解不同类型的数据库

原创 数据库开发技术 作者:iconicSecurity 时间:2024-08-14 16:10:22 0 删除 编辑
佛系随性笔记,记录最好的自己!
个人水平比较有限,每篇都尽量以白话+图文的方式去说明。



01

—


数据库简介



数据库和数据库管理系统 (DBMS) 是密切相关的术语,但它们的用途不同:

1、数据库是一组数据。数据可以是结构化的、也可以是非结构化的,一般是以表格、文档和键值对等各种格式存储。它可以是任何东西,从简单的购物清单到图片库,再到企业网络中的大量信息。
2、DBMS(数据库管理系统)是一种用于与数据库交互的软件。它为用户或应用程序提供了操作数据的界面,使大量数据的处理更加高效且不易出错。DBMS 负责监督核心管理任务,例如数据存储、检索、安全性、并发控制、备份和恢复以及查询处理。示例包括 Oracle Database、MySQL、Microsoft SQL Server 和 MongoDB。
简单来说,数据库就像一个储存水(信息)的容器,而 DBMS 是用于组织和管理该容器内内容的管理员(工具)。



02

—


数据库结构


数据库结构是指数据库中数据的组织方式。只说一下关键的组成部分:我们把数据库比喻成一个由陈列区、书架和书组成的图书馆,里面包含多个"陈列区",每个陈列区是一个数据库。


表:每个陈列区"数据库"里,有多个书架,这些书架就是"表"。每个书架放着该陈列区类型的书,书架由行(记录)和列(字段)组成,比如"科幻书籍区"放在6F-A区-18架。

字段:书架上的每一格就是一本书"字段",它定义了数据的类型,比如文本内容、日期等。比如《三体》放在6F-A区-18架-168。

键:在图书馆中,有些书有特殊的标签,帮助我们快速找到它们。在数据库中,键(如主键、外键)扮演了类似的角色,它们帮助我们唯一标识每条记录,以及在不同表间建立联系,确保数据的完整性和关系的正确性。

索引:就像图书馆里的指南和导航系统,它们帮助我们快速定位到特定的书。

视图:视图就像是图书馆里的标签或指示牌,它不是实际的数据,而是基于一个或多个表的结果集。




03

—


数据库类型简介


数据库主要分为两种类型:关系型(SQL)数据库和非关系(NoSQL) 数据库。非关系型又分为四种类型:文档型、键值型、宽列型和图形数据库。(这个在后面会提到)

数据库类型示意-图1

题外话:某些数据库(如 MongoDB)可以分为多个类别,因为它们支持不同的数据模型。此外,上述提供的列表并不详尽,因为每个类别中还有许多其他数据库可用。


(一) 关系性数据库(SQL 数据库)

关系数据库就像是一个精心设计的图书馆,数据以表的形式存储,每个表就像图书馆里的一个书架,用来存放某一类信息。这些"书架"(表)通过特定的规则(关系)相互连接,形成一个网络,就像图书馆里的书通过主题、作者或出版社等信息相互关联一样。

关系型数据库-图2


(二) 非关系性数据库(NoSQL 数据库)

非关系型(NoSQL)数据库是作为传统关系型(SQL)数据库的替代品而开发的,它不依赖于固定的表结构,能够灵活地处理非结构化或半结构化数据,如文档、键值对、图形等。非关系型(NoSQL)数据库的设计重点在于提供高可扩展性、高性能和灵活性,以适应大数据和分布式计算的需求。

举个栗子:就像你有一个超级大的"仓库",里面可以放各种形状、大小的东西,不仅仅局限于整齐划一的盒子"格式"。这个"仓库"就是非关系型数据库,它不像传统的关系型数据库那样,需要所有东西都按照固定的格式摆放。

  • 非关系型数据库-图3




04

—

关系型数据库与非关系型数据库区别



SQL(结构化查询语言)和 NoSQL(不仅仅是 SQL)数据库在设计方式、存储数据的方式和使用方式上有根本的不同。

1、SQL 数据库使用结构化的表格模式,遵守 ACID(原子性、一致性、隔离性和持久性)属性,并针对复杂的查询和关系进行了优化,但它们通常垂直扩展,因此可能存在局限性和更高的成本。

2、NoSQL 数据库具有无模式结构和各种数据类型的灵活性,可以水平扩展以处理大量数据,并提供更简单的查询语言,但它们可能会牺牲 ACID 合规性来提高性能,并且不是统一设计用于处理复杂关系。

  • 区别-图4
  • 举个栗子:关系型(SQL)数据库与非关系型(NoSQL)数据库相比,就像是图书馆的陈列区(SQL)跟自己仓库(NoSQL)的区别,在陈列区里,每样东西都有固定的位置,而自己的仓库更加灵活多变。



05

—


非关系型(NoSQL)数据库的类型



NoSQL 数据库有多种类型,有图形数据库、文档型数据库、键值存储、宽列存储,每种数据库都旨在满足不同的需求和用例。 

(一) 图形数据库

图形数据库专门用于存储和处理图结构数据,如节点和边。这种类型的数据库适合处理复杂的关系数据和网络数据,支持高效的图算法和查询操作,例如在社交网络或推荐系统中。它们擅长表示和查询类似图形的结构,使用节点表示实体,使用边表示关系,常见的有:Neo4j和InfoGrid等。

  • 图形数据库-图5

(二) 文档型数据库

文档型数据库,特点是无模式设计,其中每个文档(数据记录)可以具有不同的结构,并且通常以 JSON 或 XML 等格式存储。这种结构非常灵活,可适应复杂的数据结构。常见的有:MongoDB 和 CouchDB等。

文档型数据库-图6

(三) 键值存储
键值存储,数据是以简单的键值对的形式存储。它们基于唯一键提供快速高效的检索,通常用于缓存、会话管理和高性能应用程序。常见的有:Redis、Amazon DynamoDB 和 Riak等。

  • 键值存储-图7

(四) 宽列存储

宽列存储将数据按列存储,而不是按行存储。这种类型的数据库适合存储大规模数据分析和处理,具有高性能和高扩展性等特点是处理大型数据集的理想选择。动态列结构提供了灵活性和适应性,可满足不断变化的需求。常见的有HBase和Cassandra等。

宽列存储-图8




06

—


数据库结构的类型


根据具体用例,不同类型的数据库结构,拥有不同的优劣势和常见用例。以下是 3 种(这块有很多,不是只有三个)主要的数据库结构类型:

(一)面向对象数据库
以对象的形式存储数据,与面向对象编程相同。对象由两个元素组成:数据(或属性)和方法(定义可对数据执行哪些操作的函数)。对象可以分组为类,并且可以从类继承属性,从而可以轻松重用代码并更准确地模拟复杂的数据关系。常用于金融和医疗保健等领域,常见的有:Versant Object Database、ZODB、db4o。

面向对象数据库-图9

(二) 分层数据库

以具有父子关系的分层树状结构组织数据。每条记录只有一个父级,可以有多个子级。此结构适用于具有明确层次关系的数据,例如组织结构图或文件系统。分层数据库在过去更为流行,但它们仍在符合数据模型要求的遗留系统或特定行业中使用。流行的分层数据库包括 IBM 信息管理系统 (IMS) 和 Windows 注册表。

分层数据库-图10

(三) 网络数据库

网络数据库使用类似图形的结构,来表示具有复杂关系的数据。它们允许实体之间存在多对多关系,并且经常用于社交网络或航空预订系统等应用程序。示例包括集成数据存储 (IDS)、集成定义语言 (IDL)。
网络数据库(也称为图形数据库)使用节点和边来表示数据,以建立实体之间的复杂关系。它们可以处理多对多关系。

网络数据库-图11

下表中,我总结了几种常用的数据库类型和结构,说了一些它们在数据复杂性、可扩展性、灵活性、查询和性能需求以及行业用例方面的特点(有问题大家可以指出)。

数据库对比-图12


最后的想法,上述介绍了一些主要的数据库类型,如关系型数据库、非关系型数据库、图形数据库、文档型数据库、键值存储数据库等。但是,这只是冰山一角,新的技术层出不穷,都是为了使用场景而诞生的伟大存在。

前一段时间看了一个直播,视频号里面的视频也推荐大家去看看《中国数据库的前世今生》,这个视频系列很精彩,看完感触颇深。




深圳        

注释:如有失误,望批评指正!


后面会写下Windows和liunx的应急响应技巧、容器、还有一些网络安全、数据安全。


后台输入“Windows应急响应手册、linux应急响应手册、数据安全政策、数据安全治理、电力、工业、金融、0731”有相关资料可供下载!





原文作者:老登的安全观;如有侵权,请联系管理员删除。

上一篇: 悟空-干翻他们
请登录后发表评论 登录
全部评论
关注公众号:老登的安全观 数据安全从业者,佛系随行笔记,记录最好的自己!

注册时间:2024-07-02

  • 博文量
    97
  • 访问量
    79436