数据库系统是软件设计师考试中的重要章节,它不仅涉及理论基础,更与实际应用开发紧密相连。本章将系统性地梳理数据库系统的核心知识体系,助力考生高效备考。
一、 数据库系统概述
数据库系统(Database System, DBS)是一个由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成的,用于存储、管理和处理数据的完整系统。其核心目标是实现数据的高效共享、低冗余、高独立性与安全性。与传统的文件系统相比,数据库系统通过数据模型、数据库管理系统(DBMS)提供了更强大的数据抽象、管理和控制能力。
二、 数据模型
数据模型是数据库系统的核心与基础,它描述了数据的结构、联系及约束。
- 概念模型:如E-R模型(实体-联系模型),用于在数据库设计初期,从用户视角抽象出现实世界的信息结构,独立于具体的DBMS。
- 逻辑模型:将概念模型转换为DBMS支持的具体模型。主要包括:
- 层次模型:树形结构,现已较少使用。
- 网状模型:图形结构,复杂且较少使用。
- 关系模型:当前主流模型,以二维表(关系)形式组织数据,理论基础坚实(关系代数、关系演算)。
- 面向对象模型等。
- 物理模型:描述数据在存储介质上的具体组织方式。
三、 数据库系统的三级模式与两级映像
这是实现数据独立性的关键架构。
- 模式(Schema):
- 外模式(子模式/用户模式):数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征描述。一个数据库可以有多个外模式。
- 模式(逻辑模式):数据库中全体数据的全局逻辑结构和特征描述,是所有用户的公共数据视图。一个数据库只有一个模式。
- 内模式(存储模式):数据在数据库内部的表示方式,描述了数据的物理存储结构和存取方法。一个数据库只有一个内模式。
- 映像(Mapping):
- 外模式/模式映像:保证了数据的逻辑独立性。当模式改变时(如增加新的关系、属性),只需修改此映像,而外模式可以保持不变,从而应用程序也无需修改。
- 模式/内模式映像:保证了数据的物理独立性。当内模式改变时(如更换存储设备、改变文件组织方式),只需修改此映像,而模式可以保持不变。
四、 关系数据库与SQL
关系数据库是基于关系模型构建的数据库,其理论完备,应用最广。
- 关系数据结构:关系、属性、域、元组、键(超键、候选键、主键、外键)。
- 关系完整性约束:实体完整性(主键非空且唯一)、参照完整性(外键约束)、用户定义完整性。
- 关系代数:传统的集合运算(并、差、交、笛卡尔积)和专门的关系运算(选择、投影、连接、除)。是SQL语言的理论基础。
- SQL(结构化查询语言):
- 数据定义语言(DDL):CREATE, ALTER, DROP。
- 数据操纵语言(DML):SELECT(核心,查询), INSERT, UPDATE, DELETE。
- 数据控制语言(DCL):GRANT, REVOKE。
- 视图(VIEW)的定义与使用。
五、 关系数据库规范化
规范化理论旨在解决关系模式中的数据冗余、插入异常、删除异常和更新异常问题。通过模式分解,使关系模式满足更高的范式要求。
- 函数依赖与键:完全函数依赖、部分函数依赖、传递函数依赖。
- 范式(Normal Form):
- 第一范式(1NF):属性不可再分。
- 第二范式(2NF):消除非主属性对候选键的部分函数依赖(在1NF基础上)。
- 第三范式(3NF):消除非主属性对候选键的传递函数依赖(在2NF基础上)。
- BCNF(巴斯-科德范式):消除主属性对不包含它的候选键的依赖(比3NF更严格)。
- 通常,数据库设计至少要求达到3NF。
六、 事务管理与并发控制
- 事务(Transaction):用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。具有ACID特性:
- 原子性(Atomicity):由DBMS的事务管理子系统保证。
- 一致性(Consistency):由DBMS的完整性子系统和应用编程共同保证。
- 隔离性(Isolation):由DBMS的并发控制子系统保证。
- 持久性(Durability):由DBMS的恢复管理子系统保证。
- 并发控制:主要技术是封锁。
- 锁的类型:排他锁(X锁,写锁)、共享锁(S锁,读锁)。
- 封锁协议:三级封锁协议用于解决丢失修改、读脏数据、不可重复读等问题。
- 死锁:预防、诊断与解除。
七、 数据库安全性与完整性
- 安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。措施包括:用户标识与鉴别、存取控制(自主存取控制DAC、强制存取控制MAC)、视图机制、审计、数据加密等。
- 完整性:保证数据库中数据的正确性、有效性和相容性。主要通过完整性约束机制(实体、参照、用户定义)来实现。
八、 数据库备份与恢复
数据库必须能从各种故障中恢复,保证事务的原子性和持久性。
- 故障类型:事务内部故障、系统故障、介质故障、计算机病毒等。
- 恢复技术:
- 数据转储(备份):静态/动态转储,海量/增量转储。
- 登记日志文件(Logging):记录事务对数据库的所有更新操作。日志文件是恢复的关键。
- 恢复策略:针对不同故障,采用事务撤销(UNDO)或重做(REDO)操作。
备考建议:本章内容理论性强且与实践结合紧密。考生应重点理解三级模式与两级映像、关系代数与SQL、规范化理论以及事务的ACID特性与并发控制。结合历年真题,理解基本概念和原理的应用场景,并通过练习SQL语句和规范化分解题来巩固知识。掌握好本章内容,不仅对通过考试至关重要,也是成为一名合格软件设计师的坚实基础。