数据无处不在——从客户记录到应用交易——保持其井然有序至关重要。事实上,预计到 2028 年全球数据量将达到 394 个泽字节 。这是一个令人震撼的数字,如果没有一套系统来管理,它很快就会变得一团糟。
这就是我们使用数据库管理系统(DBMS)的原因。它帮助存储和管理数据,使企业和应用顺畅运行。在本指南中,我将拆解什么是 DBMS、它如何工作、有哪些类型,以及为什么它对现代数据存储与管理至关重要。
什么是 DBMS?
数据库管理系统(DBMS)可以高效地存储、组织并管理数据。没有 DBMS,数据会分散在多个文件中,难以定位或更新。DBMS 通过提供一个集中式系统简化这些任务,使用户能够轻松添加、修改或删除数据,同时确保准确性和一致性。
DBMS 的关键功能
在数据管理方面,DBMS 承担了大量繁重工作。它组织并保护信息,让我们在需要时快速找到所需内容而不头疼。下面详细看看它的关键功能。
数据定义
数据库使用 DDL(数据定义语言)以结构化方式存储信息。通过 DDL,我们可以创建表、添加字段并将它们关联起来,例如建立一个包含姓名、电话号码和电子邮箱的客户列表。
以下是一些常见的 DDL 命令:
1)CREATE 用于创建新表、字段和关系。它帮助我们定义要存储的数据类型。假设您在构建客户数据库,那么可以这样创建一个用于存储客户信息的表:
CREATE TABLE Customers (
ID INT PRIMARY KEY ,
Name VARCHAR ( 100 )
) ; 技术支持
2)ALTER 修改现有表(添加、删除或更改列)。这里我在 Customers 表中添加了一个新字段(email):
ALTER TABLE Customers ADD Email VARCHAR ( 255 ) ; 技术支持
3)DROP 永久删除数据库对象。以下是我删除 Customers 表的方法:
DROP TABLE Customers; 技术支持
4)TRUNCATE 会删除表中的所有记录,但保留其结构。与 DROP 不同,它保留表本身,仍可继续使用。命令示例如下:
TRUNCATE TABLE Customers; 技术支持
5)RENAME 用于更改表或列名。例如,将 Customers 表重命名为 Clients,我会这样做:
RENAME TABLE Customers TO Clients; 技术支持
数据操作
在设置好数据库之后,我们就可以开始操作数据——使用数据操作语言(DML)添加、更新或删除记录。
以下是一些常见的 DML 命令:
1)INSERT 向表中添加一行新数据。例如,要向我们的 Customers 表添加一位新客户,我会使用:
INSERT INTO Customers
( ID, Name, Email)
VALUES
( 1 , Drake White, '[email protected] ' ) ; 技术支持
这会向表中添加一位客户,ID 为 1,姓名为 Drake White,邮箱为 [email protected] 。
2)UPDATE 修改表中的现有记录。要更改某位客户的邮箱,我会这样更新其记录:
UPDATE Customers SET Email = 'drake [email protected] ' WHERE ID = 1 ; 技术支持
这会将 ID 为 1 的客户邮箱更新为 drake [email protected] 。
3)DELETE 从表中删除特定数据。要删除 ID 为 1 的客户,我会使用:
DELETE FROM Customers WHERE ID = 1 ; 技术支持
注意: 使用 DELETE 要小心——数据一旦删除就没了(除非您有备份)。
4)SELECT 从表中检索数据。例如,要查看表中的所有客户,我会使用:
SELECT * FROM Customers; ` 技术支持
如果我只想查看特定姓名的客户,可以用:
SELECT * FROM Customers WHERE Name = 'Drake White' ; 技术支持
这将仅返回 Name 字段为 Drake White 的记录。
数据检索
如上一节所示,DBMS 通过 SQL 或其他查询语言快速检索信息。我们无需手动在成千上万条记录中搜索,只需用查询就能在几秒内找到所需内容。
比如我想找到所有来自 New York 的客户,与其翻阅成千上万条记录,不如直接使用这样的 SQL 查询:
SELECT * FROM customers WHERE city = 'New York' ; 技术支持
数据完整性与安全
DBMS 通过为每条记录分配唯一 ID 并关联相关表来保持数据准确。它用主键连接行,并通过外键在表之间维持一致性。为确保数据安全,它会使用:
身份验证 来控制谁可以访问数据。
加密 以防止黑客攻击。
访问控制 来管理谁可以查看或编辑。
数据存储与备份
DBMS 高效存储数据并维护其备份。它使用索引来加速搜索,并内置备份与恢复功能,以防止因误删或系统故障导致的数据丢失。这样一来,即使出现问题,我们也能恢复数据而不丢失重要信息。
DBMS 的类型
并非所有 DBMS 的工作方式都相同。事实上,它有多种类型,分别针对不同的数据类型和使用场景而设计。让我们用一些易懂的示例来拆解。
层次型 DBMS
层次型 DBMS 将数据构造成类似家谱的结构,每条记录都有一个父节点,每个父节点可以有多个子节点。然而,每个子节点只能有一个父节点(即一对多关系)。
想象一家公司的组织架构图:一位经理(父节点)管理多名员工(子节点),但每位员工只向一位经理汇报。
层次型 DBMS 结构。图片作者自制。
著名的层次型 D BMS 示例是 IBM 的信息管理系统(IMS) ,它是最早使用此结构来处理海量数据的系统之一。
网状型 DBMS
网 状型 DBMS 比层次型更灵活,因为它允许记录拥有多个父节点和多个子节点(多对多关系)。这使得处理复杂关系更容易。此类的一个示例是 Integrated Data Store 。
例如,在一所大学的数据库中,学生可以选修多门课程,每门课程也可以有多名学生。
网状型 DBMS 结构。图片作者自制。
关系型 DBMS(RDBMS)
一款关系型 DBMS 将数据存储在表中,每个表由行和列组成(类似电子表格)。这些表通过唯一键进行关联,便于组织和检索数据:
主 键 唯一标识每一行。
外 键 通过引用另一表的主键连接多张表。
这种类型的 DBMS 应用极为广泛 ,因为它可靠、可扩展且易于管理。常见示 例包括 MySQL 、PostgreSQL 和 Oracle 。
假设我们有两张表:
Students:存储学生姓名、学号和课程。
Marks:存储学号及对应的考试成绩。
其中 Students 表的 Roll No. 列是主键,而在 Marks 表中,它是一个外键,指回 Students 表。
SELECT Students. Name, Students. Course, Marks. Marks
FROM Students
JOIN Marks ON Students. RollNo = Marks. RollNo; 技术支持
上述查询返回包含学生姓名、所修课程及其成绩的合并视图。
关系型 DBMS 结构。图片作者自制。
面向对象 DBMS(OODBMS)
面向对象 DBMS 以 对象的形式存储数据,类似于 Java 或 Python 等编程语言处理对象的方式。这些对象既包含数据,也包含用于操作它们的方法。一个常见示例是 db4o ,这是面向 Java 和 .NET 开发者的开源数据库。
例如,一所大学将学生信息存储为对象,每个 Student 对象包含 Name、Age、Student ID 等属性,以及 Enroll()、Drop_Course() 等行为。学生与 Course 对象相关联,后者包含 Course_Name、Instructor、Credits_hours 等信息,并通过 Enrollment 对象跟踪 Enrollment_Date 和 Grades。
面向对象 DBMS 结构。图片作者自制。
NoSQL DBMS
NoSQL DBMS 使用非关系型模型来存储数据,例如文档型、键值型、列族型或图模型。它多使用 JSON(JavaScript 对象表示法)结构来处理大量非结构化或半结构化数据。
与关系型数据库不同,它不使用固定表结构,提供更灵活的数据存储与检索方式。这使其非常适合大数据、实时应用和云端系统。代表性产品包括 MongoDB 、Apache Cassandra 和 Couchbase 。
以下展示如何用 JSON 格式存储学生数据:
{
"student_id" : "101" ,
"name" : "Emma" ,
"age" : 16 ,
"grade" : 11 ,
"subjects" : [ "Math" , "Science" , "English" ]
} 技术支持
常见 DBMS 软件
不同的 DBMS 面向不同需求。有的免费且非常适合网站使用,有的则为大型企业打造,强调顶级的安全与性能。下面来看看一些最受欢迎的 DBMS 软件及其应用场景。
MySQL
MySQL 是最广泛使用的开源关系型数据库管理系统(RDBMS)之一。它因速度快、可扩展性强而常用于网站与应用。像 WordPress 和电商平台等大型平台都依赖 MySQL 高效管理海量数据而不致性能下降。
PostgreSQL
PostgreSQL 是一款高级开源对象-关系数据库管理系统(ORDBMS),非常灵活且功能强大。它支持复杂查询,并可与 Java、Python 等多种编程语言配合使用。像 Netflix 和 Instagram 这类大厂选择 PostgreSQL,是因为它能在 Windows、macOS、Linux 等不同平台上处理海量结构化和非结构化数据。
👉 获取 我们的 PostgreSQL 基础速查表 !
Microsoft SQL Server
Microsoft SQL Server (SQL Server)是微软构建的商用 RDBMS,面向企业级性能与安全。对于依赖微软生态的企业而言,它是首选,因其可与 Azure、Power BI 等工具无缝集成。事实上,它将数据整齐地组织在结构化表格中,并使用 Transact-SQL(T-SQL)和 Tabular Data Stream 协议来无误地处理事务。
MongoDB
MongoDB 是开源的 NoSQL 数据库,这意味着它不像 MySQL 或 SQL Server 那样使用传统表格。它将信息存储为文档(类似 JSON 格式)。这使其高度灵活、可扩展,非常适合处理大量动态或非结构化数据。凭借速度与可扩展性,MongoDB 是实时应用、移动应用和大数据处理的上佳之选。
Oracle 数据库
1977 年,Larry Ellison、Bob Miner 和 Ed Oates 开发了 Oracle 数据库,后来成为甲骨文公司(Oracle Corporation)的一部分。它是一款面向大型企业的高性能 RDBMS,具备坚实的安全与自动化能力。
它能在自行优化性能的同时处理海量数据——这可为企 业节省时间并将计算成本降低最高 87% 。凭借内置的加密、访问控制和监控工具,Oracle 能将敏感数据免受未授权访问的威胁。
结语
数据库管理系统(DBMS)是实现数据有序、安全与高效处理的基石。没有它们,管理海量信息将既缓慢又易出错。
对于企业而言,DBMS 能确保数据在需要时保持准确、受保护且易于访问。
如果您准备在学习之路上更进一步,可以深入学习 SQL 和数据库基 础。从 SQL 基础 开始夯实根基,或探索 数据库设计 以掌握如何高效构建数据结构,亦可参与 关系型数据库 SQL 入门 课程以深化对 RDBMS 概念的理解!
数据无处不在——从客户记录到应用交易——保持其井然有序至关重要。事实上,预计到 2028 年全球数据量将达到 394 个泽字节。这是一个令人震撼的数字,如果没有一套系统来管理,它很快就会变得一团糟。
这就是我们使用数据库管理系统(DBMS)的原因。它帮助存储和管理数据,使企业和应用顺畅运行。在本指南中,我将拆解什么是 DBMS、它如何工作、有哪些类型,以及为什么它对现代数据存储与管理至关重要。
什么是 DBMS?
数据库管理系统(DBMS)可以高效地存储、组织并管理数据。没有 DBMS,数据会分散在多个文件中,难以定位或更新。DBMS 通过提供一个集中式系统简化这些任务,使用户能够轻松添加、修改或删除数据,同时确保准确性和一致性。
DBMS 的关键功能
在数据管理方面,DBMS 承担了大量繁重工作。它组织并保护信息,让我们在需要时快速找到所需内容而不头疼。下面详细看看它的关键功能。
数据定义
数据库使用 DDL(数据定义语言)以结构化方式存储信息。通过 DDL,我们可以创建表、添加字段并将它们关联起来,例如建立一个包含姓名、电话号码和电子邮箱的客户列表。
以下是一些常见的 DDL 命令:
1)
CREATE用于创建新表、字段和关系。它帮助我们定义要存储的数据类型。假设您在构建客户数据库,那么可以这样创建一个用于存储客户信息的表:2)
ALTER修改现有表(添加、删除或更改列)。这里我在Customers表中添加了一个新字段(email):3)
DROP永久删除数据库对象。以下是我删除Customers表的方法:4)
TRUNCATE会删除表中的所有记录,但保留其结构。与DROP不同,它保留表本身,仍可继续使用。命令示例如下:5)
RENAME用于更改表或列名。例如,将Customers表重命名为Clients,我会这样做:数据操作
在设置好数据库之后,我们就可以开始操作数据——使用数据操作语言(DML)添加、更新或删除记录。
以下是一些常见的 DML 命令:
1)
INSERT向表中添加一行新数据。例如,要向我们的Customers表添加一位新客户,我会使用:这会向表中添加一位客户,ID 为
1,姓名为Drake White,邮箱为[email protected]。2)
UPDATE修改表中的现有记录。要更改某位客户的邮箱,我会这样更新其记录:这会将 ID 为
1的客户邮箱更新为drake [email protected]。3)
DELETE从表中删除特定数据。要删除 ID 为1的客户,我会使用:注意:使用
DELETE要小心——数据一旦删除就没了(除非您有备份)。4)
SELECT从表中检索数据。例如,要查看表中的所有客户,我会使用:如果我只想查看特定姓名的客户,可以用:
这将仅返回
Name字段为Drake White的记录。数据检索
如上一节所示,DBMS 通过 SQL 或其他查询语言快速检索信息。我们无需手动在成千上万条记录中搜索,只需用查询就能在几秒内找到所需内容。
比如我想找到所有来自
New York的客户,与其翻阅成千上万条记录,不如直接使用这样的 SQL 查询:数据完整性与安全
DBMS 通过为每条记录分配唯一 ID 并关联相关表来保持数据准确。它用主键连接行,并通过外键在表之间维持一致性。为确保数据安全,它会使用:
数据存储与备份
DBMS 高效存储数据并维护其备份。它使用索引来加速搜索,并内置备份与恢复功能,以防止因误删或系统故障导致的数据丢失。这样一来,即使出现问题,我们也能恢复数据而不丢失重要信息。
DBMS 的类型
并非所有 DBMS 的工作方式都相同。事实上,它有多种类型,分别针对不同的数据类型和使用场景而设计。让我们用一些易懂的示例来拆解。
层次型 DBMS
层次型 DBMS 将数据构造成类似家谱的结构,每条记录都有一个父节点,每个父节点可以有多个子节点。然而,每个子节点只能有一个父节点(即一对多关系)。
想象一家公司的组织架构图:一位经理(父节点)管理多名员工(子节点),但每位员工只向一位经理汇报。
层次型 DBMS 结构。图片作者自制。
著名的层次型 DBMS 示例是 IBM 的信息管理系统(IMS),它是最早使用此结构来处理海量数据的系统之一。
网状型 DBMS
网状型 DBMS 比层次型更灵活,因为它允许记录拥有多个父节点和多个子节点(多对多关系)。这使得处理复杂关系更容易。此类的一个示例是 Integrated Data Store。
例如,在一所大学的数据库中,学生可以选修多门课程,每门课程也可以有多名学生。
网状型 DBMS 结构。图片作者自制。
关系型 DBMS(RDBMS)
一款关系型 DBMS将数据存储在表中,每个表由行和列组成(类似电子表格)。这些表通过唯一键进行关联,便于组织和检索数据:
这种类型的 DBMS 应用极为广泛,因为它可靠、可扩展且易于管理。常见示例包括 MySQL、PostgreSQL 和 Oracle。
假设我们有两张表:
Students:存储学生姓名、学号和课程。Marks:存储学号及对应的考试成绩。其中
Students表的Roll No.列是主键,而在Marks表中,它是一个外键,指回Students表。上述查询返回包含学生姓名、所修课程及其成绩的合并视图。
关系型 DBMS 结构。图片作者自制。
面向对象 DBMS(OODBMS)
面向对象 DBMS 以对象的形式存储数据,类似于 Java 或 Python 等编程语言处理对象的方式。这些对象既包含数据,也包含用于操作它们的方法。一个常见示例是 db4o,这是面向 Java 和 .NET 开发者的开源数据库。
例如,一所大学将学生信息存储为对象,每个
Student对象包含Name、Age、Student ID等属性,以及Enroll()、Drop_Course()等行为。学生与Course对象相关联,后者包含Course_Name、Instructor、Credits_hours等信息,并通过Enrollment对象跟踪Enrollment_Date和Grades。面向对象 DBMS 结构。图片作者自制。
NoSQL DBMS
NoSQL DBMS 使用非关系型模型来存储数据,例如文档型、键值型、列族型或图模型。它多使用 JSON(JavaScript 对象表示法)结构来处理大量非结构化或半结构化数据。
与关系型数据库不同,它不使用固定表结构,提供更灵活的数据存储与检索方式。这使其非常适合大数据、实时应用和云端系统。代表性产品包括 MongoDB、Apache Cassandra 和 Couchbase。
以下展示如何用 JSON 格式存储学生数据:
常见 DBMS 软件
不同的 DBMS 面向不同需求。有的免费且非常适合网站使用,有的则为大型企业打造,强调顶级的安全与性能。下面来看看一些最受欢迎的 DBMS 软件及其应用场景。
MySQL
MySQL 是最广泛使用的开源关系型数据库管理系统(RDBMS)之一。它因速度快、可扩展性强而常用于网站与应用。像 WordPress 和电商平台等大型平台都依赖 MySQL 高效管理海量数据而不致性能下降。
PostgreSQL
PostgreSQL 是一款高级开源对象-关系数据库管理系统(ORDBMS),非常灵活且功能强大。它支持复杂查询,并可与 Java、Python 等多种编程语言配合使用。像 Netflix 和 Instagram 这类大厂选择 PostgreSQL,是因为它能在 Windows、macOS、Linux 等不同平台上处理海量结构化和非结构化数据。
👉 获取我们的 PostgreSQL 基础速查表!
Microsoft SQL Server
Microsoft SQL Server(SQL Server)是微软构建的商用 RDBMS,面向企业级性能与安全。对于依赖微软生态的企业而言,它是首选,因其可与 Azure、Power BI 等工具无缝集成。事实上,它将数据整齐地组织在结构化表格中,并使用 Transact-SQL(T-SQL)和 Tabular Data Stream 协议来无误地处理事务。
MongoDB
MongoDB 是开源的 NoSQL 数据库,这意味着它不像 MySQL 或 SQL Server 那样使用传统表格。它将信息存储为文档(类似 JSON 格式)。这使其高度灵活、可扩展,非常适合处理大量动态或非结构化数据。凭借速度与可扩展性,MongoDB 是实时应用、移动应用和大数据处理的上佳之选。
Oracle 数据库
1977 年,Larry Ellison、Bob Miner 和 Ed Oates 开发了 Oracle 数据库,后来成为甲骨文公司(Oracle Corporation)的一部分。它是一款面向大型企业的高性能 RDBMS,具备坚实的安全与自动化能力。
它能在自行优化性能的同时处理海量数据——这可为企业节省时间并将计算成本降低最高 87%。凭借内置的加密、访问控制和监控工具,Oracle 能将敏感数据免受未授权访问的威胁。
结语
数据库管理系统(DBMS)是实现数据有序、安全与高效处理的基石。没有它们,管理海量信息将既缓慢又易出错。
对于企业而言,DBMS 能确保数据在需要时保持准确、受保护且易于访问。
如果您准备在学习之路上更进一步,可以深入学习 SQL 和数据库基础。从 SQL 基础开始夯实根基,或探索 数据库设计以掌握如何高效构建数据结构,亦可参与 关系型数据库 SQL 入门课程以深化对 RDBMS 概念的理解!