1.为什么 需要设计数据库?
1)良好的数据库设计 2)糟糕的数据库设计
(1)节省数据存储空间 (1)数据冗余,存储空间浪费
(2)能够保证数据的完整性 (2)内存空间浪费
(3)方便进行数据库应用系统的开发 (3)数据更新和插入异常
2.设计数据库步骤:
(1)收集信息:与该系统有关人员进行交流,座谈,充分了解用户需求,理解数据库要完成的任务。
(2)标识体(Entity):
标识数据库要管理的关键对象或实体,实体一般是名词。
(3)标识每个实体的属性(Attribute)
(4)表示实体之间的关系
3.E-R图
4.映射基数
5.关系模式:
用二维图的形式表示实体和实体见联系的数据模型
6.E-R图转为关系模式的步骤:
(1)把每个实体都转换为关系模式R (U)形式
(2)建立实体间联系的转换
7.比如我们下边这个例子:
1)客房(客房号,客房描述,客房类型,状态,床位数,入住人数,价格)
2)客人(客人编号,姓名,身份证号,入住日期,转账日期,押金,总金额,客房号)
8.不符合规范表的设计:
信息重复 更新异常 插入异常
9.无法正确表示信息:
删除异常
10.三大范式内容:
1)第一范式的目标是确保每列的原子性
如果每列都是不可再分的最小数据单元(也称为最小的原子单元,则满足第一范式 1NF)
2)第二范式要求每个表只描述一件事情
3)第三范式要求表中各列必须和主键有直接相关,不能间接相关
11.表中含大量冗余数据,可能会导致数据异常:
更新异常 添加异常 删除异常
12.规范化和性能的关系:
(1)为满足某种商业目标,数据库性能比规范化数据库更重要
通过再给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
通过在给定的表中插入计算列(如成绩总分)以方便查询
13.案列
转化为E-R图数据库模型
(1)将各实体转换为对应的表,将属性转换为各表对应的列
(2)标识每个表主键列
(3)在表之间建立主外键,体现实体
eg:
14.绘制E-R图软件:
Visio 在线制图软件 亿图图示