版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据仓库模型建设规范1. 概述数据仓库不同于日常的信息系统开发,除了遵循其他系统开发的需求、分析、设计、测试等通 常的软件生命周期之外,它还涉及到企业信息数据的集成,大容量数据的阶段处理和分层存储,数据 仓库的模式选择等等,因此数据仓库的模型设计异常重要,这也是尖系到数据仓库项目成败的矢键。物理模型就像大厦的基础架构,就是通用的业界标准,无论是一座摩天大厦也好,还是茅草房也 好,在架构师的眼里,他只是一所建筑,地基一层层建筑一封顶,这样的工序一样也不能少,矢系到 住户的安全,房屋的建筑质量也必须得以保证,唯一的区别是建筑的材料,地基是采用钢筋水泥还是 石头,墙壁采用木质还是钢筋水泥或是砖头;当
2、然材料和建筑细节还是会有区别的,视用户给出的成 本而定;还有不可忽视的一点是,数据仓库的数据从几百GB到几十TB不等,即使支撑这些数据的 RDBM无论有多么强大,仍不可避免地要考虑数据库的物理设计。数据仓库建模的设计目标是模型的 稳定性、自适应性和可扩展性。为了做到这一点,必须坚持建模的相对独立性、业界先进性原则。2. 数聚模型架构在数聚项目实施过程,我们一般将数据仓库系统的数据划分为如下图所示几个层21 数据架构图ii存皆层装童L2应用层005(7那E言WI客F产品费用財务尤数弱管瑾捌堪莒湮ET惜 邂22架构工作方法规范数据类型抽取方式转换方式加载方式表类型变化类型加载过程1.有时间戳2 数
3、据量巨大3 交易事务表4 周期数据处理增量变化抽取落地IMP区清洗转换标识增刪改落地DCI区增量变化加载维表新增新增代理键。插入记录修改如果须保留历史,新增代理键。插 入 记录如果无须保留历史,根据代理键修改 记录。刪除若为逻辑刪除,口J等冋修改,或在抽 取时过滤。若为物理刪除,则增量抽取无法判断 被刪除。事实表新增根据流水号删除目标表数据,查找代 理键,然后再加载增量变化数据.修改删除一般来说,事实表数据不物理删除,如果物理删除,增量抽取方式无法判断岀 来。1 无时间戳2 数据量小的表3 代码表4 主数据表5初始数据加载全量抽取落地IMP区清洗转换落地DCI区全量加载维表只适合系统初始化数据
4、加载,不区分 增刪改事实表查找对应代理键,全部加载,适合数据量小的场合,EIL简单快捷。清洗转换获取增量标识增刪改添加时间戳落地DCI区增量变化加载维表新增新增代理键。插入记录修改如果须保留历史,新增代理键。插入记 录 如果无须保留历史,根据代理键修改记录刪除维表不处理被刪除的维度记录。事实表新增根据事务流水号,刪除目标表。查找 代理键,直接插入目标表。修改删除根据事务流水号,刪除目标表.可以处 理物理刪除现象。2.3. 准备层LO2.3.1. 主要数据结构临时表:从数据源抽取,直接落地到临时表。临时表总是保存这次抽取的数据,不保留历史数据。也就是说, 如果是全量抽取的话,就是源系统整个表的数
5、据,如果是增量抽取的话,就是自从上次修改后的数 据。接口表:从临时表,经过清洗、转换到达接口表。接口表保存历史数据,也就是说,如果是全量抽取的话,就 是源系统整个表的数据,如果是增量抽取的话。接口表里面也是源系统整个表的数据。转换表:为了进行清洗和转换建立的中间辅助表。2.3.2. 命名规范临时表:LO_TMP源系统具体业务或LO_TMPW务主题_具体业务(对单一源) 举例:LO_TMP_POS_SALESORDER接口表:L0_DCI_#务主题体业务表举例:LO_DCI_SALES_SALESORDER转换表:L0_MAP具体业务表 举例:LO_MAP_SALES2.3.3. 开发工作开发数
6、据抽取接口,落地TMP区开发数据清洗转换程序,落地DCI区,多源系统进行合并开发数据装载程序,装载到L1层2.4. 原子层L12.4.1. 主要数据结构维度表:整个数据仓库一致的维度代码表:维度属性,非维度代码等。原子事实表:根据业务主题,形成原子事实表汇总事实表:根据分析主题,业务主题形成合并或汇总的事实表2.4.2. 命名规范维度表:DW_DIM 维度。举例:组织维DW_DIM_ORG日期维DW_DIM_DATE.代码表:DW_COCHE_码。举例:性另0 DW_CODE_GENDER原子事实表:L1_DW_FAC分析主题帳体分析汇总事实表:L1 DM UaCT析主题具体分析2.4.3.
7、开发工作维护聚集。衍生计算,二次指标计算。2.5. 应用层L22.5.1. 主要数据结构宽表:根据需求,从L1层抽取成宽表,表现形式为固定报表,仪表盘等等。立方 体:根据分析主题,从L1生成OLAF立方体。视图:根据需要,从L1, L0层产生L2层的视图。前端应用,不仅仅可以利用L2层的数据结构,还可以利用L1层的数据结构。对于源系统,还可以利用L0 层的DCI区数据,可以做详单和明细查询。2.5.2. 命名规范宽表:L2_FACT_【应用主题】_【分析主题】用。举例:L2_FACT_FIN_ZCFZB (财务资产负债表)立方体:根据分析主题,从L1生成OLAF立方体。视图:根据需要,从L1,
8、L0层产生L2层的视图。如明细单举例:L2_VIEWJ原L1层表。2.5.3. 开发工作数据从L1层经过计算,汇总,根据前端分析需求,形成可以有效支撑前端应用查询的结构。3. 建模方法要成功地建立一个数据仓库,必须有一个合理的数据模型。数据仓库建模在业务需求分析之后开始,是 数据仓库构造的正式开始。在创建数据仓库的数据模型时应考虑:满足不同层次、用户的需求;兼顾查询效率与 数据粒度的需求;支持用户需求变化;避免业务运营系统性能影响;提供可扩展性。数据模型的可扩展性决定了 数据仓库对新的需求的适应能力,建模既要考虑眼前的信息需求,也要考虑未来的需求。目前两类主流的数据仓库模型分别是由Inmon提
9、出的企业级数据仓库模型和由Kimball提出的多维模型。Inmon提出的企业级数据仓库模型采用第三范式(3NF),先建立企业级数据仓库,再在其上开发具体的应用。企业级数据仓库固然是我们所追求的目标,但在缺乏足够 的技术力量和数据仓库建设经验的情况下,按照这种模型设计的系统建设过程长,周期长,难度大,风险大, 容易失败。这种模型的优点是信息全面、系统灵活。由于采用了第三范式,数据存储冗余度低、数据组织结构 性好、反映的业务主题能力强以及具有较好的业务扩展性等,但同时会存在大量的数据表,表之间的联系比 较多,也比较复杂,跨表操作多,查询效率较低,对数据仓库系统的硬件性能要求高等问题。另一方面,数据
10、 模式复杂,不容易理解,对于一般计算机用户来说,增加了理解 数据表的困难。Kimball提出的多维模型降低了范式化,以分析主题为基本框架来组织数据。以维模型开发分析主题,这 样能够快速实施,迅速获得投资回报,在取得实际效果的基础上,再逐渐增加应用主题,循序渐进,积累经 验,逐步建成企业级数据仓库。这也可以说是采用总线型结构先建立数据集市,使所有的数据集市具有统一的 维定义和一致的业务事实,这种方法融合了自下而上和自上而下两种设计方法的思想。这种模型的优点是查 询速度快,做报表也快;缺点是由于存在大量的预处理,其建模过程相对来说就比较慢。当业务问题发生变 化,原来的维不能满足要求时,需要增加新的
11、维。由于事实表的主码由所有维表的主码组成,所以这种维的变 动将是非常复杂、非常耗时的。而且信息不够全面、系统欠灵活、数据冗余多。本规范我们主要针对维度建模的方法来阐述规范。3.1. 维度建模多维数据建模以直观的方式组织数据,并支持高性能的数据访问。每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表和一组维表组成的。多维模型最常见的是星形模式。在星形 模式中,事实表居中,多个维表呈辐射状分布于其四周,并与事实表连接。位于星形中心的实体是指标实体,是用户最矢心的基本实体和查询活动的中心,为数据仓库的查询活动提 供定量数据。每个指标实体代表一系列相尖事实,完成一项指定的功能
12、。位于星形图星角上的实体是维度实 体,其作用是限制用户的查询结果,将数据过滤使得从指标实体查询返回较少的行,从而缩小访问范围。每个 维表有自己的属性,维表和事实表通过矢键字相尖联。使用星形模式主要有两方面的原因:提高查询的效率。采用星形模式设计的数据仓库的优点是由于数据的 组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大 的表联接起来,查询访问效率较高。同时由于维表一般都很小,甚至可以放在高速缓存中,与事实表作连接时其 速度较快;便于用户理解。对于非计算机专业的用户而言,星形模式比较直观,通过分析星形模式,很容易组 合出各种查询。3.2. 建模步
13、骤第一步:选取建模的业务过程设计过程的第一步是确定要建模的业务过程或者度量事件。业务过程是在业务需求收集过程明确下来。在很多的生产活动中,存在着很多价值链,这些价值链就是有一系列的业务过程来组成的。比如在供应 链管理中。存在着下面的业务过程:原材料购买原材料交货原材料库存材料账单生产制造将产品运到仓库制成品库存客户订单为客户送货 货品计价付款 退货第二步:定义模型的粒度业务过程被确定下来后,就建模师就必须声明事实表的粒度。清楚地定义事实表的行到底代表什么在提出业务过程维度模型的过程至矢重要。如果没有在事实表的粒度上达成一致,那么设计过程就不可能成功地向前推进。第三步:选定维度一旦事实表的粒度已
14、经稳固地确定下来,对维的选择就相当简单了。也正是在此时,就可以开始考虑外键的问题了。一般来说,粒度本身就能够确定一个基本或者最小的维度集合,设计过程就是在此基础上添加其他维。这些维在已经声明的事实表粒度 都有一个唯一对应的值。第四步:确定事实四步设计过程的最后一步是仔细选择适用于业务过程的事实和指标。事实可以从度量事件中采用物理手段捕捉,或者也可以从这些度量中导出。对于事实表粒度来说,每 个事实都是必须设计存在的,不要将那些明确声明的粒度不相匹配的其他时间段的事实或者其他细节层次的事实混杂进来。4. 维度表设计维度表包含内容:1) 代理键:整型,不可重复,唯一标识每一条记录,不包含任何商业信息
15、。(必选)2) 代理键有效开始时间和结束时间。(必选)3)当前有效标志。(必选)4)主键:传统意义的业务键,包含相应的商业信息,如员工编号。(必选)5)名称:数据分析时显示的内容,如员工名称等;(必选)6)排序键:自定义序列。(可选)7)自定义汇总:利用自定义表达式进行特定的数据运算。可选)8)父键:父子维度中用来标识主键的上级。(可选)9)一元运算符:在父子维度中用来定义上下级的汇总矢系。(可选)(详细)10)属性:属性包含有矢维度的信息。例如,Customer维度可以包含Name、PhoneNumbe、Gender、City、State等属性。属性通过属性层次结构显示出来。维度中的属性层次
16、结构同时包含可选的(All)级别和该属性的非重复成员。例如,Customer维度可以包含具有两个级别的Name属性层次结构:(All)级别以及为每个姓名包含一个成员的级别。父子层次结构的处理方式有所不同。属性不一定要具有属性层次结构。如果未创建属性层次结构,多维数据集的空间将与属性无矢。例女口,通常不会为Phone Number 属性创建属性层次结构,因为通常不会按电话号码导航维度。如果没有为属性创建属性层次结构,则该属性可用作成员 属性,但不能用作用户层次结构中的级别。属性可以通过前端展示软件进行展现。(可选)11)属性层次结构:属性层次结构完全定义多维数据集的空间。多维数据集是由多维数据集
17、的属性层次结构的交集产生的多维空间。(可选)4.1. 时间维度时间维度是必不可少的一个维度,可以参考如下的模板:NameCodeData TypeLen gth日期代理键DATE PKINTEGER日期描述DATE_DESCVARCHAR2(8)8日期长描述DATE_LDESCVARCHAR2(20)20日期中文描述DATE_CNDESCVARCHAR2(20)20天DAYNUMBER天中文DAYCNVARCHAR2(10)10月MONTHNUMBER月中文MONTH DESCVARCHAR2(10)10年YEARNUMBER年中文YEAR DESCVARCHAR2(10)10年月YEARM_
18、ONTHVARCHAR2(6)6周月WEEKMONTHNUMBER周月中文描述WEEK MONTH CNDEVCRCHAR2(20)20年中第几周WEEK YEARNUMBER年中第几周描述WEEK YEAR CNVARCHAR2(20)20周几WEEKNONUMBER周几中文描述WEEK CNVARCHAR2(10)10旬XUNNUMBER旬中文XUNCNVARCHAR2(10)10季度QUARTERNUMBER季度中文QUAR CNVARCHAR2(10)10是否周末IF WEEKENDVARCHAR2(10)10是否月末IF MONTHENDVARCHAR2(10)10节假日名称HOLI
19、DAYVARCHAR2(10)10上月同一天LASTMONTH DAYVARCHAR2(8)8去年同一天LAST YEAR DAYVARCHAR2(8)842层级维度层级维度也是我们模型设计最常遇见的维度,比如组织结构,区域,产品树,行业结构等等。在设计时,可以采用如下模 板:针对数据存储时,采用自尖联的结构:NameCodeData TypeLen gth组织代码ORG CODE:VARCHAR2(20)20上级组织代码PORG COD)E/ARCHAR2(20)20组织名称ORG NAME:VARCHAR2(100)100上级组织名称PORG NAM1E/ARCHAR2(100)100组织
20、类型ORG TYPEVARCHAR2(20)20组织层级ORG LEVEL VARCHAR2(20)20组织描述ORG DESCVARCHAR2(200)200组织简称ORG SNAM1E/ARCHAR2(20)20组织地址ORG ADDFt VARCHAR2(100)100针对数据展现时,将自矢联的结构展开,以列存储层次:根据需要可以把组织层级具体化。NameCodeData TypeLen gth组织代理键ORG_KEYINTEGER组织代码ORG_CODEVARCHAR2(30)30组织名称ORG_NAMEVARCHAR2(50)50组织描述ORG_DESCVARCHAR2(100)10
21、0组织简称ORG_SNAMEVARCHAR2(50)50组织层级ORG_LEVELVARCHAR2(30)30组织类型ORG_T YPEVARCHAR2(20)20上级组织代码ORG_PCODEVARCHAR2(30)30上级组织名称ORG_PNAMEVARCHAR2(50)50组织1级代码ORG 1 CODEVARCHAR2(50)50组织1级名称ORG 1 NAMEVARCHAR2(50)50组织2级代码ORG_2_CODEVARCHAR2(50)50组织2级名称ORG_2_NAMEVARCHAR2(50)50组织3级代码ORG 3 CODEVARCHAR2(50)50组织3级名称ORG
22、3 NAMEVARCHAR2(50)50组织4级代码ORG 4 CODEVARCHAR2(50)50组织4级名称ORG 4 NAMEVARCHAR2(50)50组织5级代码ORG 5 CODEVARCHAR2(50)50组织5级名称ORG 5 NAMEVARCHAR2(50)50组织6级代码ORG 6 CODEVARCHAR2(50)50组织6级名称ORG 6 NAMEVARCHAR2(50)50组织7级代码ORG 7 CODEVARCHAR2(50)50组织7级名称ORG 7 NAMEVARCHAR2(50)50组织8级代码ORG 8 CODEVARCHAR2(50)50组织8级名称ORG
23、8 NAMEVARCHAR2(50)50代理键开始时间KEY STARTDATEi VARCHAR2(30)30代理键结束时间KEY ENDDATEVARCHAR2(30)30有效标志CURRENT FLAGINTEGER修改时间KEY MODIFYDATEARCHAR2(30)3043缓慢变化维缓慢变化维定义数据会发生缓慢变化的维度就叫”缓慢变化维”。举个例子就清楚了:在一个零售业数据仓库中,事实表保存着各销售人员的销售记录,某天一个销售人员从北京分公司调到上海分公司了,那 么如何来保存这个变化呢?也就是说销售人员维度要怎么恰当的处理这一变化。先来回答一个问题,为什么要处理,或保存 这一变化
24、?如果我们要统计北京地区或上海地区的总销售情况的时候,这个销售人员的销售记录应该算在北京还是算在上海?当然是调离前的算在北京,调离后的算在上海,但是如标记这个销售人员所属区域?这里就需要处理一下这个维度的数据,即我们缓慢变化维需要做的处理缓慢变化维一般按不同情况有以下几种解决方案:4.3.1. 新数据覆盖旧数据此方法必须有前提条件,即你不矢心这个数剧的变化。例如,某个销售人员的英文名改了,如果你不矢心员工的英文 名有什么变化则可直接覆盖(修改)数据仓库中的数据。4.3.2. 保存多条记录,并添加字段加以区分这种情况下直接新添一条记录,同时保留原有记录,并用单独的专用的字段保存区别。如:(以下表
25、格中Supplier_State表示上面例子中所属区域,为描述清晰,不用代理键表示)Supplier keySupplier CodeSupplier NameSupplier StateDisa001ABCPhlogistical Supply Compa nyCAY002ABCPhlogistical Supply Compa nyILN或:Supplier keySupplier CodeSupplier NameSupplier StateVersio n001ABCPhlogistical Supply Compa nyCA0002ABCPhlogistical Supply Com
26、pa nyIL1以上两种是添加数据版本信息或是否可用来标识新旧数据。 下面一种则是添加记录的生效日期和失效日期来标识新旧数据:Supplier kSupplier CoSupplier NaSupplier StaStart DatEn d Dateeydemetee001ABCPhlogistica I Supply Compa nyCA01-Jan-200021-Dec-2004002ABCPhlogistica I Supply Compa nyIL22-Dec-2004空的End_Date表示当前版本数据,或者你也可一用一个默认的大时间(如:12/31/9999)来代替空值,这样数据还
27、能被索引识别到4.3.3. 不同字段保存不同值Supplier, keySupplier_NameOrigi nal_Supplier_StateEffective_D ateCurre nt_Supplier_State001Phlogistic al Supply Compa nyCA22-Dec-2004IL这种方法用不同的字段保存变化痕迹但是这种方法不能象第二种方法一样保存所有变化记录,它只能保存两次变化记录 适用于变化不超过两次的维度。4.34另外建表保存历史记录即另外建一个历史表来表存变化的历史记录,而维度只保存当前数据Supplier:Supplier keySupplier N
28、ameSupplier State001Phlogistical Supply Compa nyILSupplier History:Supplier keySupplier NameSupplier StateCreate Date001Phlogistical Supply Compa nyCA22-Dec-2004这种方法仅仅记录一下变化历史痕迹,其实做起统计运算来还是不方便的更能应对错综复杂4.3.5. 混合模式Row_ KeySupplier_keySupplier_CodeSupplier_NameSupplier_StateStart_D ateEn d_Dat eCurre n
29、 tIn dica tor1001ABC001Phlogist icalSupplyCompa nyCA22-Dec 200415-Ja n2007N2001ABC001Phlogist icalSupplyCompa nyIL15-Ja n20071-Ja n-2099Y这种模式是以上几种模式的混合体,相对而言此种方法更全面,且 易 变 化 的 用 户 需 求 , 也 是 较 为 常 用 的此中方法有以下几条优点:1能用简单的过滤条件选出维度当前的值。2. 能较容易的尖联出历史任意一时刻事实数据的值。3. 如果事实表中有一些时间字段(如:Order Date, Shippi ng Date,
30、 Con firmationDate),那么我们很容易选择哪一条维度数据进行尖联分析。其中Row_Key和Current Indicator 字段是可有可无的,加上去更方便,毕竟维度表的数据都不大,多点冗余字段不占太大空间但能提高查询效率。这种设计模式下事实表应以Supplier_key为外键,虽然这个字段不能唯一标识一条维度数据从而形成了事实表与维表多对多的尖系因此在做事实和维度做尖联时应加上时间戳字段(或Indicator字4.3.6. 非常规混合模式上面说到第五种实现方式有点弊端,那就是事实表和维表不是多对一矢系,而是多对多尖系,这种矢系不能在建 模时解决只能在报表层面,在报表运行时解决
31、,且在BI语意层建模时需要添加时间过滤条件,比较繁琐。下面这种解决方案可以解决此多对多尖系,但是得修改一下事实表:Supplier Dime nsion:Versio n_Nu mberSupplier keySupplier_ CodeSupplier_ NameSupplier_S tateStart_D ateEn d_Dat e1001ABC001PhlogistiCA22-Dec 15-Ja ncal Supply Compa ny200420070001ABC001Phlogisti cal Supply Compa nyIL15-Ja n20071-Jan-2099Fact De
32、livery:(为描述清晰,同样不使用代理键标识维度)DeliveryKeySupplier keySupplier_versio n nil mberQua nt ityProdu ctDelivery_DateOrder_Da te10010132Bags22-Dec-200615-Oct-200620010324Chair s15-Ja n20071-Ja n2007此方案中向维表中的当前数据版本号始终为0,即插入维度数据时先将老版本的数据的version.number改成1 (递增),然后再插入当前数据,此时才能保持当前数据版本号始终为0。事实表中插入数据时所有的维度数据版本号始终全部
33、为0。因此此方案完全可解决事实表和维表多对多矢系问题,另外还有个优点是能保证事实表和维表的参照完整,性,而且我 们在用ERwin,PowerDesigner等建模工具建模时,Version_Number和Supplier_key可作为复合主键在两实体间建 立链接。5事实表设计事实表中一般要包含2部分:一是由主键和外键所组成的键部分,另一部分是用户希望在数据仓库中所了解的数值指标,这些指标是为每个派生出来的键而定义和计算的,称为事实或指标。由于事实是一 种度量,所以事实表中的这种指标往往需要具有数值化和可加性的特征。但是在事实表中,只有那些具有完全可加性的事 实才能根据所有的维度进行累加而具有意
34、义。而事实表有一些事实表示的是某种强度,这类事实就不具有完全加法性,而是一种半加法性。例如,账目余款反映的是某个时间点的数据,它可以按照地点和商品等大多数维度进行累加,但是对于时间维度则例外,将一年中每个月的账目余款进行累加是毫无意义的,而决策者则可能需要了解所有地区和所有商品账目即这些事实具有对事实的描述余款的累加值。在事实表中还有一些事实是非加法性的,特性,在这种情况下一般要将这些非加法性事实转移到维度表中5.1. 事务事实表大多数基本事实表和公共事实表都是面向事务的,其粒度是每一行对应个一事务,或者一行对应事务中的一个条目。 事务粒度是空间和时间的交点,一个事务粒度上的度量必须在那个时刻
35、为真。事务数据在其最低层次上一般都有数目巨大的维与之相尖联。无论事务事件何时出现,都可以捕捉到有矢事务的大 量上下文,仅当活动发生时,事务事实表中才会插入一行。一旦事务事实行已经存储,一般不会再次对其进行访问。如下面的业务过程,就非常适合用事务事实表来表示:采购下订单缴费支付购买拨打电话5.2. 快照事实表第二种最常见的事实表类型是周期快照。使用周期快照可以得到一组描述,周期快照能够按照一个定义良好的时间周 期间隔来捕捉业务过程的执行情况,并且将这些描述装载到事实表中。在预定义好的间隔(如每天、每周或者每月)上, 很多描述都是尖于相同细节层次的,它们连续不断地进入事实表。如下面的业务过程,就非
36、常适合用快照事实表来表示:银行账户的余额 财务月报表6 数据库设计规范6.1. 数据库表设计规范数据库对象前缀命名说明表层次一模块名一具体功能实体名,如产品维表LO_DIM_PRODUCT,附注:在公司模型产品中,我们规定分如下层次LOL1L2维表DIM层次莫块名一具体功能实体名,如产品维表LO_DIM_PRODUCT,事实表FACT层次莫块名一具体功能实体名,如销售事实表L1 FACT SAL 等,列名参见附件中常见属性命名规范11代理键KEY如日期代理键DATE_KEY存储过程SP_前缀_层次主题功能女口 : S P_L2_C U STO M E R_YT D'视图VW_vw层次_直接的内容,一般是用于查询Query和报表Report两种情形触发器TRG_方法一 :TRG_S名方法名之前之后等比如:TRG_USER_INFO_INSERT函数FN_FFN功能名称。主键PK_PK_S名或缩写_列名简洁的与法:写法一:PK_g名,写法二:PK列名,因为列名设计时已经包含表的含义外键FK_FK_M表名子段一主表名子段。这个推存索引IDX_IDX_表名_字段名(一个或多个【可以在其后加U或者C,规则冋 触犯器】推荐使用:IDX_字段名是唯 Unique U与非唯 NonUnique【N】 是聚集Clu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省温州市高职单招职业技能考试题库附答案详解
- 2026年百色职业学院单招职业技能考试题库与答案详解
- 企业产品研发与技术创新规范手册
- 金融风险管理与防范指导手册(标准版)
- 研学基调竞聘演讲稿
- 2026年湖南体育职业学院单招综合素质考试题库带答案详解
- 人在职场的演讲稿
- 2026年安徽交通职业技术学院单招综合素质考试题库与答案详解
- 航空公司客户服务与运营手册
- 2026年庆阳职业技术学院单招职业适应性测试题库与答案详解
- 供应链安全管理办法
- 大学数学《实变函数》电子教案
- 2023年常州机电职业技术学院高职单招(英语)试题库含答案解析
- 餐饮服务与管理 课件
- 小学二年级趣味数学(课堂)课件
- 物资仓库消防应急预案范文
- 义务教育(数学)新课程标准(2022年修订版)
- 赣美版(江西)小学四年级美术下全册教案
- 第六章-材料化学固相反应
- 工程部质量停止点检查方案说明
- 中班棉签画PPt
评论
0/150
提交评论