聊一聊元数据

这个话题来自我的MSN Space。这是原文:

元数据(metadata)这个词现在到处泛滥。其实我对元数据充其量只能说有自己的理解而已,并不能确信这个理解是正确的。

我认为,数据结构分为三个层次(UML可是四层哦):
实例层:直接描述特异化的数据场景;
元数据层:描述实例的结构的一组数据;
元数据的元数据层:描述元数据的结构的一组数据。
元数据就是用来描述实例或者描述元数据的一种结构。
元数据的特征有这样几个:第一是元数据一定不依赖业务反而被业务所依赖,相当业务的多变性,元数据是相对稳定的;第二是元数据具有广泛的可复用性,而业务的可复用性极差;第三是元数据注重结构,而业务注重行为。

在Xml中,元数据就是模式(Schema),在数据库中,元数据就是数据库对象定义,包括表、视图、关系约束、存贮过程、触发器、函数、数据库用户、数据库角色等等定义。在对象空间,元数据就是类型、接口、方法、方法参数、属性的定义。在结构化程序空间,元数据就是函数及函数的参数。

我之所以反复强调参数,是因为我们在定义一个接口或者方法的参数时总是非常随便,但定义一个Xml文档模式或者数据库对象时总是小心翼翼的,很受束缚。这显然有一定的不合理之处。仔细推敲,我的结论就是:第一,我们设计每个方法的参数时,特别是设计每个虚拟方法的参数时一定要小心一点,尽量不要滥用参数重构。第二,我们在设计一个Xml文档结构或者数据库结构的时候可别那么畏首畏尾的,就象平时写程序时设计一个方法的参数那样。这样就平衡了。

总结以往多年的数据库设计,我归纳为两个原则和两个方法:
降冗优先原则(降冗是数据库设计时的首要要素);
平行引用原则(所有的关系都必须是单向的并且不能交叉);
依职责拆分方法(同一基数不同职责或者不同的维护方法或者不同的维护期必须拆分);
依基数合并方法(同一基数且职责相同必须合并)。

忽然发现,其实这些原则和方法在整个元数据层都适用,不仅仅只针对数据库设计。

posted on 2005-08-18 11:44 双鱼座 阅读(2072) 评论(2)  编辑 收藏

评论

#1楼  2005-08-18 17:53 adeveloper [未注册用户]

up   回复  引用    

#2楼  2005-08-19 06:48 生活、工作      

总结的很好。   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接:
 





导航

<2005年8月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

统计

与我联系

搜索

 

常用链接

留言簿(30)

我参与的团队

我的标签

随笔档案

文章分类

相册

芸芸众生

最新评论

  • 1. re: 关于软件设计的思维方式
  • 我也见过这样的人,在公司内也一直存在这样的问题,很多就是为了把用户的钱先弄过来,而并不考虑这样的系统会给用户造成什么样的不方便或者损失,这就是为什么我们的软件无法强大起来的原因,就是功利性太强了。我更...
  • --雨~帘
  • 2. re: 细说继承关系映射
  • 学习!受教了!
  • --.NET剑客

阅读排行榜

评论排行榜