背景技术
关系数据库适用于数据比较规范的封闭系统,适用于不需要与外界交换信息的局域网,不适用于开放的、数据非常复杂的、需要与外界进行大量数据交换的系统,用关系数据库所开发出来的信息系统都是孤岛型的。
关系数据库无法实现病历信息的结构化存贮,因为病历信息没有规范的、统一的数据结构。
关系数据理论中没有数据接口、数据交换方面的内容。关系数据库中的数据都是有结构的而且与数据库系统密切相关,关系数据库中的数据一旦离开了特定的环境(即相应的数据库系统、数据结构、应用软件),就变成了无意义的数据。
关系数据库中的数据之所以只能在某个特定的数据库中存储,问题在于关系数据库系统中的表的数据结构不标准、不通用,当关系数据库中的一个数据要想在其它数据库中存储,就必须为它建立相应的数据结构,或者把相应的数据进行转换,使这个数据适应新的数据结构,这是目前解决数据在不同环境中存储的通用的方法,而这种转换的工作量是非常大的,代价也是非常高昂的。
用关系数据库所建立的信息系统都是孤岛型系统,因为数据库中的数据不是独立的,只能在相应的数据库系统中存在,这些数据离开了相应的数据库系统、应用系统后就会严重失真。
对于真正的开放系统而言,数据库的名称、表的名称、字段的字段名都是非常重要的信息,都要用规范的自然语言来表达,最忌讳的就是用“代码”来表达它们。
信息系统是否可以互联互通,一个关键因素就是如何保证数据在不同的环境中都不失真,即一定要注意“数据的完整性”。“数据的完整性”是指数据可以不依赖数据库系统、数据结构及应用程序而独立地完整地表达出某种含义,这样就可以确保数据在任何信息系统中都不会失真,都有相同的含义。然而关系数据库中的数据都是与关系数据库系统、数据结构、应用程序密切相关的,关系数据库中的数据不具完整性。
关系数据库中的二维表是数据不具完整性的一个根本原因。在用关系数据库设计信息系统时,不同的设计者在设计同一张表时,所设计出的数据结构是不一样的:所用的数据库系统不一样、数据库名不一样、表名不一样、字段名不一样、字段的排列顺序不一样、各字段的长度不一样、各字段的数据类型不一样,由于这些原因(即异构数据源),当两个系统交换数据时,一个系统就不认识另一个系统所发过来的数据。
医学信息的结构化存贮方法可以有效地解决关系数据库系统所存在的上述问题。医学信息的结构化存贮方法所用的表是一种万能表,该表可以存贮关系数据库中各种各样的数据,可以有效地解决医学信息的结构化存贮问题。
具体实施方式
医学信息的结构化存贮方法中所用的表的结构是一种新型的数据结构。医学信息的结构化存贮方法中所用的表简称为“事物信息表”。“事物信息表”的数据结构与关系数据库中的表的数据结构有本质的区别。要用医学信息的结构化存贮方法而开发出一种概念全新的数据库系统是非常困难的,所需的投资非常大,因此,目前可采用关系数据库系统来实现医学信息的结构化存贮,可以用ORACAL、DB2、SQLSERVER、Access等关系数据库来实现医学信息的结构化存贮。
“事物信息表”在SQL SERVER中的结构形式:
列名 |
数据类型 |
id |
bigint |
事物代号 |
bigint |
事物特征 |
nvarchar |
事物特征值 |
nvarchar |
超长特征值 |
ntext |
单位 |
nvarchar |
附件 |
image |
时间 |
datatime |
“事物信息表”在Access中的结构形式:
字段名称 |
数据类型 |
id |
自动编号 |
事物代号 |
数字 |
事物特征 |
文本 |
事物特征值 |
文本 |
超长特征值 |
备注 |
单位 |
文本 |
附件 |
OLE事物 |
时间 |
日期/时间 |
“事物信息表”在Oracle中的结构形式:
字段名称 |
数据类型 |
id |
number |
事物代号 |
number |
事物特征 |
varchar2 |
事物特征值 |
varchar2 |
超长特征值 |
nclob |
单位 |
varchar2 |
附件 |
blob |
时间 |
timestamp |
“事物信息表”存贮数据的例子:
医学信息的结构化存贮方法的规定:
1、数据结构必须统一,不能作任何改变。这是确保信息系统互联互通的基础。
2、同一事物拥有一个唯一的事物代号。不同的事物不能拥有相同的事物代号。不同的事物代号代表不同的事物。
3、数据的完整性:医学信息的结构化存贮方法要求数据与数据库系统及相应的应用程序的耦合度为零。这是实现互联互通的最重要的基础。
说明1:
关系数据库是以“横向”的一个记录中的N个字段来存贮一个事物的信息,在建立信息系统时,一般情况下,关系数据库都要用多个结构不同的表才能建立信息系统。医学信息的结构化存贮方法则是以“纵向”的N个记录,或(N+X)个记录存贮一个事物的信息,医学信息的结构化存贮方法只要一张“事物信息表”或若干张结构完全一样的“事物信息表”就可以建立各种信息系统。
概括而言,医学信息的结构化存贮方法是以纵向的方式存贮数据,关系数据库是以横向的方式存贮数据,这是医学信息的结构化存贮方法与关系数据库的最根本的不同。以纵向方式存贮数据使医学信息的结构化存贮方法拥有很多关系数据库所不具备的功能、特性。医学信息的结构化存贮方法的显著特点就是其表结构是统一的、标准的、通用的、万能的,可以存贮各种各样的数据;用医学信息的结构化存贮方法所建立的信息系统的数据源都是相同的,不存在异构数据源问题;可以对复杂的医学信息进行结构化存贮。XML虽说也是以纵向的方式存贮数据,由于XML是以文本的形式存贮数据,当对数十万个、数据百万个XML文件进行查询处理时,查询处理数据的性能非常低。
若把关系数据库表中的一个记录内的N个字段中的数据转换到“事物信息表”中时,则转换为“事物信息表”中的“N个记录”;若把关系数据库名及表名也转换到“事物信息表”中,则转换为“事物信息表”中的“N+2”个记录。“事物信息表”可以存贮任何关系数据库中所有表的各种信息。把关系数据库表中的一个记录中N个字段中的数据转换为“事物信息表”中的“N个记录”时,这“N个记录”组成一个事物,每一个事物拥有同一个事物代号,不同的事物拥有不同的事物代号,不同事物不能拥有相同的事物代号,拥有相同事物代号的记录则为同一事物的数据。
凡是用关系数据库所能实现的信息系统,医学信息的结构化存贮方法都能实现。而医学信息的结构化存贮方法所能实现的信息系统,用关系数据库系统的方法就不一定能实现,用医学信息的结构化存贮方法可以很容易地实现电子病历信息的结构化存贮,而用关系数据库的方法就难以实现电子病历信息的结构化存贮。
说明2:
医学信息的结构化存贮方法作为医学信息的数据库的应用,可以很容易地实现医学信息的结构化,用医学信息的结构化存贮方法所建立的电子病历系统和医学知识库的存贮效果及查询速度都远远高于用关系数据库或用XML所建立的电子病历系统和医学知识库。
人们之所以要用计算机处理病历信息,一个重要的原因是因为全国的病历信息的数量十分庞大,人工已无法处理。计算机处理病历信息的比较高的目标是:可以对全国数千万份以上的庞大数量的电子病历信息进行处理,而且查询、处理速度快。
当前的问题是病历信息十分复杂,人们用自然语言书写病历,而计算机不懂自然语言,只懂结构化的信息。目前绝大多数信息系统都是用关系数据库建立的,然而人们在实践中认识到,传统的关系数据库方法不适合用来处理病历信息。
用XML文件虽说可以实现病历信息的结构化,但XML的问题是:与关系数据库相比,XML只能处理少量数据,只能处理少量的文件,查询速度也太慢。当XML文件中的数据量太大时,例如当XML文件中的数据达数G、数十G以上时;或者当XML文件的数量太多时,例如当XML文件的数量达数十万、数百万,甚至数千万以上时,用XML就无法处理。全国的医院每年所产生的病历有数千万份之多。若这些病历是以XML方式存储的,要从如此众多的XML文件中查询出符合条件的数据,将是非常困难的,甚至是不可能的。
用医学信息的结构化存贮方法所建立的全国的各家医院的电子病历系统可以用关系数据库系统来实现,关系数据库中的电子病历数据可以建立索引,因此,查询速度非常快,明显高于从数十万、数百万,甚至数千万以上的XML电子病历文件中查询数据的速度。
说明3:
一张“事物信息表”就可以存放各种关系数据库中的任意数据,为了提高系统性能等原因,可用多张“事物信息表”来存贮数据,但这些表的结构一定要完全相同,这样可确保各信息系统之间的互联互通和信息共享,在建立不同信息系统时也要采用结构完全相同的表。“事物信息表”是一种通用的、万能的表。用关系数据库系统之所以造成严重的信息孤岛问题,其根本原因就是要用不同结构的表来建立信息系统。
说明4:
若把N个事物存贮到“事物信息表”中,这N个事物各自拥有一个各不相同的、唯一的事物代号,不同事物不能拥有相同的事物代号,拥有相同事物代号的记录则为同一事物的数据。关系数据库用一个记录来存贮一个事物的信息,同一个记录中的信息就是某个事物的信息,而医学信息的结构化存贮方法则是用若干条拥有同一个事物代号的记录来存贮一个事物的信息。在关系数据库中,同一类事物的信息存贮到一张表中,这些事物拥有相同的字段。医学信息的结构化存贮方法不要求同一类事物都要拥有相同的“字段”,此处的“字段”的含义为事物的特征。
说明5:
用医学信息的结构化存贮方法所建立的各种信息系统的数据源都是相同的不存在异构数据源问题,可用医学信息的结构化存贮方法开发出通用的数据接口,医学信息的结构化存贮方法作为通用数据接口的应用可以接收和发送各种各样的数据并有效的地解决信息孤岛问题。这是因为“事物信息表”是一种通用的、万能的表,“事物信息表”可以存贮各种从关系数据系统所发过来的任意数据。当前的信息系统在实现不同的数据交换时,一般要开发出不同的数据交换接口,而用医学信息的结构化存贮方法所建立的信息系统中只要一个通用的接口就可以接收各种各样的数据,只要把所接收的数据转换为“事物信息表”的格式进行存贮即可。
说明6:
“事物信息表”中的数据与数据库系统及相应的应用程序是相互独立的,即“事物信息表”中的任一事物的数据都具有比较好的完整性,“事物信息表”中的数据脱离相应的数据库系统及应用程序后还能保持原来的意义,数据的完整性是确保信息系统之间可以互联互通和信息共享的基础。
医学信息的结构化存贮方法注重的是数据的完整性。数据的完整性是指数据可以不依靠其它注释、解释、翻译、加工处理而独立地、准确地、完整地表达出某种完整的含义。医学信息的结构化存贮方法要求各个事物的数据要尽量独立地、准确地、完整地表达出某种含义。在“事物信息表”中,事物之间的关系不是靠各种表来表达,而是靠各事物原来所具有的自然特征和特征值而自然地建立关系,各事物之间的关系与数据库系统以及应用系统无关,或者说各事物之间的关系完全独立于数据库系统及应用系统而独立地、准确地、完整地具有某种含义,这就可以确保一个事物的信息在任何信息系统中都有相同的含义。百分之百合格的“事物信息表”中的数据与数据库系统、表结构、应用系统的耦合度为零。
关系数据库是用各种关系来表达各种事物间的关系。正如关系数据库名中的“关系”的含义:关系数据库中的数据与关系数据库系统、表结构以及相应的应用程序密不可分,一旦分开,关系数据库中的数据将会变成无意义的数据,然而,正是这种“关系”而导致关系数据库必然产生“信息孤岛”。“事物信息表”中的数据与数据库系统、表结构及应用程序无关,可以完全脱离数据库系统、表结构及应用程序而独立地存在,这是医学信息的结构化存贮方法非常突出的特点。正因为关系数据库中的数据与关系数据库系统、表结构及应用程序密不可分,所以当进行数据交换时,数据到了另一个环境中就变成了失真的数据,这也是关系数据难以实现互联互通、易产生信息孤岛的根本原因。
“事物信息表”中的数据与“数据库系统、表结构及应用程序”无“关系”,可以完全脱离数据库系统、表结构、及应用程序而独立存在,所以用医学信息的结构化存贮方法所建立的信息系统实现互联互通非常容易,因为它的数据无论发送到什么地方,都能独立地、准确地、完整地表达出原有的含义。
数据完整性的重要意义:可以很容易地实现信息系统之间的互联互通,可以有效地解决当前的信息孤岛问题。当前之所以存在严重的信息孤岛问题,根本原因就在于各个信息系统中的数据不具完整性,数据与数据库系统、表结构、应用系统的“关系”密不可分。关系数据库的数据不具完整性,这是因为关系数据库中的数据离不开表的结构,离开了表结构,数据就失真,而带表结构进行交换时,接收数据的关系数据库中往往没有结构完全相同的表结构而不认识所接收到的数据。“事物信息表”中的数据本身就是完整的、自带结构的。
医学信息的结构化存贮方法提倡用自然语言,尽量避免用代码。为了实现数据的完整性,要尽量少用、甚至不用代码。因为代码会使数据变得难以理解,会使数据与应用程序的耦合度增高,使数据失去完整性。传统的数据库系统设计者爱使用代码,这样做的结果就使数据库系统中的数据与应用程序密不可分,需要由专用的应用程序才能正确解读数据的真实含义。这也是产生信息孤岛的一个重要原因。
说明7:
对关系数据库而言,同一张表中的信息为同一类事物的信息,不同的信息存贮在不同的表中,医学信息的结构化存贮方法则是由事物本身的特征及特征值而自然地确定各事物是不是同一类事物。拥有一个或若干个相同的特征及特征值的事物就是同一类事物,拥有一个若干个相同特征的事物也可以认为是同一类事物。
说明8:
在关系数据库中实现医学信息的结构化存贮方法时,只要用“id、事物代号、事物特征、事物特征值、超长特征值、单位、附件、时间”8个字段的表就可以存贮各种各样的数据,对“事物代号、事物特征、事物特征值”字段建立索引以便查询;当关系数据库中的数据转换到“事物信息表”中时,医学信息的结构化存贮方法把关系数据库表中的一条记录当作一个事物,并为该事物分配一个唯一的事物代号,关系数据库表的字段名转换为医学信息的结构化存贮方法所用的表中的“事物特征”,相应字段中的数据则转换为“事物特征值”,超过“事物特征值”字段长度的数据则存放在“超长特征值”字段中,图片、附件等信息量比较大的信息、不适合转换为字符型数据的数据则存放在“附件”字段中。
“事物信息表”中各字段的含义:
1.“id”为每个记录的ID。
2.“事物代号”为各事物的代号,每个事物拥有唯一的“事物代号”。关系数据库中的一个完整的数据是记录,“医学信息的结构化存贮方法”中一个完整的数据是“事物”,一个“事物”的信息由若干条拥有相同“事物代号”的记录组成。
3.“事物特征”的含义为事物的特征。
4.“事物特征值”的含义为事物的特征值。
5.“超长特征值”的含义也是事物特征值,用来存放超过“事物特征值”字段的长度的字符型数据。
6.“单位”字段代表事物特征值的单位(次、米、吨等)。
7.“附件”字段:用来存放图象、附件等信息量比较大的、不适合转换为字符型数据的数据。
8.“时间”字段:该字段为每一个事物的特征写入数据库时的时间,一般可由系统自动可生成。
从技术上而言“信息孤岛”问题是由“异构数据源”而引起的,医学信息的结构化存贮方法巧妙地解决了“异构数据源”问题,可以使所有的数据源都有相同的结构。如果所有的信息系统都统一采用“事物信息表”来存放数据,那么信息孤岛问题就可以得到有效解决!