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 关系)。例如:多名学生可以选择多门课程。

小贴士: 思考关系的方向。客户(一)-> 订单(多)。

键字段的功能

键是用于唯一标识记录并连接表的字段。

  1. 主键 (Primary Key, PK): 一个或多个字段组成的组合,用于唯一标识表中的每一条记录。它必须包含唯一且非空的值。例如:EmployeeID(员工编号)。
  2. 外键 (Foreign Key, FK): 一个表中的字段,指向另一个表的主键。它构成了表之间的链接。例如:在“订单”表中,CustomerID 是连接回“客户”表的外键。
  3. 引用完整性及其重要性

    引用完整性 (Referential Integrity) 是一套确保表之间关系保持一致和有效的规则。

    • 它防止你在外键字段中输入在关联表主键中不存在的值。例如:你不能为客户表中不存在的 CustomerID(外键)创建订单。
    • 它防止意外删除其他记录所依赖的记录。例如:如果一位客户(主键)下了 10 个订单,引用完整性会阻止你删除该客户记录,直到订单被删除或重新分配。

    核心要点: 引用完整性使你的链接保持可靠,并防止产生“孤儿记录”(没有父级引用的数据)。

    平面文件与关系型数据库

    数据的结构取决于复杂度和需求:

    特性 平面文件 (Flat File) 关系型数据库
    结构 单表或单文件。 多张相互关联的表(关系)。
    数据冗余 高(数据在多条记录中重复)。 低(数据仅存储一次,通过键关联)。
    复杂度 易于设置,适用于小数据集。 设计复杂,适合大型系统。
    适用性 简单邮件列表、单一用途数据存储。 事务系统、薪资管理、大型企业。
    实体关系图 (ERD)

    ERD 是一种可视化地图,展示了数据库的结构,包括实体(表)以及它们之间的关系。

    • 概念层 ERD: 高层级、抽象的实体与关系视图,独立于任何特定 DBMS 软件。
    • 逻辑层 ERD: 定义实体、属性(字段)以及主键/外键,但暂不指定数据类型或字段大小。
    • 物理层 ERD: 用于实施的详细设计,指定了所有表、字段、数据类型、索引和键。

    10.2 规范化至第三范式 (3NF)

    规范化是将关系型数据库结构化的过程,目的是最大限度地减少数据冗余并提高数据完整性。我们的目标是达到第三范式 (3NF)

    范式级别 (UNF, 1NF, 2NF, 3NF)

    别担心,这只是分步整理你的数据。

    1. 非规范化形式 (UNF): 包含重复组或单个单元格内有多个值。看起来像混乱的电子表格。

    2. 第一范式 (1NF): 要求:消除重复组(即每个单元格必须是原子性的,只能包含一个值);确定主键。

    3. 第二范式 (2NF): 要求:必须先达到 1NF;没有部分依赖(所有非键属性必须完全依赖于整个主键)。

    4. 第三范式 (3NF): 要求:必须先达到 2NF;没有传递依赖(非键属性之间不能存在依赖关系)。例如:如果邮编决定城市,应将邮编和城市分到独立的表中。

    10.3 数据字典

    数据字典 (Data Dictionary) 是关于数据的中心仓库,记录了数据的含义、关系、来源、用法和格式。它描述的是数据库结构,而非实际数据。

    数据字典的组成部分
    • 字段名称: (如:StudentID)
    • 数据类型: (如:文本、整数)
    • 字段大小: (如:6 位字符)
    • 描述/用途: (如:学生的唯一标识)
    • 验证规则: (如:>0, 非空)
    • 格式: (如:DD/MM/YYYY)
    • 索引状态: (如:是/否)

    10.4 文件与数据管理

    文件访问方法
    • 顺序访问 (Sequential Access): 按写入顺序访问(如磁带)。
    • 直接文件访问 (Direct/Random Access): 无需读取之前记录即可直接检索数据。
    • 索引顺序访问 (Indexed Sequential Access): 一种折中方案,记录按顺序存储,但维护一个索引以实现更快的直接访问。
    数据库管理系统 (DBMS)

    DBMS 是处理数据库创建、维护和使用的软件,如关系型 (RDBMS)、层级型、网状型和面向对象型。如今最常用的是关系型 DBMS (RDBMS)

    管理信息系统 (MIS)

    MIS 是组织用于收集各种来源的数据,并将其呈现为报告和摘要以辅助决策的系统。主要功能包括:数据整合、报表生成、决策支持工具(如预测分析)。

    快速回顾:数据库实用任务

    查询 (Queries)

    查询允许你从数据库中提取特定信息。包括简单查询、复杂查询(使用 AND, OR, NOT)、嵌套查询和摘要查询(交叉表/透视表)。

    窗体与报表
    • 窗体 (Forms): 用于输入、查看和编辑数据。重点在于可用性(字体、间距、控件选择)。
    • 报表 (Reports): 用于数据输出,常包括分组和计算控件(总和、平均值)。
    数据录入检查
    • 验证规则 (Validation): 系统自动执行的合理性检查(如存在性检查、范围检查、格式检查)。
    • 验证 (Verification): 手动或通过冗余检查确保数据准确性(如双重数据录入)。