数据库设计

软件项目开发周期

瀑布模型


迭代模型



后者更适合现代软件的开发。


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

概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整。

详细设计阶段:将E-R图转换为多张表(物理模型),进行逻辑设计,并应用数据库设计的三大范式进行审核。

代码编写阶段:选择具体的数据库进行物理实现,并编写代码实现前端应用。

软件测试阶段:对每一个开发完的模块进行单元测试和对多个模块进行集成测试。

安装部署阶段:将测试好的系统打包发布至服务器。




数据库设计的步骤

收集信息

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

标识对象

标识数据库要管理的关键对象和实体。

标识每个实体的属性

标识对象之间的关系

世间万物都是有联系的,一个系统中的实体间也是如此。


数据库设计的三大范式

设计数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,越高的范式,数据库的冗余越小。

但在实际的项目开发中,适当的冗余还是有好处的,会降低数据访问的难度。

第一范式:每列都是不可再分的最小数据单元。

第二范式:如果一个关系满足1NF,并且除了主键以外的其他列,都依赖于这个主键,则满足第二范式。说的通俗一些,2NF要求每张表只描述一件事情。

 

 左面的表就不满足第二范式,一张表表达了两种信息(订单信息、产品信息),订购日期依赖于订单编号,价格依赖于产品编号,都依赖于不同的标识。

 因此,在实际的开发中,在设计某张表的时候,根据实际的业务需求要看看表里的字段是不是属于这张表的,如果不属于就不要添加。

第三范式:满足第二范式,并且非主键列都不传递依赖于主键列,则满足第三范式。通俗的讲,第三范式要求一个表中不能包含在其他表中已定义好的非主键列。只包含其他表中的主键列(外键列)就行了。


从图中的订单表可看,顾客编号没问题,但是顾客姓名就冗余了,因为顾客姓名是属于顾客表中的信息。

其实在实际项目开发中,为了提高查效率,就不一定去遵从第三范式(避免表连接)。

三大范式是设计数据库的基本准则。


绘制PDM数据模型

E-R图绘制工具

Viso

PowerDesigner(使用广泛)

字段描述、字段名、字段数据类型、长度、精度(小数位数)、是否主键、强制约束(是否可为空)

建立外键关联关系

     刚拉完线时候,只能说订单项引用了订单表,但并没有说引用了订单表中的哪个列。

                     说明订单项引用了订单中的主键。双击线

在实际的项目开发中,具体的做法是:

在概念数据 模型设计时遵守第三范式。

降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值