数据库第二单元笔记

张开发
2026/4/12 6:31:01 15 分钟阅读

分享文章

数据库第二单元笔记
2.1 关系数据库设计2.1.1 数据库设计数据库设计是指根据用户需求设计数据库结构并构建数据库的过程。其目标是设计一个能够满足用户需求、结构合理、易于维护的数据库。设计质量直接决定后续数据操作的效率和系统的可扩展性。2.1.2 数据模型的概念数据模型是对现实世界数据特征的抽象是数据库系统的核心和基础。主要包括以下三个层次· 概念模型Conceptual Model 按用户的观点对数据和信息建模主要用于数据库设计。· 逻辑模型Logical Model 按计算机系统的观点对数据建模用于DBMS实现常见的有层次模型、网状模型、关系模型。· 物理模型Physical Model 描述数据在存储介质上的组织结构与具体的DBMS和硬件相关。2.1.3 概念模型基本概念实体Entity 客观存在并可相互区别的事物如学生、课程等。属性Attribute 实体所具有的某一特性如学生的学号、姓名。码Key 唯一标识实体的属性集如学号。域Domain 属性的取值范围如性别的域为{男女}。实体型Entity Type 具有相同属性的实体集合如全体学生。实体集Entity Set 同型实体的集合。联系Relationship 实体内部的联系指属性之间的联系与实体之间的联系。实体之间的联系分为一对一1:1、一对多1:n、多对多m:n 三类。2.1.4 E-R图设计实例E-R图实体-联系图 是描述概念模型的主要工具由Peter Chen于1976年提出。图中用矩形表示实体椭圆形表示属性菱形表示联系连线表示实体与属性、实体与联系之间的所属关系。E-R图的基本画法图形元素 表示含义矩形 实体椭圆形 属性菱形 联系线段 连接实体与属性/联系双线 表示实体的全部参与标注1n 表示联系的类型一对一、一对多、多对多2.1.5 数据库关系模型关系模型用二维表的形式表示实体及其之间的联系。每个二维表称为一个关系表头对应属性每一行对应一个元组。将E-R图转换为关系模型的基本规则1. 每个实体转换为一个关系表实体的属性作为关系的属性实体的码作为关系的主键。2. 一对一1:1联系可将一个实体的主键放入另一个实体中作为外键。3. 一对多1:n联系将“一”端的主键放入“多”端作为外键。4. 多对多m:n联系单独创建一个关系表包含两个实体的主键作为联合主键并可作为外键关联回原实体表。2.2 数据库设计规范化2.2.1 关系型数据库范式理论规范化Normalization是通过分解关系模式消除数据冗余和操作异常的过程。范式是衡量关系模式规范程度的标准范式级别越高数据冗余越小。第一范式1NFFirst Normal Form 关系中的每个属性必须是原子值不可再分。换言之表中每一列的值都是不可分解的基本数据项。不满足1NF的数据库不能称为关系数据库。第二范式2NFSecond Normal Form 在满足1NF的基础上要求所有非主属性完全函数依赖于主键不能存在部分依赖。如果一个表的主键由多个字段组成非主字段必须依赖于整个联合主键不能仅依赖于主键的一部分。第三范式3NFThird Normal Form 在满足2NF的基础上要求非主属性之间不存在传递函数依赖。即非主字段必须直接依赖于主键而不是通过其他非主字段间接依赖。范式的关系3NF ⊂ 2NF ⊂ 1NF。反范式化在实际应用中完全遵循三大范式可能导致大量关联查询影响读性能。当数据库数据量大、并发访问高时可适当增加冗余字段反范式化以空间换时间提高查询效率。2.2.2 数据库规范化实例以一个“学生选课成绩表”为例学号 姓名 课程号 课程名 学分 成绩该表存在以下问题· 数据冗余同一学生有多条记录姓名重复存储同一课程有多条记录课程名和学分重复存储。· 更新异常修改某课程的学分需要更新多条记录。· 插入异常新课程尚未有学生选课时无法录入课程信息。· 删除异常删除某课程的所有选课记录课程信息也随之丢失。规范化过程1. 该表已满足1NF所有属性原子。2. 分解为三张表以满足2NF和3NF· 学生表学号姓名——主键为学号· 课程表课程号课程名学分——主键为课程号· 成绩表学号课程号成绩——联合主键为学号课程号经过规范化数据冗余大幅降低操作异常问题得到解决。

更多文章