﻿---
title: Glossary For Database
date: 2024-02-27
tags: [DataBase, Glossary]
excerpt: "记录数据库领域的部分术语，包括结构化/非结构化数据；关系型/非关系系数据库etc."
---

## Structured/Unstructured Data

根据数据是否有预定义的数据模型，我们将其分为三类
### 1.1 结构化数据 (Structured Data)

**定义**：
结构化数据是高度组织化、格式整齐的数据，遵循严格的预定义模型（Schema）。它是传统关系型数据库（RDBMS）的基石。

*   **核心特征**：
    *   **二维表结构**：数据可以完美地放入行与列中。
    *   **强类型**：每个字段都有明确的数据类型（如 Integer, Varchar, Date）。
    *   **易于计算**：计算机能够通过SQL极其高效地进行检索、聚合和分析。
*   **典型来源**：
    *   企业核心系统：ERP、CRM、财务系统。
    *   交易记录：银行转账、电商订单。
*   **技术扩展**：
    > 在大数据领域，结构化数据通常采用Schema-on-Write[^1]策略，即在数据写入前必须定义好结构，这保证了数据的一致性，但牺牲了写入的灵活性。

### 1.2 非结构化数据 (Unstructured Data)

**定义**：
非结构化数据没有预定义的模型或组织形式，通常被视为“二进制对象”（BLOBs）。这类数据占据了全球数据总量的 **80% - 90%**，是大数据分析的主要挑战与金矿。

*   **常见形式**：
    *   **多媒体**：图片、音频、视频。
    *   **文档**：PDF、Word、设计图纸。
    *   **机器数据**：虽然部分日志有格式，但在未经清洗前常被视为非结构化流。
*   **处理难点**：
    无法直接使用 SQL 查询。通常需要借助 **OCR**（光学字符识别）、**NLP**（自然语言处理）或 **CV**（计算机视觉）技术提取特征后，转化为结构化标签进行存储。

### 1.3 半结构化数据 (Semi-Structured Data)

**定义**：
介于两者之间，具有一定的自描述结构（Self-describing structure），但不符合关系型数据库严格的表格形式。它通过标签（Tags）或键值（Keys）来组织数据。

*   **核心技术载体**：
    *   **XML** (Extensible Markup Language)：早期互联网数据交换标准。
    *   **JSON** (JavaScript Object Notation)：现代 Web API 和 NoSQL 数据库（如 MongoDB）的主流格式。
    *   **HTML**：网页结构标记。
*   **示例**：
    HTML 文档本身是非结构化的文本流，但通过 `{html} <h1>`、`{html} <div>` 等标签，机器可以识别出标题和段落，从而赋予其语义结构。


## 数据模型

关系型数据模型和非关系型数据模型

### 关系型数据模型

## 二、 关系型数据模型 (RDBMS)：经典的秩序

关系型数据库管理系统（Relational Database Management System）基于数学上的“集合论”和“关系代数”。自 20 世纪 70 年代以来，它一直是企业级应用的标准。

### 2.1 核心概念解构

在 RDBMS 中，数据被组织成 **Table（表/关系）**。

| 术语 (Term) | 别名 (Alias)                  | 描述 (Description)                                     |
| :---------- | :---------------------------- | :----------------------------------------------------- |
| **Table**   | Relation (关系)               | 由行和列组成的二维网格，对应一个实体集（如“用户表”）。 |
| **Record**  | Row (行), Tuple (元组)        | 代表一个具体的实体实例。例如：用户 Alice 的完整信息。  |
| **Field**   | Column (列), Attribute (属性) | 代表数据的某一类特征。例如：所有用户的“年龄”。         |

**数据示例：User Table**

| User ID (PK) | Username | Email         | Status   |
| :----------- | :------- | :------------ | :------- |
| 1001         | Alice    | alice@tech.io | Active   |
| 1002         | Bob      | bob@data.net  | Inactive |

## 非关系型数据模型 (NoSQL)

随着 Web 2.0 的爆发，传统 RDBMS 在高并发（High Concurrency）、海量数据存储（Massive Storage）和高可扩展性（Scalability）方面遇到瓶颈，**NoSQL (Not Only SQL)** 应运而生。
### 3.1 四大主流类型

NoSQL 并非一种特定的技术，而是一个技术簇，主要包含以下四类：

1.  **键值存储 (Key-Value Stores)**
    *   **原理**：类似编程语言中的 Map/Hash，通过 Key 快速读写 Value。
    *   **代表**：Redis, Memcached。
    *   **场景**：缓存、会话管理（Session）、实时排行榜。

2.  **文档数据库 (Document Stores)**
    *   **原理**：存储 JSON/BSON 格式的文档，Schema 灵活（Schema-free）。
    *   **代表**：MongoDB, Couchbase。
    *   **场景**：内容管理系统（CMS）、电商商品详情（属性差异大）、快速迭代的业务。

3.  **列族数据库 (Column-family Stores)**
    *   **原理**：数据按列存储，擅长写入和大数据量的聚合查询。
    *   **代表**：Apache Cassandra, HBase。
    *   **场景**：物联网（IoT）时序数据、海量日志记录、用户足迹。

4.  **图数据库 (Graph Databases)**
    *   **原理**：存储节点（Node）和边（Edge），专注于处理复杂的关系网络。
    *   **代表**：Neo4j, JanusGraph。
    *   **场景**：社交网络推荐、反欺诈风控关系网、知识图谱。

[^1]: [What is Schema-on-write? Examples in Analytics | PlainSignal](https://plainsignal.com/glossary/schema-on-write)