数据库的管理技术及其发展
第一章:数据库的管理技术及其发展
1.1 数据与信息
- 数据 (Data): 描述事物的符号记录。是物理性的(如:数字、文字、图形、音频)。
- 特点: 数据本身没有意义,只有结合语境才产生意义。
- 信息 (Information): 经过加工处理的、有意义的、对决策有价值的数据集合。
- 公式:
- 信息=数据+数据处理
- 公式:
举个例子理解:
原始数据:101, 张三, 85, 90, 78 (单独看只是一串字符)
↓ 数据处理 (计算平均分,关联语义)
有用信息:“学号101的张三同学,三门课平均分84.3分,成绩良好。”
1.2 数据处理与数据管理
随着时代发展,数据量越来越大,我们需要对数据进行处理和管理,才能更加有条理、有效率。
| 维度 | 数据处理(Data Processing) | 数据管理(Data Management) |
|---|---|---|
| 定义 | 将数据转换为信息的过程 | 对数据进行分类、组织、编码、存储、检索和维护 |
| 侧重点 | 转换(价值创造) | 组织与控制(结构与安全) |
| 具体操作 | 采集、加工、计算、统计、传输 | 存储结构设计、安全控制、完整性约束、并发控制 |
| 目标 | 提取信息、产生决策依据 | 保证数据安全、高效、一致 |
💡关键点:数据管理是数据处理的基础和核心支持。没有良好的管理,处理效率将极低。
1.3 数据管理技术的发展过程
(1)人工管理阶段(20世纪40年代中 - 50年代中)
时代背景:
- 计算机刚诞生,处于电子管时代
- 无操作系统,无专门的数据管理软件
- 主要用于科学计算(非数据处理)
- 外存只有纸带、卡片、磁带(无磁盘)
特点:
| 特点 | 说明 |
|---|---|
| 数据不保存 | 计算完成后,数据即丢弃 |
| 无专用软件 | 没有专门管理数据的软件 |
| 程序管理数据 | 数据由应用程序自行管理 |
| 数据不共享 | 一组数据只对应一个程序 |
| 数据不独立 | 数据的逻辑结构和物理结构都依赖于程序 |
| 数据冗余大 | 相同数据可能在不同程序中重复存储 |
(2)文件管理阶段(20世纪50年代末 - 60年代中)
时代背景:
- 计算机进入晶体管、集成电路时代
- 出现了操作系统
- 磁盘等直接存取存储设备出现
- 出现了专门的文件系统
- 不仅用于科学计算,还用于数据管理
特点:
| 特点 | 说明 |
|---|---|
| 数据可长期保存 | 存储在磁盘文件中 |
| 文件系统管理 | 由操作系统的文件系统统一管理 |
| 数据共享性差 | 文件面向特定应用,共享困难 |
| 数据独立性差 | 数据的逻辑结构改变,程序也要改变 |
| 数据冗余度大 | 不同应用可能重复存储相同数据 |
| 数据不一致 | 相同数据在不同文件中可能不一致 |
(3)数据库管理阶段(20世纪60年代末 - 现在)
时代背景:
- 计算机进入集成电路/超大规模集成电路时代
- 数据量急剧增长
- 多用户共享数据需求强烈
- 数据库管理系统(DBMS)诞生
- 软硬件价格下降,数据价值上升
特点:
| 特点 | 说明 |
|---|---|
| 数据结构化 | 数据按照统一的数据模型组织 |
| 数据共享性高 | 多个用户、多个应用可共享数据 |
| 数据冗余度低 | 统一管理,减少重复存储 |
| 数据独立性高 | 物理独立性和逻辑独立性 |
| 统一管理和控制 | 由DBMS进行统一管理 |
| 数据安全性 | 提供权限控制和安全机制 |
| 数据完整性 | 提供完整性约束检查 |
| 并发控制 | 支持多用户同时访问 |
三个阶段对比表
| 特性 | 人工管理 | 文件管理 | 数据库管理 |
|---|---|---|---|
| 时代 | 40-50年代 | 50-60年代 | 60年代至今 |
| 硬件 | 电子管 | 晶体管 | 集成电路 |
| 数据保存 | ❌ 不保存 | ✅ 文件保存 | ✅ 数据库保存 |
| 数据共享 | ❌ 不共享 | ⚠️ 共享性差 | ✅ 高度共享 |
| 数据独立性 | ❌ 无 | ⚠️ 独立性差 | ✅ 高度独立 |
| 数据冗余 | 高 | 较高 | 低 |
| 数据一致性 | 无保证 | 难以保证 | DBMS保证 |
| 统一管理 | ❌ | ❌ | ✅ DBMS统一管理 |
| 并发控制 | ❌ | ❌ | ✅ |
| 数据管理者 | 程序员 | 文件系统 | DBMS |
1.4 数据模型的发展
数据模型是数据库组织数据的核心方式,经历了以下发展阶段:
1.4.1 层次模型(Hierarchical Model)
结构特点:像倒立的树(树形结构)
代表系统:IBM IMS
优点:
- 结构简单,层次分明
- 查询效率高(路径明确)
缺点:
- 只能表示1:N关系
- 多对多关系表达困难
- 结构不够灵活
实例:Windows注册表、XML文档
1.4.2 网状模型(Network Model)
结构特点:像复杂的网(图形结构)
代表系统:DBTG系统
优点:
- 能表达复杂的M:N关系
- 存取效率高
缺点:
- 结构太复杂
- 用户需要了解内部结构
- 编程复杂
1.4.3 关系模型(Relational Model)
结构特点:用"二维表"来表示数据和联系
代表系统:MySQL、Oracle、PostgreSQL、SQL Server
理论基础:关系代数、关系演算(数学基础坚实)
优点:
- 概念单一(一切皆表)
- 结构简单,易于理解
- 使用方便(SQL语言)
- 数据独立性高
- 理论基础坚实
缺点:
- 查询效率可能不如层次/网状模型
- 处理复杂关系需要多表连接
💡 目前主流:关系模型是目前应用最广泛的数据模型
1.4.4 非关系模型(NoSQL)
产生背景:大数据时代,传统关系模型面临挑战
主要类型:
| 类型 | 代表产品 | 特点 | 适用场景 |
|---|---|---|---|
| 键值型 | Redis、Memcached | 简单高效 | 缓存、会话 |
| 文档型 | MongoDB | 灵活模式 | 内容管理 |
| 列族型 | HBase、Cassandra | 海量数据 | 大数据分析 |
| 图数据库 | Neo4j | 关系复杂 | 社交网络、推荐系统 |
特点:
- 解决高并发、海量数据问题
- 模式灵活,易于扩展
- 牺牲部分一致性换取性能和可用性
1.4.5 对比
| 模型 | 结构特点 | 代表系统 | 优点 | 缺点 |
|---|---|---|---|---|
| 层次模型 | 树形结构(倒立的树) | IBM IMS | 结构简单,查询效率高 | 只能表示1:N关系,不灵活 |
| 网状模型 | 图形结构(复杂的网) | DBTG系统 | 能表达M:N关系,效率高 | 结构复杂,编程困难 |
| 关系模型 | 二维表结构 | MySQL、Oracle、PostgreSQL | 概念单一,易于理解,SQL语言方便 | 查询效率可能较低 |
| NoSQL | 多种结构 | MongoDB、Redis | 高并发,海量数据,模式灵活 | 牺牲部分一致性 |
💡 目前主流:关系模型是目前应用最广泛的数据模型
1.5 大数据时代与数据科学
1.5.1 大数据的4V特征
大数据时代降临
Big Data 呈 "4V" 特征:
- Volume (大量): 数据量级从 TB 跃升至 PB、EB。
- Velocity (高速): 数据产生快,处理要求实时性高(如双11交易流)。
- Variety (多样): 结构化数据(表)+ 非结构化数据(视频、日志、语音)。
- Value (低价值密度): 数据量大,但有价值的信息稀疏(沙里淘金)。
💡 有时也加入第5个V:Veracity(真实性)—— 数据质量和准确性
1.5.2 数据科学的思维方式
相应的需要培养起数据思维
衍生出数据科学
数据科学的思维方式:
| 思维方式 | 传统方式 | 数据科学方式 |
|---|---|---|
| 数据量 | 抽样分析 | 全样分析(分析所有数据) |
| 精确度 | 追求绝对精确 | 效率优先(允许混杂性) |
| 分析重点 | 因果性(为什么) | 相关性(是什么) |
- 全样而非抽样: 分析所有数据,而不仅仅是样本。
- 效率而非精确: 在秒级决策中,有时允许混杂性,不追求绝对精确。
- 相关性而非因果性: 关注“是什么”(关联),而不是必须知道“为什么”(因果)。
- 例如:超市发现啤酒和尿布经常一起被购买。知道这个关联就能调整货架布局增加销售,不需要深究"为什么年轻爸爸买尿布时顺便买啤酒"的原因。
数据科学流程:
⬅️ SQLite 🏠 00-数据库 ➡️ 数据库系统与数据模型
💬 评论