数据库设计重点总结

为什么需要设计数据库:

糟糕的数据库设计:

  1. 数据冗余、存储空间浪费
  2. 数据更新和插入的异常
  3. 程序性能差

 

良好的数据库设计:

  1. 节省数据的存储空间
  2. 能够保证数据的完整性
  3. 方便进行数据库应用系统的开发

 

软件项目开发周期中数据库设计:

需求分析阶段:

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

①设计数据库的步骤

a. 收集信息

与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务

示例:酒店管理系统的基本功能:

旅客办理入住手续:后台数据库需要存放入住客人的信息和客房信息

客房信息:后台数据库需要存放客房的相关信息,如客房号、床位数、价格等

客房管理:后台数据库需要保存客房类型信息和客房当前状态信息

b. 标识实体(Entity)

标识数据库要管理的关键对象或实体,实体一般是名词

示例:酒店管理系统中的实体:

客人:入住酒店的旅客。办理入住手续时,需要填写客人的信息

客房:酒店为客人提供休息的房间

c. 标识每个实体需要存储的详细信息(Attribute)

示例:

d. 标识实体之间的关系(Relationship)

示例:酒店管理系统中实体之间关系:

客房和客人有主从关系:表明客人入住的房间

 

2. 概要设计阶段:

设计数据库的E-R模型图,确认需求信息的正确和完整

E-R图:

符号

含义

实体,一般是名词

属性,一般是名词

关系,一般是动词

 

映射基数:

 

如何使用Visio绘制E-R图:

  1. 使用文件→新建→框图→基本框图来绘制E-R图;
  2. 在绘图窗口左侧的“基本形状”里选择“矩形”、“椭圆”、“菱形”拖动到页面适当位置,就可以绘制需要的矩形、椭圆和菱形
  3. 绘制直线,在工具栏:视图→工具栏→绘图,这时就会弹出绘图工具栏。选择其中的直线工具

 

示例:酒店管理系统的数据库

 

关系模式:

用二维表的形式表示实体和实体间联系的数据模型即关系模式

E-R图转换为关系模式的步骤:

  1. 把每个实体都转化为关系模式R(U)形式【R代表一个关系,对应一张表;U表示属性集合,也就是表中字段】
  2. 建立实体间联系的转换

示例:酒店管理系统数据库的关系模式是:

客房(客房号、客房描述、客房类型、客房状态、床位数、入住人数、价格)

客人(客人编号,客人姓名、身份证号、入住日期、结账日期、押金、总金额、客房号)

 

转化E-R图为数据库模型图:

步骤:

  1. 新建数据库模型图
  2. 添加实体
  3. 添加数据列及相应的属性
  4. 添加实体之间的映射关系

示例:

 

3. 详细设计阶段:

应用三大范式审核数据库结构

为什么需要数据规范化:

不合规范的表设计会造成:信息重复、更新异常、插入异常(无法正确表示信息)、删除异常(丢失有效信息)

第一范式(1st NF):

第一范式的目标是确保每列的原子性

如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)

示例:

 

第二范式(2nd NF):

第二范式要求每个表只描述一件事情

示例:

 

第三范式(3nd NF):

如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)

示例:

 

示例总结:

最终规范化的酒店管理系统E-R图:

 

最终规范化的酒店管理系统数据库模型:

 

4. 代码编写阶段:

物理实现数据库,编码实现应用

规范化和性能的关系:

  1. 为满足某种商业目标,数据库性能比规范化数据库更重要
  2. 在数据规范化同时,要综合考虑数据库的性能

①通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间

②通过在给定的表中插入计算列(如成绩总分),以方便查询

 

总结:

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值