数据建模标准-面向对象建模

news2024/11/14 15:19:18

前情提要

数据模型定义

DAMA数据治理体系中将数据模型定义为一种文档形式,数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介;

作用

记录数据需求和建模过程中产生的数据定义;

数据建模方法

常见的数据建模方法是关系建模、维度建模、面向对象建模、基于事实建模、基于时间建模和非关系型建模;

本章重点梳理面向对象建模方法

面向对象建模:是一种软件开发过程中的建模技术,它使用对象和对象之间的关系来表示现实世界中的实体和它们之间的关系。

统一建模语言(UML):是一种图形风格的建模语言,UML根据不同的数据库有不同种类的类模型。

面向对象建模的核心概念

对象(Object):对象是具有状态和行为的实体,状态通过属性表示,行为通过方法实现。

类(Class):类是对象的蓝图或模板,它定义了一组属性和方法,这些属性和方法可以被对象实例化时继承。

封装:封装是将数据和操作数据的方法结合在一起的过程,它隐藏了对象的内部状态,只通过方法暴露对外的接口。

UML在数据库设计中的应用场景

UML(统一建模语言)在数据库设计中的应用主要体现在帮助设计者理解、分析和设计数据库的结构。

1.类图(Class Diagram):

类图是UML中用于描述系统中类的结构和它们之间关系的图。在数据库设计中,类图可以用来表示实体(Entity)和它们的属性(Attribute)。

类图中的类通常对应数据库中的表(Table),类的属性对应表的列(Column),类之间的关系(如关联、依赖、聚合等)可以转换为表之间的关系(如外键约束)。

2.对象图(Object Diagram):

对象图是类图的一个实例化版本,它展示了在特定时刻系统中对象的实例以及它们之间的关系。

在数据库设计中,对象图可以用来展示数据的实例状态,帮助设计者理解数据在特定时刻的组织方式。

3.组件图(Component Diagram):

组件图用于描述软件组件的组织和它们之间的依赖关系。

在数据库设计中,组件图可以用来展示数据库组件(如存储过程、触发器、视图等)的组织结构;

4.部署图(Deployment Diagram):

部署图描述了系统的物理部署,包括硬件和软件的配置。

在数据库设计中,部署图可以用来展示数据库服务器的物理位置和配置,以及数据库实例的分布。

5.包图(Package Diagram):

包图用于组织模型元素,如类、接口等,将它们分组到不同的包中。

在数据库设计中,包图可以用来组织相关的数据库模式(Schema)或数据模型元素,提高模型的可管理性;

6.活动图(Activity Diagram):

活动图主要用于描述业务流程或操作的动态行为,但它们也可以用于数据库设计,以展示数据处理的步骤和决策点;

7.状态图(State Diagram):

状态图描述了系统或对象在其生命周期内可能经历的状态以及状态之间的转换。

在数据库设计中,状态图可以用来描述数据实体的状态变化,特别是在设计状态依赖的数据模型时。

面向对象建模的步骤

需求分析:确定系统的需求和功能;

识别实体:识别系统中的关键实体,如用户、订单、产品等;

定义属性和方法:为每个实体定义属性和方法;

建立关系:定义实体之间的关系,如关联、继承等;

设计类图:使用统一建模语言(UML)中的类图来表示类和它们之间的关系;

实例

以类图为例下面是一个顾客从零售商处预定商品的模型的类图中心的类是Order连接它的是购买货物的Customer和PaymentPayment有三种形式:Cash,Check,或者Credit订单包括OrderDetails(line item),每个这种类都连着Item。

UML类的符号是一个被划分成三块的方框:类名,属性,和操作,抽象类的名字,像Payment是斜体的,类之间的关系是连接线;

类图三种关系

1.关联association

表示两种类的实例间的关系。如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联。在图中,关联用两个类之间的连线表示。

2.聚合aggregation

当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具有整体性质的类。在我们的图里,Order是OrderDetails的容器。

3.泛化generalization

一个指向以其他类作为超类的继承连线泛化关系用一个三角形指向超类Payment是Cash,Check和Credit的超类。

一个关联有两个尾端每个尾端可以有一个角色名role name来说明关联的作用比如,一个OrderDetail实例是一个Order实例的项目。

关联上的方向性navigability箭头表示该关联传递或查询的方向OrderDetail类可以查询他的Item,但不可以反过来查询箭头方向同样可以告诉你哪个类拥有这个关联的实现;也就是OrderDetail拥有Item没有方向性的箭头的关联是双向。

关联尾端的数字表示该关联另一边的一个实例可以对应的数字端的实例的格数,通过这种方式表达关联的多样性。多样性的数字可以是一个单独的数字或者是一个数字的范围。在例子中,每个Order只有一个Customer,但一个Customer可以有任意多个Order。

--实例引用《UML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图》 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1935641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

任意空间平面点云旋转投影至水平面—罗德里格旋转公式

1、背景介绍 将三维空间中位于任意平面上的点云数据,通过一系列的坐标变换(平移旋转),使其投影到XOY平面上,同时保证点云的几何中心与XOY平面的原点重合,同时点云形状保持不变。具体效果如下,具…

51单片机8(LED闪烁)

一、软件设计: 1、本章所要实现的功能是:点亮D1指示灯,即让P2.0管脚输出一个低电平。完成后可再控制D1指示灯闪烁,即间隔一段时间点亮和熄灭D1指示灯。那么如何让LED进行闪烁,那么只需要循环的让这个低指针先亮一会&a…

