关系型数据库的三个范式回顾

本文详细解释了数据库设计中的三个规范化形式:第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。重点介绍了每个范式的定义、特征及如何避免常见的设计缺陷,如部分依赖和传递依赖。
  • 第一范式(1NF):每一个属性都是原子项,不可分割

    INF中所述的不可分割,是指在可分割的情况下必须分割,这是在应用环境中来判断的,当属性是文档时,虽然文档有段落标记,但还是不应该分割。

  • 第二范式:每个非主属性要完全函数依赖于候选键,或者是主键。

    关键词是“完全依赖”,与“部分依赖”或“局部依赖”相对,如果候选键或主键由两个属性组成,非主属性不能只依赖与其中一个或部分属性。

    比如:股票日行情表由股票代码、股票名称、日期、收盘价四个属性组成,这就违反了2NF,因为“股票名称”部分依赖于“股票代码”。

  • 第三范式:所有非主属性对任何候选关键字都不存在传递依赖

    关键词是“传递依赖”,如果非主属性通过另一个非主属性依赖主键,则是传递依赖。

    比如:股票基本信息表由股票代码、股票名称、企业名称、所在地区、所在省份组成,其中“所在省份”依赖于所在地区,存在传递依赖。

 

---------------------------------------------

几个相关术语:

  • 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
  • 候选键(candidate key):不含有多余属性的超键称为候选键
  • 主键(primary key):用户选作元组标识的一个候选键称为主键
  • 主属性(Prime Attribute):候选键中的属性称为主属性
  • 非主属性(Non-Key Attribute):不包含在任何候选键中的属性称为非主属性。 
<think> 我们正在讨论关系型数据库的核心概念。根据用户要求,需要参考之前提供的引用内容。回顾引用内容: 引用[1]提到:关系数据库基于关系模型,通过表格和关联建立数据联系,在数据存储、管理和检索方面功能强大。 引用[2]指出:数据库系统的核心是数据库管理系统(DBMS),数据库系统一般由数据库、DBMS、应用系统、数据库管理员和用户构成。数据模型是数据库系统的基础。 引用[3]补充了其他数据库类型(如图数据库),但重点在关系型数据库的核心概念。 用户当前问题:我想了解关系型数据库的核心概念。 因此,我们需要系统地介绍关系型数据库的核心概念,包括关系模型、数据结构、操作方式、完整性约束等,并引用相关内容。 核心概念包括: 1. 关系模型:由E.F.Codd提出,用二维表(关系)表示数据。包含属性(列)和元组(行)。 2. 数据结构:表、行、列、主键、外键等。 3. 数据操作:通过SQL进行查询、插入、更新、删除等操作。 4. 完整性约束:实体完整性、参照完整性、域完整性等确保数据一致性。 5. DBMS的作用:作为核心软件,管理数据库的创建、使用和维护。 根据引用[2],DBMS是数据库系统的基础和核心。所以应强调DBMS的角色。 回答结构: - 先概述关系型数据库的定义和重要性(引用[1])。 - 分点详细说明核心概念,包括关系模型、数据结构、操作语言、完整性约束、DBMS等(结合引用[2])。 - 总结核心概念的意义。 注意:使用中文,如果涉及数学表达式(如关系代数)需用LaTeX格式,但当前问题可能较少涉及复杂数学。若有提及关系运算(如选择、投影、连接),则使用LaTeX。 例如,关系代数的选择操作可表示为:$$\sigma_{\text{条件}}(R)$$ 但若概念解释中不涉及,则不必强行加入。 最后生成相关问题。 注意引用标识:在引用[1][2]的地方标注[^1][^2]。 </think> ### 关系型数据库核心概念详解 关系型数据库的核心建立在**关系模型(Relational Model)** 之上,其核心概念可归纳为以下五个维度: #### 1. **关系模型与数据结构** - **表(关系)**:数据以二维表形式组织,每张表对应一个实体(如 `学生表`、`课程表`)。 - **属性(列)**:表示数据特征(如 `学号`、`姓名`),具有严格的数据类型约束(域完整性)[^2]。 - **元组(行)**:表示一条完整记录(如 `(2023001, "张三", 计算机)`)。 - **键(Key)**: - **主键(Primary Key)**:唯一标识元组的属性(如 `学号`),需满足实体完整性(非空唯一)[^2]。 - **外键(Foreign Key)**:建立表间关联的属性(如 `课程表中的学生ID`),实现参照完整性(如删除学生时同步删除其选课记录)[^1]。 #### 2. **数据操作语言(SQL)** - 通过结构化查询语言(SQL)操作数据: - **数据定义(DDL)**:`CREATE TABLE`, `ALTER TABLE`。 - **数据操纵(DML)**:`SELECT`, `INSERT`, `UPDATE`, `DELETE`。 - **查询示例**: ```sql SELECT 姓名 FROM 学生表 WHERE 学院 = '计算机'; -- 投影与选择操作 ``` #### 3. **关系完整性约束** - **实体完整性**:主键值不可为空且唯一[^2]。 - **参照完整性**:外键值必须是被引用表的主键值或 `NULL`。 - **用户定义完整性**:自定义规则(如 `年龄 > 18`)。 #### 4. **数据库管理系统(DBMS)** - **核心作用**:管理数据存储、访问控制、事务处理及优化查询[^2]。 - **关键模块**: - **查询处理器**:解析SQL并生成执行计划。 - **存储引擎**:管理磁盘数据读写(如 `InnoDB`)。 - **事务管理器**:保证ACID特性(原子性、一致性、隔离性、持久性)。 #### 5. **数据范式化(Normalization)** - 通过范式设计减少冗余: - **第一范式(1NF)**:属性值不可再分(如 `地址` 需拆分为省/市/街道)。 - **第二范式(2NF)**:消除部分函数依赖(如 `(学号, 课程) → 成绩` 需拆表)。 - **第三范式(3NF)**:消除传递依赖(如 `学号 → 学院 → 院长` 需拆表)[^3]。 > **数据模型的中心地位**:关系模型作为数据库系统的基石,通过上述概念实现数据的结构化存储、高效检索与强一致性[^2]。现代DBMS(如MySQL、PostgreSQL)均基于此模型构建,满足业务对可靠性与复杂查询的需求[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值