软件设计师 - 数据库设计

1. 概述

  • 数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.
  • 良好的数据库设计的优点
    • 效率高
    • 易于扩展
    • 新增、更新、检索数据不会出现问题
    • 使得应用程序的开发变得更容易
  • 数据库设计的阶段
    • 需求分析阶段:分析客户的业务和数据处理需求.
    • 概要设计阶段:他主要就是绘制数据库的E-R图.
    • 详细设计阶段:应用数据库的三大范式进行审核数据库的结构.
  • 基本步骤
    • 收集信息
    • 标识实体
    • 标识每个实体需要储存的详细信息
    • 标识实体之间的关系

2. 用E-R图做概念模型设计

  • 对设计而言已经足够了,数据库模型图只是更详细而已?
  • E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
  • 它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。
  • 用"矩形框"表示实体型,矩形框内写明实体名称,一般是名词;
    • 现实世界中具有区分其他事物的特征或属性与其他实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但我们在开发中,也常常把整个表称为一个实体.
  • 用"椭圆图框"表示实体或联系的属性,将属性名记入框中,一般是名词。
    • 可以理解为实体的特征,针对于数据库中的表而言实体是指表中的列
    • 对于主属性名,则在其名称下划一下划线。
    • 并用"实心线段"将其与相应关系的"实体型"连接起来;表示实体或联系的属性
  • 用"菱形框"表示实体型之间的联系成因,在菱形框内写明联系名,一般是动词?
    • 两个或多个实体之间的关联关系
    • 并用"实心线段"分别与有关实体型连接起来,同时在"实心线段"旁标上联系的类型(1:1,1:n或m:n)。

3. 用数据库模型图做物理模型设计

  • 可以使用Visio或者PowerDesigner(可以反向工程,连接数据反向生成数据库模型图)
  • 和E-R图不同的是,包含详细的字段、类型、主外键等信息
  • 和E-R图一样要标明表之间的关系(1:1,1:n或m:n)

4. 数据库规范化/范式

  • 数据库规范化所解决的问题
    • 信息重复(会造成储存空间的浪费及一些其他问题).
    • 更新异常(冗余信息不仅浪费空间,还会增加更新的难度).
    • 插入异常
    • 删除异常(在某些情况下,当删除一行时,可能会丢失有用的信息).
  • 范式
    • 最常用的三大范式
      • 第一范式
        • 目标是确保每列的原子性.如果每列都是不可再分的最小数据单元,则满足第一范式.
      • 第二范式
        • 第二范式在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关,也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中.如果一个关系满足第一范式,并且除了主键以外的其他列都依赖与该主键.则满足第二范式.
      • 第三范式
        • 第三范式在第二范式的基础上更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关.如果一个关系满足第二范式,并且除了主键以外的其他列都这能依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式.
  • 规范化的权衡
    • 为了满足三大范式,我们的数据操作性能会受到相应的影响,所以,在实际的数据库设计中,既要考虑三大范式,避免数据的冗余和各种数据操作异常;有要考虑到数据访问性能,有时,为了减少表间连接,提高数据库的访问性能,允许适当的数据冗余列,这可能是最合适的数据库设计方案.

猜你喜欢

转载自www.cnblogs.com/wyp1988/p/10715494.html