欢迎来到数据库的世界!
在本章中,我们将探索计算机如何管理海量的信息。试想一下 Netflix、Instagram 或你学校的成绩系统,它们都需要管理数以百万计的数据。它们是如何保持井然有序,以便在眨眼间准确地找到所需的内容呢?答案就是关系型数据库 (Relational Databases)。
如果起初觉得有点深奥也不用担心——我们将通过日常生活中的例子,把它拆解得清清楚楚!
5.1 数据与信息
在建立数据库之前,我们需要先了解数据 (Data) 与信息 (Information) 之间的区别。这两个词虽然经常被混用,但在信息技术 (IT) 领域中,它们的含义截然不同。
数据 vs. 信息
- 数据 (Data): 这是指没有经过处理、缺乏上下文的原始事实和数字。例如:“12052008”。单看这串数字,它只是一堆没有意义的数值。
- 信息 (Information): 这是指经过处理或整理,从而具有意义的数据。如果我们为上述数字加上背景信息,它就变成了:“该学生的出生日期为 12/05/2008。”
比喻: 想象桌上有一堆面粉、鸡蛋和糖。这就是数据。当你将它们混合并烤成蛋糕后,你就得到了信息。蛋糕就是那个有用的成果!
结构化数据 vs. 非结构化数据
并非所有数据看起来都一样。结构化数据 (Structured data) 非常有组织(就像一个拥有清晰行与列的电子表格)。非结构化数据 (Unstructured data) 则包含其他所有东西——电子邮件、照片、视频和社交媒体贴文。对于计算机来说,快速“读取”非结构化数据要困难得多。
重点总结: 企业之所以重视数据库,是因为数据库能将混乱的数据转化为有意义的信息,进而协助他们做出更好的决策。
5.2 结构化数据:关系型数据库
关系型数据库是一种将数据存储在多个相互链接(关联)的数据表 (Tables) 中的方式。这可以防止错误并保持一切井井有条。
数据表的构造
要了解数据库,必须先掌握数据表的组成部分:
- 数据表 (Table): 关于特定“事物”的数据集合(例如“学生”表或“书籍”表)。
- 字段 (Field/Column): 数据的单一属性。例如,名字 或 电话号码。
- 记录 (Record/Row): 关于某个特定项目的所有数据。例如,“学生”表中的一行,就包含了一位特定学生的学号、姓名和地址。
成功的“关键”:键值 (Keys)
在数据库中,我们需要通过一些方式来识别并链接数据。我们会使用称为键值 (Keys) 的特殊字段:
1. 主键 (Primary Key): 这是一个对每条记录而言皆为唯一 (Unique) 的字段。任何两条记录都不可以拥有相同的主键。
示例:你的学生编号或护照号码。
2. 外键 (Foreign Key): 这是位于某个数据表中,但却是另一个数据表之主键的字段。这就是我们链接两个数据表的方式!
3. 复合键 (Composite Key): 有时候,单一字段不足以成为唯一识别码。复合键会结合两个或以上的字段来建立唯一的识别码。
示例:在“教室预约”表中,“课室编号”不足以识别(因为同一个课室会被多次使用)。但“课室编号”+“时间”+“日期”结合起来,就能构成一条唯一的记录。
快速复习盒:
- 字段 (Field) = 纵列 (类别)
- 记录 (Record) = 横行 (个别项目)
- 主键 (Primary Key) = 唯一识别号。
5.2.3 实体与关联
在数据库设计中,实体 (Entity) 就是我们正在存储数据的“事物”(例如客户、产品或汽车)。而关联 (Relationship) 则是这些实体之间如何互动。
三种关联类型
1. 一对一 (One-to-One, 1:1): 表 A 中的每条记录只与表 B 中的一条记录相关联。
示例:每个人只有一本护照,而每本护照也只属于一个人。
2. 一对多 (One-to-Many, 1:M): 表 A 中的一条记录可以与表 B 中的多条记录相关联。
示例:一位母亲可以有多个孩子,但每个孩子只有一位亲生母亲。
3. 多对多 (Many-to-Many, M:M): 表 A 中的多条记录与表 B 中的多条记录相关联。
示例:学生与科目。一位学生选修多个科目,而一个科目也有多位学生选修。
实体关联图 (ERD)
ERD 是一张展示数据表如何链接的图表。它使用方框表示实体,并用线条表示它们之间的链接方式。
你知道吗? 在 ERD 中,我们经常使用一个称为“乌鸦脚 (Crow's Foot)”(看起来像个叉子)的符号来表示关联中“多”的一方!
避免常见错误: 不要混淆主键与外键。请记住:主键是其所属数据表的“主要身份证”。当它去拜访另一个数据表以建立链接时,它就成了外键。
5.3 结构化查询语言 (SQL)
当我们把数据整理成数据表后,该如何与数据库沟通呢?我们使用一种称为 SQL(读作“Sequel”)的语言。
为什么要使用 SQL?
SQL 让我们能够操作 (manipulate) 数据。这意味着我们可以:
- 选取 (Select): 寻找特定数据(例如:“显示所有拿到 A 的学生”)。
- 插入 (Insert): 新增数据(例如:“将新学生加入系统”)。
- 更新/修正 (Update/Amend): 修改现有数据(例如:“更改学生的地址”)。
- 删除 (Delete): 移除数据。
使用 SQL 链接数据表
SQL 最强大的功能之一是 JOIN 指令。这让计算机能够查看两个不同的数据表,并根据它们的链接键值将其合并为一个视图。
示例:链接“订单”表与“客户”表,让商店可以查看是谁购买了哪件商品。
记忆小帮手 (SQL 关键字):
记住 S.F.W. 就能掌握查询的基本顺序:
Select (你想要看什么?)
From (它在哪个数据表中?)
Where (具体的搜索条件是什么?)
总结检查清单
在继续学习之前,确保你能回答以下问题:
- 我能解释数据与信息的区别吗?
- 我是否知道主键必须是唯一的?
- 我能识别数据表中的字段与记录吗?
- 我能举例说明一对多的关联吗?
- 我是否了解 SQL 是用于搜索及更改数据库的语言?
做得好!你刚刚已经掌握了关系型数据库的核心概念。请继续练习在你每天使用的应用程序中识别这些组成部分!