数据库基础
I’m happy to translate the article for you, but I’ll need the actual text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source link, formatting, markdown, and any code blocks exactly as you request.
为什么数据很重要
什么是数据库?
什么是好的数据库?
不同类型的数据库
关系型数据库解释
什么是 DBMS?
DBMS 的作用是什么?
理解数据库键
数据之间的关系
数据库的问题
一个简单的类比
把数据库想象成一个智能文件柜,它以有序的方式存储信息。
简明定义:
数据库是一个我们将相关信息集中存放的地方,方便公司中的每个人轻松使用。
核心优势
1. 存储大量信息
与其把数据散落在多个 Excel 文件或纸质文档中,不如将所有信息集中在一个地方,轻松搜索所需内容。
2. 分析你的数据
可以提出诸如 “上个月有多少客户购买了产品?” 之类的问题,并快速得到答案。生成报告以更好地了解业务情况。
3. 记录追踪
需要记住谁付款、店里有哪些商品,或客户的电话号码吗?数据库可以安全、井然有序地保存这些信息。
4. 支持网站和应用
每当你使用 Facebook、Amazon 或任何应用时,背后都有数据库在工作,向你展示正确的信息。
5. 日常笔记本类比
想象你有一本笔记本,里面记着:
- 朋友的名字
- 他们的电话号码
- 他们的生日
数据库就像这本笔记本,只是放在电脑里:结构化、瞬间可搜索,并且多人可以同时使用。
好数据库的5个关键特性
| # | 质量 | 含义 |
|---|---|---|
| 1 | 完整性(正确性) | 信息必须准确(例如,年龄 = 25,而不是 250)。 |
| 2 | 可用性(随时就绪) | 数据应在您需要时随时可访问——24/7。 |
| 3 | 安全性(受保护) | 只有授权人员才能查看或修改数据。 |
| 4 | 独立于应用(灵活) | 可与任何程序配合使用(就像U盘可以在任何电脑上使用)。 |
| 5 | 并发性(多用户) | 多个用户可以同时访问数据而不会产生冲突。 |
Source: …
数据库类型
正如不同的交通工具(汽车、自行车、卡车)满足不同需求,数据库也有多种类型。
| 类型 | 描述 | 典型使用场景 | 示例 |
|---|---|---|---|
| 关系型数据库 (SQL) | 由行列组成的表格,类似 Excel 电子表格。 | 最常见的应用。 | MySQL、PostgreSQL、Oracle |
| NoSQL 数据库 | 存储“杂乱”数据,如照片、视频、社交媒体帖子、文档。 | 大数据、灵活模式。 | MongoDB(被 Uber、eBay 使用) |
| 列式数据库 | 按列而非按行存储数据;非常适合对海量数据集进行分析。 | 数据仓库、分析。 | Google BigQuery、Amazon Redshift |
| 图数据库 | 对实体之间的关系建模(例如 Facebook 的朋友关系、Netflix 的推荐)。 | 社交网络、推荐引擎。 | Neo4j、Amazon Neptune |
| 键值数据库 | 简单的字典式存储:键映射到值。 | 缓存、会话存储。 | Redis、DynamoDB |
该选哪一种?
这取决于你要构建的系统。对于大多数初学者项目,建议从 关系型数据库 开始。
关系型数据库 – 深入探讨
把关系型数据库想象成多个相互 关联 的 Excel 工作表。
| 工作表 | 内容 |
|---|---|
| 工作表 1 | 学生姓名及其学号 |
| 工作表 2 | 班级名称以及其中的学生 |
两个工作表都使用 学生学号,因此它们是关联的。
它对应的数据库术语
- 表格 = Excel 工作表
- 行 = 每条信息(例如,一个学生)
- 列 = 信息类型(例如,姓名、年龄、电子邮件)
DBMS – 数据库管理系统
类比:
- Database = 图书馆(存放书籍的地方)
- DBMS = 图书管理员(帮助你查找、添加或移除书籍)
常见 DBMS 软件
- MySQL
- PostgreSQL
- Oracle
- Microsoft SQL Server
DBMS 的功能
- Data Management – 保存、检索和修改信息。
- Keeps Data Accurate (Integrity) – 防止无效条目(例如,将 “ABC” 作为年龄)。
- Multi‑user Access (Concurrency) – 允许多用户同时工作而不会产生冲突。
- Transactions – 确保操作要么全部成功,要么全部不做(例如,资金转账)。
- Security – 强制身份验证和授权。
- Utilities – 备份、导入/导出、用户管理等。
Source: …
键 – 数据标识
| 键类型 | 定义 | 示例 |
|---|---|---|
| Super Key | 任意能够唯一标识一行的列组合。 | RollNumber + Name |
| Candidate Key | 能唯一标识一行的最小列集合。 | RollNumber |
| Primary Key ⭐ | 被选中的候选键;表的主要标识符。 | RollNumber(必须唯一、非空,每个表只能有一个) |
| Alternate Key | 未被选为主键的其他候选键。 | Email(如果 RollNumber 为主键) |
| Composite Key | 两列或多列共同唯一标识一行。 | Class + SeatNumber |
| Surrogate Key | 当不存在自然键时生成的人工标识符。 | 自动生成的 ID,如 CUST001、CUST002 |
| Foreign Key | 来自另一表的键,用于在表之间建立关系。 | Enrollments 表中的 StudentID 引用 Students 表的主键 |
现实生活类比
- Key(键): 你的 Aadhaar 卡号——对你唯一。
- Super Key(超键): Aadhaar + Phone + Email(任何唯一的组合)。
- Candidate Key(候选键): 仅 Aadhaar(最小的唯一标识符)。
- Primary Key(主键): 你决定用作主要 ID 的 Aadhaar 号码。
Summary
- 数据库存储、组织和保护数据,以便能够高效访问、分析并在应用程序和用户之间共享。