【电子数据取证】了解数据库

文章关键词:电子数据取证、数据库取证、手机取证

一、前言

数据库是信息系统中不可或缺的部分。无论是取证收集,网站重建又或是开发程序都离不开数据库这个角色。

可能你已经或多或少看到过像是MySQL、Redis、MongoDB之类的程序,这些程序统一都有一个同样的功能:管理数据,也统称数据库。但是各个不同的数据库之间的具体功能又是有一些区别的,了解其区别可以方便检索相关的信息。

二、数据库的优点

2.1、整体数据结构化

在数据库系统中,记录的结构和记录之间的联系由数据库管理系统进行维护,从而减轻了开发人员的工作量,提高了工作效率。

2.2、数据共享与减少数据冗余

同文件系统相比,因为实现了数据共享,包括多个用户、多个应用可以同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库中的数据,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。

2.3、数据独立

数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。

2.4、数据实现集中控制

文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。

2.5、数据由数据库管理系统统一管理和控制

(a)安全性控制:以防止数据丢失、错误更新和越权使用。

(b)完整性控制:保证数据的正确性、有效性和相容性(数据中的相容性是指表示同一事实的两个数据应相同,或者满足某一约束关系的一组数据不应发生互斥)。

  (c)并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用(例如:当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏)。

  (d)故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。

三、数据库的分类

分为关系型数据库、非关系型数据库以及目前比较新型的向量数据库。

3.1、关系型数据库

关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。

主要代表:SQL Server、Oracle、MySQL、PostgreSQL。

3.1.1、优点

(a)容易理解,二维表的结构非常贴近现实世界,更方便理解。

(b)使用,通用的SQL语句使得操作关系型数据库非常方便。

(c)易于维护,数据库的ACID属性,大大降低了数据冗余和数据不一致的概率。

3.1.2、瓶颈

(a)对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘I/O是一个很大的挑战。

(b)高扩展性和可用性。在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。

3.2、非关系型数据库

NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB、Redis、CouchDB等。

非关系型数据库具有格式灵活,成本低,查询快,高性能,高扩展的优点。

3.2.1、基于JSON格式的文档类型存储

这类数据库的主要特点是在海量的数据中可以快速的查询数据文档,存储通常使用内部表示法,可以直接在应用程序中处理,作为纯文本存储在键值存储或关系数据库系统中。

主流代表为MongoDB等。

3.2.2、基于搜索引擎存储

搜索引擎是专门用于搜索数据内容的NoSQL数据库管理系统,主要是用于对海量数据进行近实时的分析处理,可用于机器学习和数据挖掘。

主流代表为Elasticsearch、Solr等。

3.2.3、图形数据库

将数据库图形化数据结构是图结构,常用于社交网络、推荐系统等。专注于构建关系图谱。

主流代表为Neo4J等。

3.2.4、key-value型

key-value数据库的主要特点是具有极高的并发读写性能,Key-value数据库是一种以键值对存储数据的一种数据库,类似Java中的Map。可以将整个数据库理解为一个大的Map,每个键都会对应一个唯一的值。

主流最常用的代表就是Redis等。

3.2.5、列式数据库

这类数据库的主要特点是具有很强的可扩展性,关系型数据库都是以行为单位来存储数据的,擅长以行为单位的读入处理,比如特定条件下的数据获取。因此,关系型数据库也被称为面向行的数据库。相反,面向列的数据库是以列为单位来存储数据的,擅长以列为单位读入数据。

这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化,将数据存储在记录中,能够容纳大量动态列。由于列名和记录键不是固定的,并且记录可能有数十亿列,因此可扩展性存储可以看作是二维键值存储。

主流代表为HBase、Riak等。

3.3、向量数据库

在用图片搜索图片,或者语音搜索语音的时候,在数据库中存储和对比的并不是图片和语音片段,而是通过DL等算法提取出来的“特征”值,一般是256/512个float数组,可以用数学中的向量来表示。向量数据库就是用来存储、检索、分析向量的数据库。之所以称之为数据库,是因为它有下面几个特征:

四、结论

数据库作为信息系统里最关键的组成部分之一,在各个方面都有着不可或缺的重要性。

了解数据库相关对之后了解任何系统的组成都有不小的帮助。也方便之后更有效的去检索信息。

相关推荐

  1. 电子数据取证了解数据库

    2024-07-21 07:30:03       17 阅读
  2. 电子数据取证】从SSH开始使用Linux

    2024-07-21 07:30:03       18 阅读
  3. 电子数据取证】如何配置好虚拟机

    2024-07-21 07:30:03       18 阅读
  4. MySQL数据库备份数据深入了解

    2024-07-21 07:30:03       54 阅读
  5. 快速了解数据脱敏

    2024-07-21 07:30:03       19 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 07:30:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 07:30:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 07:30:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 07:30:03       55 阅读

热门阅读

  1. 软件设计模式: 抽象工厂

    2024-07-21 07:30:03       15 阅读
  2. js修改hash的方法

    2024-07-21 07:30:03       14 阅读
  3. 网页制作技术在未来会如何影响人们的生活?

    2024-07-21 07:30:03       15 阅读
  4. Vue学习(一)初识Vue、事件

    2024-07-21 07:30:03       15 阅读
  5. pcie_TLP

    pcie_TLP

    2024-07-21 07:30:03      14 阅读
  6. ChatGPT:SpringBoot 响应请求是串行还是并行?

    2024-07-21 07:30:03       13 阅读
  7. U425647题解

    2024-07-21 07:30:03       15 阅读
  8. .NET在游戏开发中有哪些成功的案例?

    2024-07-21 07:30:03       15 阅读
  9. vue和react中都使用的hook到底是什么?

    2024-07-21 07:30:03       17 阅读
  10. 如何理解李彦宏说的“不要卷模型,要卷应用”

    2024-07-21 07:30:03       16 阅读
  11. Markdown 链接

    2024-07-21 07:30:03       14 阅读
  12. 【算法】浅析贪心算法

    2024-07-21 07:30:03       15 阅读
  13. LeetCode 71, 86, 117

    2024-07-21 07:30:03       18 阅读
  14. git how to fix conflict(git中解决冲突问题)

    2024-07-21 07:30:03       16 阅读
  15. 设计模式--观察者模式

    2024-07-21 07:30:03       17 阅读
  16. python与自动化运维相关的库有哪些?

    2024-07-21 07:30:03       13 阅读