Docker搭建Harbor

1.什么是Harbor Harbor 是 vMware 公司开源的企业级 Docker 〖egistry 项日,其日标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理UI 、基于角色的访问控制(Role Based Accesscontr…

地图项目涉及知识点总结

序:最近做了一个在地图上标记点的项目,用户要求是在地图上显示百万量级的标记点,并且地图仍要可用(能拖拽,能缩放)。调研了不少方法和方案,最终实现了相对流畅的地图系统,加载耗时用…

LLaMA 数据集

LLaMA的训练数据集来源多样,涵盖了多个不同的数据集和预处理步骤。以下是详细的描述: 公开数据来源和预处理 CommonCrawl [67%]: 使用CCNet管道(Wenzek等人,2020年)对2017年至2020年间的五个CommonCrawl转…

基于 Springboot + vue + java 美食分享平台(美食管理系统)

目录 📚 前言 📑摘要 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 E-R表 💬 用户表 💬 美食分享文章表 💬个人博客表 💬 美食分类表 💬 …

如何根据项目需求选择采集卡及相关硬件

在选择适合的采集卡和硬件设备时,尤其是在要求高精度的应用场景中(如压机测试中的1μm位移计),需要综合考虑多个因素。以下是选择硬件的几个关键原则: 1. 精度要求 对于需要高精度的应用,硬件的精度必须能…

Java代码批量处理sql语句

背景:数据源迁移,目标数据源和原始数据源的语法不同,要把建表语句全都改成新的语法。 一个个sql文件去替换实在是麻烦,可以把原始的sql文件放在一个文件夹,然后用程序一跑,改完语法的sql语句就放在新的文件…

口袋奇兵游戏攻略:云手机辅助战锤入侵策略指南!

在《口袋奇兵》中,战锤入侵是一个重要的游戏环节,了解如何有效地参与战锤入侵能够帮助玩家获取更多的资源和提升自己的战力。本文将详细介绍战锤入侵的策略和技巧,帮助玩家在战锤入侵活动中取得更好的成绩。除了找到强力的游戏辅助&#xff0…

miniconda+xinference的大模型推理部署指南

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 基于Dify的智能分类方案:大模型结合KNN算法(附代码&#xff…

【视觉SLAM】 十四讲ch5习题

1.*寻找一个相机(你手机或笔记本的摄像头即可),标定它的内参。你可能会用到标定板,或者自己打印一张标定用的棋盘格。 参考我之前写过的这篇博客:【OpenCV】 相机标定 calibrateCamera Code来源是《学习OpenCV3》18.…

喜报!CACTER实力入选《嘶吼2024网络安全产业图谱》多项领域

CACTER实力入选多项细分领域 7月16日,嘶吼安全产业研究院正式发布《嘶吼2024网络安全产业图谱》,旨在全面展示网络安全产业的构成及其重要组成部分,探索网络安全产业的竞争格局和发展前景。 CACTER凭借卓越的技术实力和可靠的产品服务&#…

[论文笔记] Pai-megatron-patch cpu-offload 改到 Qwen2

Add MPI Support for tp-comm-overlap and Cpu-Offload for Mcore Distrib… by jerryli1981 Pull Request #283 alibaba/Pai-Megatron-Patch GitHub 以上是在 llama-70B 上实现的 cpu-offload 方法。 下面是在主分支上,仿照 LLaMA-70B,在 Qwen2 上…

手把手教你搭建Docker私有仓库Harbor

1、什么是Docker私有仓库 Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部署…

HarmonyOS工程目录结构

应用级配置文件app.json5 应用唯一标识、版本号、应用图标、应用名称等信息 模块级配置文件module.json5 oh-package.json5 三方库的管理 其他配置 用于编译构建,包括构建配置文件、编译构建任务脚本、混淆规则文件、依赖的共享包信息等。 build-profile.json…

Java学习Day9之数据库链接java

package aboutdb1; import java.sql.*; import java.util.Scanner; public class newDBsystem {private static Connection getConnection() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver"); // 加载MySQL JDBC驱动Connection con DriverManager.get…

阿尔泰科技工业电脑IPC-8363工控机

概述: IPC-8363是一款支持 LGA 1200 Intel 10th/11th Generation Core™ i9/i7/i5/i3, Celeron and Pentium processor 的工业电脑。配置2组独立 SO-DIMM DDR4 2666/2933MHz内存,最大可扩展至128GB。 主要技术指标: 产品图示: 系…

php 小白新手从入门到精通教程(第3版)

前言 PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根…

qt初入门8:下拉框,输入框模糊查询,提示简单了解 (借助QCompleter)

实现一个简单的模糊查询的逻辑,输入框能提示相关项。 主要借助qt的QCompleter 类( Qt 框架中提供的一个用于自动补全和模糊搜索的类),结合一些控件,比如QComboBox和QLineEdit,实现模糊查询的功能。 1&…

在线实习项目|泰迪智能科技企业级项目学习,暑期大数据人工智能学习

在线实习介绍 实习时间:每个项目周期七周左右 面向对象:大数据、计算机相关专业学生;大三、大四毕业年度学生 在线实习收获 1、获得项目实战技能,积累项目经验 2、获得在线实习证明 项目特点…