数据库范式与UML建模

文章介绍了数据库设计中的范式理论,包括第一范式到第五范式,强调了范式在保证数据库设计合理性、减少冗余和避免异常方面的作用,同时也指出过高范式可能影响性能。此外,文章还探讨了UML建模,如类图中的各种关系,以及用例图和序列图等在软件开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库范式与UML建模

范式

  1. 为什么提出范式?
    •为了必须保证数据库设计的合理性
    •数据库设计关系整个系统的架构,关系到后续开发效率和运行效率
    •数据库的设计主要包含了设计表结构和表之间的联系
    •如何是合理数据库
    •结构合理
    •冗余较小
    •尽量避免插入删除修改异常
    •如何才能保证数据库设计水平
    •遵循一定的规则,在关系型数据库中这种规则就称为范式
  2. 什么是范式(NF)
    •范式是符合某一种设计要求的总结。
    •要想设计一个结构合理的关系型数据库,必须满足一定的范式。

•第一范式
•数据库表每一列都是不可分割基本数据项,同一列中不能有多个值
简单说就是要确保每列保持原子性。

•第二范式

在一个数据库表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

•第三范式:确保数据表中的每一列数据都和主键直接相关,而不能间接相关
•BCNF
•比3NF又进了一步,通常认为是修正的第三范式.
•第四范式
•第五范式
以上各个范式是依次嵌套包含的;范式越高,设计质量越高,在现实设计中也越难实现;一般数据库设计,只要达到第三范式,即可避免异常的出现。
在这里插入图片描述

  1. 范式的优点
    •结构合理
    •冗余较小
    •尽量避免插入删除修改异常
  2. 范式的缺点
    •性能降低
    •多表查询比单表查询速度慢
    •数据库的设计应该根据当前情况和需求做出灵活的处理。
    •在实际设计中,要整体遵循范式理论。
    •如果在某些特定的情况下还死死遵循范式也是不可取的,因为可能降低数据库的效率,此时可以适当增加冗余而提高性能。
    •示例:
    •比如经常购物车条目的中除了条目编号,商品编号,商品数量外,可以增加经常使用的商品名称,商品价格等

范式总结

•范式是指导数据设计的规范化理论,可以保证数据库设计质量
•第一范式:字段不能再分
•第二范式:不存在局部依赖
•第三范式:不含传递依赖(间接依赖)
•使用范式可以减少冗余,但是会降低性能
•特定表的的设计可以违反第三范式,增加冗余提高性能

UML理论及PD中的使用

  1. UML的定义

是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。
UML定义了10种模型图,对应软件设计开发的不同阶段。
用例图
静态图:类图,包图,对象图。
行为图:状态图和活动图
交互图:顺序图和协作图
实现图:组件图、部署图

  • 类图
    在面向对象设计过程当中, 类之间的关系共有六种。

  • 泛化(继承)
    在这里插入图片描述

  • 实现(接口)
    体现了规范和实现分离的原则

在这里插入图片描述

  • 依赖(例如局部变量做参数)
    一个类A使用到了另一个类B,但是这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A在这里插入图片描述

  • 关联(成员变量,相比于依赖关系要注意区别与异同)
    比依赖关系强,必然的,长期的,强烈的;

Class Customer {
	Order[] orders;
}
Class Order{
	Product[] products;
}
Class Product{
}

在这里插入图片描述

  • 聚合(生命周期不同,整体部分可分离)
    在这里插入图片描述

  • 组合(生命周期相同)
    整体的生命周期和部分的生命周期相同在这里插入图片描述

类图总结

1)关系的强弱:组合>聚合>关联>依赖。
2)关联和依赖的区别:
i.关联关系强、长期
ii.关联关系是通过属性来实现;依赖关联是通过方法形参或者局部变量实现
3)关联、组合/聚合的异同
i.相同:都是关联,都是做类的属性
ii.不同点:组合 /聚合表示的是整体和部分的关系,关联可以表示所有关系
4)组合和聚合的异同
i.相同:都是关联的特例,都是表示的整体和部分的关系
ii.不同点:整体部分的生命周期是否相同?组合更强

  • 用例图(功能用椭圆来进行表示)
    用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。
    用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。
    用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
    (注意拓展与包含的区别)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (注意不同人之间的层级继承关系)

  • 时序图
    时序图(Sequence Diagram),又名序列图、顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
    在画时序图时会涉及的主要元素有:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息
    在这里插入图片描述

  • 业务流程图BPM
    业务流程图是一种描述业务管理系统内各单位、人员之间的业务关系,作业顺序和管理信息流向的图表,是相关业务流程的直观展示。说白一点,业务流程图显示了数据或信息从一个任务传递到下一个任务直到完成时整个过程会发生的一切事情。
    这个流程应该怎样运行?每个人都会有自己的想法。但是如果您的解释只是口头说说或者简单的文字描述,那么您就会错过很多业务流程运行过程中更加细节性的东西,比如数据的传播路径。
    通过业务流程图可以快速显示该任务的进展顺序,同时可以看到该业务流程需要进行哪些处理才会进入下一个流程,是系统处理还是分配给人处理,业务流程每一步需要满足的条件和处理过程都看的很清楚。
    实例图:
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值