图书:数据建模经典教程
关键点
√ 路径搜寻囊括所有被人类或动物使用的技术及工具,以实现从一个地点抵达到另外一个地点。
√ 数据模型是一组由符号、文本组成的集合,用以准确表达信息景观,达到有效交流、沟通的目的。
√ 数据模型具有多种表现形式,而最常见并得到广泛理解的形式为电子表格。
√ 数据模型形式是本书的主题之一,它与电子表格非常相似,但数据模型基于类型,包含相互作用和可扩展性。
√ 数据建模是建立数据模型的过程,需要很多与技术无关的技能,如专心聆听,尽可能提出大量问题,甚至耐心。
关键点
√ 数据建模的两大核心价值是交流性及精确性。
√ 无论是建模中,还是建模完成后,都需要进行交流、沟通。
√ 如果存在弱定义、伪数据、模糊或缺失标签等3种情况,数据模型的精确性将会降低。
√ 交流性和精确性使得数据模型成为一种构建应用程序的出色工具。
√ 数据模型还可以被应用于理解已有应用程序、了解业务、执行影响分析和培训团队成员。
关键点
√ 照相机上有4种设置,变焦、对焦、定时器、滤镜,它们都可以被直接转换到数据模型上。变焦可以转换为数据模型的范围。对焦可以转换为数据模型的抽象。定时器转换为时间设置,用来决定数据模型获取当前的视图,还是未来的视图。过滤器转换为功能设置,用来决定数据模型获取的是业务视角,还是应用程序视角。
√ 用适当的模型设置匹配建立模型的目标,可以提升数据模型以及它所支撑的应用项目的质量。
√ 不要忘记关于图像格式的可选项!人们更喜欢去看一份校样(概念数据模型)、底片(逻辑数据模型),还是图片(物理数据模型)?
实体类型
关键点
√ 一个实体表示的是对于业务非常重要或值得获取的事物及与之相关的信息集合。实体应该符合六大种类之一:谁、什么、何时、何地、为何及如何。
√ 实体由名词或名词词组定义。
√ 实体实例是一个具体实体的呈现或者说是实体的值。
√ 实体可以存在于概念、逻辑、物理等3种细节水平上。
√ 实体可分为强实体和弱实体。
强实体可以独立存在,用来表示相对独立的人、事或地点。例如,为了检索某位特定顾客的信息,可以在数据库中使用顾客号进行查找。“这是Bob,顾客号为123”。巧克力风味的冰淇淋可以用C进行检索,冰淇淋大小为两匙的信息可以用数字2进行检索。
弱实体至少依赖于一个其他的实体,这意味着如果不引用其他实体的实例,就无法检索弱实体的实例,例如,冰淇淋订单可以由冰淇淋口味或冰淇淋大小,再结合冰淇淋订单中的某些内容(如序号)进行检索。
属性
域基本概念
以下为3种基本的域类型。
① 格式域将数据指定为数据库中的标准类型,如整型(Integer)、字符型(Character(30))、日期(Date)等都是格式域。
② 列表域类似于一个下拉列表,它由一个可选的有限值的集合组成,列表域是格式域的精简,如“订单状态代码”的格式域可以被置为Character(10),在此基础上该域可以由一个(Open、Shipped、Closed、Returned)列表域进一步精简。
③ 范围域的设置要求取值介于最小值与最大值之间,例如,“订单交付日期”必须为从今天到未来3个月中的某天。与列表域类似,范围域也是格式域的精简。
基于以下几个原因,域是非常有用的。
① 插入数据前,通过域的检查来提高数据质量。这是域存在的主要原因,通过限定属性的可能取值来降低脏数据进入数据库的可能性。例如,每一个表示金额的属性被设置为“数量域”,该域要求数字的长度上限为15且包括小数点后的两位,显然这是表示货币数额很好的一种方法,“销售总额”若被设置为“数量域”,则不允许如R2D2这样的值被添加。
② 数据模型的交流性更强。当我们在数据模型上设置了域,就意味着数据模型的一个属性必须具备一个特定域的特征,这样数据模型就变成更容易被理解的交流工具。例如,我们可以让“销售总额”“净销售额”“标价销售额”3个属性都可以共享一个“数量域”,进而共享域的特征,它们的取值都被限定为“货币”。
③ 使得新建模型、维护现有模型变得更有效率。当一位模型构建师开始一项新工程时,可以使用一组标准域来节省时间,而无需重新创建。例如,所有与数量有关的属性,都可以同时与数量域关联,这样可以极大节省分析、设计时间。
关键点
√ 对业务而言,属性是非常重要性的特征,其值用以识别、描述、评估实体实例。
√ 域中往往包含一组验证标准,使得域可以被多个属性应用。
√ 域的不同类型包括:格式域、列表域、范围域
关系
存在两种类型的数据规则,结构完整型(structural integrity,SI)和参照完整型(referential integrity,RI)。结构规则(又被称为基数规则)定义了参与某个关系的实体实例的数量,例如:
每种产品可以出现在一个或多个订单行上。
每个订单行上有且仅有一则产品。
每位学生必须有唯一的学号。
RI规则专注于确保取值的有效性。
订单行不能脱离有效的产品而存在。
索赔不能脱离对应的政策而存在。
学生不能脱离有效的学号而存在。
关键点
√ 数据模型中的规则即为关系,关系被表示成一条连接两个实体的线段,用来说明实体间的规则或导航路径。
√ 数据规则指示数据间如何关联,行为规则指示当属性包含有某特定值时,需要采取什么操作。
√ 基数是由关系两端的符号所表示的,它定义了每个实体可以参与一个关系的次数。有3种简单的选项:0、1和多。
√ 标签是出现在关系线上的动词。标签应该在可能的情况下尽量详细,来确保数据模型的准确度。
√ 递归关系是存在于来自同一实体的实例间的规则。
√ 子类型可以将一些类似的属性或将一些相似且有关联的实体的关系进行分组。
8.4 创建一个概念数据模型
关键点
√ 概念是对于你的用户而言,既基础又至关重要的关键观念。
√ 概念数据模型由一组符合和文本构成,用来为特定的用户,针对特定的业务需求或应用程序范围,描述关键概念以及概念间的相互规则。
√ 关系概念模型包括概念、概念定义以及表示业务规则的概念间的相互关系。维度概念模型包括概念、概念定义以及在不同层级分析量度时所用的导航路径。
√ 建立概念数据模型的5个基本步骤
使用5个步骤进行概念数据建模
步骤1:询问5个策略性的问题
1.应用程序将要做什么?
2.“正如”还是“将要”?
3.统计分析是必须的吗?
4.谁是用户?
5.灵活性还是简洁性?
步骤2:概念的识别与定义
步骤3:创建关系
对于维度模型
对于维度模型,我们需要对上一步汇总的问题进行处理并创建一个粒度矩阵(Grain Matrix)。粒度矩阵是一张二维表,列由根据业务问题而形成的量度构成,行由根据业务问题而形成的维度级别构成。
步骤4:明确最有效的形式
轴技术是把要测度的业务过程置于中心(如学生属性),然后每个轴表示一个维度,轴上的每一个刻痕表示不同细节水平的、可能被检索的各个度量计中的测度。
步骤5:检查并确认
创建维度逻辑数据模型
图9.8所示为本章之前我们所学习到的维度数据模型。
Account Balance **( **账户余额 **) **是一个量度计的示例,是一个包含相关测度的实体,它有别于关系数据模型中的人、地点、事件或事物。在本示例中,量度计包含的一组测度只有一个账户余额数(Account Balance Amount)。通常,一组测度作为一个整体,来测度所关注的是业务过程,如利润率、员工满意度或销售。
图9.8 账户维度逻辑数据模型
量度计可以被进一步划分为以下4种类型之一。
聚集:又称为概括。聚集量度计中存储信息的粒度层次要高于事务粒度层次。对焦提供了用户友好、快速数据访问的结构和报表工具。此例中的Account Balance即为一个聚集。
原子:其中包含了业务中可用的最低层的细节数据,其细节水平层次与操作型系统中存在的细节水平一致,诸如订单输入系统。在银行账号管理中,一个原子事实的例子为个人银行账户的取款和存款交易。
累积:又称之为累加。累积关注的是完成一次业务流程需要多长时间。例如,从开始申请一直到完成房屋抵押贷款所经历的时间将被记录在一张累积事实表中。
快照:记录了实体生命周期中与特定步骤相关的时间信息。例如,销售的快照信息可能包含订单何时被创建、确认、运输、交付以及支付。
区域、账户和月份都是维度示例,用3条水平线组成的图标加以标识。每个维度都是用来增加量度指标的主题,所有过滤、排序和求和等不同的应用需求都使用同样的维度。维度拥有自身的属性。一个维度又可以进一步划分为以下6种维度类型。
固定维度:又称之为0型渐变维度(Slowly Changing Dimension,SCD),固定维度中包含的值不随时间改变。例如,性别是一种固定维度,其值为“男”和“女”。
退化维度:维度的属性都被移至事实表中。最典型的退化维度是原始维度中仅包含单一的数据属性,比如类似订单号这样的事务标识。
多值维度:多值维度可以用来解决属性或字段存在多值的情况。例如,健康护理单中所包含的“诊断”栏目就可能存在多值的情况。但需要注意的是最好的模型应该是其中的每个属性只有单一的值。对于健康护理单的建模,我们可以创建一个多值结构来存储诊断信息,且为每种诊断赋以权重,并确保所有的权重和为“1”。
不齐整维度:在一个不齐整的维度(表)中,至少有一个成员的父成员在该维度(表)的直接上级维度(表)中缺失。不齐整维度允许层级的深度是不确定的,例如,由国家、州、市组成的3级维度中,某些城市如华盛顿地区便没有与之对应的州。
收缩维度:收缩维度依附于测度计,并且通常只包含少量非量度性属性。收缩维度经常应用于处理大块文本数据,文本与测度计通常具有相同的细节水平,而且为了节省空间和提高检索效率,大块文本数据会被存储在独立于数据库的结构中。
渐变类型 **0 **~ **6 **:渐变维度(SCD)类型0和固定维度的概念一致,其值不随时间变化。SCD类型1意味着仅仅存储当前维度成员的值,而忽略数值的历史变化。SCD类型2意味着需要存储所有的历史数据(类型2是种时间机器)。SCD类型3意味着仅仅需要记录一部分历史信息,如当前状态和最近状态或当前状态和原始状态。SCD类型6则表示存在复杂维度,该维度的历史可能存在多种变化。比如,维度的组成部分1符合SCD1,组成部分2符合SCD2,组成部分3符合SCD3,即1+2+3=6。类型0、1、2、3是构成复杂、先进历史信息(如类型6)所需的组件。
关键点
√ 逻辑数据模型用来描述详细的业务解决方案。
√ 关系逻辑数据模型描述的是业务运转过程,而维度逻辑数据模型则描述的是如何对业务实施监测。
√ 规范化就是一个用正规的方法提出业务疑问的过程,以确保每个属性都是单值的,并且提供一个完全的、唯一的依赖于主键的事实。
√ 抽象通过重定义和将一些实体、属性、关系在模型范围内结合成更通用的条目,为数据模型注入灵活性。
√ 维度数据模型涉及一些特有的、重要的概念,如量度计、维度等。
√ 量度计可以被进一步划分为聚集、原子、累积和快照4种类型。
√ 维度又可以进一步划分为固定维度、退化维度、多值维度、不齐整维度、收缩维度和渐变维度6种类型。
Rolldown和Rollup。Rolldown指主从表合并至从表,Rollup指主从表合并至主表。
Rolldown:移除父类型实体,并将父类型实体中的所有属性和关系都拷贝至相应的子类型实体中。
Rollup:移除子类型实体,并将子类型实体中的所有属性和关系都拷贝至相应的父类型实体中,并增加类型码,以区分各子类型。
Identity:将子类型符号转换为一系列一对一关系,并分别连接父类型和各个子类型。
关键点
√ 物理数据模型指使用由逻辑数据模型定义的业务解决方案,构建下一层次的技术解决方案。
√ Rolldown是指一对关系中的父实体消失,并且将父实体中所有的列和关系都下移至子实体。
√ Rollup是指一列或多列的组合可能在同一个实体内被重复两次或多次。
√ 星型模式的结果为组成维度的一组表被平铺(flattened)到单个表中。
√ 视图是一种虚拟表,是由SQL查询定义的作用于真正存储数据的表(或其他视图)之上的“视窗”或窗口视图。
√ 索引是一个值,是指向表中该值实例的指针。
√ 分区指一个表被划分为两个或多个表。垂直分区指表中的列被划分,而水平分区为表中的行被划分。
In-The-Know模板
用来获取对数据需求有所贡献和验证功能的人员及文档。其中记录了相关人员的姓名、角色和联系信息,同时罗列了一些重要资源的出处,例如,对完成数据模型交付起到至关重要的一些文档(业务、功能需求文档等)的出处。如果不将以上内容记录下来,而只是依靠记忆,一段时间过后很容易将一些重要信息遗失。
表11.1 In-The-Know模板示例
以下说明表11.1中各列的作用。
- **条目: **该列用来列举概念名称,此处列举的概念来自概念数据模型或概念列表(之后会讨论到的一项技术)。表11.1中罗列的是客户和商品。
- **资源: **该列为信息源。在本模板中,该列可以被扩展而存储任何有用的信息,其中包括人员、需求、文档、报告等,但在进行描述时尽量做到具体化。如果一个概念对应多个资源,此时每个资源在表中占单独的一行,如表11.1中的Tom Jones、客户分类列表和当前商品报表。
- **类型: **为每一个资源指定通用分类,由于这里使用的是被广泛使用的通用模板,所以将每一个资源指定最恰当的分类显得十分重要。例如,表11.1中的主题专家顾问、参考文档和报告报表。当In-The-Know模板记录的信息量非常大时,对资源进行分类就显得更为重要。
- **角色/如何使用: **该列用来说明罗列的资源对于项目开发为何是有价值的。为什么要在模板中列举出各种资源?明确化!例如,表11.1中的客户介绍人、数据管理员、验证并创建新的客户分类、查阅当前商品信息。
- **出处/联系: **该列提供如何查找资源的路径。如果资源是文档,则该列中记录了文档在公共硬盘驱动器上的路径,或者记录了在某服务器或网站中的位置。如果资源是人,则该列中记录了此人的电话号码或电子邮箱。例如,表11.1中的212-555-1212,S:/customer/ custclsfn.xls和www.item.com。
In-The-Know模板用来获取对数据需求有所贡献和验证功能的人员及文档。对信息进行标准化格式设置可以实现以下几个目标。
- **提供了方便、完整的参考列表。 **模板不仅易于阅读而且提供了用于查找人、文档等资源所必需的所有类型的信息。即便整个项目在交付使用多年之后,该列表对于可能出现的功能性或技术性问题的解决,依然具有现实意义。
- **可用资源列表便于发现缺失或冗余。 **模板的使用突显了任何缺失信息。例如,很容易发现模板中是否缺失关于商品的报表,一旦缺失一些关键的参考文档,都会引起模型构造师及管理层的注意。
- **充当一份标志文件。 **例如,某人被当作与某特定概念相关的资源记录在模板中,那么管理层将十分留意此人的工作状况并有可能对此人的工作时间进行必要的调整。这样便极大降低了当有用户咨询某问题如何解决时,却发现此人正在进行其他工作的可能性。
关键点
√ In-The-Know模板用来获取对数据需求有所贡献和验证功能的人员及文档。
√ 概念列表罗列了对于业务非常重要的关键概念,而无需使用数据建模符号。
√ 家族树是一种用来在应用系统范围内,为每个概念或属性获取信息源或其他关键元数据的电子表格。
结构化数据与非结构化数据
关键点
√ 结构化数据和非结构化数据是数据的两种基本形式。数据模型是结构化数据的抽象。非结构化数据与结构化数据的本质区别在于:结构化数据可以被改变,而非结构化数据则不可以。
√ 分类技术的使用可以实现非结构化数据的抽象。分类技术可以将原始的非结构化数据转变具有类别属性的文本。
√ 分类与非结构化数据的关系类似于数据模型与结构化数据的关系。
√ 分类是对文本进行抽象的基础。对文本进行抽象的价值体现在消除原始文本中的专业词汇,可以使用查询语言进行文本检索,还可以对非结构化数据进行组织。
√ 本体中不仅含有与分类类似的词汇列表,还包含不同词汇间的相互关系。
元数据是一个文本、声音或图像,用来描述“用户”需要什么,或者用来描述“用户”需要观看或体验什么。这里的“用户”可以是人、组织或软件程序。元数据的重要性在于它有助于明确、检索到真正的数据。
名词解释
抽象: 通过重定义和对模型中的一些属性、实体、关系进行合并,得到一些通用的概念,这样为数据模型带来一定的灵活性。例如,可以将“员工” “顾客”抽象为一个更通用的“人”的概念,人可以担任不同的角色,员工、顾客只是其中的两种。
参与者: 是系统外部的直接使用者。参与者包括用户、外部设备、其他软件系统。在UML用例图中,参与者用简笔小人表示。
敏捷: 敏捷意味着“快速”“熟练”。通常以快速、高品质软件交付为目的,进行应用系统敏捷开发。敏捷开发采用多个子项目迭代的方式逐步完成整个项目工程的开发。敏捷开发的支持者认为以项目迭代方式进行开发可以比传统的软件开发方式花费更短的时间来实现高品质软件系统。但反对者则认为敏捷开发关注的是软件开发的时间花销,但往往忽略企业视角下的宏观应用需求。
聚合: 是一种强关联关系,表示一个整合的对象由多个组件构成。聚合最显著的特征有传递性和反对称性。
备用键: 由一个或多个属性构成,具备唯一性、稳定性、强制性和最小化等特点,可以唯一识别实体实例,但并没有被选择充当主键。
关联实体: 用于解决多对多关系的实体。
属性: 有时被称为“数据元素”,是业务处理中的重要特征。属性值可以用以识别、描述、评估实体实例。例如,属性“Claim Number”(索赔号)可以识别每个索赔,属性“Student Last Name”(学生的姓氏)用来描述每个学生的姓。属性“Gross Sales Amount”(销售总额)用来评估交易中获取的财政收入。
桥接表 :用来解决维度与量度计间的多对多关系,即一个给定的量度计实例可能对应多个维度实例。桥接表是逻辑层面上多对多关系的解决办法,但是基于报表工具的不同,物理层面上的解决结构可能会多种多样。
候选键 :一个或多个可以唯一标识实体实例的属性。候选键可以是主键,也可以是备用键。
基数: 表示一个实体的多少实例与另一个实体的实例发生关联,基数由出现在关系域两端的符号表示。
类: 根据一组具有相同属性的事物抽象而成的类型或类别。类是面向对象的分析、设计和开发的基础。类与数据模型中的实体非常接近,即在实体的基础上添加了表示功能的操作。与类联系最紧密的另一条术语是对象。
类字: 类中一个属性的名称,如总额(Amount)、编号(Code)及名称(Name),可以为各个类字指定通用域。
概念: 对于用户而言,既基础又至关重要的关键观念。基础意味着建模工程师和业务人员进行模型讲解或讨论过程中,这一概念会被不断提及。至关重要则意味着如果没有这一概念,业务会被极大地改变,甚至不可能存在。
概念数据模型 :在特定业务或应用系统范围内,表示关键概念及其关系的一组符合和文本的集合。
一致性维度: 整个平台或多个部门共用的维度,而不仅仅只是某个业务单独使用,支持企业一致性查询。一致性维度并不要求每个维度相同,而是要求每个维度拥有共同的超集。一致性维度支持跨多个数据集市的信息导航及查询。
数据模型: 准确表示业务信息的一组符号、文本集合。在数据模型里可以把“客户”这两个字用矩形框起来,表示一些实际、具体的客户,如Bob、IBM、Walmart。线段表示两个概念间的关系,如用线段表示一个“客户”可以拥有一个或多个“账户”。
数据建模工程师: 负责确认、记录数据需求并执行数据建模过程。
数据建模: 是一个了解、掌握数据需求并与具体实现技术无关的过程,是成功实现应用系统的必备过程。
退化维度: 维度的属性都被移至事实表中。最典型的退化维度是原始维度中仅包含单一的数据属性,比如类似订单号这样的事务标识。
反规范化: 是选择性地违反规范化规则并在模型中重新引入冗余的过程。反规范化的主要目的在于额外的冗余有助于降低数据检索时间。同时,反规范化还有助于创建一个用户友好的模型。
依赖实体: 又被称之为弱实体,弱实体依赖于一个或多个其他实体而存在。弱实体的存在可以依赖于独立实体,也可以依赖于其他弱实体。建模中,使用圆角框表示弱实体。
维度: 是用来增加量度指标的主题,所有过滤、排序和求和等不同的应用需求都使用同样的维度。维度通常使用层级结构进行组织。
域: 是某一属性所有可能取值的集合。
实体: 表示的是对于业务非常重要或值得获取的事物及与之相关的信息集合。每个实体都由一个名词或名词词组定义,并符合六大种类之一,即谁、什么、何时、何地、为何及如何。
实体实例: 是一个具体实体的呈现或者说是实体的值,如实体“顾客”可以被一些如Bob、Joe、Jane等具体的姓名实例化,实体“账户”则可能有诸如Bob's checking account、Bob's savings account、Joe's brokerage account等的实例。
可扩展标记语言(XML): 是使用人们可以识读的标签进行数据层次化组织的一种数据模型。人们以及软件应用系统都可以使用XML进行信息交换和共享。XML与数据模型类似,都是非常有用的工具。XML易于理解,具备技术独立性,而且使用简单的语法表示复杂的程序问题。概念数据模型有别于逻辑数据模型和物理数据模型。同样的道理,XML也将数据内容与格式(如蓝色,Arial,15号字体)规则区分开来。
事实: 参阅测度。
非事实型事实: 不包含任何事实的事实表,用来统计、记录维度间关系事件出现的次数。
字段: 表示物理属性,又被称之为列。
外键: 一个与其他实体关联的属性。使用外键可以从数据库管理系统中的一个实体导航至另外一个。
正向工程: 从建立概念数据模型开始,直到数据库实现结束的应用系统设计过程。
粒度: 表示维度数据模型中量度计可用的最低细节程度。
粒度矩阵 :一张描述每一个事实或测度细节水平的二维表格,是构造星型模式维度模型的基础。
层级 :排列对象、命名、值、类别等的方法,表示“在……之上”“在……之下”或“与……在同一水平”。
独立实体: 也称之为核实体,独立实体表示与业务相关的对象,该实体的识别不依赖于模型中的其他实体。建模中,使用矩形框表示独立实体。
索引: 是指向检索对象的指针。索引直接指向数据在磁盘空间中的存储位置,极大提高检索速度。索引最好建立在经常被检索且其值很少被更新的属性上。
倒排入口(IE) :非唯一索引,又被称之为辅助键。
杂项维度: 包含所有可能的小联合体及具有某种关联的标志、指示符的集合。
键—值: NoSQL数据库中允许只使用两列(Key,Value)进行数据存储,可以将一些复杂的数据存储在“值”列。
逻辑数据模型(LDM): 是为了解决特定业务需求而形成的业务解决方案。逻辑模型以业务需求为基础,忽略与软件环境、硬件环境等具体问题有关的模型实现的复杂性。
测度 :维度数据模型量度计中的一个属性,用来回答一个或多个业务问题。
元数据: 是一个文本、声音或图像,用来描述“用户”需要什么,或者用来描述“用户”需要观看或体验什么。这里的“用户”可以是人、组织或软件程序。
量度计 :是一个包含相关测度的实体,一组测度作为一个整体,来测度所关注的业务过程,如利润率、员工满意度或销售。
模型: 是一组文字及各类符号的集合,用来将一个复杂的概念简单化。
自然键: 又被称之为业务键,自然键是在业务系统中标识实体的唯一标识符。
网络: 实体间或实体实例间的多对多关系。
规范化: 是应用一组规则对事物进行整理的过程,确保每个属性都是单值的,并且提供一个完全的、唯一的依赖于主键的事实。
对象: 源于面向对象的程序设计,并伴随类出现,类似于实体实例,即在通用数据属性描述的基础上又结合了对通用行为的描述。对象分为业务对象、接口对象及控制对象。
本体 :组织信息的形式化方法,即将各事物归类到各类别并对各类别进行关联。被引用最多的本体论的定义来自Tom Gruber“概念化的明确规范”。换言之,本体是一种模型,模型则是使用一套标准来对复杂现实世界中事物进行简化。
NoSQL: 一类非关系型数据库。NoSQL并不是一个很好的命名,因为该名称并不能很好地表示其含义,此类数据库不强调数据查询(SQL源自关系型数据库)而更关注数据存储。
分区: 指对一种结构的划分或割裂。特别在数据库物理设计过程中,分区指将一个表划分为两个或多个表。垂直分区指表中的列被划分,而水平分区为表中的行被划分。水平分区及垂直分区常常被结合在一起使用,即当行被划分时,只有某些特定的列包含在该行集合中。
物理数据模型: 表示详细的技术解决方案。物理数据模型是针对特定的硬件、软件环境对逻辑数据模型进行必要调整的产物。物理数据模型设计时,常常需要做一定的折中处理,兼顾速度、空间、安全等因素。
主键: 可以唯一标识实体实例的一个或多个属性的组合,并被选定为唯一标识符。
应用: 是一种大型的、集中组织的计划,其中可能包含多个工程。通常应用具有起始日期,但如果成功,则没有结束日期。应用可能是非常复杂且需要长期模型化的任务。例如,可以包括数据仓库(data warehouse)、操作数据存储(operational data store)及客户关系管理系统(customer relationship management system)。
工程: 指完整的软件系统开发,经常由一组按期交付的成果构成。例如,可以包括销售数据集市(sales data mart)、经纪人交易应用(broker trading application)、预定系统(reservation system)及对现有应用的加强。
递归关系: 同一实体的两个实例相互关联。例如,一个组织可以向另一个组织报告。
关系数据库管理系统: 1970年IBM E. F. Codd 发明的传统关系型数据库第1次商业使用于1979年。
关系模型: 描述业务工作过程,其中还描述有业务规则。例如,一个客户必须至少拥有一个账户,一个产品必须有一个缩写产品名。
关系: 描述了数据模型中的规则。在实体联系图中,关系由连接两个实体间的线段表示。
逆向工程: 从数据库开始了解现存的应用系统,即根据现有数据库逐层向上,直到构建出相应的概念模型。
辅助键 :是经常被访问的,或者需要被快速检索到的一个或多个属性(如果多于一个属性,称之为复合辅助键)。辅助键无需具备唯一、稳定、不可为空等特征。
半结构化数据: 半结构化数据与结构化数据的唯一差别在于:半结构化数据需要查看数据本身来确定结构,而结构化数据只需要检查属性名称。半结构化数据是结构化数据的一个处理步骤。
快照测度: 记录了实体生命周期中与特定步骤相关的时间信息。例如,销售的快照信息可能包含订单何时被创建、确认、运输、交付以及支付。
渐变维度: 用来描述实体数据变化,渐变维度(SCD)类型0和固定维度的概念一致,其值不随时间变化。SCD类型1意味着仅仅存储当前维度成员的值,而忽略数值的历史变化。SCD类型2意味着需要存储所有的历史数据(类型2是种时间机器)。SCD类型3意味着仅仅需要记录一部分历史信息,如当前状态和最近状态或当前状态和原始状态。SCD类型6则表示存在复杂维度,该维度的历史可能存在多种变化。
雪花维度 :一个物理维度建模结构,其中分别实现每一组表,在结构上非常类似于逻辑维度模型。
电子表格: 是纸质工作表格的一种表示形式,表单中包含由行和列构成的网格,网格中的每个单元格可以存放文本或数字,表单中的列通常表示不同类型的信息。
涉众: 一个关注于项目实现成果与否的人或组织。
星型模式: 是常见的一种维度物理数据模型结构。星型模式的结果为组成维度的一组表被平铺(flattened)到单个表中。事实表处于模型的中心,与事实表相关的每一个维度都被置于最低的细节水平。
结构化数据: 根据简单的类字而命名的数据。简单意味着如果数据可以被分解,那么只能通过规范化实现。
例如:
订单日期
客户姓名
销售总值
子类型化: 将多个实体中共同的属性合并为一组,同时保留每个实体的独立属性。
概括: 聚集量度计中存储信息的粒度层次要高于事务粒度层次。
代理键: 替代自然键的实体唯一标识符,通常由一个固定大小的、无人工干预的、系统自动产生的计数器生成,代理键不具备任何业务含义,是IT设计人员根据整合、性能等因素添加的一列属性。
分类: 是一种树形结构。子节点只能有一个父节点,父节点可以有一个或多个子节点。如果一个子节点存在多个父节点,那么该子节点必须为每个父节点重复一次。分类的示例有产品类别、关系数据模型中的超类/子类、维度数据模型中的维度层级。
UML: 面向对象分析和设计的主流建模工具,由Jacobsen、Booch、Rumbaugh整合早期面向对象建模标准形成的。
非结构化数据:根据 复杂文本或对象类字而命名的数据。复杂意味着数据可以彻底分解成不同类型的数据。
用例: 在面向对象的分析中,所定义的工作流流程,以识别对象、数据及其方法。
视图: 是一种虚拟表,是由SQL查询定义作用于真正存储数据的表(或其他视图)之上的“视窗”或窗口视图。
路径搜寻: 囊括所有被人类或动物使用的技术及工具,以实现从一个地点抵达到另外一个。如果一位旅行者用天空中的星斗导航,那么星斗便是他的路径搜寻工具。同理,地图、指南针也都是此类工具。所有的模型也是路径搜寻工具。地图可以帮助旅行者游览一座城市,组织结构图可以帮助员工理解组织间的相互关系,设计蓝图则可以帮助建筑师交流建造计划。