数据库设计


--个人学习的资料收集和总结,看看就好

1.为什么需要设计数据?

  设计数据就像给房屋设计蓝图一样。好的房屋设计图不仅能给工作者明确了工作的目标还给房屋的主人清楚的知道了房子的主要结构点

   良好的数据库设计可以:

    .节省数据的存储空间

    .能够保证数据的完整性

    .方便进行数据应用系统的开发

  糟糕的数据设计会导致:

    .数据冗余,空间的浪费

    .内存空间的浪费

    .数据更新和插入异常

2.数据库设计的流程

  1.需求分析:分析用户的需求,包括数据,功能和性能的需求

  2.概念结构的设计:主要采用E-R模型进行设计,包括画E-R图(实体:正方形,属性:椭圆,关系:菱形)

    概念设计的步骤:
      收集信息->标识对象->标识对象属性->标识对象之间的关系

  3.逻辑结构的设计:将E-R模型图转换成表

    步骤:

      1.将对象实体转换为各个表,将属性转换为列,对象之间的关系就是表与表之间的关联关系。

      2.标识每个表的主键列,需要注意的是:没有主键的表添加ID编号列,

      3.在表之间建立主外键,体现实体之间的映射关系 。注意:如果映射关系是多对多,这个关系是就一个联接两个实体的关系表(关系表就是两个表之间的中间表)

  4.物理设计:对已经确定的数据逻辑结构,以较优的存储结构、数据存取路径、合理的数据存储位置及存储分配,设计出一个高效的、可实现的无力数据结构

3.数据的规范化

  数据库设计的好不好,看看是不是遵守数据库设计的规范。

   理解三大范式:

    遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被 称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小

  第一范式:每一列属性都是不可再分的属性值,确保每一列的原子性

   第二范式:对记录的唯一性,要求记录有唯一标识,即要求实体的属性完全依赖于主关键字,不存在部分依赖;

   第三范式:数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。