IT 9626 学习笔记:数据库与文件概念(第10章)
你好,未来的 IT 专家!本章关于数据库与文件概念的内容,对于你的理论考试(Paper 1)和实践操作(Paper 2)都至关重要,特别是在数据管理任务方面。
别担心“规范化(Normalisation)”等术语听起来很复杂——我们将通过简单的类比为你拆解它们。学完这些笔记后,你将掌握如何设计和管理稳健、高效的数据库,这可是任何组织都梦寐以求的核心技能!
10.1 创建数据库:基础构件
数据库本质上是一个有组织的结构化数据集合,通常以电子方式存储。在构建数据库之前,你需要先了解数据字段(Data Fields)。
数据类型与字段大小
选择正确的数据类型和大小可以确保数据完整性(准确性),并节省存储空间。
- 文本/字母数字 (Text/Alphanumeric): 用于姓名、地址、产品代码。字母数字类型允许混合使用字母、数字和符号。
- 数值 (Numeric): 仅存储数字。
- 整数 (Integer): 整数(例如:库存数量)。
- 小数 (Decimal / Float / Real): 带有小数部分的数字(例如:价格 $19.99)。
- 日期/时间 (Date/Time): 存储日历日期和时间(例如:出生日期、订单时间)。
- 布尔/逻辑 (Boolean/Logical): 仅存储两个值(是/否、真/假、0/1)。例如:是否已付款 (IsPaid) (是/否)。
字段大小 (Field Size) 定义了允许的最大字符数或字节数。如果学生 ID 总是 6 位字符,将字段大小设置为 6 可以防止输入过长,并节省存储空间。
理解关系
数据库通常由多个关联在一起的表组成——这就是关系型数据库 (Relational Database)。这些连接称为关系:
- 一对一 (1:1): 表 A 中的一条记录对应表 B 中的且仅对应一条记录。例如:一名员工对应一个指定的公司停车位。
- 一对多 (1:M): 表 A 中的一条记录对应表 B 中的多条记录。这是最常见的类型。例如:一位客户可以下多个订单。
- 多对多 (M:M): 表 A 中的多条记录对应表 B 中的多条记录。(这些关系需要第三张“连接”表,通常称为交叉表 (Intersection Table) 或关联表 (Junction Table),将其拆解为两个 1:M 关系)。例如:多名学生可以选择多门课程。
小贴士: 思考关系的方向。客户(一)-> 订单(多)。
键字段的功能
键是用于唯一标识记录并连接表的字段。
- 主键 (Primary Key, PK): 一个或多个字段组成的组合,用于唯一标识表中的每一条记录。它必须包含唯一且非空的值。例如:EmployeeID(员工编号)。
- 外键 (Foreign Key, FK): 一个表中的字段,指向另一个表的主键。它构成了表之间的链接。例如:在“订单”表中,CustomerID 是连接回“客户”表的外键。
- 它防止你在外键字段中输入在关联表主键中不存在的值。例如:你不能为客户表中不存在的 CustomerID(外键)创建订单。
- 它防止意外删除其他记录所依赖的记录。例如:如果一位客户(主键)下了 10 个订单,引用完整性会阻止你删除该客户记录,直到订单被删除或重新分配。
- 概念层 ERD: 高层级、抽象的实体与关系视图,独立于任何特定 DBMS 软件。
- 逻辑层 ERD: 定义实体、属性(字段)以及主键/外键,但暂不指定数据类型或字段大小。
- 物理层 ERD: 用于实施的详细设计,指定了所有表、字段、数据类型、索引和键。
- 字段名称: (如:StudentID)
- 数据类型: (如:文本、整数)
- 字段大小: (如:6 位字符)
- 描述/用途: (如:学生的唯一标识)
- 验证规则: (如:>0, 非空)
- 格式: (如:DD/MM/YYYY)
- 索引状态: (如:是/否)
- 顺序访问 (Sequential Access): 按写入顺序访问(如磁带)。
- 直接文件访问 (Direct/Random Access): 无需读取之前记录即可直接检索数据。
- 索引顺序访问 (Indexed Sequential Access): 一种折中方案,记录按顺序存储,但维护一个索引以实现更快的直接访问。
- 窗体 (Forms): 用于输入、查看和编辑数据。重点在于可用性(字体、间距、控件选择)。
- 报表 (Reports): 用于数据输出,常包括分组和计算控件(总和、平均值)。
- 验证规则 (Validation): 系统自动执行的合理性检查(如存在性检查、范围检查、格式检查)。
- 验证 (Verification): 手动或通过冗余检查确保数据准确性(如双重数据录入)。
引用完整性及其重要性
引用完整性 (Referential Integrity) 是一套确保表之间关系保持一致和有效的规则。
核心要点: 引用完整性使你的链接保持可靠,并防止产生“孤儿记录”(没有父级引用的数据)。
平面文件与关系型数据库
数据的结构取决于复杂度和需求:
| 特性 | 平面文件 (Flat File) | 关系型数据库 |
| 结构 | 单表或单文件。 | 多张相互关联的表(关系)。 |
| 数据冗余 | 高(数据在多条记录中重复)。 | 低(数据仅存储一次,通过键关联)。 |
| 复杂度 | 易于设置,适用于小数据集。 | 设计复杂,适合大型系统。 |
| 适用性 | 简单邮件列表、单一用途数据存储。 | 事务系统、薪资管理、大型企业。 |
实体关系图 (ERD)
ERD 是一种可视化地图,展示了数据库的结构,包括实体(表)以及它们之间的关系。
10.2 规范化至第三范式 (3NF)
规范化是将关系型数据库结构化的过程,目的是最大限度地减少数据冗余并提高数据完整性。我们的目标是达到第三范式 (3NF)。
范式级别 (UNF, 1NF, 2NF, 3NF)
别担心,这只是分步整理你的数据。
1. 非规范化形式 (UNF): 包含重复组或单个单元格内有多个值。看起来像混乱的电子表格。
2. 第一范式 (1NF): 要求:消除重复组(即每个单元格必须是原子性的,只能包含一个值);确定主键。
3. 第二范式 (2NF): 要求:必须先达到 1NF;没有部分依赖(所有非键属性必须完全依赖于整个主键)。
4. 第三范式 (3NF): 要求:必须先达到 2NF;没有传递依赖(非键属性之间不能存在依赖关系)。例如:如果邮编决定城市,应将邮编和城市分到独立的表中。
10.3 数据字典
数据字典 (Data Dictionary) 是关于数据的中心仓库,记录了数据的含义、关系、来源、用法和格式。它描述的是数据库结构,而非实际数据。
数据字典的组成部分
10.4 文件与数据管理
文件访问方法
数据库管理系统 (DBMS)
DBMS 是处理数据库创建、维护和使用的软件,如关系型 (RDBMS)、层级型、网状型和面向对象型。如今最常用的是关系型 DBMS (RDBMS)。
管理信息系统 (MIS)
MIS 是组织用于收集各种来源的数据,并将其呈现为报告和摘要以辅助决策的系统。主要功能包括:数据整合、报表生成、决策支持工具(如预测分析)。
快速回顾:数据库实用任务
查询 (Queries)
查询允许你从数据库中提取特定信息。包括简单查询、复杂查询(使用 AND, OR, NOT)、嵌套查询和摘要查询(交叉表/透视表)。