Web安全
基础漏洞
01前端基础【HTML】
02前端基础【CSS】
03后端基础【PHP速通】
04后端基础【PHP面向对象】
05MySQL基础操作
06前后端联动【代码练习】
07SQL注入【1】
07SQL 注入【2】
08SQL注入 Labs
08SQL注入速查表
09XSS
09跨站脚本攻击【XSS】
09XSS Labs
10跨站请求伪造【CSRF】
11服务器端请求伪造【SSRF】
12XML 外部实体注入【XXE】
13代码执行漏洞
14命令执行漏洞
15文件包含漏洞
16文件上传漏洞
17反序列化漏洞
18业务逻辑漏洞
19未授权访问漏洞集合
20跨源资源共享【CORS】
21SSTI模板注入
22并发漏洞
23点击劫持【Clickjacking 】
24请求走私
25路径遍历
26访问控制
27身份验证漏洞
28WebSocket
29Web缓存中毒
30HTTP 主机头攻击
31信息泄露漏洞
32原型污染
33NoSQL注入
API 安全
01web应用程序
02HTTP协议
03API概述
04分类类型
05交换格式
06身份验证
07常见API漏洞
08crAPI靶场
09JWT
10OAuth 2.0身份验证
11GraphQL【1】
11GraphQL【2】
12DVGA靶场
13服务器端参数污染
14API文档
15API Labs
16OAuth Labs
17GraphQL API Labs
18JWT Labs
小程序
小程序抓包
数据库
MySQL
Oracle
MongoDB
Redis
PostgreSQL
SQL server
中间件
Nginx
Apache HTTP Server
IIS
Tomcat
框架
ThinkPHP
Spring
Spring Boot
Django
访问控制
-
+
首页
数据库
数据库(Database),顾名思义,就是存放数据的仓库。 ## 什么是数据库? **数据库** 是一个有组织、结构化的集合,用于存储、管理和检索数据。您可以把它想象成一个高度智能化、电子化的文件柜,这个“文件柜”不仅存放数据,还内置了一套复杂的机制来高效、安全地处理这些数据。 与之紧密相关的另一个核心概念是 **数据库管理系统**。 **数据库管理系统** 是一种软件系统,它就像数据库的“大脑”和“管理员”。用户和应用程序通过DBMS与数据库进行交互,而无需直接接触数据文件。DBMS负责: * 定义数据的结构和约束。 * 插入、更新、删除和查询数据。 * 维护数据的安全性和完整性。 * 控制并发访问(多个用户同时操作)。 * 在发生故障时恢复数据。 **常见的关系型DBMS包括**:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, SQLite等。 **常见的非关系型DBMS包括**:MongoDB, Redis, Cassandra, Elasticsearch等。 **简单比喻**: * **数据库** = 文件柜 + 里面存放的文件 * **DBMS** = 管理文件柜的图书管理员/操作系统 ## 为什么需要数据库? 相比于简单地使用文本文件或电子表格来存储数据,数据库具有无可比拟的优势: **数据持久化**:数据被可靠地保存在存储设备中,不会因为程序退出或断电而丢失。 **数据共享**:支持多个用户或应用程序同时安全地访问和操作数据。 **减少冗余**:通过合理的数据库设计,可以极大减少数据的重复存储(规范化),节省空间并保持一致性。 **数据一致性**:通过事务(Transaction)和完整性约束(如主键、外键),确保数据始终处于有效和一致的状态。 **数据安全**:DBMS提供了完善的权限管理机制,可以控制不同用户对不同数据的访问权限(如只能读、可以写等)。 **高效查询**:支持使用强大的查询语言(如SQL)快速、灵活地从海量数据中检索出所需信息。 **并发控制**:能处理多个用户同时读写数据的需求,防止数据混乱,保证操作的准确性。 ## 数据库的主要类型 数据库主要分为两大类:关系型数据库和非关系型数据库。 ### 关系型数据库 这是最传统和最常见的类型。它建立在**关系模型**之上,使用**表** 来组织数据。 > 核心概念 **表**:由行和列组成。例如,一个 用户表。 **行**:代表一条**记录**。例如,一个用户的所有信息。 **列**:代表一个**字段**或属性。例如,用户名、密码、邮箱。 **模式**:数据库的结构定义,包括表、列、数据类型、关系等。 **SQL**:用于管理和查询关系型数据库的标准语言。 **ACID**:事务的四个关键特性,保证了数据库交易的可靠性。 * **原子性**:事务要么全部完成,要么全部不完成。 * **一致性**:事务必须使数据库从一个一致性状态变换到另一个一致性状态。 * **隔离性**:并发执行的事务彼此隔离,互不干扰。 * **持久性**:事务一旦提交,其对数据的改变就是永久性的。 **优点**:数据结构清晰,支持复杂的查询和事务操作,保证了数据的强一致性。 **缺点**:在处理超大规模数据和高并发读写时,扩展性相对较差。 例子:MySQL, Oracle, PostgreSQL, SQL Server。 ### 非关系型数据库 也称为 **NoSQL** 数据库。它们为了适应现代互联网应用(大数据、高并发、灵活 schema)的需求而诞生,打破了关系模型的限制。 **核心特点**:通常没有固定的表结构,扩展性好,更适合分布式大规模数据存储。 > 主要类型 **文档型**:将数据存储为类似JSON的文档格式。**(如 MongoDB)** * *适用场景*:内容管理系统、用户配置文件、博客文章等。 **键值型**:最简单的NoSQL数据库,通过唯一的键来访问值。**(如 Redis)** * *适用场景*:会话缓存、购物车、配置信息、排行榜等。 **列族型**:将数据存储在列族中,适合存储海量数据。**(如 Cassandra, HBase)** * *适用场景*:日志系统、大数据分析平台。 **图型**:使用图结构(节点、边、属性)来存储数据,专注于数据间的关系。**(如 Neo4j)** * *适用场景*:社交网络、欺诈检测、推荐引擎。 **优点**:灵活的数据模型、高可扩展性、高性能。 **缺点**:通常不支持复杂的联表查询,大多数不提供强一致性保证(最终一致性)。 ## 数据库的核心操作 - 以SQL为例 对于关系型数据库,最核心的操作是通过SQL语言完成的,主要分为以下几类: **DDL - 数据定义语言**:用于定义和修改数据库模式。 * CREATE:创建数据库、表等。 * ALTER:修改表结构。 * DROP:删除数据库、表等。 **DML - 数据操作语言**:用于对数据进行增删改查。 * SELECT:查询数据。 * INSERT:插入新数据。 * UPDATE:更新数据。 * DELETE:删除数据。 **DCL - 数据控制语言**:用于控制数据的访问权限。 * GRANT:授予权限。 * REVOKE:撤销权限。 ## 现代趋势与发展 **云数据库**:数据库作为一种服务部署在云平台上(如 AWS Aurora, Google Cloud Spanner, Azure SQL Database),用户无需管理硬件,按需付费,弹性扩展。 **NewSQL**:试图结合SQL数据库的ACID特性和NoSQL数据库的可扩展性。**(如 Google Spanner, TiDB)** **多模型数据库**:一个数据库支持多种数据模型(如文档、图、键值),以适应不同的业务需求。 **大数据与数据库的融合**:数据库技术与Hadoop、Spark等大数据框架紧密结合,用于处理和分析海量数据集。 ### 总结 数据库是现代信息系统的基石,它从简单的数据存储仓库,演变成了一个智能、可靠、高效的数据管理平台。 理解关系型数据库(SQL)和非关系型数据库(NoSQL)的区别与适用场景,是设计和开发任何应用程序的关键第一步。随着云计算和分布式系统的发展,数据库技术仍在不断演进,以应对日益增长的数据挑战。
毛林
2025年9月11日 20:45
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码