数据库设计基础

来源:互联网 发布:淘宝上好的纯银耳饰店 编辑:程序博客网 时间:2024/06/07 17:38

数据库设计基础

数据库设计的基本步骤:

  1. 需求分析阶段:需求收集和分析,得到 数据字典数据流图
  2. 概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型,用 E-R图 表示。
  3. 逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型。
  4. 数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构。
  5. 数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,程序试运行。
  6. 数据库运行和维护阶段:对数据库系统进行评价、调整与修改。

E-R图

E-R图也称实体-联系图(Entity Relationship Diagram),
提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

在ER图中有如下四个成分:

  • 矩形框:表示实体,在框中记入实体名。
  • 菱形框:表示联系,在框中记入联系名。
  • 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
  • 连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。
    (对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M)

这里写图片描述

三范式

1.第一范式(1NF)

a.要求数据表不能存在重复的记录,即存在一个关键字。
b.要求是每个字段都不可再分,即已经分到最小,

主关键字达到下面几个条件:

  • 主关键字段在表中是唯一的
  • 主关键字段中没有复本
  • 主关键字段不能存在空值
  • 每条记录都必须有一个主关键字
  • 主关键字是关键字的最小子集

2.第二范式(2NF)

a.一个关系属于1NF,
b.且所有的非主关键字段都完全地依赖于主关键字

举一个例子:

有一个库房存储的库有四个字段(零件号码,仓库号码,零件数量,仓库地址),这个库符合1NF,其中“零件号码”和“仓库号码”构成主关键字。
但是因为“仓库地址”只完全依赖与“仓库号码”,即只依赖于主关键字的一部分,所以它不符合2NF,应该分解成两个表(零件号码,仓库号码,零件数量)和(仓库号码,仓库地址)。

3.第三范式(3NF)

a.一个关系属于2NF,
b.且每个非关键字不传递依赖于主关键字,这种关系是3NF。

从2NF中消除传递依赖,就是3NF,举个例子:

比如有一个表(姓名,工资等级,工资额),其中姓名是关键字,此关系符合2NF,但是因为工资等级决定工资额,这就叫传递依赖,它不符合3NF,
我们同样可以使用投影分解的办法分解成两个表:(姓名,工资等级),(工资等级,工资额)。

总结

  • 优点:规范化的优点是明显的。避免了大量的数据冗余,节省了空间,保持了数据的一致性,
  • 缺点:如果完全达到3NF,你不会在超过一个地方更改同一个值。它最大的不利是,把信息放置在不同的表中,增加了操作的难度,同时把多个表连接在一起的花费也是巨大
0 0
原创粉丝点击