百度关键词怎么优化,锦州seo推广,百度账号购买1元40个,唐山企业网站建设公司文章目录 一、数据库基础1.1 数据库基础定义1.2 数据库分类与典型产品1.3 数据库模型1.4 数据库层次结构1.5 数据库核心机制1.6 数据表和视图1.61 数据表#xff08;Table#xff09;1.62 视图#xff08;View#xff09; 1.7 键类型1.8 MySQL数据类型1.9 数据库范式化 二、… 文章目录 一、数据库基础1.1 数据库基础定义1.2 数据库分类与典型产品1.3 数据库模型1.4 数据库层次结构1.5 数据库核心机制1.6 数据表和视图1.61 数据表Table1.62 视图View 1.7 键类型1.8 MySQL数据类型1.9 数据库范式化 二、 数据库技术构成2.1 系统构成2.2 SQL语言2.3 数据库访问技术2.31 ODBC开放数据库互连2.32 ADOActiveX Data Objects2.33 JDBCJava数据库连接2.34 ORM对象关系映射框架 2.4 数据库引擎2.41 数据库引擎核心组件2.42 主流数据库引擎对比2.43 引擎选型策略 三、相关概念中英文表格 前面两篇文章介绍了MySQL已经其在Windows和Linux上的安装。在学习相关操作之前应该先明确一些基本的、核心的概念。
历史文章点击SQL
⬛githubhttps://github.com/mysql
官网 https://www.mysql.com
维基百科https://zh.wikipedia.org/wiki/MySQL 一、数据库基础
1.1 数据库基础定义
数据库 (DatabaseDB) 是按照特定的数据模型组织、存储和管理数据的计算机化系统通常存储在计算机存储设备中。它可以包含多种类型的数据如文本、数字、图像、视频和文件等。数据库的核心目标是便于有效地存储、检索、修改、删除和管理数据。
数据库管理系统Database Management System简称 DBMS是用于创建、管理、和维护数据库的系统软件提供了对数据的增、删、查、改操作支持数据的存储、访问、安全控制、备份等功能。DBMS通常通过数据库模型来组织数据例如关系型数据库RDBMS、文档型数据库NoSQL等。
数据库与DBMS的关系数据库本质上是数据的集合而数据库管理系统是实现对这些数据进行操作和管理的软件。就像Excel文件.xls.xlsx等和Excel软件的关系一样数据库是数据存储的容器而DBMS是对这些数据进行管理和操作的工具。 例如MySQL数据库是由MySQL DBMS管理的数据库实例而MySQL本身是一个数据库管理系统。 概念完整定义与扩展说明数据库 (DB)按特定数据模型组织、存储和管理数据的电子化仓库核心特性1. 数据结构化2. 高共享性3. 低冗余度4. 数据独立性物理独立性与逻辑独立性数据库管理系统Database Management SystemDBMS数据库管理系统核心功能- 数据定义DDL- 数据操作DML- 事务管理ACID- 并发控制- 数据安全与恢复 1.2 数据库分类与典型产品
数据库管理系统可以根据不同的特点进行分类其中最常见的是根据数据库模型如关系型数据库、NoSQL数据库等进行分类。
关系型数据库
关系型数据库Relational Database 基于关系模型使用表格二维数组来存储数据。每个表由行和列组成每行代表一条记录每列代表一个数据字段。关系型数据库的优点包括高一致性、良好的事务支持、以及强大的查询语言SQL。它们广泛应用于企业的核心业务系统中如ERP、CRM等。
非关系型数据库NoSQL
NoSQLNot Only SQL数据库是为了解决关系型数据库在处理大规模、非结构化数据时的局限性而提出的。它们支持多种数据模型如键值存储、文档型、列族存储和图数据库等。NoSQL数据库通常具有更好的扩展性尤其适用于大数据场景和实时分析。
分类子类/技术特性代表产品与场景关系型数据库 (Relational database)- 基于关系模型表、行、列- 支持ACID事务- 强一致性- 结构化查询语言SQLOLTP场景MySQL、PostgreSQL、Oracle分析型Amazon Redshift、SnowflakeNoSQL数据库1. 键值存储高性能读写弱一致性2. 文档型JSON/BSON格式灵活模式3. 列族存储高扩展性适合海量数据4. 图数据库复杂关系网络Redis缓存、MongoDB文档、Cassandra列族、Neo4j图数据库NewSQL数据库结合NoSQL扩展性与RDBMS的ACID特性分布式架构Google Spanner、CockroachDB、TiDB内存数据库数据常驻内存极低延迟Redis持久化、MemSQL、VoltDB时序数据库高效处理时间序列数据如监控、IoTInfluxDB、TimescaleDB、Prometheus多模型数据库支持多种数据模型关系文档图ArangoDB、Microsoft Azure Cosmos DB 1.3 数据库模型
数据库模型描述了在数据库中数据的组织、存储及操作方式。不同的数据库模型适用于不同类型的数据处理需求。 层次模型与网状模型 层次模型和网状模型是早期的数据库模型通常用于处理较为简单的数据结构。层次模型以树形结构来表示数据的层级关系而网状模型则使用图结构来表示数据之间的连接。虽然这两种模型在处理复杂数据关系时有局限性但它们仍然在某些特定场景下发挥作用。 关系模型 关系模型基于数学集合理论将数据表示为表格的形式每个表格通过主键和外键进行关联。关系模型广泛应用于企业管理、金融、政府等领域适用于高规范化的数据。
模型数据结构适用场景优缺点层次模型树形结构父子节点文件系统、组织结构管理✅ 查询效率高❌ 数据冗余多对多关系处理困难网状模型图结构节点连接早期工业系统如IDMS✅ 复杂关系支持❌ 结构复杂维护成本高关系模型二维表行列通用业务系统ERP、CRM等✅ 结构清晰标准化高❌ 大数据处理效率较低文档模型JSON/BSON嵌套文档内容管理、日志存储✅ 灵活模式❌ 关联查询效率低列族模型按列簇存储BigTable衍生大数据分析如HBase✅ 高压缩率适合稀疏数据❌ 随机读写性能差 1.4 数据库层次结构
数据库的层次结构通常分为物理层、逻辑层和用户层。每一层负责不同的功能从数据存储到用户访问都由这些层次共同协作。
物理层物理层负责数据库数据的存储方式和优化它包括文件组织如堆文件、索引文件等、存储引擎如InnoDB、RocksDB以及缓存机制。该层关注数据在硬件中的存储形式确保数据的有效存取。逻辑层逻辑层则定义了数据库的逻辑结构包括表结构、视图、以及数据完整性约束如主键、外键等。这一层不关心数据的具体存储形式而是定义了如何通过SQL语句来操作数据库。用户层用户层为最终用户提供数据访问接口包括权限控制、虚拟表、以及数据库与应用程序之间的接口协议如JDBC、ODBC等。通过该层用户可以方便地访问数据库进行查询和操作。
层次核心功能关键组件示例内层物理层管理数据的物理存储- 文件组织堆文件、索引文件- 存储引擎InnoDB、RocksDB- 缓存机制Buffer Pool存储引擎、磁盘块管理、数据压缩算法概念层逻辑层定义全局的逻辑结构- 表结构Schema- 视图View- 完整性约束主键、外键数据字典、查询优化器、事务管理器外层用户层提供用户的数据访问- 权限控制RBAC- 虚拟表View- 接口协议JDBC/ODBC应用程序接口、可视化工具如Navicat、ORM框架Hibernate 1.5 数据库核心机制
数据库管理系统的核心机制包括事务管理、并发控制和数据安全等。这些机制确保了数据库在高并发环境下的数据一致性、完整性和可靠性。 事务管理
事务transaction是指一组数据库操作要求在执行过程中要么全部成功要么全部失败。事务管理确保数据库在并发操作中能够维持一致性避免出现部分操作执行成功、部分操作执行失败的情况。
ACID 是一组用于确保数据库事务可靠性和一致性的原则全称为 Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性。这些特性共同保证了在并发环境下数据库事务能够正确、安全地执行即使在系统故障或其他异常情况下也能保持数据的完整性和正确性。
特性定义实现技术原子性事务内操作全部成功或全部回滚Undo Log回滚日志一致性事务执行后数据库状态符合业务规则约束主键、外键、Check约束隔离性并发事务互不干扰锁机制行锁、表锁、MVCC多版本并发控制持久性事务提交后数据永久保存Redo Log重做日志、WAL预写式日志
索引优化
索引是提高数据访问效率的重要手段它像书籍的目录帮助快速定位数据。数据库通过索引结构如B树、哈希等来优化查询性能。
索引类型数据结构适用场景示例B树索引平衡多路搜索树范围查询、排序默认索引类型MySQL InnoDB哈希索引键值哈希映射等值查询如内存表Redis、Memcached全文索引倒排索引分词文本内容搜索Elasticsearch、MySQL FullText空间索引R树/GIS索引地理位置查询PostGISPostgreSQL扩展 1.6 数据表和视图
1.61 数据表Table
数据表是关系型数据库中存储数据的核心物理结构由行记录和列字段组成用于持久化保存实体或关系的具体数据。
核心特性
物理存储数据实际存储在磁盘中占用存储空间。结构定义需预先定义列名、数据类型如 INT, VARCHAR及约束主键、外键、唯一性等。数据操作支持增删改查INSERT, DELETE, UPDATE, SELECT等操作。独立性每个表代表一个独立的数据实体或关系如 学生表、课程表。
示例
CREATE TABLE 学生表 (学号 INT PRIMARY KEY, -- 主键约束姓名 VARCHAR(50) NOT NULL, -- 非空约束年龄 INT CHECK (年龄 10), -- 检查约束班级ID INT,FOREIGN KEY (班级ID) REFERENCES 班级表(班级ID) -- 外键约束
);1.62 视图View
视图是基于一个或多个表的查询结果生成的虚拟表不存储实际数据而是通过查询动态生成结果集。
核心特性
虚拟性不占用物理存储空间数据实时从基表计算。逻辑抽象隐藏底层表结构的复杂性提供简化的数据访问接口。安全性通过视图限制用户访问特定列或行如屏蔽敏感字段。更新限制部分视图支持更新操作但需满足特定条件如单表视图、未使用聚合函数。
视图就是一些特定的SQL语句每次打开视图就会执行这些语句。比如你的表存储了很多信息而有些信息是不能给客户查看的现在就可以创建一个视图只包含表中的特定列让客户查询这个视图。 这个很像api的概念简化了操作逻辑用户只能调用api提供的功能而无法看到api背后的具体实现。 视图就是一个整合的或者定制化的 “表”它支持很多表的操作如查询、对视图创建视图等。
综上如果没有相关需求视图不是数据库的必要内容。 尽管视图支持许多表的操作但它也有一些限制
性能开销视图的查询是动态执行的可能会带来额外的性能开销。更新限制复杂视图如包含聚合函数、多表连接等通常不支持直接更新。依赖性视图的定义依赖于底层表的结构。如果底层表的结构发生变化视图可能需要重新定义
示例
-- 创建视图仅显示学生姓名和班级名称隐藏学号和班级ID
CREATE VIEW 学生班级视图 AS
SELECT 学生表.姓名, 班级表.班级名称
FROM 学生表
JOIN 班级表 ON 学生表.班级ID 班级表.班级ID;作用与场景
简化复杂查询将多表关联或复杂计算封装为视图如统计学生平均成绩。数据权限控制限制用户仅能访问视图中的字段如隐藏工资列。逻辑独立性基表结构变化时通过调整视图定义保持应用层不变。 数据表 vs 视图核心区别
特性数据表Table视图View存储方式物理存储数据占用磁盘空间虚拟表仅保存查询定义不存储数据数据来源直接存储原始数据基于一个或多个表的查询结果动态生成更新操作支持所有增删改查操作仅部分视图支持更新需满足特定条件性能影响依赖索引和表结构优化复杂视图可能因查询计算影响性能设计目的持久化存储数据实体简化查询、控制访问、逻辑抽象 1.7 键类型
️ 1超键Super Key
能唯一标识表中某一行元组的一个或多个属性的集合可能存在冗余属性。
冗余性超键可能包含不必要的属性。 示例在 员工表 中员工ID 姓名 部门 可组成超键但仅需 员工ID 即可唯一标识记录其他属性冗余。用途主要用于理论分析为候选键的筛选提供基础。
设计原则
实际设计中需消除冗余属性转化为候选键。 ️ 2候选键Candidate Key
最小的超键无冗余属性表中可能有多个候选键。
唯一性每个候选键都能唯一标识记录。 示例在 用户表 中用户ID 和 身份证号 均为候选键。不可约简移除任意属性后不再满足唯一性。
设计原则
稳定性优先选择值不随业务逻辑变化的属性如自增ID。简洁性选择字段长度短、存储效率高的候选键。 ️ 3主键Primary Key
从候选键中选定的唯一标识符不可为空且不可重复。
唯一标识每个表有且仅有一个主键。 示例订单表 使用 订单ID 作为主键。物理存储影响在InnoDB中主键是聚簇索引的基准直接影响数据存储顺序。
设计原则 代理键 vs 自然键 类型优点缺点代理键如自增ID稳定、长度固定无业务含义自然键如身份证号业务相关可能变更或长度不一 最佳实践 优先使用 BIGINT UNSIGNED 自增主键。避免使用业务字段如手机号防止业务规则变化导致主键修改。 ️ 4 外键Foreign Key
引用其他表主键的字段用于维护表间关系与数据一致性。 参照完整性确保子表记录对应有效的父表记录。 示例订单明细表 中的 订单ID 引用 订单表 的主键。 级联操作需明确定义数据变更时的行为 ALTER TABLE 子表
ADD CONSTRAINT fk_order
FOREIGN KEY (order_id) REFERENCES 订单表(id)
ON DELETE CASCADE -- 父表删除时子表级联删除
ON UPDATE NO ACTION; -- 父表主键更新时禁止操作设计原则
分布式系统慎用跨节点外键可能引发性能问题需在应用层实现一致性。索引优化为外键字段建立索引加速关联查询。 ️ 5联合主键Composite Primary Key
由多个字段组合构成的主键。
复合唯一性多个字段的组合值唯一标识记录。 示例学生选课表 使用 学生ID 课程ID 作为联合主键。查询优化联合主键的字段顺序影响索引效率最左前缀原则。
设计原则
适用场景 多对多关系表如 订单_商品 关联表。无合适单一字段作为主键时。 字段顺序区分度高的字段应放在左侧。 示例国家代码 城市代码 优于 城市代码 国家代码。 键类型对比
键类型核心作用典型应用场景注意事项超键理论分析基础数据库设计初期分析需精简冗余属性候选键提供主键候选方案多唯一标识字段的表选择稳定且高效的候选键主键唯一标识记录优化存储所有表的核心标识必须的避免使用可变业务字段外键维护跨表数据一致性关联表如订单与用户分布式系统慎用需索引优化联合主键复合场景下的唯一性保证多对多关系表、时序数据表注意字段顺序与查询模式匹配 1.8 MySQL数据类型
数据库管理系统提供了多种数据类型用于存储不同类型的值。MySQL支持的常见数据类型包括整数类型、浮点数类型、日期时间类型和字符串类型等。
类别具体类型存储范围使用建议整数型TINYINT、INT、BIGINT1字节 ~ 8字节根据数据范围选择最小类型节省空间浮点型FLOAT、DOUBLE、DECIMAL单精度、双精度、精确小数DECIMAL(10,2)金融计算必须使用DECIMAL避免精度丢失时间型DATE、TIME、DATETIME、TIMESTAMPTIMESTAMP自动时区转换记录时间戳优先用TIMESTAMP4字节节省空间字符串型CHAR、VARCHAR、TEXT、BLOBCHAR定长0-255、VARCHAR变长0-65535短文本用VARCHAR长文本用TEXT压缩算法 1.9 数据库范式化
数据库范式化旨在通过分解关系来减少冗余数据确保数据的一致性和完整性。
范式规则示例1NF第一范式消除重复列属性原子性拆分“地址”字段为省、市、街道2NF第二范式消除部分函数依赖非主属性完全依赖主键订单表中不应存储客户姓名应通过外键关联3NF第三范式消除传递函数依赖非主属性不依赖其他非主属性员工表中不应包含部门地址应通过部门ID关联部门表
二、 数据库技术构成
2.1 系统构成
数据库系统由三个核心组成部分构成 数据库Database 用于持久化存储数据的物理容器通常以文件形式存在于存储设备中。 数据库管理系统DBMS管理数据库的软件系统提供以下功能 数据定义与结构管理数据操作与事务控制安全权限与访问控制备份恢复与性能优化 数据库应用程序用于增强DBMS功能的辅助工具例如 数据可视化工具如Tableau数据同步工具如Debezium监控管理工具如Percona Monitoring 2.2 SQL语言
SQLStructured Query Language是用于与数据库通信的标准语言具备以下特点
跨平台性主流DBMSMySQL、Oracle、PostgreSQL等均支持易学性基于自然英语的关键词SELECT/INSERT/UPDATE等功能强大支持从简单查询到复杂事务处理扩展性不同DBMS在标准SQL基础上提供专属扩展
SQL的功能分类
分类功能描述典型语句DDL数据定义语言管理数据库对象结构CREATE, ALTER, DROPDML数据操作语言操作数据记录INSERT, UPDATE, DELETEDQL数据查询语言数据检索SELECTDCL数据控制语言权限管理GRANT, REVOKE
SQL应用示例
1 表结构定义
CREATE TABLE user (id INT UNSIGNED NOT NULL AUTO_INCREMENT,name VARCHAR(32) NOT NULL DEFAULT COMMENT 姓名,sex TINYINT NOT NULL DEFAULT 0 COMMENT 性别0-保密,1-男,2-女,mobile VARCHAR(20) NOT NULL DEFAULT COMMENT 手机,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;2数据操作
-- 插入数据显式指定字段
INSERT INTO user (name, sex, mobile)
VALUES (张三, 1, 13811772277);-- 插入数据隐式全字段赋值
INSERT INTO user VALUES (19, 李四, 2, 13900112233);-- 查询数据
SELECT id, name, mobile FROM user WHERE sex 1;2.3 数据库访问技术
数据库访问技术是应用程序与数据库之间建立通信的核心桥梁不同的技术栈和场景下会采用不同的实现方案。以下对主流技术进行深度解析
2.31 ODBC开放数据库互连
ODBC诞生于1992年由微软联合多家厂商制定旨在解决不同数据库系统间的互操作性问题。作为首个跨平台数据库访问标准它通过抽象层屏蔽数据库差异。
架构解析
应用程序调用ODBC API提交SQL请求驱动程序管理器加载/卸载驱动程序管理连接池数据库驱动厂商提供的具体实现如MySQL ODBC Driver数据源通过DSNData Source Name配置连接参数
// C语言使用ODBC示例
#include sql.h
#include sqlext.h
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, env);
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, env, dbc);
SQLConnect(dbc, MySQL_DSN, SQL_NTS, user, SQL_NTS, pass, SQL_NTS);
SQLAllocHandle(SQL_HANDLE_STMT, dbc, stmt);
SQLExecDirect(stmt, SELECT * FROM employees, SQL_NTS);优势 支持异构数据库访问Oracle到SQL Server无缝切换与语言无关C/C/Python等均可调用 局限 配置复杂度高需手动管理DSN性能开销大于原生驱动 2.32 ADOActiveX Data Objects
作为微软COM体系的核心组件ADO为VB、ASP等语言提供高层数据库访问接口通过OLE DB底层驱动实现数据操作。
核心对象模型
Connection管理数据库连接Command执行SQL语句或存储过程Recordset封装查询结果集 VBScript使用ADO示例
Set conn CreateObject(ADODB.Connection)
conn.Open ProviderSQLOLEDB;Data Source.;Initial CatalogNorthwind;User IDsa;
Set rs conn.Execute(SELECT * FROM Products WHERE Price 20)
Do Until rs.EOFWScript.Echo rs(ProductName) - rs(Price)rs.MoveNext
Loop演进与替代
ADO.NET.NET Framework中的现代化替代方案支持断开式数据集Entity Framework基于LINQ的ORM框架进一步简化数据操作 2.33 JDBCJava数据库连接
架构分层
JDBC API提供java.sql和javax.sql接口JDBC Driver Manager加载数据库驱动如mysql-connector-javaJDBC Driver实现厂商特定协议Type 4纯Java驱动为主流
连接模式演进
基本连接DriverManager.getConnection()连接池优化HikariCP/Druid管理资源复用分布式事务通过JTAJava Transaction API支持
// Java 8 使用Try-with-resources简化JDBC操作
try (Connection conn DataSource.getConnection();PreparedStatement stmt conn.prepareStatement(INSERT INTO users(name,email) VALUES(?,?))) {stmt.setString(1, 李雷);stmt.setString(2, lileiexample.com);stmt.executeUpdate();
}2.34 ORM对象关系映射框架
通过元数据映射XML/注解将数据库表结构转化为面向对象模型实现以下目标
消除手动编写CRUD SQL支持延迟加载Lazy Loading关联数据提供跨数据库方言抽象
实现对比
框架语言特点适用场景HibernateJava全自动映射HQL查询语言复杂领域模型MyBatisJavaSQL与代码解耦灵活度高需精细控制SQLSQLAlchemyPython支持ORM和原生SQL双模式数据分析和Web开发Entity FrameworkC#LINQ集成Code First迁移.NET生态应用
# SQLAlchemy ORM示例
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_baseBase declarative_base()class User(Base):__tablename__ usersid Column(Integer, primary_keyTrue)name Column(String(50))email Column(String(120))# 查询操作
session.query(User).filter(User.name.like(%张%)).all()优点开发效率提升50%以上维护成本降低缺点复杂查询可能生成低效SQL需手动优化 2.4 数据库引擎
数据库引擎Database Engine是数据库管理系统的核心组件负责数据的存储、检索、事务处理以及并发控制。它直接决定了数据库的性能特性、可靠性及适用场景。
2.41 数据库引擎核心组件
1存储管理
数据组织定义数据在磁盘上的存储结构如B树、LSM树页管理以固定大小通常4KB~16KB管理磁盘数据块缓冲池通过内存缓存Buffer Pool减少磁盘I/O提升读写效率
2 事务处理
ACID实现 原子性依赖Undo Log回滚机制隔离性通过MVCC多版本并发控制或锁机制实现持久性Redo Log确保提交数据持久化 日志系统WALWrite-Ahead Logging协议保障故障恢复
3 查询处理
解析器将SQL转换为抽象语法树AST优化器基于代价模型生成最优执行计划执行器调用存储引擎接口获取数据
4索引管理
索引类型B树、哈希索引、全文索引、空间索引自适应优化动态调整索引结构如InnoDB的自适应哈希索引 2.42 主流数据库引擎对比
引擎适用场景核心特性局限性InnoDBOLTP事务处理- 支持ACID事务- 行级锁- 聚簇索引组织表- 外键约束高并发写入时Undo Log膨胀风险MyISAM读密集型分析- 表级锁- 全文索引- 压缩存储格式不支持事务崩溃后数据易损坏RocksDB嵌入式/高吞吐写入- LSM树结构- 高压缩率- 分层存储优化范围查询性能较弱Memory缓存/临时表- 全内存存储- 哈希索引加速查询宕机数据丢失不支持变长字段ColumnStore实时分析OLAP- 列式存储- 向量化计算- 数据压缩优化事务支持有限延迟较高
引擎切换示例MySQL
-- 创建表时指定引擎
CREATE TABLE log_events (id BIGINT PRIMARY KEY,content TEXT
) ENGINE MyISAM;-- 动态修改引擎
ALTER TABLE log_events ENGINE InnoDB;2.43 引擎选型策略
工作负载类型 OLTPInnoDB、SQL Server的Microsoft SQL EngineOLAPClickHouse的MergeTree、Amazon Redshift 数据规模 海量数据LSM树引擎Cassandra、ScyllaDB中等数据B树引擎InnoDB 一致性要求 强一致支持ACID的引擎InnoDB最终一致AP架构引擎DynamoDB OLTPOnline Transaction Processing联机事务处理和OLAPOnline Analytical Processing联机分析处理是数据库领域的两种不同应用场景分别用于处理日常事务操作和数据分析。它们在设计目标、数据结构、操作类型和应用场景上有显著区别。 OLTP联机事务处理 OLTP 是一种面向事务处理的数据库系统主要用于实时处理和管理日常业务操作。它的核心目标是支持高并发的事务操作确保数据的实时性和一致性。 特点 高并发性支持大量用户同时进行操作例如银行转账、在线购物等。低延迟操作响应时间非常短用户体验至关重要。事务性强调 ACID 特性原子性、一致性、隔离性、持久性确保数据的正确性和完整性。数据更新频繁主要涉及数据的插入、更新、删除等操作。面向行存储数据存储和操作通常是针对单行或少量行的操作。规范化设计数据通常按照规范化的模式进行存储减少数据冗余。 应用场景 银行系统存款、取款、转账等。电商网站商品购买、订单处理、用户登录等。在线订票系统机票、火车票预订等。企业资源规划ERP系统订单管理、库存管理等。 常见数据库 MySQL开源关系型数据库支持事务适合中小型应用。PostgreSQL开源关系型数据库支持复杂事务适合高可用性需求。Oracle商业数据库强大的事务处理能力广泛用于企业级应用。Microsoft SQL Server商业数据库适用于 Windows 环境下的企业应用。 OLAP联机分析处理 OLAP 是一种面向数据分析的系统主要用于从大量数据中提取有价值的信息支持复杂的查询和数据分析。它的核心目标是帮助决策者快速获取数据洞察支持业务决策。 特点 数据分析主要用于数据的汇总、统计、分析和多维度查询。数据量大通常处理的数据量非常大数据来源可能是多个 OLTP 系统。面向列存储为了优化分析查询数据通常以列存储的方式组织。多维数据模型支持多维数据模型如星型模型、雪花模型便于从不同角度分析数据。数据冗余为了提高查询效率数据可能经过预处理和冗余存储。读多写少主要操作是读取和分析数据写入操作较少。 应用场景 数据仓库存储企业历史数据支持复杂查询和报表生成。商业智能BI支持数据挖掘、趋势分析、预测等。市场分析分析销售数据、客户行为等。财务分析生成财务报表、预算分析等。 常见工具 数据仓库系统如 Amazon Redshift、Google BigQuery、Snowflake。分析数据库如 Apache Hive、Presto。BI 工具如 Tableau、Power BI、QlikView。 三、相关概念中英文表格
1数据库基础
中文术语英文术语定义与扩展关系型数据库Relational Database (RDB)基于关系模型的数据库使用二维表结构如MySQL、Oracle非关系型数据库NoSQL Database非结构化数据存储键值、文档、图、时序等类型数据库模式Database Schema数据库的全局逻辑结构定义表、字段、关系约束数据字典Data Dictionary存储元数据的系统表如表结构、索引信息数据库实例Database Instance运行中的数据库进程与内存结构的集合数据库集群Database Cluster多个数据库节点协同工作的集合如Galera Cluster数据库分片Database Sharding水平拆分数据到多个物理节点如按用户ID哈希分片数据库快照Database Snapshot某一时间点的数据静态副本用于备份或分析 2存储引擎与数据结构
中文术语英文术语定义与扩展B树B Tree多路平衡搜索树用于磁盘索引InnoDB默认结构LSM树Log-Structured Merge Tree高写入吞吐数据结构RocksDB、Cassandra核心跳表Skip List多层链表结构用于内存数据库索引Redis Sorted Set实现列式存储Columnar Storage按列组织数据ClickHouse、Redshift核心设计内存数据库In-Memory Database数据常驻内存Redis、MemSQL分布式文件系统Distributed File System跨节点文件存储HDFS、Ceph段页式存储Segment-Page Storage物理存储管理方式Oracle ASM、MySQL表空间压缩算法Compression AlgorithmZSTDRocksDB、LZ4Kafka、SnappyParquet 3事务与并发控制
中文术语英文术语定义与扩展ACID属性ACID Properties原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability事务隔离级别Transaction Isolation Levels读未提交Read Uncommitted、读已提交Read Committed、可重复读Repeatable Read、串行化Serializable乐观锁Optimistic Locking通过版本号检测冲突CAS机制悲观锁Pessimistic Locking预先加锁行锁、表锁共享锁Shared Lock (S Lock)允许并发读阻止写操作排他锁Exclusive Lock (X Lock)独占资源阻止其他读写两阶段提交协议Two-Phase Commit (2PC)分布式事务协议协调者与参与者交互CAP定理CAP Theorem一致性Consistency、可用性Availability、分区容忍性Partition Tolerance三选二 4查询处理与优化
中文术语英文术语定义与扩展查询优化器Query Optimizer生成最优执行计划基于规则/代价模型执行计划Execution Plan查询的具体操作步骤全表扫描、索引扫描、嵌套循环连接等索引下推Index Condition Pushdown (ICP)将过滤条件下推到存储引擎处理减少回表次数谓词推导Predicate Derivation通过逻辑规则简化查询条件物化视图Materialized View预计算并存储查询结果Oracle、Snowflake支持并行查询Parallel Query Execution多线程处理查询如Greenplum MPP架构向量化执行Vectorized Execution批量处理数据单元ClickHouse每秒亿级数据处理 5高可用与容灾
中文术语英文术语定义与扩展主从复制Master-Slave Replication异步/半同步数据同步MySQL Replication多主复制Multi-Master Replication多节点可写Galera Cluster故障转移Failover主节点故障时自动切换到备节点脑裂问题Split-Brain集群网络分区导致数据不一致数据冗余Data RedundancyRAID、EC纠删码技术保障数据可靠性逻辑备份Logical Backup导出SQL语句mysqldump物理备份Physical Backup复制数据文件Percona XtraBackup时间点恢复Point-in-Time Recovery (PITR)基于WAL日志恢复到指定时间点 6分布式数据库
中文术语英文术语定义与扩展一致性哈希Consistent Hashing分布式数据分片算法Cassandra、DynamoDB使用分片键Shard Key数据分片依据字段如用户ID数据局部性Data Locality计算靠近存储Hadoop HDFS数据本地化最终一致性Eventual Consistency数据副本经过一段时间后达成一致Cassandra默认模式分布式事务Distributed Transaction跨节点事务Google Spanner TrueTime API共识算法Consensus AlgorithmPaxos、RaftEtcd、ZABZooKeeper联邦查询Federated Query跨多个数据源联合查询Presto、Trino 7数据模型
中文术语英文术语定义与扩展层次模型Hierarchical Model树形结构早期IBM IMS网状模型Network Model图结构CODASYL标准文档模型Document ModelJSON/BSON格式MongoDB键值模型Key-Value Model简单键值对Redis、DynamoDB图模型Graph Model节点与边Neo4j、TigerGraph时序模型Time-Series Model时间戳索引InfluxDB、TimescaleDB宽列模型Wide-Column Model列族存储Cassandra、HBase 8安全与合规
中文术语英文术语定义与扩展角色访问控制Role-Based Access Control (RBAC)按角色分配权限DBA、ReadOnly User透明数据加密Transparent Data Encryption (TDE)数据库文件级加密Oracle、SQL Server支持数据脱敏Data Masking敏感信息替换如手机号中间四位****SQL注入防护SQL Injection Prevention参数化查询Prepared StatementGDPR合规General Data Protection Regulation欧盟数据保护法规要求数据可删除、可审计审计日志Audit Log记录所有数据操作如MySQL Enterprise Audit数据血缘Data Lineage追踪数据来源与变换过程Apache Atlas 9云与新兴技术
中文术语英文术语定义与扩展数据库即服务Database as a Service (DBaaS)云托管数据库AWS RDS、Azure Database无服务器数据库Serverless Database按需自动扩缩容PlanetScale、Aurora ServerlessHTAP数据库Hybrid Transactional/Analytical Processing同时支持事务与分析TiDB、Google F1边缘数据库Edge Database靠近数据源的轻量级数据库SQLite Edge、Redis Edge量子数据库Quantum Database基于量子计算的数据库原型学术界研究阶段区块链数据库Blockchain Database不可篡改的分布式账本BigchainDB向量数据库Vector Database存储与检索高维向量Milvus、Pinecone 10工具与生态系统
中文术语英文术语定义与扩展ETL工具Extract-Transform-Load数据集成工具Informatica、TalendBI工具Business Intelligence Tool数据分析可视化Tableau、Power BICDC工具Change Data Capture数据变更捕获Debezium、Maxwell数据库监控Database MonitoringPrometheus Grafana、Percona Monitoring数据目录Data Catalog元数据管理系统Alation、Apache Atlas数据湖Data Lake原始数据存储仓库AWS S3 Apache Iceberg数据网格Data Mesh去中心化数据架构强调领域自治与产品化