数据建模
软件工程中的数据建模是通过应用某些正式技术来为信息系统创建数据模型的过程。它可以用作更广泛的模型驱动工程(MDD)概念的一部分。
概述
数据建模是一个过程,用于定义和分析组织中相应信息系统范围内的业务流程所需的数据要求。因此,数据建模的过程涉及与业务利益相关者以及信息系统潜在用户紧密合作的专业数据建模者。
从需求到用于信息系统的实际数据库时,产生了三种不同类型的数据模型。数据需求最初被记录为概念数据模型,该模型本质上是一组有关数据的独立技术规格,用于与业务利益相关者讨论初始要求。然后将概念模型转换为逻辑数据模型,该模型记录了可以在数据库中实现的数据的结构。一个概念数据模型的实现可能需要多个逻辑数据模型。数据建模的最后一步是将逻辑数据模型转换为将数据组织到表中的物理数据模型,并说明访问,性能和存储详细信息。数据建模不仅定义数据元素,还定义其结构及其之间的关系。
数据建模技术和方法用于以标准,一致,可预测的方式对数据进行建模,以将其作为资源进行管理。强烈建议使用数据建模标准标准,用于所有需要标准方法来定义和分析组织内的数据,例如使用数据建模:
- 协助业务分析师,程序员,测试人员,手动作者,IT包装选择器,工程师,经理,相关组织和客户来理解和使用商定的半正式模型,这些模型涵盖了组织的概念以及他们如何相互关系
- 管理数据作为资源
- 集成信息系统
- 设计数据库/数据仓库(又称数据存储库)
可以在各种项目和项目的多个阶段进行数据建模。数据模型是渐进的;没有企业或应用程序的最终数据模型。取而代之的是,数据模型应视为一个活着的文档,该文档将因不断变化的业务而改变。理想情况下应将数据模型存储在存储库中,以便随着时间的推移将它们检索,扩展和编辑。 Whitten等。 (2004)确定了两种类型的数据建模:
- 战略数据建模:这是创建信息系统策略的一部分,该策略定义了信息系统的整体愿景和体系结构。信息技术工程是一种采用这种方法的方法。
- 系统分析期间的数据建模:在系统分析中,逻辑数据模型是新数据库开发的一部分。
数据建模还用作详细介绍特定数据库业务需求的技术。有时称为数据库建模,因为数据模型最终在数据库中实现。
主题
数据模型
数据模型通过提供特定的定义和格式为信息系统中使用的数据提供了一个框架。如果跨系统始终使用数据模型,则可以实现数据的兼容性。如果使用相同的数据结构来存储和访问数据,则不同的应用程序可以无缝共享数据。图中指示的结果。但是,系统和界面通常很昂贵,构建,操作和维护。他们也可能限制业务而不是支持它。当系统和界面中实现的数据模型的质量较差时,可能会发生这种情况。
数据模型中发现的一些常见问题是:
- 特定于在特定位置完成的业务规则通常是在数据模型的结构中固定的。这意味着对业务进行的方式进行的小变化导致计算机系统和界面的巨大变化。因此,需要以灵活的方式实施业务规则,这不会导致复杂的依赖关系,而数据模型应具有足够的灵活性,以便可以在数据模型中以相对快速,有效的方式在数据模型中实施。
- 实体类型通常未识别,或被错误地识别。这可能会导致数据,数据结构和功能的复制,以及在开发和维护中重复的随之而来的成本。因此,应将数据定义作为明确且易于理解的,以最大程度地减少误解和重复。
- 不同系统的数据模型是任意不同的。结果是共享数据的系统之间需要复杂的接口。这些接口可以占当前系统成本的25%至70%。在设计数据模型时,应固有地考虑所需的接口,因为如果没有不同系统中的接口,就无法使用数据模型。
- 数据不能与客户和供应商进行电子方式共享,因为数据的结构和含义尚未标准化。为了从实现的数据模型中获得最佳价值,定义标准非常重要,以确保数据模型既可以满足业务需求又一致。
概念,逻辑和物理模式
1975年, ANSI描述了三种数据模型实例:
- 概念模式:描述域的语义(模型范围)。例如,它可能是组织或行业的兴趣领域的模型。这由实体类组成,代表了域中重要的事物,以及关于实体阶级之间关联的关系主张。概念模式指定可以使用模型表达的事实或命题的种类。从这个意义上讲,它用模型范围限制的范围以人工“语言”定义了允许的表达式。简而言之,概念模式是组织数据要求的第一步。
- 逻辑模式:描述某些信息领域的结构。这包括(例如)表,列,面向对象的类和XML标签的描述。逻辑模式和概念架构有时将其实现为相同。
- 物理模式:描述用于存储数据的物理手段。这与分区,CPU,表空间等有关。
根据ANSI的说法,这种方法允许这三种观点相对独立。存储技术可以改变而不会影响逻辑或概念模式。表/列结构可以改变,而不会(一定)影响概念模式。当然,在每种情况下,结构必须在同一数据模型的所有模式中保持一致。
数据建模过程
在业务流程集成的背景下(请参阅图),数据建模补充了业务流程建模,并最终导致数据库生成。
设计数据库的过程涉及生成先前描述的三种模式 - 概念,逻辑和物理。这些模式中记录的数据库设计通过数据定义语言进行了转换,然后可以将其用于生成数据库。完全归因的数据模型包含其中每个实体的详细属性(描述)。 “数据库设计”一词可以描述整个数据库系统设计的许多不同部分。主要,而且最正确的是,可以将其视为用于存储数据的基本数据结构的逻辑设计。在关系模型中,这些是表和观点。在对像数据库中,实体和关系直接映射到对像类和命名关系。但是,“数据库设计”一词也可用于应用于设计的整体过程,不仅是基本数据结构,还可以应用于数据库管理系统或DBMS中整体数据库应用程序的一部分。
在此过程中,系统接口占当前系统开发和支持成本的25%至70%。造成此费用的主要原因是这些系统不共享通用数据模型。如果数据模型是按系统开发的,那么不仅在重叠区域中重复进行相同的分析,而且还必须进行进一步的分析以创建它们之间的接口。组织中的大多数系统都包含相同的基本数据,用于特定目的。因此,有效设计的基本数据模型可以最大程度地减少返工,以最小的修改为了组织内的不同系统
建模方法
数据模型代表感兴趣的信息领域。虽然有很多方法可以创建数据模型,但根据Len Silverston(1997)的说法,只有两种建模方法脱颖而出,自上而下和自下而上:
- 自下而上的模型或视图集成模型通常是重新设计工作的结果。它们通常从现有数据结构表格,应用程序屏幕上的字段或报告开始。从企业的角度来看,这些模型通常是物理,特定于应用程序的,并且是不完整的。它们可能不会促进数据共享,尤其是如果它们是在没有提及组织其他部分的情况下建造的。
- 另一方面,自上而下的逻辑数据模型是通过从了解主题领域的人那里获取信息来抽象的。系统可能不会在逻辑模型中实现所有实体,但是该模型用作参考点或模板。
有时,模型是在两种方法的混合中创建的:通过考虑应用程序的数据需求和结构,并始终参考主题区域模型。在许多环境中,逻辑数据模型与物理数据模型之间的区别被模糊了。此外,某些情况工具不能区分逻辑和物理数据模型。
实体与关联图
数据建模有几种符号。实际模型通常称为“实体与关系模型”,因为它用数据中描述的实体和关系描绘了数据。实体与关系模型(ERM)是结构化数据的抽象概念表示。实体与关联建模是一种关系模式数据库建模方法,用于软件工程中,用于生成系统的概念数据模型(或语义数据模型),通常是关系数据库及其以自上而下的方式生成的要求。
这些模型在需求分析期间的信息系统设计的第一阶段使用,以描述信息需求或要存储在数据库中的信息类型。数据建模技术可用于描述某个话语宇宙的任何本体(即使用术语及其关系的概述和分类),即感兴趣的领域。
为数据模型设计开发了几种技术。尽管这些方法指导数据建模师在他们的工作中,但使用相同方法的两个不同的人通常会产生截然不同的结果。最值得注意的是:
通用数据建模
通用数据模型是常规数据模型的概括。他们定义了标准化的常规关系类型,以及这种关系类型可能相关的事物。通用数据模型的定义类似于自然语言的定义。例如,通用数据模型可以定义关系类型,例如“分类关系”,是个人事物与某种事物(类)和“部分全部关系”之间的二进制关系,是二进制关系之间的二进制关系两件事,一件事,一件事的作用,另一件事具有整体的作用,无论相关的事物如何。
给定一个可扩展的类列表,这允许对任何个人事物进行分类,并为任何单个对象指定零件关系。通过标准化可扩展的关系类型列表,通用数据模型可以表达无限数量的多种事实,并将接近自然语言的能力。另一方面,传统的数据模型具有固定且有限的域范围,因为这种模型的实例化(用法)仅允许在模型中预定的类型的事实表达。
语义数据建模
DBM的逻辑数据结构,无论是层次,网络还是关系,都无法完全满足对数据的概念定义的要求,因为它的范围有限并偏向DBMS采用的实施策略。除非是故意在数据库中实现语义数据模型,否则这种选择可能会略微影响性能,但通常会极大地提高生产率。
因此,从概念视图定义数据的需求导致了语义数据建模技术的发展。也就是说,在其与其他数据的相互关系的上下文中定义数据含义的技术。如图所示,在现实世界中,在资源,思想,事件等方面,在物理数据存储中像征性地定义了。语义数据模型是一个抽象,它定义了存储的符号与现实世界的关系。因此,模型必须是现实世界的真实代表。
语义数据建模的目的是创建一个现实世界中的结构模型,称为“话语宇宙”。为此,考虑了四个基本的结构关系:
- 分类/实例化:具有一定结构相似性的对像被描述为类的实例
- 聚合/分解:将组成的对象加入其零件
- 概括/专业化:具有某些常见属性的不同类别被重新考虑在更通用的类中,具有共同属性
语义数据模型可用于实现许多目的,例如:
- 数据资源计划
- 构建可共享数据库
- 评估供应商软件
- 现有数据库的集成
语义数据模型的总体目标是通过将关系概念与人工智能领域已知的更强大的抽象概念相结合来捕获更多数据的含义。这个想法是为了促进现实世界情况的代表性,提供高级建模原始图作为数据模型的组成部分。