UML统一建模(语言)和数据库建模

UML统一建模(语言)和数据库建模

UML统一建模语言(Unified Modeling Language )或标准建模语言,是始于1997年一个OMG标准,它通过图形化语言为软件开发中每个阶段(例如:需求分析到规格,到构造以及系统配置等)提供模型化和可视化的支持。

UML中描述类和接口或者类和类之间关系如下:
(1)泛化(Generalization):
在程序中表示继承关系用“UML统一建模(语言)和数据库建模”描述继承关系;
例如:
UML统一建模(语言)和数据库建模
(2)实现(Realization):
表示接口和类之间的implements关系;
使用“UML统一建模(语言)和数据库建模” 描述该关系;
例如:
UML统一建模(语言)和数据库建模

(3)关联(Association):
关联表示实体与实体之间的任意关系;使用“UML统一建模(语言)和数据库建模”表示;
程序中体现在全局属性(全局变量)和类或接口关系;
例如:
老师-学生 1对多 即1..N;
丈夫和妻子 1对1 即1..1 ;
父亲和孩子 1对多 即1..N;
课程-学生 多对多, 即N..N;
UML统一建模(语言)和数据库建模
如果员工信息中也包含经理信息,此时描述经理和员工关系那么:
UML统一建模(语言)和数据库建模
(4)聚合(Aggregation):
描述的是整体和个体的关系,整体可以脱离个体;个体脱离整体后,整体可以独立存在;聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。使用“UML统一建模(语言)和数据库建模”空心菱形以及实心箭头表示;

例如:汽车和引擎、学生和老师、班级和学生
程序中体现在类和全局属性(全局变量)之间关系;

UML统一建模(语言)和数据库建模
(5)组合(Composition)也叫做强聚合、也叫做复合:
是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系。

使用UML统一建模(语言)和数据库建模表示组合关系;
程序中体现为:
UML统一建模(语言)和数据库建模
(6)依赖(Dependency):
表现在代码层面,就是一个类A使用到了另一个类B的对象,而该对象作为参数或者属性被类A 某个方法中使用。也体现在程序中局部变量、方法的参数或者对静态方法的调用。
使用”UML统一建模(语言)和数据库建模”符号表示依赖关系;

UML统一建模(语言)和数据库建模

UML图形的分类:
可选建模工具有:PowerDesigner、StartUML、Visio、Rational Rose等;
(1)类图(ClassDiagram)。展现了一组对象、接口和它们之间的关系。 (重点描述程序类、包、接口等关系)
(2)用例图(UseCaseDiagram)。展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。(重点描述项目或者功能点有哪些)

(3)时序图(Sequence Diagram):也叫做序列图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。 (重点描述实体之间消息传递订和周期)

(4)协作图: 与序列图(Sequence Diagram)不同,协作图显示了对象之间的关系。序列图(Sequence Diagram)和协作图表述的是相似的信息,但表述的方式却不同。协作图显示对象之间的关系。 (重点描述实体之间的关系)

(5)状态图(StateDiagram):状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。(重点描述实体的状态)

(6)活动图(ActiveDiagram): 活动图(activity diagram,动态图)是阐明了业务用例实现的工作流程。可以按照角色或者实体对象划分为永道;(可以认为是流程图)

(7)组件图(ComponentDiagram): 组件图(component diagram)是用来反映代码的物理结构。从组件图中,您可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。(描述软件组件 与软件组件的关系或者系统与组件之间关系)
(8)部署图(DeploymentDiagram):
部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构

类图:(包的描述)

UML统一建模(语言)和数据库建模

类图:(类和接口的描述)

UML统一建模(语言)和数据库建模

用例图:

UML统一建模(语言)和数据库建模

时序图:

UML统一建模(语言)和数据库建模

协作图例如:
UML统一建模(语言)和数据库建模

状态图: UML统一建模(语言)和数据库建模
UML统一建模(语言)和数据库建模
组件图:
UML统一建模(语言)和数据库建模

活动图:

UML统一建模(语言)和数据库建模
UML统一建模(语言)和数据库建模

组件图:
UML统一建模(语言)和数据库建模
UML统一建模(语言)和数据库建模

数据库建模–>实体关系

关系型数据库表关系有:一对一,多对多,一对多,多对一等关联关系。
表设计原则:范式,一共有六种范式,但是设计表示一般只遵循第三范式;
第一范式简述为:数据库表中列,拆到不能拆为止。
例如: 下面表格设计过程中,电话,该列中存放固定电话号码也存移动电话,此时这一列使整体数据有冗余。
不满足第一范式:
编号 姓名 电话
1001 zyg 15845689182
1001 zyg 010-67676767
修改后,满足第一范式:
编号 姓名 固定电话 移动电话
1001 zyg 010-67676767 15845689182
第二范式简述为:(满足第一范式前提下) 较少非主键列之间的依赖关系,适当的使用外键(拆成多个表);
例如:学生信息表以及成绩,课程都设计在一个表中。(有冗余数据)
满足第一范式,但不满足第二范式:
学生信息表
学号 姓名 课程 课程名称 成绩
1001 zyg 1 java 78
1001 zyg 2 C语言 90
修改后,满足第二范式:
学生表:
学号 姓名 年龄
101 SMITH 23
102 JONES 18

课程表:
课程编号 课程名称 学分
1 java 5
2 c++ 4

成绩表:
课程编号 学号 成绩
1 101 100
2 102 89
1 102 81
2 101 60

第三范式:在满足一范式,二范式基础上,在表中不能含有另一张表的非主键列。
例如:
满足第二范式,不满足第三范式:
学生表:
学号 姓名 年龄 学院名称 系别
101 SMITH 23 计控学院 计算机科学与技术
102 JONES 18 计控学院 计算机科学与技术

系别信息表:
系别编号 系名 学院名称
1 计算机科学与技术 计控学院
2 财管 经济管理学院

修改后满足第三范式:
学生表:
学号 姓名 年龄 系别
101 SMITH 23 1
102 JONES 18 1

系别信息表:
系别编号 系名 学院名称
1 计算机科学与技术 计控学院
2 财管 经济管理学院

数据库建模(E-R图和物理模型):

可选工具有:PowerDesigner、MySQLWorkbench
(1)E-R图: 常用于需求分析阶段用来描述在需求中项目所用到的实体和实体关系(此时还没有设计表,也没有表的详细结构,只是概要的描述);
矩形框:表示实体,在框中记入实体名(表)。
菱形框:表示联系。
椭圆形框:表示实体或联系的属性,将属性名记入框中。
连线:实体与属性之间;
UML统一建模(语言)和数据库建模

(2)数据库概念图(物理模型):用于描述表和表之间关系以及列的结构;有助于程序开发人员跟清楚的看到表的关系;常用于开发阶段;

UML统一建模(语言)和数据库建模

Create By : ZhaoYuGuang