为什么需要规范的数据库设计
通过进行规范化的数据库设计,可以消除不必要的数据冗余,获得合理的数据库设计,提高项目的应用性能。
什么是数据库设计
就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程。
数据库中创建的数据结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素
糟糕的数据库设计表现为一下两方面:
- 效率低下。
- 更新和检索数据时会出现许多问题。
良好的数据库设计表现在:
- 效率高。
- 便于进一步扩展。
- 可以是应用程序的开发变得更容易。
设计数据库的步骤:
需求分析、概要设计、详细设计、代码编写、运行测试和部署上线。
进行数据库的系统分析时,可参考下列基本步骤:
收集信息:必须充分理解数据库需要完成的任务和功能。【需要的数据】
标识实体:必须标识数据库要管理的关键对象或实体。【建那些表】
标识每个实体需要存储的详细信息:详细信息也称为该实体的属性,这些属性将组成表中的列。
标识实体之间的关系:即能够关联数据库中各个项目的相关信息。不同类型可单独存储,如需要数据库引擎可根据需求将其组合。【表与表之间的关系】
概念设计——绘制E-R图
E-R图,也称实体关系图
实体——关系模型
实体:指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物。
实体一般是名词,对应表中的一行数据。
属性:为实体的特征。
联系:两个或多个实体之间的关联关系。
实体用矩形表示,一般是名词、属性用椭圆表示****,一般是名词联系用菱形表示,一般是动词。
映射基数
表示通过与该实体关联的其他实体的个数。对于实体集X和Y之间的二元关系,映射基数必须为下列基数之一:
- 一对一:X中的一个实体最多与Y中的一个实体关联,并且Y中的一个实体最多与X中的一个实体关联。
- 一对多:X中的一个实体可以与Y中任意数量的实体关联,Y中的一个实体最多与X中的一个实体关联。
- 多对一:X中的一个实体最多与Y中的一个实体关联,Y中的一个实体可以与X中的任意数量的实体关联。
- 多对多:X中的一个实体可以与Y中的任意数量的实体关联,反之亦然。
实体关系图
E-R图以图形的方式将数据库的整个逻辑结构表示出来。
- 矩形表示实体集
- 椭圆形表示属性
- 菱形表示联系集
- 直线用来连接属性和实体集,也用来连接实体集和联系集
在E-R图中,直线可以是有方向的(在末端有一个箭头),用来表示联系集的映射基数。
在概要设计阶段和详细设计阶段,设计数据库的一般步骤如下:
- 绘制E-R图
- 将E-R图转化为数据库模型图。
- 应用三大范式规范化表设计
从关系型数据库表中除去冗余数据的过程称为规范化。如果使用得当,规范化是用于获得高效的关系型数据库表的逻辑结构的最好,最容易的方法。当规范化数据时,应执行下列操作:
- 将数据库的结构精简为最简单的形式。
- 从表中删除冗余的列。
- 标识所有依赖于其他数据的数据。
数据规范化
设计问题
信息重复、更新异常、插入异常(无法表示某些信息)、删除异常(丢失有用的信息)。
三大范式内容如下:
- 第一范式:其目标是确保每列的原子性。
- 第二范式:在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关。
- 第三范式:在第二范式的基础上更进一层,其目标是确保每列都和主键列直接相关。而不是间接相关。
版权归原作者 Chen_NC 所有, 如有侵权,请联系我们删除。