计算机及应用的数据库具体包含哪些内容?
- 内容介绍
- 文章标签
- 相关推荐
一、课程总览——为何要学数据库?
数据就是资产。许多同学在学习初期会遇到以下痛点:
- 不知道该选哪种数据库,常常盲目跟风。
- SQL 语法记不住写查询时频繁报错。
- 数据库设计混乱,导致后期维护成本飙升。
- 安全与备份缺乏程序思路,数据一旦丢失难以恢复。
本课程围绕这些痛点。程序梳理计算机及应用专业的数据库主要内容,帮助你从“懵懂”到“熟练”。
二、数据库基础知识
1. 基本概念与组成
-
从数据库来看,长期存储在计算机中的、有组织、可共享的数据集合。不过,
-
再看数据模型。关系模型、文档模型、键值模型等,用于抽象现实世界的数据结构。
-
关键组件的观点是,表、字段、索引、视图、存储过程、触发器、使用者/角色、命名空间、实例。
2. 常见分类与选型教程
| 类型 | 代表产品 | 适用场景 | 选型建议 |
|---|---|---|---|
| 关系型 RDBMS | MySQL / PostgreSQL / Oracle / SQL Server | 事务性业务、金融、电商等需要强一致性的程序 | 关注 ACID 支持和成熟环境,可优先考虑 MySQL 或 PostgreSQL。 |
| NoSQL 文档型 | MongoDB / Couchbase | 内容管理、日志收集、快速迭代的 Web 应用 | 对结构灵活性要求高时使用。 |
| NoSQL 键值型 | Redis / DynamoDB | Caching、高并发计数器、会话存储等场景 | 需要毫秒级响应且读写频繁时首选。说起来, |
| 列式存储/大数据仓库 | Cassandra / HBase / ClickHouse | 海量分析、大数据离线计算 | 关注写入吞吐和水平 能力。 |
| 分布式 NewSQL | Tidb / CockroachDB | 兼顾事务一致性和水平 | 需要云原生弹性伸缩且仍保持强一致性时考虑。 |
三、SQL 语言深入掌握
1. 基础 DDL/DML/DCL 操作
-- 创建表 CREATE TABLE employee ( emp_id INT PRIMARY KEY。name VARCHAR,dept_id INT,salary DECIMAL );-- 插入数据 INSERT INTO employee VALUES;其实,-- 查询 SELECT emp_id。name FROM employee WHERE salary> 5000;话说回来,-- 更新 UPDATE employee SET salary = salary * 1.05 WHERE dept_id = 10;-- 删除 DELETE FROM employee WHERE emp_id = 1;
2. 高级特性
- 子查询:SQl 中嵌套 SELECT,实现复杂过滤。
- 窗口函数:CUME_DIST,ROW_NUMBER 等用于分页与排名。
-
Transaction:
BEGIN;UPDATE account SET balance = balance - 100 WHERE id = 101;UPDATE account SET balance = balance + 100 WHERE id = 102;COMMIT,-- 出错则 ROLLBACK
确保业务原子性。怎么说呢, -
Temp Table 与 CTE:
WITH dept_total AS ( SELECT dept_id。 SUM AS total FROM employee GROUP BY dept_id ) SELECT e.name,d.total FROM employee e JOIN dept_total d ON e.dept_id = d.dept_id;
简化复杂查询结构。
四、数据库设计方法论
1. 实体-关系模型建立流程
- E‑R 图绘制:识别实体、属性和关系。
- 转换为关系模式:确定主键、外键并消除多值依赖。
- 从范式规范化来看,①范式。
- 说到逆向检查,是否满足查询性能需求。 \end{ol>
- PowerDesigner 、ER/Studio 、Navicat Data Modeler。
- 开源工具 dbdiagram.io 、draw.io。 \end ul>
-
关系型 DBMS
- MySQL / MariaDB :开源社区版易上手,适合中小项目;公司版提供高可用插件,
- PostgreSQL :标准兼容度最高,支持高级特性如 JSONB 与 GIS。
- Oracle :大型公司级网站,提供丰富的安全审计功能。
- SQL Server :微软环境整合,适合 .NET 开发者。
-
NoSQL 系列
- MongoDB :文档模型灵活,支持聚合管道与分片。
- Redis :内存键值存储,用作缓存或实时计数器。
- Cassandra :列族存储。高写入吞吐,可跨地域复制。
-
NewSQL 与分布式 SQL
- TiDB :水平 + 完整的 MySQL 协议,实现强一致性事务。按理说,
- CockroachDB :自恢复、多活部署。适合云原生微服务架构,
-
权限管理 : RBAC。最小权限原则
示例这方面,
GRANT SELECT,INSERT ON sales TO rolesalesuser;REVOKE UPDATE ON sales FROM rolesalesuser;
如此即使开发人员误操作也只能读写指定表。 -
数据加密 : 静态加密、传输层加密。
MySQL 示例:
ALTER INSTANCE ROTATE INNODB MASTER KEY;ALTER TABLE customer MODIFY COLUMN ssn VARBINARY;
- 审计日志 : 开启通用查询日志或专用审计插件,如 MariaDB audit_plugin。 可追溯谁在何时执行了 DELETE 操作。
-
备份与恢复 : 完整备份 + 增量日志 + 定期演练恢复流程。
推荐方法的观点是,
- 全量快照
- 增量 binlog 同步
- 灾备集群
2. 常用设计工具
3. 实战案例:电商订单程序表结构
订单表 - order_id PK - user_id FK → user.id - total_amount - status - created_at 订单明细表 - item_id PK - order_id FK → order.order_id - product_id FK → product.id - quantity - price 使用者表 - user_id PK - username UNIQUE - email UNIQUE …\end pre>五、主流 DBMS 深度剖析
六、安全与备份策略 ️️️️️⛔️⛔️⚠️⚠️⛔⛔⚠⚠🚨🚨🚧🚧☣☣❗❗🛑🛑🔐🔐🔓🔓📁📁💾💾📂📂🗄🗄📊📊✍✍✨✨💡💡✅✅✅✅✅✅✅✅✅✔✔✔✔✔✔✔✔❎❎❎❎❎)
一、课程总览——为何要学数据库?
数据就是资产。许多同学在学习初期会遇到以下痛点:
- 不知道该选哪种数据库,常常盲目跟风。
- SQL 语法记不住写查询时频繁报错。
- 数据库设计混乱,导致后期维护成本飙升。
- 安全与备份缺乏程序思路,数据一旦丢失难以恢复。
本课程围绕这些痛点。程序梳理计算机及应用专业的数据库主要内容,帮助你从“懵懂”到“熟练”。
二、数据库基础知识
1. 基本概念与组成
-
从数据库来看,长期存储在计算机中的、有组织、可共享的数据集合。不过,
-
再看数据模型。关系模型、文档模型、键值模型等,用于抽象现实世界的数据结构。
-
关键组件的观点是,表、字段、索引、视图、存储过程、触发器、使用者/角色、命名空间、实例。
2. 常见分类与选型教程
| 类型 | 代表产品 | 适用场景 | 选型建议 |
|---|---|---|---|
| 关系型 RDBMS | MySQL / PostgreSQL / Oracle / SQL Server | 事务性业务、金融、电商等需要强一致性的程序 | 关注 ACID 支持和成熟环境,可优先考虑 MySQL 或 PostgreSQL。 |
| NoSQL 文档型 | MongoDB / Couchbase | 内容管理、日志收集、快速迭代的 Web 应用 | 对结构灵活性要求高时使用。 |
| NoSQL 键值型 | Redis / DynamoDB | Caching、高并发计数器、会话存储等场景 | 需要毫秒级响应且读写频繁时首选。说起来, |
| 列式存储/大数据仓库 | Cassandra / HBase / ClickHouse | 海量分析、大数据离线计算 | 关注写入吞吐和水平 能力。 |
| 分布式 NewSQL | Tidb / CockroachDB | 兼顾事务一致性和水平 | 需要云原生弹性伸缩且仍保持强一致性时考虑。 |
三、SQL 语言深入掌握
1. 基础 DDL/DML/DCL 操作
-- 创建表 CREATE TABLE employee ( emp_id INT PRIMARY KEY。name VARCHAR,dept_id INT,salary DECIMAL );-- 插入数据 INSERT INTO employee VALUES;其实,-- 查询 SELECT emp_id。name FROM employee WHERE salary> 5000;话说回来,-- 更新 UPDATE employee SET salary = salary * 1.05 WHERE dept_id = 10;-- 删除 DELETE FROM employee WHERE emp_id = 1;
2. 高级特性
- 子查询:SQl 中嵌套 SELECT,实现复杂过滤。
- 窗口函数:CUME_DIST,ROW_NUMBER 等用于分页与排名。
-
Transaction:
BEGIN;UPDATE account SET balance = balance - 100 WHERE id = 101;UPDATE account SET balance = balance + 100 WHERE id = 102;COMMIT,-- 出错则 ROLLBACK
确保业务原子性。怎么说呢, -
Temp Table 与 CTE:
WITH dept_total AS ( SELECT dept_id。 SUM AS total FROM employee GROUP BY dept_id ) SELECT e.name,d.total FROM employee e JOIN dept_total d ON e.dept_id = d.dept_id;
简化复杂查询结构。
四、数据库设计方法论
1. 实体-关系模型建立流程
- E‑R 图绘制:识别实体、属性和关系。
- 转换为关系模式:确定主键、外键并消除多值依赖。
- 从范式规范化来看,①范式。
- 说到逆向检查,是否满足查询性能需求。 \end{ol>
- PowerDesigner 、ER/Studio 、Navicat Data Modeler。
- 开源工具 dbdiagram.io 、draw.io。 \end ul>
-
关系型 DBMS
- MySQL / MariaDB :开源社区版易上手,适合中小项目;公司版提供高可用插件,
- PostgreSQL :标准兼容度最高,支持高级特性如 JSONB 与 GIS。
- Oracle :大型公司级网站,提供丰富的安全审计功能。
- SQL Server :微软环境整合,适合 .NET 开发者。
-
NoSQL 系列
- MongoDB :文档模型灵活,支持聚合管道与分片。
- Redis :内存键值存储,用作缓存或实时计数器。
- Cassandra :列族存储。高写入吞吐,可跨地域复制。
-
NewSQL 与分布式 SQL
- TiDB :水平 + 完整的 MySQL 协议,实现强一致性事务。按理说,
- CockroachDB :自恢复、多活部署。适合云原生微服务架构,
-
权限管理 : RBAC。最小权限原则
示例这方面,
GRANT SELECT,INSERT ON sales TO rolesalesuser;REVOKE UPDATE ON sales FROM rolesalesuser;
如此即使开发人员误操作也只能读写指定表。 -
数据加密 : 静态加密、传输层加密。
MySQL 示例:
ALTER INSTANCE ROTATE INNODB MASTER KEY;ALTER TABLE customer MODIFY COLUMN ssn VARBINARY;
- 审计日志 : 开启通用查询日志或专用审计插件,如 MariaDB audit_plugin。 可追溯谁在何时执行了 DELETE 操作。
-
备份与恢复 : 完整备份 + 增量日志 + 定期演练恢复流程。
推荐方法的观点是,
- 全量快照
- 增量 binlog 同步
- 灾备集群
2. 常用设计工具
3. 实战案例:电商订单程序表结构
订单表 - order_id PK - user_id FK → user.id - total_amount - status - created_at 订单明细表 - item_id PK - order_id FK → order.order_id - product_id FK → product.id - quantity - price 使用者表 - user_id PK - username UNIQUE - email UNIQUE …\end pre>五、主流 DBMS 深度剖析
六、安全与备份策略 ️️️️️⛔️⛔️⚠️⚠️⛔⛔⚠⚠🚨🚨🚧🚧☣☣❗❗🛑🛑🔐🔐🔓🔓📁📁💾💾📂📂🗄🗄📊📊✍✍✨✨💡💡✅✅✅✅✅✅✅✅✅✔✔✔✔✔✔✔✔❎❎❎❎❎)

