数据库定义
数据库(Database)是一个按特定数据结构组织、存储和管理的电子数据集合,具有长期存储、结构化、可共享、统一管理等特性,支持高效查询、更新和分析,是现代信息系统的核心组成部分。
通俗来讲,数据库如同高校图书馆是一个系统化存储和管理信息的核心枢纽。它将数据分门别类地组织(如书籍按学科、作者归档),通过结构化的存储方式(如图书馆的索引卡片)实现高效检索与访问。数据库支持多用户同时查询和使用数据(如同学生借阅同一本书籍),并由专业管理员维护其结构、安全与性能(如图书馆管理员管理藏书与借阅规则)。

数据库分类
01
按数据库模型分类
关系型数据库(RDBMS):基于关系模型,数据以二维表形式组织(行 = 记录,列 = 字段),通过外键建立表间关联,如 MySQL/SQLite/Oracle/SQL server,其存储结构强调结构化与范式化,适合存储强关联的事务型数据。
表1 图书管理系统-图书借阅表(示例)
借阅编号 | 图书编号 | 图书名称 | 借阅时间 | … |
001 | TSBH1 | 数据库 | 2025315 | … |
002 | TSBH2 | 服务器 | 2025316 | … |
非关系型数据库(NoSQL):采用非结构化或半结构化模型,可分为四类:
a.键值存储(如 Redis):以键值对存储数据,访问速度极快
b.文档存储(如 MongoDB):使用 JSON/BSON 格式存储文档
c.列存储(如 Hbase):按列存储海量数据
d.图存储(如 Neo4j):以节点和边表示关系网络

图1 Neo4j构建的数据库知识库
02
按数据库部署方式
本地自建数据库:采用物理服务器本地化部署,数据库存储于本地磁盘(如 MySQL 的.ibd 文件、SQL ite的.db文件、Oracle的.dbf文件)。
云数据库:数据存储和处理在云平台上进行,提供更灵活的资源调配和管理(如 AWS RDS、阿里云 PolarDB、腾讯云 TDSQL)。

图2 阿里云 PolarDB
(图片来源于网络)

数据库结构
01
数据库核心组件
表(table):数据存储单元,由行(记录)和列(字段)组成(直接数据提取或残留数据恢复)
索引(index):加速查询,可能残留已删除数据(残留数据的隐秘来源)
日志文件:记录所有操作痕迹(操作痕迹的黄金数据)
事务日志(如MySQL的binlog):记录增删改操作(时间戳、用户IP)
错误日志:数据库运行异常信息(辅助判断攻击行为)
元数据:描述数据库自身结构(如表名、字段类型、权限配置)
02
数据库文件类型
数据文件:存储实际数据(如MySQL的.ibd、SQLite的.db、Oracle的.dbf、MongoDB的 .wt)
日志文件:操作记录(如MySQL的Binlog、SQL Server的LDF、MongoDB的Oplog.rs)
配置文件:数据库参数设置(如my.cnf/my.ini、PostreSQL.conf)

常见数据库

MySQL
简介:是开源的关系型数据库,小巧但性能强大。搭配PHP和Apache可组成良好的开发环境。MySQL也是中小型网站主要使用的数据库。
常见版本:5.5、5.7、8.0
关注文件:
.MYD(MyISAM表数据)
.MYI(MyISAM表索引)
.ibd(InnoDB表数据)
ibdata1(全局共享表空间)
.frm(表结构)
binlog.*(二进制日志,记录操作)
my.cnf/my.ini(配置文件)
mysql.user(用户权限信息)

PostgreSQL
简介:是一款功能强大的开源关系型数据库管理系统,以高度可扩展性、标准兼容性和对复杂查询的支持著称。 适用于企业级应用、大数据分析和高并发场景,被誉为“最先进的开源关系数据库”。
常见版本:14、15
关注文件:
PGDATA/base(存放数据库文件)
pg_wal(预写日志)
postgresql.conf(配置文件)

SQL Server
简介:Microsoft推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,提供了基于事务的企业级信息管理系统方案。
常见版本:2005、2008 R2、2012、2014
关注文件:
.mdf(主数据库文件)
.ldf(日志文件)
.bak(备份文件)
ERRORLOG(错误日志)
master.mdf(存储用户账户信息)

MariaDB
简介:是一款开源、社区驱动的关系型数据库管理系统,由 MySQL 原开发者创建,旨在完全兼容 MySQL 并持续提升性能与功能。作为 MySQL 的替代方案,MariaDB 被广泛应用于企业级应用、云服务和分布式系统(如 Google、Wikipedia 等),其开源生态和活跃社区推动其持续演进,成为现代高可用、高性能数据库的优选之一。
常见版本:10.6、10.11
关注文件:
.ibd/.frm(数据/表结构,同MySQL)
mariadb-bin.*(二进制日志)
hostname.err(错误日志文件)

Oracle
简介:是一款关系型数据库管理系统。Oracle采用的是并行服务器模式,是大型网站的数据库首选。在效率、安全性和大数据支持方面具备优势。
常见版本:10g、11g、12c、18c、19c
关注文件:
.dbf(数据文件,包含表数据)
control.ctl(存储数据库结构信息)
alert.log(警告日志)
redo*.log(重做日志)
aud$(审计表)

SQLite
简介:是一款轻量级、嵌入式、无服务器的关系型数据库,支持跨平台使用,常用于移动端和桌面软件,如手机应用(微信、QQ)的本地数据存储和桌面浏览器(历史记录、书签)数据存储。
常见版本:3.x
关注文件:
主数据库文件:.db/.sqlite(主数据库文件)
*-wal和*-shm(未提交事务的临时文件)
*-journal(事务回滚记录)
sqlite_sequence表(判断数据表是否被清空)

MongoDB
简介:MongoDB 是一个基于分布式文件存储(BSON格式)的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
常见版本:4.4、5.0
关注文件:
*.bson/*.wt(WiredTiger存储引擎文件)
mongod.conf(数据存储路径配置)
journal(预写日志)
mongod.log(操作日志,需启用--logpath)

Redis
简介:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
常见版本:6.x、7.x
关注文件:
dump.rdb(RDB持久化数据)
appendonly.aof(AOF持久化操作记录)
redis.conf(持久化策略设置)

PolarDB
简介:新一代关系型云原生数据库,既拥有分布式设计的低成本优势,又具有集中式的易用性,计算与存储分离,兼容MySQL/PostgreSQL/Oracle。
常见版本:PolarDB MySQL版 8.0、PostgreSQL版 14
关注文件:
.csv/.sql/.parquet(平台备份数据格式)
OSS存储中的.xb文件(Percona XtraBackup格式)
分布式块存储(需从云平台获取快照文件)
polardb_audit.log(审计日志)
slow_query.log(慢查询日志)
END

微信号|CyberForen




