### 数据库知识点大总结
#### 引言与基础概念
- **文件系统的弊端**:传统文件系统在数据管理和检索上存在局限性,如数据冗余、数据不一致性和难以实现数据共享等问题,这些问题促使了数据库管理系统(DBMS)的发展。
- **实例与模式**:实例指的是数据库在某一时刻的数据集合,而模式则是描述数据结构和数据间联系的框架,包括数据类型、数据之间的关系以及数据完整性约束等。
- **数据模型**:分为基于对象的逻辑模型和基于记录的逻辑模型,前者强调面向对象的特性,后者则关注记录和字段之间的关系。
- **数据库语言**:用于定义、操纵和查询数据库的工具,常见的有SQL(Structured Query Language)。
- **事务管理**:确保数据库操作的完整性和一致性,事务具有原子性、一致性、隔离性和持久性(ACID)的特点。
- **系统总体结构**:数据库系统的架构设计,包括用户层、应用层、数据存取层和数据存储层等。
#### 实体-联系模型
- **码**:唯一标识实体集中的每个实体的属性或属性组合,分为超键、候选键和主键。
- **弱实体集**:其存在依赖于另一个实体的存在,通常通过标识符与之关联。
- **扩展E-R关系**:
- 特殊化:表示一类实体可以细化为多类更具体的实体。
- 概括:相反的概念,表示多个实体类型可以概括为一个更通用的类型。
- 属性继承:子实体继承父实体的属性。
- 聚集:表示实体集由多个其他实体集组成。
#### 关系数据库
- **基本运算**:包括选择(按条件选取行)、投影(选择特定列)、连接(组合两个表)、并、差、笛卡尔积等操作,用于数据的检索和操作。
- **关系运算**:通常是选择和投影运算的组合,用以更复杂的数据处理需求。
#### SQL
- **SELECT**:用于从数据库中选择数据。
- **WHERE**:用于设置SQL语句的条件,决定哪些记录将被选择。
- **FROM**:指定数据来源的表。
- **AS**:用于给表或列指定别名。
- **ORDER BY**:对结果集进行排序。
- **DELETE**、**INSERT**、**UPDATE**:分别用于删除、插入和更新数据库中的数据。
#### 完整性约束
- **函数依赖**:描述属性之间依赖关系的规则,是理解数据库规范化的重要概念。
#### 范式
- **1NF**:第一范式要求每列都是不可分割的原子值,避免了列内存储复合数据的情况。
- **2NF**:在1NF的基础上,要求所有非主属性完全依赖于整个主键,消除部分依赖。
- **3NF**:进一步要求所有非主属性都不传递依赖于主键,消除了传递依赖,提高了数据的一致性和减少冗余。
- **BCNF**:鲍依斯-科得范式,是一种比3NF更为严格的规范化形式,要求每个决定因子要么是候选键,要么包含候选键,从而解决了某些3NF无法解决的问题。
#### 事务
- **事务并发的原因**:在多用户环境中,为了提高资源利用率,多个事务可能同时运行,这就需要有效的并发控制机制来保证数据的一致性。
#### 并发控制
- 并发控制技术,如锁机制(乐观锁、悲观锁)、两阶段锁定协议、时间戳等,用于协调多个事务之间的操作顺序,防止数据冲突,维护数据的完整性和一致性。
数据库的设计、操作和管理涉及广泛的知识点,从数据模型到具体的操作语言,再到事务处理和并发控制,每一个环节都是构建高效、稳定数据库系统的关键。对于学习者而言,掌握这些核心概念和技术,不仅能提升个人的数据库技能,还能为未来的职业发展打下坚实的基础。