第一章 数据库的设计


1.1 课程内容回顾:略


1.2 为什么需要规范的数据库设计(了解)

一、数据库设计的概念:

    数据库设计就是规划和结构化数据库中的数据对象以及这些数据对象之间的关系的过程


二、良好的数据库设计表现为以下几点:

   (一)效率高

   (二)便于进一步扩展

   (三)应用程序开发更容易


1.3 设计数据库的步骤

一、项目开发的几个阶段(了解)

    需求分析->概要设计->详细设计->代码编写->运行测试->打包发布


二、在项目开发过程中数据库的设计过程(理解)

   (一)需求分析阶段:

         分析客户的业务和数据处理需求

   (二)概要设计阶段:

         绘制数据库的E-R设计图,用于在项目团队内部、设计人员和客户之间进行沟通,确认需求信息的正确和完整。

   (三)详细设计阶段:

         将E-R图转换为多个表,进行逻辑设计,确认各表的主外键,并应用数据库设计的3大范式进行审核。


三、数据库的设计步骤:

   (一)收集信息

         在创建数据库前,必须充分理解数据库需要完成的任务和功能

   (二)标识对象

         在收集需求信息后,必须标识数据库要管理的关键对象或实体。

   (三)标识每个对象需要存储的详细信息

         将数据库中的主要对象标识为表的候选对象后,下一步就是标识每个对象存储的详细信息,也称为该对象的属性。

   (四)标识对象之间的关系


1.4 绘制E-R(Entity-Relationship实体-关系)图(理解)

一、实体关系模型:

   (一)实体:

         实体就是指现实世界中具有区分其他事物的特征或属性并与其它实体有联系的对象。严格地说,实体指表中一行一行的特定数据,但有时,也常常把整个表也称为一个实体。实体通常是一个名词

   (二)属性:

         属性也可以理解为实体的特征。属性通常是一个名词

   (三)关系:

         关系是两个或多个实体之间的联系。关系一般是一个动词

   (四)映射基数:

         映射基数表示可以通过关系与该实体关联的其他实体的个数。通常有一对一、一对多、多对一、多对多

   (五)实体关系图:

      1、概念:

         以图形的方式将数据库中的实体、属性及关系表示出来的方法

      2、组成:

         1)矩形表示实体集

         2)椭圆形表示属性

         3)菱形表示关系集

         4)直线用来连接忏悔和实体集,也用来连接实体集和关系集


二、如何将E-R图转换为表

   (一)将各实体转换为对应的表,将各属性转换为各表对应的列。

   (二)标识每个表的主键列,需要注意的是:对没有主键的表添加ID编号列,没有实际含义,只用做主键或外键

   (三)实现表与表之间的实体映射关系


1.5数据规范化

   (一)设计问题:(略)

   (二)规范设计:五大范式-在实际设计中通常只设计到第三层

      1、第一范式(1NF,Normal Formate)

         第一范式的目标是确保每列的原子性:如果每列(或每个属性值)都是不可再分的最小数据单元,则满足第一范式。

      2、第二范式(2NF)

         第二范式在第一范式的基础上,更进一层,其目标是确保表中的每列都和主键相关:如果一个关系满足1NF,并除了主键以外的其他列,都信赖于该主键,则满足第二范式

      3、第三范式(3NF)

         第三范式在第二范式的基础上,更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关:如果一个关系满足2NF,并且除了主键以外的其他列都不间接信赖于主键,则满足第三范式

   (三)规范化和性能的关系

         为满足3大范式,数据库操作性能会受到相应的影响。所以在实际的数据库设计中,既要考虑到3大范式,避免数据的冗余和各种数据操作异常,还要考虑数据访问性能。有时,为了减少表间连接,提高数据库的访问性能,适应允许少量数据的冗余列,才是最合适的数据库设计方案。