第一节:规范化数据库设计
一:为什么需要数据库设计?
1、为了避免数据库数据冗余等问题,对性能造成影响,需要进行数据库设计。
2、作用:
A:节省数据的存储空间
B:能够保证数据的完整性——(完整性指准确性和一致性)
C:方便进行数据库应用系统的开发
3、数据库设计定义:将数据库中的
数据实体,以及这些数据实体之间的
关系,进行
规划和
结构化的过程。
二:软件开发中的数据库设计
1、需求分析阶段:
分析客户的
业务和数据处理
需求
A、收集信息
与该系统
有关人员进行交流、座谈,充分了解
用户需求,理解数据库需要完成的任务
B、标识实体 (Entity)
标识数据库要管理的
关键对象或
实体,
实体一般是名词,可以理解成
数据库中的表
C、标识
每个实体的属性,也就是需要
储存的详细信息——列(Attribute)
D、
标识实体之间的关系(Relationship)
2、概要设计阶段:设计数据库的
E-R模型图,确认需求信息的
正确和完整
3、详细设计阶段:将E-R图
转换为多张表,确认主外键,应用
三大范式审核数据库结构
4、代码编写阶段:物理实现数据库,编码实现应用
——
——
第二节:绘制E-R图和数据库模型图(绘制数据库模型图,需要软件进行操作)
一:绘制E-R图
1、E-R图定义:数据库设计图纸,也被称为
实体-关系图。
2、E-R图形符号:
3、映射基数:通过联系与该实体
关联的其他实体的个数。
种类:一对一、一对多、多对一、多对多
二:关系模式
1、定义:用
二维表的形式表示实体和实体间联系的数据模型即
关系模式
2、E-R图转换为关系模式的步骤
A:把每个实体都转化为关系模式R(U)形式
B:建立实体间联系的转换
C:客房(客房号、客房描述、客房类型、客房状态、床位数、入住人数、价格)
客人(客人编号,客人姓名、身份证号、入住日期、结账日期、押金、总金额、客房号)
——
——
第三节:数据库设计三大范式
一:第一范式
1、目标:第一范式的目标是确保
每列的原子性,消除重复。
2、如果每列都是
不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
二:第二范式
1、第二范式要求
每个表只描述一件事情,消除部分依赖。
2、确保每列都与主键
相关,并且除主键外,其他列都全部依赖于该主键。
三:第三范式
1、再第二范式上,更进一步,目的是
消除传递依赖。
依赖传递——如果A属性依赖B属性,而B属性依赖C属性,则A属性依赖C属性。
2、确保每列都与主键
直接相关,而不是间接相关。
四:规范化和性能的关系
1、为满足某种商业目标,数据库性能比规范化数据库更重要
A:通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
B:通过在给定的表中插入计算列(如成绩总分),以方便查询
2、在数据规范化同时,要综合考虑数据库的性能