论文部分内容阅读
[摘要]中医药信息具有单属性多值的特点,同名异物、同物异名的现象普遍存在。传统的关系数据库中数据的表述是基于行与列的,这非常不利于中医药信息的描述。XML以一种开放的自我描述方式定义了数据结构,在描述数据内容的同时能突出对结构的描述。在XML中,用户可以采用树型结构自己定义标记,标记的增加与删除也非常的方便。然而XML毕竟不是数据库,用XML代替数据库的想法是不科学的。SQL Sever 2005提供了对XML的强数据类型支持,对XML文档或片段的修改与查询也提供了全面支持。
[关键词]医药信息 XML 信息表述
中图分类号:R2 文献标识码:A 文章编号:1671-7597(2008)1220048-01
一、使用XML信息化数据
(一)XML概述
HTML(Hypertext Markup Language)、SGML(Standard Generalized Markup Language)、XML(Extensible Markup Language)都是标记语言。随着Internet的发展,信息的交换、检索、保存和再利用等迫切需求使HTML这种最常用的标记语言已越来越捉襟见肘。作为SGML的子集的XML,以一种开放的自我描述(Self describing)方式定义了数据结构,在描述数据内容的同时能突出对结构的描述。XML较HTML有如下的一些优点[1]:
1.数据与表现形式的分离:HTML文档的一个局限之处在于数据和表现形式没有分离,而XML可以只保存数据,或者只保存表现形式即架构(XML Schema),开发人员可以很灵活的修改数据或者其表现形式而不会对另一方面造成影响。
2.灵活的扩展能力:在XML中没有固定不变的标记,使用者可以根据具体应用及习惯来定义标记,从而设计出高效的、可扩展的数据结构。
3.数据结构的开放性:XML规范是由W3C(World Wide Web Consortium,
全球万维网联盟)制定的,完全开放,不同组织开发的XML文件格式对于其他人和应用程序来说都是可读的。
(二)XML文档与关系数据库之比较
随着Web时代的到来,“泛数据”管理成为人们关注的重点。这些数据通常都不是以行和列的格式存在的,不像关系数据那样是严格的结构化数据,因此对这类数据的存储管理以及快速高效的查询是对传统关系型数据库的挑战。
从严格意义上来说,XML与关系数据库不具备可比性,因为XML本身不是数据库。从狭义上来讲,XML仅仅意味着XML文档。但它提供了许多数据库所具备的东西,从技术角度讲,XML与其他数据库同属于数据管理手段[2]。
XML随时可以新增字段,只要吻合XML schema的定义,字段便可以弹性置入;相对而言,关系型数据库一旦要修改字段,牵动的范围相当大,既会影响到过去的数据,与其它数据表的关系也必须一并思考在内,在变动的弹性上较小。
二、使用XML描述中医药信息
(一)中医药信息的特点分析
我国中药材资源丰富,品种繁多,除药物正名外,还有异名如方名、土名、别名、俗名等,同物异名及同名异物的现象极为普遍。据《中药大辞典》统计:有异名的多达3967种,其中药物异名从一个到数个不等,同名异物的也有一定数量,《中药大辞典》中,仅正名相同的就有50余种。
正是由于中药材多名、重名的现象大量普遍存在,在中医药界同时普遍存在着中药处方用药名称不规范的现象,如“破故纸”既是补阳药“补骨脂”的别名,又是清热药“木蝴蝶”的别名,处方中开“破故纸”,调配者不知如何付药。无论是在中药学、中医方剂学方面,还是中医药文献方面,都存在着大量的异名现象。施氏[3]用计算机对《中华名医方剂大全》一书中的异名方做过统计,全书9031个方剂竟然有1004个异名方。
(二)采用关系数据库描述信息
从上述描述可以看出,中医药信息具有单属性多值的特点。如果采用传统的基于关系的数据表描述,势必造成大量的信息冗余:不论是在一张表中使用多条记录描述属性所有的值,还是将有信息冗余的字段独立成另外一张表;如果采取在一张表的一个字段中以逗号或制表符等做分隔符的方法表示多值的数据,虽然可以有效地避免信息的冗余问题,但读取数据时就需要借助对应的解析器对多值字段进行处理,这样就减缓了开发的速度,而且很可能导致错误的发生。一个良好的解决方案是使用XML文档或片段描述信息,并对它们进行存储和处理。
(三)采用XML描述的设想
然而XML不是数据库,用XML文档代替数据库的做法是不科学的;传统的关系型数据库经过长期的发展已相对成熟,具有稳定高效的特点。幸运的是,SQL Server2005对XML提供了强类型支持,此外,对XML数据查询与更新技术也提供了强大的支持。因此笔者提出在存储和主体设计上仍然采用关系数据库SQL Server2005;对于中药信息的具体描述则采用存储XML“片段”的方法:在关系数据库的“药材”表中只有“编号”与“药材信息”字段,两个字段分别采用整型和XML类型描述;中药材所有属性都以标记的形式封装在“药材”标记中(该标记属性为空),并在XML类型字段“药材信息”中以XML片段的形式存放。
这样一来,一种中药材对应多个异名的同时又有效地避免了其他字段信息的冗余,如果需要查询某种中药材,可以先得到这种药材对应的XML片段。当这些片段被取出时再利用XML相关的查询语言XQuery便可获取相关结点的信息。
参考文献:
[1]侯昌昌,XML数据管理技术研究,硕士论文. 南京师范大学, 2004. 6.
[2]江导、姚国祥,XML在数据库设计中的应用及研究,2005.26: 590-592.
[3]施诚,中医药信息学的特点与现状,医学信息,1998.11: 21-23.
[关键词]医药信息 XML 信息表述
中图分类号:R2 文献标识码:A 文章编号:1671-7597(2008)1220048-01
一、使用XML信息化数据
(一)XML概述
HTML(Hypertext Markup Language)、SGML(Standard Generalized Markup Language)、XML(Extensible Markup Language)都是标记语言。随着Internet的发展,信息的交换、检索、保存和再利用等迫切需求使HTML这种最常用的标记语言已越来越捉襟见肘。作为SGML的子集的XML,以一种开放的自我描述(Self describing)方式定义了数据结构,在描述数据内容的同时能突出对结构的描述。XML较HTML有如下的一些优点[1]:
1.数据与表现形式的分离:HTML文档的一个局限之处在于数据和表现形式没有分离,而XML可以只保存数据,或者只保存表现形式即架构(XML Schema),开发人员可以很灵活的修改数据或者其表现形式而不会对另一方面造成影响。
2.灵活的扩展能力:在XML中没有固定不变的标记,使用者可以根据具体应用及习惯来定义标记,从而设计出高效的、可扩展的数据结构。
3.数据结构的开放性:XML规范是由W3C(World Wide Web Consortium,
全球万维网联盟)制定的,完全开放,不同组织开发的XML文件格式对于其他人和应用程序来说都是可读的。
(二)XML文档与关系数据库之比较
随着Web时代的到来,“泛数据”管理成为人们关注的重点。这些数据通常都不是以行和列的格式存在的,不像关系数据那样是严格的结构化数据,因此对这类数据的存储管理以及快速高效的查询是对传统关系型数据库的挑战。
从严格意义上来说,XML与关系数据库不具备可比性,因为XML本身不是数据库。从狭义上来讲,XML仅仅意味着XML文档。但它提供了许多数据库所具备的东西,从技术角度讲,XML与其他数据库同属于数据管理手段[2]。
XML随时可以新增字段,只要吻合XML schema的定义,字段便可以弹性置入;相对而言,关系型数据库一旦要修改字段,牵动的范围相当大,既会影响到过去的数据,与其它数据表的关系也必须一并思考在内,在变动的弹性上较小。
二、使用XML描述中医药信息
(一)中医药信息的特点分析
我国中药材资源丰富,品种繁多,除药物正名外,还有异名如方名、土名、别名、俗名等,同物异名及同名异物的现象极为普遍。据《中药大辞典》统计:有异名的多达3967种,其中药物异名从一个到数个不等,同名异物的也有一定数量,《中药大辞典》中,仅正名相同的就有50余种。
正是由于中药材多名、重名的现象大量普遍存在,在中医药界同时普遍存在着中药处方用药名称不规范的现象,如“破故纸”既是补阳药“补骨脂”的别名,又是清热药“木蝴蝶”的别名,处方中开“破故纸”,调配者不知如何付药。无论是在中药学、中医方剂学方面,还是中医药文献方面,都存在着大量的异名现象。施氏[3]用计算机对《中华名医方剂大全》一书中的异名方做过统计,全书9031个方剂竟然有1004个异名方。
(二)采用关系数据库描述信息
从上述描述可以看出,中医药信息具有单属性多值的特点。如果采用传统的基于关系的数据表描述,势必造成大量的信息冗余:不论是在一张表中使用多条记录描述属性所有的值,还是将有信息冗余的字段独立成另外一张表;如果采取在一张表的一个字段中以逗号或制表符等做分隔符的方法表示多值的数据,虽然可以有效地避免信息的冗余问题,但读取数据时就需要借助对应的解析器对多值字段进行处理,这样就减缓了开发的速度,而且很可能导致错误的发生。一个良好的解决方案是使用XML文档或片段描述信息,并对它们进行存储和处理。
(三)采用XML描述的设想
然而XML不是数据库,用XML文档代替数据库的做法是不科学的;传统的关系型数据库经过长期的发展已相对成熟,具有稳定高效的特点。幸运的是,SQL Server2005对XML提供了强类型支持,此外,对XML数据查询与更新技术也提供了强大的支持。因此笔者提出在存储和主体设计上仍然采用关系数据库SQL Server2005;对于中药信息的具体描述则采用存储XML“片段”的方法:在关系数据库的“药材”表中只有“编号”与“药材信息”字段,两个字段分别采用整型和XML类型描述;中药材所有属性都以标记的形式封装在“药材”标记中(该标记属性为空),并在XML类型字段“药材信息”中以XML片段的形式存放。
这样一来,一种中药材对应多个异名的同时又有效地避免了其他字段信息的冗余,如果需要查询某种中药材,可以先得到这种药材对应的XML片段。当这些片段被取出时再利用XML相关的查询语言XQuery便可获取相关结点的信息。
参考文献:
[1]侯昌昌,XML数据管理技术研究,硕士论文. 南京师范大学, 2004. 6.
[2]江导、姚国祥,XML在数据库设计中的应用及研究,2005.26: 590-592.
[3]施诚,中医药信息学的特点与现状,医学信息,1998.11: 21-23.