数据模型中的本质标识符

什么是标识符?

在数据库和数据模型中有一个最基本的概念就是标识符(Identifier),而标识符这个专业术语,由于方法论的不同又出现很多叫法,为了避免误解,先定义一下我所理解的相关标识符。

数据模型设计的阶段可以划分为概念模型设计、逻辑模型设计和物理模型设计。

在概念模型设计的过程中定义要设计的系统的范围和整体的框架,依据概念模型的框架,对各个部分详细地分析和设计是在逻辑模型设计阶段完成的,而最终根据设计的逻辑模型,考虑具体数据库管理系统的特点和性能完成物理模型的设计。

在概念模型和逻辑模型设计阶段会使用一套专业术语(更偏向于业务),在物理模型设计的阶段又会使用一套专业术语(更偏向于物理数据库)。

所谓的标识符,主要是使用在概念和逻辑模型设计的阶段,由一个或一组属性构成,作用是能够唯一识别每一个实体(Entity)中的每一个实例(Instance)。

很多人可能会说标识符就是数据库的主键(Primary Key)嘛~这种说法其实并不准确。

因为,从保证唯一性的角度来看是没有问题的,只是每一个实体当中可能会存在多个能够保证唯一性的属性或属性组,从它们当中选出一个在建表的时候设计主键约束条件的那个才是主键。

在概念模型和逻辑模型设计的过程中,会涉及到的标识符的概念有:

  • 人造标识符
  • 本质标识符
  • 实质标识符
  • 候补标识符
  • 外来标识符

先解释一下这几个概念和这几个概念之间的关系。

人造标识符是指业务管理或者系统实现时,根据一定的规则认为指定和设计的能够保证唯一识别相关信息项的属性。比如,客户编号、订单编号、商品编号等。

本质标识符是指能够保证某个实体唯一性的本质性的属性,所谓的本质性可以理解为不需要人为地指定标识符也能够准确的识别每一个实体实例的属性。本标识符往往需要由多个属性一起构成。比如,客户实体当中排除掉人为指定的客户编号,能够使用<客户名称+证件类型+证件号码>这三个属性来准确地判断两个人是不是同一个人。另外,在寻找本质标识符的时候,常常使用5W1H原则。

实质标识符就很容易理解了,就对应了物理模型当中的主键的概念,如果说能够保证唯一性的标识符有多个的话,或者本质标识符也有人造标识符也有的情况下,最终被选定在物理模型设计过程中添加主键约束的那个标识符就是实质标识符。而没有被选定添加主键约束的标识符就是候补标识符

在标识符当中,由其他实体继承而来的属性称为外来标识符,相当于物理模型设计中的外键,需要在外来标识符上添加外键约束。

为什么需要本质标识符?

很多人都会问本质标识符的作用是什么?有实质标识符了就行,为什么还需要本质标识符?

就像刚解释本质标识符概念的时候也说过,“不需要人为地指定标识符(人造标识符)也能够准确的识别每一个实体实例”。

在很多系统的表结构中,使用一个编号(人造标识符)做主键(实质标识符)的情况非常多,如果说没有这些编号的话,如何判断两行数据所说的是不是一个东西?比如,银行客户来开户的时候,如何判断这个客户是不是已经开过户了?是不是已经是我们的客户了呢?用客户表里的客户编号根本无法判断,所以,会根据客户的名称、证件类型和证件号码来判断是不是同一个人。

这是本质标识符存在的根本原因,而在数据模型设计、数据迁移、整合和管理的过程当中,也会常常使用本质标识符。

模型设计的过程中使用本质标识符

数据模型设计的过程当中,需要根据需求确定要管理的信息项,而在对信息项进行划分的时候,需要根据业务找出实体和能够保证实体唯一性的本质标识符。

根据本质标识符也可以判断实体的级别,比如,在订购管理相关的业务当中,下一次订单可以订购多个商品的话,肯定会存在订单和订单详情两个实体,而这两个实体的本质标识符是不一样的。根据下订单的客户(客户编号)和下订单的时间(订购时间)可以判断两个订单是不是同一个订单,所以它们两个是订单的本质标识符,而再加上订购了什么商品(商品编号)的话,就是订单详情实体的本质标识符。订单和订单详情是不同级别的,订单详情里继承了订单的实质标识符,所以能够找到它所从属的那个订单,同时,在订单详情中也定义了具体订购了哪个商品。

如果说业务上还需要管理具体某个订单变更历史的话,那就需要再加上时间的维度,这样的话订单详情变更历史相关的信息又会再下一个级别。(当然可以将它和订单详情整合在一个实体,这里主要强调的是本质标识符不同)

在数据整合的时候需要依赖本质标识符

数据整合时本质标识符的用法就是利用了本质标识符的基本概念,不同系统中使用的主键编码体系不仅不同,表结构设计的方式也可能会有很大差异。所以,不同系统间做数据整合的时候,都需要先通过本质标识符来先判断不同系统中的哪些表是相同级别的,然后,再判断两条数据是不是重复之间才能判断能否整合到一起去。

总结

本质标识符的概念在数据模型设计的过程中会一直伴随设计者,会不断地通过对本质标识符的寻找和判断来设计模型,所以,在学习如何设计数据模型的时候,对这个概念的理解就显得尤为重要。但是,对这个概念更深一层的理解和强化,就需要从大量的实践和讨论来实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容