数据库建模、面向对象建模>从零开始学java系列
2021/5/9 19:25:32
本文主要是介绍数据库建模、面向对象建模>从零开始学java系列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 数据库建模
- 前置知识
- 使用PowerDesigner数据库建模设计
- 一对多CDM概念数据模型设计
- 多对多的PDM物理数据模型设计(针对mysql)
- PowerDesigner将不同的模型进行转换
- 在PowerDesigner中设置外键,唯一键
- 通过PDM 生成数据库SQL语句
- 逆向工程,将sql语句用来生成PDM物理数据模型
- 数据库建模的三大范式
- 第一范式
- 第二范式
- 第三范式
- 面向对象建模
- 类图Class Diagram(表示类与类之间的关系)
- 泛化关系
- 实现关系
- 依赖关系
- 关联关系
- 聚合关系(特例关联关系,生命周期不同)
- 组合关系(特例关联关系,生命周期相同)
- 用例图(表示功能、权限)
- 时序图(表示执行细节)
- 类图Class Diagram(表示类与类之间的关系)
- 使用PowerDesigner数据库建模设计
- 前置知识
数据库建模
前置知识
- 一对多解决方案,多的一方增加一个外键
- 一对一解决方案,任何一方增加一个外键,并指定为唯一键。或者其中一方将其设置为主键and外键对应
- 多对多解决方案,需要一个中间表
使用PowerDesigner数据库建模设计
一对多CDM概念数据模型设计
多对多的PDM物理数据模型设计(针对mysql)
PowerDesigner将不同的模型进行转换
在PowerDesigner中设置外键,唯一键
- 设置外键
- 需要先进行关联关系的线连接。
- 设置该模型的需要设置文件的字段,设置为一个key
- 设置关联关系
- 需要先进行关联关系的线连接。
- 设置唯一键
- 先将该键定义为一个key
- 然后选中unique
- 先将该键定义为一个key
通过PDM 生成数据库SQL语句
逆向工程,将sql语句用来生成PDM物理数据模型
数据库建模的三大范式
第一范式
数据表的每一列都是不可分割项
修改前:用户表(姓名、联系方式),其中联系方式就是可以分割项
修改后:用户表(姓名、家庭电话、手机电话、紧急电话)
第二范式
数据表的非主键列都依赖于主键
修改前:学生表(学生id、学生姓名、课程id、课程名),其中的课程id与课程名与学生id没有依赖关系
修改后:
学生表(学生id、学生姓名)
课程表(课程id、课程名)
选课表(学生id、课程id)
第三范式
数据表的非主键列都依赖于主键,但是不存在传递依赖
修改前:学生表(学生id、学生姓名、班级id、班级名),其中的班级名不是直接依赖于学生id,直接依赖于班级id,对学生id只是一个间接依赖
修改后:
学生表(学生id、学生姓名、班级id)
班级表(班级id、班级名)
面向对象建模
类图Class Diagram(表示类与类之间的关系)
类图的六种关系
- 泛化关系(继承),实线空心箭头
- 实现关系,虚线空心箭头
- 依赖关系(被依赖的一方为依赖方的局部变量),虚线普通箭头
- 关联关系(被依赖的一方为依赖方的成员变量),实线普通箭头
- 聚合关系(特例的关联关系,联系较弱),依赖方为空心菱形、被依赖方为实线普通箭头
- 组合关系(特例的关联关系、联系较强(双方生命周期一致)),依赖方为实心菱形、被依赖方为实线普通箭头
泛化关系
实现关系
依赖关系
关联关系
聚合关系(特例关联关系,生命周期不同)
组合关系(特例关联关系,生命周期相同)
用例图(表示功能、权限)
图像规则
- 小人:参与者
- 椭圆:功能
- 泛化(继承):实线空心箭头
- 实线:关联关系
- extends:扩展
- include: 包含
时序图(表示执行细节)
这篇关于数据库建模、面向对象建模>从零开始学java系列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略