欢迎来到数据库的世界!
你好!今天,我们要深入探讨 AS Level IT 学习旅程中最重要的一个章节:数据库与文件概念 (Database and File Concepts)。如果你曾经使用 Netflix 寻找电影,或者学校在电脑上记录你的成绩,那你已经与数据库交互过了!
在这些笔记中,我们将拆解数据库是如何建立的、它们如何保持条理,以及它们如何帮助企业做出重大决策。别担心,如果起初看起来内容很多——我们会一步一步慢慢来!
10.1 建立数据库:基本构建模块
在我们存储数据之前,需要先决定它属于哪种「类型」。这就像为食物选择合适的容器——你总不会把汤装在纸盒里吧!
指定数据类型 (Data Types)
每个「字段」(Field,例如「名字」这类单一类别的资讯) 都需要一个数据类型。你需要知道以下常见的类型:
• 文本 (Text): 用于文字和句子。
• 字母数字 (Alphanumeric): 字母和数字的组合 (例如车牌号码)。
• 数值 (Numeric): 仅限数字。可以是整数 (Integer) 或小数 (Decimal)。
• 日期与时间 (Date and Time): 用于特定的日历日期或时钟时间。
• 布尔值 (Boolean): 用于只有两个选项的情况,例如是/否或真/假。
数据库的「键」(Keys)
为了保持数据条理分明,我们使用称为键的特殊字段。这些就像是数据的身份证。
1. 主键 (Primary Key): 这是一个唯一字段,用来识别每一笔记录。没有两个人可以拥有相同的主键 (就像你的身份证号码或学号)。
2. 外键 (Foreign Key): 这是从一个数据表中提取出来,并出现在另一个数据表中,用来链接两者的主键。
3. 复合键 (Compound Key): 有时候,单一字段不足以区分唯一性,我们就会合并两个字段来组成一个唯一 ID。
4. 组合键 (Composite Key): 与复合键类似,这是一个由多个属性组成的主键,用来唯一识别一个实体 (Entity) 的出现。
平面文件 (Flat Files) 与关系数据库 (Relational Databases)
平面文件就像一张巨大的电子表格。它很简单,但容易导致许多错误和数据重复。
关系数据库则是将多个数据表链接在一起的集合。
为什么要用关系型? 它能减少数据冗余 (Data Redundancy) (即两次存储相同的东西),并且让你在一个地方更新资讯就能同步,非常方便。
关系 (Relationships):数据表之间如何沟通
数据表之间的链接主要有三种方式:
• 一对一 (1:1): 一个人有一本护照。一本护照属于一个人。
• 一对多 (1:M): 一位母亲可以有多个孩子,但每个孩子只有一位亲生母亲。(这是最常见的类型!)
• 多对多 (M:M): 许多学生可以修读许多科目,而每个科目也有许多学生。
参照完整性 (Referential Integrity)
这听起来很深奥,但它其实只是指「保持链接的健康」。参照完整性确保你不能让一个外键指向一个不存在的主键。就像确保如果「家长」记录被删除,数据库中就不会残留「孩子」的记录一样!
验证 (Validation) 与核实 (Verification)
我们需要确保输入的数据是正确的。
• 验证 (Validation): 电脑检查数据是否「合理」(例如:「范围检查」确保你的年龄不是 500 岁)。
• 核实 (Verification): 人类检查数据是否「准确」(例如:「双重数据输入」,即要求你输入两次密码)。
重点总结:关系数据库使用键和关系来保持数据的条理、唯一性与连接性,且不会浪费空间。
10.2 规范化 (Normalisation):清理混乱
规范化是组织数据库以减少数据重复并提高数据完整性的过程。这就像透过将所有东西放入正确的抽屉来整理凌乱的房间一样。
规范化的三个阶段
1. 第一范式 (1NF): 没有「重复组」。每个单元格应仅包含一个资讯片段,且每笔记录必须有一个主键。
2. 第二范式 (2NF): 必须先满足 1NF。所有非键字段必须依赖于「整个」主键。如果一个字段只依赖于复合键的「一部分」,它就必须被移到新的数据表中!
3. 第三范式 (3NF): 必须先满足 2NF。不应有「传递依赖」(Transitive dependencies)。这是一个大术语,意思就是:非键字段不应依赖于另一个非键字段。所有项目都应直接指向主键。
重点总结:规范化让数据库更小、更快,并且在更新时减少出错的机率。
10.3 数据字典 (Data Dictionary)
数据字典基本上是你数据库的「使用手册」或「食谱」。它不包含实际的姓名或地址,但包含元数据 (Metadata) (即关于数据的据)。
数据字典里面有什么?
• 字段名称
• 数据类型 (文本、数值等)
• 字段大小 (允许多少字符)
• 验证规则 (例如:必须 > 0)
• 数据表之间的关系
10.4 文件与数据管理
电脑实际上是如何在硬盘中找到数据的呢?存取文件主要有两种方式:
存取方法
1. 索引顺序存取 (Indexed Sequential Access): 电脑保留一个「索引」(就像教科书后面的索引表)。它先查看索引找到大概范围,然后顺序搜索以找到特定的记录。
2. 直接文件存取 (Direct File Access): 电脑使用数学公式 (哈希,Hashing) 直接前往存储数据的确切位置。这对于 ATM 取款或在线预订等操作速度快得多。
数据库管理系统 (DBMS)
DBMS 是一种让你建立及管理数据库的软件 (例如 Microsoft Access 或 MySQL)。它有不同的类型:
• 关系型 (Relational): 使用数据表 (最常见)。
• 层级式 (Hierarchical): 看起来像家谱。
• 网络式 (Network): 像是一个网状结构,所有东西都可以连接到其他东西。
• 面向对象 (Object-Oriented): 将数据存储为「对象」而非仅仅是文字或数字。
管理信息系统 (MIS)
MIS 将数据库中的原始数据转换为对经理有用的报告。
范例:超市数据库有一份每卖出一个苹果的清单。MIS 将其总结为一份报告,说明「本月苹果销量下降 20%」,这样经理就知道该降价或投放广告了。
重点总结:虽然数据库用来「存储」数据,但 DBMS 用来「管理」它,而 MIS 则利用它来协助人们做出聪明的商业决策。
最后的鼓励
你已经完成了数据库的核心概念!别担心,如果 2NF 或 3NF 现在听起来还有些困惑——试着练习画出表格,很快就会豁然开朗了。数据库的重点全在于逻辑与组织。你一定做得到的!