欢迎来到数据库解决方案!

在本章中,我们将探索数字世界是如何追踪所有事物的。从你最喜爱的流媒体服务记录你上次看到哪一集,到学校管理成千上万名学生的资料,数据库(Databases)都是背后默默运作的秘密引擎。如果一开始觉得有点生硬别担心——我们会用日常生活的例子,将这些概念拆解得浅显易懂!

5.1 数据与信息

在我们建立数据库之前,需要先了解我们放入其中的是什么。人们常把“数据”(Data)和“信息”(Information)当作同义词,但在信息技术(IT)领域中,它们有非常明确的定义。

数据 vs. 信息

数据(Data)是指原始的事实与数字。它本身并没有太大的意义。试想一下放在台面上的原始食材(面粉、鸡蛋、糖)。
信息(Information)则是经过处理、整理或结构化,使其具备用途的数据。这就像是你用那些食材烤出来的美味蛋糕!

例子:数字“190524”是原始的数据。如果我们告诉你这是一个日期(19/05/24),它就变成了信息

结构化数据 vs. 非结构化数据

数据来自许多来源,通常分为两类:
结构化数据(Structured Data):这种数据组织得非常有条理。它能完美地放入包含行列的表格中。想象一下 Excel 电子表格或数字通讯录。
非结构化数据(Unstructured Data):这是“杂乱”的数据。它没有预先定义的格式。例子包括电子邮件、社交媒体贴文、视频和音频文件。电脑要自动分析这些资料会困难得多。

为什么这很有价值?

对于组织来说,从数据中提取有意义的信息就像淘金一样。这有助于他们做出更精准的决策。例如,超级市场可以观察人们购买商品的数据,从而得到关于哪些商品最受欢迎的信息,进而帮助他们决定该补充哪些库存。

快速复习:数据是原始的;信息是经过处理且有用的。结构化数据整洁;非结构化数据杂乱。

5.2 结构化数据与关系型数据库

当我们拥有大量结构化数据时,我们会使用关系型数据库(Relational Database)。为什么呢?因为它能保持组织有序,并且让我们不必重复输入相同的内容!

关系型数据库的结构

想象数据库是一组数据表(Tables)的集合。每个数据表由以下组成:
字段(Fields):这是直向的“列”(Columns)。每个字段存储一项具体的细节(例如“名字”或“电话号码”)。
记录(Records):这是横向的“行”(Rows)。一条记录代表一个完整的“实体”(例如一位学生或一笔订单)。

成功的“键值”(Keys)

为了保持一切连接,我们使用特殊类型的键值:
主键(Primary Key):每条记录的唯一标识码。就像你的身份证号码一样,表格中没有两个人可以使用相同的号码。
外键(Foreign Key):这是来自一个数据表的主键,出现在另一个数据表中以连接两者。它就像一个将学生与其班级连接起来的“指针”。
复合键(Composite Key):有时候,单一字段不足以成为唯一标识码。复合键会同时使用两个或多个字段来建立唯一的 ID。

实体与关联

在数据库中,实体(Entity)是一个我们想存储相关资料的“事物”(例如客户产品汽车)。关联描述了这些事物如何连接:
一对一(1:1):一个人拥有一个护照。一个护照只属于一个人。
一对多(1:M):一位母亲可以有多个孩子,但每个孩子只有一位亲生母亲。(这是最常见的类型!)
多对多(M:M):多名学生修读多门学科。一门学科有多名学生修读。

实体关系图(ERDs)

ERD 就像数据库的地图。它使用方框来表示实体,并用线条来显示关联。当你看到一条带有短线的线,代表“一”。如果线条末端展开成“鸟爪”(crow's foot)形状,则代表“多”。

重点总结:数据表通过键值连接。主键是“唯一 ID”,外键是“连接”。

5.3 结构化查询语言(SQL)

SQL(通常读作 "Sequel")是我们用来与数据库对话的语言。它让我们提出问题(查询)并变更数据。

建立与管理数据表

在新增数据之前,我们需要建立存储它的“容器”:
CREATE TABLE:用于建立新表,并定义每个字段的数据类型(如 Text、Integer 或 Date)。
INSERT:向数据表中新增一条全新的记录。
AMEND (UPDATE):更改现有的数据(例如更新客户地址)。
DELETE:永久删除一条记录。

寻找数据(查询)

最常见的指令是 SELECT。它遵循一个简单的模式:
SELECT [你想要的字段]
FROM [哪个数据表]
WHERE [规则/条件]
ORDER BY [字母或数字顺序]

进阶 SQL 工具

有时候我们需要进阶操作:
JOIN:用于在查询中通过键值将两个数据表连接起来。
UNION:将两次不同查询的结果合并成一个列表。
万用字符(Wildcards):% 符号代表“任意数量的字符”,而 _ 符号则代表“刚好一个字符”。
例子:WHERE Name LIKE 'S%' 将会找到 "Sam"、"Sarah" 和 "Steven"。

函数

SQL 甚至可以帮你进行数学运算!
COUNT:告诉你有多少条记录符合你的搜索结果。
GROUP BY:将相同的数据归类(例如将所有学生按“年级”分组)。
ORDER BY:对结果进行排序(A-Z 或 高-低)。

别担心,如果程序代码一开始看起来很奇怪!只需记住:SELECT 字段,FROM 数据表,WHERE 满足规则。这就像给电脑一组非常具体的指令。

总结清单:

• 你能解释数据与信息的区别吗?
• 你知道主键与外键的区别吗?
• 你能识别 1:M 的关联吗?
• 你知道 SELECT 语句的基本结构吗?

避免常见错误:使用 DELETE 时千万不要忘记 WHERE 子句!如果你只输入 DELETE FROM Students,电脑将会删除学校里的每一位学生!务必保持明确。