《数据建模-经典教程》读书笔记五:属性

一、 属性的解释

        属性是一则相对独立的信息,其值用以识别、描述、评估实体实例。

二、属性类型

        概念级属性必须是对业务起着基本且又关键影响的概念。一般情况下,属性不被当作概念,但这取决于业务需求,允许例外。以前,我曾为一家通信公司提供数据建模服务,在其他应用中电话号码通常被视为属性,但它对于这家通信公司的业务却非常重要,所以电话号码被表示成了概念数据模型中的概念。

        逻辑模型中的属性则描述的是业务特征。每个属性对于业务解决方案都有不同程度的贡献,并且与任何软、硬件技术无关。例如,“冰淇淋口味名”就是一则逻辑级属性,因为它对业务解决方案有重要意义,而且并不取决于到底存储在纸质文件中,还是存储在高速数据库中。

        与物理数据模型对应的属性可以被理解为一个物理“容器”,用来存储数据,属性“冰淇淋口味名"在RDBMS中可以被表示为ICECRM表中的ICECRMFLRNAM列,或者在MongoDB数据库中被表示为IceCream集合中的字段IceCreamFlavorName .

三、域的解释

        域是某一属性所有可能取值的集合。域中往往还包含一组验证标准,使得域可以被多个属性使用。

        如果属性与域相关联,那么该属性的取值绝对不允许超出该域,域中的值可以由一组特定的数据列表指定,也允许由一组规则指定。

        以下为3种基本的域类型:

        ①格式域将数据指定为数据库中的标准类型,如整型(nteger)、字符型(Character(30))、日期(Date)等都是格式域。

        ②列表域类似于一个下拉列表,它由一个可选的有限值的集合组成,列表域是格式域的精简,如“订单状态代码”的格式域可以被置为Character(10),在此基础上该域可以由一个(Open、Shipped、Closed、Retured)列表域进一步精简。

        ③范围域的设置要求取值介于最小值与最大值之间,例如,“订单交付日期”必须为从今天到未来3个月中的某天。与列表域类似,范围域也是格式域的精简。

基于以下几个原因,域是非常有用的。

        ① 插入数据前,通过域的检查来提高数据质量。这是域存在的主要原因,通过限定属性的可能取值来降低脏数据进入数据库的可能性。例如,每一个表示金额的属性被设置为“数量域”,该域要求数字的长度上限为15且包括小数点后的两位,显然这是表示货币数额很好的一种方法,“销售总额”若被设置为“数量域”,则不允许如R2D2这样的值被添加。

        ② 数据模型的交流性更强。当我们在数据模型上设置了域,就意味着数据模型的一个属性必须具备一个特定域的特征,这样数据模型就变成更容易被理解的交流工具。例如,我们可以让“销售总额”“净销售额”“标价销售额”3个属性都可以共享一个“数量域”,进而共享域的特征,它们的取值都被限定为“货币”。

        ③ 使得新建模型、维护现有模型变得更有效率。当一位模型构建师开始一项新工程时,可以使用一组标准域来节省时间,而无需重新创建。例如,所有与数量有关的属性,都可以同时与数量域关联,这样可以极大节省分析、设计时间

【备注说明】属性就是用来描述实体的字段,域就是枚举值,是属性的范围约束。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值