码迷,mamicode.com
首页 > 数据库 > 详细

数据库建模、面向对象建模>从零开始学java系列

时间:2021-05-24 03:23:42      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:lazy   分割   扩展   png   数据库建模   电话   关系   key   http   

数据库建模

前置知识

  • 一对多解决方案,多的一方增加一个外键
  • 一对一解决方案,任何一方增加一个外键,并指定为唯一键。或者其中一方将其设置为主键and外键对应
  • 多对多解决方案,需要一个中间表

使用PowerDesigner数据库建模设计

一对多CDM概念数据模型设计

技术图片

多对多的PDM物理数据模型设计(针对mysql)

技术图片

PowerDesigner将不同的模型进行转换

技术图片

在PowerDesigner中设置外键,唯一键

  • 设置外键
    • 需要先进行关联关系的线连接。
      技术图片
    • 设置该模型的需要设置文件的字段,设置为一个key
      技术图片
    • 设置关联关系
      技术图片
  • 设置唯一键
    • 先将该键定义为一个key
      技术图片
    • 然后选中unique
      技术图片

通过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系列

标签:lazy   分割   扩展   png   数据库建模   电话   关系   key   http   

原文地址:https://www.cnblogs.com/itdqx/p/14748486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!