CN1741014A - 全球化数据库系统及其访问方法 - Google Patents
全球化数据库系统及其访问方法 Download PDFInfo
- Publication number
- CN1741014A CN1741014A CNA200410068290XA CN200410068290A CN1741014A CN 1741014 A CN1741014 A CN 1741014A CN A200410068290X A CNA200410068290X A CN A200410068290XA CN 200410068290 A CN200410068290 A CN 200410068290A CN 1741014 A CN1741014 A CN 1741014A
- Authority
- CN
- China
- Prior art keywords
- data base
- global data
- preference
- row
- globalization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种全球化数据库系统和用于访问全球化数据库的方法,该全球化数据库系统包括:区域偏好确定装置,用于从用户的应用确定区域偏好标识;数据库,其中存储全球化数据库表,其至少包括对应于用户查询的全球化列,其中每个全球化列中包括多个与不同的区域偏好相关的数据值;以及数据库访问驱动器,用于截取用户的数据库查询命令,根据从区域偏好确定装置取得的区域偏好标识,从所述全球化数据库表中的全球化列取得对应该区域偏好标识的与区域偏好相关的数据值。通过本发明的全球化数据库系统及其访问方法,可以在数据库中提供透明的区域偏好数据存取机制。
Description
技术领域
本发明涉及一种全球化数据库系统和访问全球化数据库(globalizeddatabase)的方法。
背景技术
在开发全球化的应用、特别是网络(Web)应用时,一些与区域偏好相关的数据(locale sensitive data)被存储在数据库而非属性文件中,这样的数据库称为全球化数据库。开发人员需要设计额外的表,以存储这些与区域偏好相关的数据,并且实现特定的数据库访问功能来处理这些数据。由于全球化的考虑与核心业务考虑如此混杂在一起,因而使用JDBC(Java数据库连接,Java DataBase Connectivity)或如Hibernate(一种软件产品)的其它构架的数据库访问代码更加复杂,而且比不具有全球化考虑的常规数据库访问代码需要更多的维护工作量。区域偏好(locale)是作为用户对某一地域语言的偏好的标识,可以由地域标识和语言标识组成。
目前,开发人员对此问题使用应用专用的解决方案,而他们会早在设计阶段就捕捉全球化需求。对于新开发的系统,开发人员会按照下面的步骤在数据库访问层实现全球化特征:
a)对数据库中的多语言数据设计额外的表。
b)处理和维护用户的区域偏好(locale)信息,通常在多数接口中使用区域偏好参数。
c)编写DB(数据库)访问代码,并且处理各特定语言的表以取得多语言数据。
开发人员会花费很多工作量来处理此全球化考虑。但实际上,这些工作量在多数情形是类似的。而且在维护阶段,全球化数据访问层还要大量成本来应付任何变化。
另外,在现有系统想赋予全球化特征的能力时,在数据存储层需要庞大的工作量。数据库中新增加的区域偏好数据导致数据库表模式(schema)及其所有访问代码的许多变化。
一般地,开发人员应当通过下面的步骤修改DB访问层:
a)对数据库中的多语言数据设计额外的表。
b)得到用户的区域偏好信息,并且修改多数数据库访问接口。
c)修改DB访问代码,并且引入各特定语言的表以处理多语言数据。
在许多情形,这些工作量几乎等于重新生成该应用。
此外,如果系统的源代码不可得到,那么迁移将更难于进行。实际的方法是分别重写视图、控制器和模型:
a)对数据库中的多语言数据设计额外的表。
b)得到用户的区域偏好信息,并且编写一些代码以从视图部分转移到DB访问代码。
c)重写DB访问代码,其可结合以前的数据库访问操作和新增加的数据库表上的操作。
这正像制作现有系统的壳(shell),意味着大量的工作以及明显差的性能。
因此,应当在数据存储层引入将全球化考虑与核心业务考虑分离的新方法。这可以给开发人员提供透明的全球化数据存储特征,并且减轻他们的开发和维护工作。
发明内容
本发明的目的在于提供一种全球化数据库系统和访问全球化数据库的方法,以便提供一种管理和访问数据库中的多语言数据的通用和可重用的解决方案,使全球化考虑与核心业务考虑相分离,从而使开发人员从实现数据库访问层中的全球化特征所必需的重复工作中解脱出来。
为了实现上述目的,本发明提供一种全球化数据库系统,包括:区域偏好确定装置,用于从用户的应用确定区域偏好标识;数据库,其中存储全球化数据库表,其至少包括对应于用户查询的全球化列,其中每个全球化列中包括多个与不同的区域偏好相关的数据值;以及数据库访问驱动器,用于截取用户的数据库查询命令,根据从区域偏好确定装置取得的区域偏好标识,从所述全球化数据库表中的全球化列取得对应该区域偏好标识的与区域偏好相关的数据值。
本发明还提供一种访问全球化数据库的方法,包括步骤:在数据库中提供全球化数据库表,其至少包括对应于用户查询的全球化列,其中每个全球化列中包括多个与不同的区域偏好相关的数据值;截取用户的数据库查询命令;取得用户的区域偏好标识;根据取得的区域偏好标识,从所述全球化数据库表中的全球化列取得对应该区域偏好标识的与区域偏好相关的数据值。
本发明还提供一种全球化数据库系统,包括:输入装置,用于输入构成数据库的常规数据;以及全球化数据库表生成装置,用于从输入的常规数据提取与区域偏好相关的数据,并生成全球化数据库表,其包括至少一个全球化列,并将对应不同的区域偏好的多个同类数据值放入同一全球化列中,用于以后的数据库查询。
通过使用全球化数据库表(GTable)以及构造时和运行时区域偏好模型,可以在数据库中提供透明的区域偏好数据存取机制。其主要优势在于:
a)在开发新的赋予全球化特征的能力的系统时,开发人员可将注意力集中在其核心业务功能上,并且使用通常的数据库访问功能取得这些多语言数据。
b)对GTable的支持对客户代码或现有的数据库访问代码几乎是透明的。
c)需要赋予全球化特征的能力的现有系统不需要改变数据库访问代码以容纳多语言数据。
d)作为c)的结果,降低了访问和维护数据库中的区域偏好数据的成本,开发人员可以用比较小的工作量并且更容易地在数据库存储层获得全球化特征。
附图说明
图1显示了在构造时和运行时两个情景下本发明的概览。
图2说明了根据本发明的一个实施方式的GTable的内部结构。
图3是在图2所示的各表的基础上说明本发明的实现的一个实例。
图4说明单一JVM(Java虚拟机)环境中的运行时区域偏好模型。
图5说明分布式环境中的运行时区域偏好模型的一个实例。
图6是根据本发明的一个实施方式的访问全球化数据库的方法的流程图。
具体实施方式
实施本发明的前提是使用关系数据库和在数据库中支持如UTF-8的unicode(全球统一编码)的存储。不满足这些前提的现有系统,在实施本发明前需要首先转换以满足这些要求。在多数情形,特别是在近期的系统中,这两个前提是很容易满足的。
首先来简单说明全球化数据库表(简称GTable)的概念。
本发明引入新类型的数据库表,称为全球化数据库表。在GTable中,可以有许多全球化列(简称GColumn)。对每个GColumn,在一个GTable记录中会存在不同的对应区域偏好的值。常规数据库表可转换为全球化数据库表类型,而全球化数据库表的常规非键列(non-key column)也可转换为全球化列以存储与区域偏好相关的数据。在实现时,本发明提供G11N数据库驱动器,其实际上在现有数据库驱动器上增加了一薄层以支持此全球化数据库表概念。下文会结合附图来详细说明。
其次,简单说明构造时(build time)和运行时(run time)区域偏好模型的概念。区域偏好模型对此全球化数据库存取机制非常重要,本发明从构造时和运行时的观点分别将其引入。
在构造时,使用新引入的系统表记录该数据库中所有支持的区域偏好,而GTable看起来正像常规的数据库表。然后,开发人员可使用相同的代码访问这些常规数据库表和GTable。为了实现这点,本发明还需要获得GTable访问操作的运行时区域偏好,而不是直接从访问代码中的参数获得。本发明使用全局性的区域偏好库(locale repository)管理每个请求的当前区域偏好。开发人员只需要在适当地方(通常在一些服务开始时)登记其区域偏好。这样,区域偏好是一个过程中的环境变量。对于分布式系统,下文中将引入其它方法来在不同过程之间传播区域偏好。在GTable访问操作中,运行时区域偏好和构造时区域偏好模型都将有助于确定与区域偏好相关的数据的正确目标。
以下,参照附图来详细说明本发明的上述概念和实施方式。
用于数据库中的全球化数据库表、构造时和运行时区域偏好模型的概念可在不同平台上使用不同技术实现。在本发明的优选实施方式中,使用了Java技术和IBM DB2(IBM公司的一种数据库管理系统软件产品)数据库管理系统。图1以构造时和运行时两个情景显示了本发明的概览。
参照图1,在构造时情景,数据设计人员91可利用GTable UI(用户接口)工具1生成GTable,从而设计与其业务应用模式相关的数据库模式。GTable UI工具1可以视为一种全球化数据库表生成装置,其作用是:在本发明提供的GTable管理器3的平台上使用构造时区域偏好模型4按照特定应用进行配置,从而将需要整合全球化特征的常规数据8自动转换为利用GTable组织的全球化数据6,以支持多语言应用。常规数据8通常由适当的输入装置(未显示)输入数据库中,形成常规的数据库表。因此,构造时情景反映了设计时的观点。
而运行时情景反映实现时的观点。在运行时情景,编程人员(开发人员)92编写特定应用93,编程人员92的注意力集中在特定应用93的核心业务功能上,并且使用通常的数据库访问功能取得多语言数据,而不需要考虑全球化数据库访问的细节,即全球化数据库访问对编程人员92是透明的。全球化数据库访问由G11N JDBC驱动器2完成。G11N JDBC驱动器2是在常规的JDBC驱动器22上增加了GTable JDBC加强层(GTable核心)21,其截取来自应用93的查询命令,通常是SQL查询语句,然后将其转换为可以访问GTable的形式。在转换时,作为查询命令转换装置的GTable JDBC加强层21将从运行时区域偏好模型库5获得的当前区域偏好包含在转换后的查询命令(包含更多参数的SQL查询语句)中;而当前区域偏好是在特定应用93在适当时(通常在启动时)登记在运行时区域偏好模型库5中的。然后,GTableJDBC加强层21将转换后的查询命令委托给常规的JDBC驱动器22,由此根据转换后的查询命令直接访问下层的数据库,从GTable6中取得要查询的对应当前区域偏好的多语言数据。对于查询非全球化数据库表的查询命令,GTable JDBC加强层21不进行转换,直接将其委托给JDBC驱动器22,以访问非GTable的数据库表7。在图1中,虽然GTable(带GTable的数据)6和非GTable(不带GTable的常规数据)7显示为分开的数据库模块,但这不应被视为限制,这两类数据也可以存储在同一数据库中。另外,图1中的运行时区域偏好模型库5是区域偏好确定装置,用于从各种各样的应用确定区域偏好,并且可以存储区域偏好,以便在GllN JDBC驱动器2转换SQL查询语句时可以获得正确的区域偏好。运行时区域偏好模型库5的细节将在下文进行描述。
下面将从GTable核心、构造时和运行时区域偏好模型以及GTable管理工具三部分来详细说明本发明。
1.GTable核心
GTable是本发明的关键。本发明从开发人员的观点提供G11N JDBC驱动器,开发人员可获得由GTable透明地提供的所有特征。实际上,本发明仅仅提供了现有JDBC驱动器上微弱的一层,以整合GTable概念,例如,本实施方式使用DB2 JDBC驱动器作为基础。在本实施方式中,一个GTable在下层数据库中由两个常规表表示,第一表是包括用户可以访问的所有列的主GTable,第二表是仅仅用于全球化列的从GTable。从GTable对开发人员是隐藏而不可直接访问的,并且具有区域偏好ID(标识)列,该区域偏好ID列是系统区域偏好表(将在下文说明)的外键。此外,每个表具有默认的区域偏好,其可对表特别设置或从数据库的默认区域偏好属性继承。主GTable中的各GColumn具有对应表的默认区域偏好的各值,而GColumn的其它多语言数据保存在隐藏的从GTable中。如果GTable的全球化特征关闭(将在下文说明),GTable上的操作只能影响主GTable中的对应表的默认区域偏好的各值。主GTable和从GTable之间的连接由主键和外键对来维护。
图2显示了根据本发明的一个实施方式的GTable的内部结构,说明以上概念。图2左边部分的表61表示构造时在开发人员观点下的GTable的结构,它体现的是核心业务考虑。表61显示了一个ScenicSpot表的例子,其主键是全球化表ID(标识)SCENICSPOT_ID,该表具有两个全球化列SCENICSPOT_NAME和SPOT_INTRODUCTION,还有一个非全球化列SCENICSPOT_TYPE。全球化列SCENICSPOT_NAME和SPOT_INTRODUCTION分别具有多个语言的数据,对应各区域偏好,如SCENICSPOT_NAME在SCENICSPOT_ID=1时,SCENICSPOT_NAME可能是“西湖”或“west lake”等对应各种语言的名称。
图2右边部分表示运行时实现表61的主GTable62和从GTable63的结构,其中主GTable62包含了表61的所有列,而从GTable63仅仅包含并且完全包含必需的全球化列(这里是SCENICSPOT_NAME和SPOT_INTRODUCTION)。此外,除了主键SCENICSPOT_ID,从GTable63还包含识别区域偏好的主键LOCALE_ID(区域偏好ID),它是系统区域偏好表的外键,由此可唯一识别对应每个区域偏好的全球化记录。也就是说,在从GTable中,一个记录中的每个列唯一对应一个多语言数据值。而非全球化列SCENICSPOT_TYPE不出现在从GTable中。从图2可见,对于主GTable62,SCENICSPOT_ID也是其外键,主GTable62和从GTable63之间的连接由其各自的主键SCENICSPOT_ID形成的主键和外键对来维护。
与数据库管理系统相互作用的应用在底层使用SQL语言,不管开发人员使用什么构架。GTable JDBC加强层截取与GTable有关的SQL查询,并且根据当前线程环境区域偏好,将该SQL查询转换以访问对应的隐藏表,而且还可以增加区域偏好条件。在改变(转换)SQL命令后,GTable JDBC加强层通过将改变的SQL命令传递给下层JDBC驱动器,从而将各功能委托给下层JDBC驱动器。对于客户代码,所有这些是透明的。
可配置GTable JDBC加强层的特性以适合多种多样的现有要求。在实际情况中,在GTable上开发人员可既需要与区域偏好相关的操作,也需要与区域偏好不相关的操作。因此,本发明提供了GTable上的开关以允许和禁止全球化特征。有三个开关状态:ON、STRICT-ON和OFF。在表1中说明了这些开关状态各自表示的特性。
表1GTable的不同特性
开关状态 | 特性描述 |
ON(默认) | 在该状态,数据库访问操作与区域偏好相关;GColumn中的多语言数据将使用当前区域偏好正确处理。并且如果GTable没有当前区域偏好的多语言数据,选择该区域偏好下的操作将在其GColumn中仍然能获得具有null(空)的记录。 |
STRICT-ON | 在该状态,数据库访问操作仍然与区域偏好相关;GColumn中的多语言数据将使用当前区域偏好正确处理。但如果GTable没有当前区域偏好的多语言数据,选择该区域偏好下的操作将不能获得记录。 |
OFF | 在该状态,数据库访问操作与区域偏好无关;所有数据库访问操作是对主GTable进行,并且对从GTable没有影响。 |
提供这样的开关允许开发人员对GTable JDBC加强层进行定制。例如,在转换来自客户代码的SQL命令时,ON状态表示SQL命令中的FROM语句的结合类型是左联接(left join)或右联接(right join);STRICT-ON状态表示SQL命令中的FROM语句的结合类型是内联接(inner join);而OFF状态表示SQL命令中的所有操作仅仅针对主GTable中的对应默认区域偏好的各值。
由此,这些开关状态可在运行时经由本发明提供的API(应用编程接口)改变。这样,开发人员还可对GTable进行一些与区域偏好无关的操作。对于现有系统,在将一些常规表改变为GTable后,开发人员可发现对一些GTable的一些操作仍然应当是与区域偏好无关的,那么他们可增加代码在数据库访问操作前关闭这个开关,使得数据库访问操作在应用GTable前后没有变化。
在引入GTable和GColumn后,SQL的语法(semantics)是相同的,而对GColumn的下层操作比对常规列的操作改变了一点。GTable记录在其GColumn中可具有许多可能值。但在环境区域偏好确定后,可将GTable记录仅仅视为常规记录并对其执行SQL命令。此方法对客户代码是相当透明的,并且将全球化考虑与核心业务逻辑分离。在本实施方式中,使用配置文件来保存对数据库和GTable的所有设置。而且这些配置将由GTable JDBC加强层使用。
引入该方法后的性能影响不大。GTable元数据(meta data)仅仅在开始时装入一次。对于GTable,要由开发人员处理的操作现在由GTable JDBC加强层处理:涉及GColumn时,就进行SQL转换,然后委托给下层JDBC驱动器;不涉及GColumn时,就直接委托给下层JDBC驱动器。而对于非GTable上的操作,仅仅将其委托给下层JDBC驱动器,没有显著的性能影响。因此,引入该方法只是引入一些检查和SQL转换工作,这对性能将不会有大的影响。
图3是在图2所示的各表的基础上说明本发明的实现的一个实例。特定应用请求访问全球化数据库以查询多语言数据。该特定应用在访问代码中包含SQL查询命令来完成所述查询,如图3中的标号93所示的SQL语句:
Select*from ScenicSpot where SCENICSPOT_ID=1
G11N JDBC驱动器2通过其GTable JDBC加强层21截取该SQL语句,准备进行SQL语句的转换。GTable JDBC加强层21从区域偏好库51获得当前区域偏好,然后将上述SQL语句转换为:
Select ScenicSpot.SCENICSPOT_ID as SCENICSPOT_ID,
ScenicSpot_EXTRA.SCENICSPOT_NAME as SCENICSPOT_NAME,
ScenicSpot.SCENICSPOT_TYPE as SCENICSPOT_TYPE,
ScenicSpot_EXTRA.SPOT_INTRODUCTION as SPOT_INTRODUCTION
from ScenicSpot,ScenicSpot_EXTRA where SCENICSPOT_ID=1 AND
ScenicSpot_EXTRA.LOCALE_ID=’zh_CN’
其中已经将当前区域偏好zh_CN包含在转换后的SQL语句中。GTable JDBC加强层21将转换后的SQL语句委托给下层JDBC驱动器22,由其访问下层的数据库,根据从图2所示的主GTable和从GTable取得查询结果(数据库存储的多语言数据)6,其中从主GTable中取得SCENICSPOT_ID=1的非全球化数据SCENICSPOT_TYPE=ST101,根据从GTable中的区域偏好LOCALE_ID=zh_CN,从从GTable取得SCENICSPOT_ID=1的全球化数据SCENICSPOT_NAME=西湖和SPOT_INTRODUCTION=最忆是江南。
因此,GTable的概念是形成本发明提出的通用和可重用的解决方案的基础。这样的概念使开发人员从实现数据库访问层中的全球化特征所必需的重复工作中解脱出来。从开发人员的观点,GTable是能够具有多个GColumn和默认区域偏好属性的表。
当然,图2所示的GTable的内部结构仅仅是本发明的一个实施方式的示例,实现本发明的GTable也能够采用其它形式。例如,在图2中,保留主GTable结构,而创建附加视图来维护多语言数据,一种语言对应一个视图。所有视图通过查询主GTable而创建,并且维护与主GTable相同的DB模式(schema)。
另外一种GTable的实现可以采用结构列,在列中采用维护一个数据结构来代替简单数据类型。可以使用结构列的这一特征使其在一列中维护所有多语言信息,从而只有主GTable而不需要附加的表来支持GTable。一些如DB2和Oracle的数据库能支持结构列。
2.构造时和运行时区域偏好模型
本发明提出的区域偏好模型提供透明的GTable支持,将区域偏好设计为环境属性而不是函数接口参数。在构造时,本发明引入另一个新表,即系统区域偏好表来管理数据库中支持的区域偏好。将在后面说明的管理工具将处理这些区域偏好设置。对于数据库和表,存在一个与其关联的默认区域偏好属性。而且,如果表的默认区域偏好没有特别设置,那么它可从数据库的默认区域偏好继承。表的默认区域偏好决定哪些与区域偏好相关的值存储在主GTable的GColumn中。
在运行时,本发明提供图1中所示的区域偏好模型库5,以使开发人员登记/取得当前区域偏好,并且标记调用级别(改变在表1中引入的开关状态)。这个库可能使用不同技术在不同环境实现定义的公共接口。开发人员也可定制其自己的应用来实现给定的接口。接口包括三个方法:
1.登记区域偏好
2.标记调用级别(可选择的)
3.取得区域偏好
在典型过程中,一旦接收到用户的请求后,开发人员将调用“登记区域偏好”接口。之后GTable JDBC加强层将调用“取得区域偏好”接口,以自动获得运行时区域偏好。所有用户的现有代码不需要改变来传送区域偏好信息。“标记调用级别”接口是可选择的,用于在运行时由开发人员根据应用的实际需要调整表1中引入的GTable的开关状态。例如在前面说明地,一些特定应用中GTable的一些操作仍然应当是与区域偏好无关的,那么可增加代码在数据库访问操作前关闭GTable的开关(OFF),使得特定数据库访问操作对从GTable没有影响。
图4说明单一JVM(Java虚拟机)环境中的运行时区域偏好模型。
在单机应用环境中,客户应用的代码应该在某个适当时间使用运行时区域偏好库设置环境区域偏好,并且如果对一个线程没有定义区域偏好,就将使用系统的默认区域偏好。区域偏好信息被置于线程本地存储中,因此确保G11N JDBC驱动器将获得作为登记的区域偏好的同一区域偏好标识。
例如在图4中,在单一JVM中,应用程序(实际应用)的线程94包含了对全球化数据库61的查询命令。首先线程94取得用户的区域偏好设置,在ST41调用“登记区域偏好”接口将有关用户的区域偏好的这个信息(区域偏好句柄或区域偏好ID)放到线程本地存储,即区域偏好库51中。G11N JDBC驱动器2在ST43调用“取得区域偏好”接口,自动抽取这个信息,并且整合入线程94的数据库查询(SQL命令)当中,即包含在G11N JDBC驱动器2转换的SQL命令中,从而可以从下层数据库61中取得需要的对应该区域偏好ID的全球化数据值。图4中的线程95执行与线程94相同的处理,只是使用线程95自身的线程本地存储,即区域偏好库52,并且从下层数据库62中取得需要的全球化数据值。由图4可见,区域偏好库51和52分别是线程94与线程95的线程本地存储,两个线程本地存储是分开的,也就是说,本发明涉及的区域偏好库是一种逻辑库概念。如上所述,图4中的数据库61和数据库62并不限制于分离的数据库,而是可以存在于同一数据库中。图4中的ST42所示的调用“标记调用级别”接口是可选择的,其作用是将作为对GTableJDBC加强层的定制的如上所述的开关状态作为配置参数存储在作为线程本地存储的区域偏好库51或52中。而G11N JDBC驱动器2在ST43调用“取得区域偏好”接口时,也自动抽取开关状态参数信息,并且整合入G11N JDBC驱动器2转换的SQL命令中。
下面考虑分布式环境。在此情形,运行时区域偏好模型需要不同的实现。例如,图5说明分布式环境中的运行时区域偏好模型的一个实例。图5所示的环境是WebShpere应用服务器V5企业版(WebShpere Application Server V5Enterprise Edition,简称WAS V5)。实际上,WAS具有其自身的国际化服务来维护多个WAS服务器之间的区域偏好信息,那么可基于WAS V5中的国际化服务来实现运行时区域偏好模型。于是,开发人员只需要在适当时间登记区域偏好设置值,而不管复杂的系统结构。
参照图5,采用WAS V5的请求处理器96与采用WAS V5的数据对象97在分布式环境中相互分开。请求处理器96处理来自用户的请求,特别是查询全球化数据的请求。然后请求处理器96调用远程EJB(Enterprise JavaBeans)而不考虑全球化特征,即不带区域偏好句柄;远程EJB驱动数据对象97完成数据库访问,该数据库访问委托给本地的G11N JDBC驱动器2。请求处理器96从如带有区域偏好句柄的HTTP(超链接文本协议)请求的用户请求中取得用户的区域偏好设置(区域偏好ID),在ST51调用“登记区域偏好”接口将有关用户的区域偏好的这个信息(区域偏好句柄或ID)放到本地区域偏好库51中。WAS V5的i18N服务可以自动同步请求处理器96的本地区域偏好库51和数据对象97(或者说与数据对象97直接耦合的G11N JDBC驱动器2)的本地区域偏好库52,使得G11N JDBC驱动器2在ST54调用“取得区域偏好”接口,自动抽取在ST51登记的区域偏好ID,并且整合入应用程序的数据库查询(SQL命令)当中,即包含在G11N JDBC驱动器2转换的SQL命令中,从而可以从下层数据库6中取得需要的对应该区域偏好ID的全球化数据值。图5中的ST52和ST53所示的调用“标记调用级别”接口是可选择的,其作用是将如上所述的开关状态作为配置参数存储在本地区域偏好库51或52中。而G11N JDBC驱动器2在ST54调用“取得区域偏好”接口时,也自动抽取该开关状态参数信息,并且整合入G11N JDBC驱动器2转换的SQL命令中。
3.GTable管理工具
现有数据库管理系统中没有GTable的概念,因此,有必要给开发人员提供GTable管理工具,即图1中所示的GTable管理器3。GTable管理工具也维护构造时和运行时之间的GTable元数据的一致性,而所有GTable元数据可能存储在文件系统或数据库中,使得运行时G11N JDBC驱动器可以取得这些元数据处理SQL转换。GTable元数据包括例如GTable的表名称列表、GColumn的名称列表、GTable和GColumn的关系列表。该管理工具主要包括以下功能:
a)将常规表转换为GTable类型,或者进行反向转换。
b)将常规列转换为GColumn类型,或者进行反向转换。
c)管理数据库中构造时支持的区域偏好,这实际上是通过操作系统区域偏好表完成的。
d)为数据库和GTable设置默认区域偏好。
e)帮助导入和导出GTable的多语言数据。
下面,参照图6说明根据本发明的一个实施方式的访问全球化数据库的方法,图6显示了所述访问方法的流程。在步骤601,在数据库中提供全球化数据库表,其结构可以是如图2所示的包括主GTable和从GTable,其特征如上所述。在步骤602,用户应用在适当时间(通常是开始时)登记其区域偏好标识,登记过程可采用图4或图5所示的用于不同应用环境的适当方式。在步骤603,G1IN JDBC驱动器2截取用户应用中的数据查询命令(SQL命令)。在步骤604,采用图4或图5所示的用于不同应用环境的适当方式,G11NJDBC驱动器2取得用户应用登记的区域偏好标识。在步骤605,用户应用可选择是否改变GTable的开关状态。如果在步骤605选择改变GTable的开关状态(是),就在步骤606将开关状态参数传递给G11N JDBC驱动器2,具体的传递方式可采用在图4或图5的说明中描述的方式。如果在步骤605选择不改变GTable的开关状态(否)或者完成步骤606之后,就转到主流程,即步骤607。虽然图6中显示步骤605和606是在步骤604之后,但也可以在步骤604之前与步骤602登记区域偏好标识的同时,此时完成步骤606之后就转到步骤603。也就是说,可以根据特定应用来选择步骤605和606的适当位置。在步骤607,G11N JDBC驱动器2将用户应用中的SQL命令转换为可以直接访问主GTable和从GTable的形式,其中包含了在步骤604取得的用户应用登记的区域偏好标识和在步骤606传递的开关状态参数。在步骤608,通过转换的SQL命令,从主GTable和从GTable的全球化列取得对应所述登记的区域偏好标识的与区域偏好相关的数据值,然后流程结束。
值得注意的是,本发明并不限于上述实施方式,在不脱离本发明范围的情况下,可以进行形式和细节上的各种变形和修改。
Claims (23)
1.一种全球化数据库系统,包括:
区域偏好确定装置,用于从用户的应用确定区域偏好标识;
数据库,其中存储全球化数据库表,其至少包括对应于用户查询的全球化列,其中每个全球化列中包括多个与不同的区域偏好相关的数据值;以及
数据库访问驱动器,用于截取用户的数据库查询命令,根据从区域偏好确定装置取得的区域偏好标识,从所述全球化数据库表中的全球化列取得对应该区域偏好标识的与区域偏好相关的数据值。
2.根据权利要求1所述的全球化数据库系统,其中所述全球化数据库表包括:
第一表,包括全球化数据库表标识列、全球化列和非全球化列,其中全球化数据库表标识列是第一表的主键;以及
第二表,包括全球化数据库表标识列、区域偏好标识列和全球化列,其中全球化数据库表标识列和区域偏好标识列是第二表的主键,全球化数据库表标识列是第一表的外键。
3.根据权利要求2所述的全球化数据库系统,其中所述区域偏好标识列具有默认区域偏好标识,以便第一表中的各全球化列能够取对应该默认区域偏好标识的与区域偏好相关的数据值。
4.根据权利要求1所述的全球化数据库系统,其中:
所述全球化数据库表包括全球化数据库表标识列、全球化列和非全球化列,其中全球化数据库表标识列是全球化数据库表的主键;并且
所述数据库还包括视图,每个视图对应一个区域偏好标识,并且维护与全球化数据库表相同的数据库模式。
5.根据权利要求1所述的全球化数据库系统,其中:
所述全球化数据库表包括全球化数据库表标识列、全球化列和非全球化列,
其中,全球化数据库表标识列是全球化数据库表的主键;全球化列采用结构列,用于维护数据结构,使得在一列中能够维护多个与不同的区域偏好相关的数据值。
6.根据权利要求1所述的全球化数据库系统,其中数据库访问驱动器还包括查询命令转换装置,用于截取用户的查询命令,并且结合用户的区域偏好标识将用户的查询命令转换为能够访问全球化数据库表的形式。
7.根据权利要求1所述的全球化数据库系统,其中所述区域偏好确定装置在运行时使用:
区域偏好登记接口装置,用于由应用登记区域偏好标识;以及
区域偏好取得接口装置,用于由数据库访问驱动器取得所述登记的区域偏好标识。
8.根据权利要求7所述的全球化数据库系统,其中所述区域偏好确定装置在运行时使用的区域偏好登记接口装置和区域偏好取得接口装置适合用于单机应用环境或分布式应用环境。
9.根据权利要求2所述的全球化数据库系统,其中所述区域偏好确定装置在运行时使用标记调用级别接口装置,用于将访问全球化列的操作状态调整为以下状态之一:
状态1,访问操作与区域偏好相关,如果全球化数据库表没有对应当前区域偏好标识的数据值,在该区域偏好标识下访问全球化列的操作取得值为null(空)的记录;
状态2,访问操作与区域偏好相关,如果全球化数据库表没有对应当前区域偏好标识的数据值,在该区域偏好标识下访问全球化列的操作不能取得记录;以及
状态3,访问操作与区域偏好无关,仅仅对第一表进行,而对第二表没有影响。
10.一种访问全球化数据库的方法,包括步骤:
在数据库中提供全球化数据库表,其至少包括对应于用户查询的全球化列,其中每个全球化列中包括多个与不同的区域偏好相关的数据值;
截取用户的数据库查询命令;
取得用户的区域偏好标识;
根据取得的区域偏好标识,从所述全球化数据库表中的全球化列取得对应该区域偏好标识的与区域偏好相关的数据值。
11.根据权利要求10所述的方法,其中所述全球化数据库表包括:
第一表,包括全球化数据库表标识列、全球化列和非全球化列,其中全球化数据库表标识列是第一表的主键;以及
第二表,包括全球化数据库表标识列、区域偏好标识列和全球化列,其中全球化数据库表标识列和区域偏好标识列是第二表的主键,全球化数据库表标识列是第一表的外键。
12.根据权利要求11所述的方法,其中所述区域偏好标识列具有默认区域偏好标识,以便第一表中的各全球化列能够取对应该默认区域偏好标识的与区域偏好相关的数据值。
13.根据权利要求10所述的方法,其中:
所述全球化数据库表包括全球化数据库表标识列、全球化列和非全球化列,其中全球化数据库表标识列是全球化数据库表的主键;并且
所述数据库还包括视图,每个视图对应一个区域偏好标识,并且维护与全球化数据库表相同的数据库模式。
14.根据权利要求10所述的方法,其中:
所述全球化数据库表包括全球化数据库表标识列、全球化列和非全球化列,
其中,全球化数据库表标识列是全球化数据库表的主键;全球化列采用结构列,用于维护数据结构,使得在一列中能够维护多个与不同的区域偏好相关的数据值。
15.根据权利要求10所述的方法,还包括:
在取得用户的区域偏好标识之后,结合用户的区域偏好标识,将用户的查询命令转换为能够访问全球化数据库表的形式。
16.根据权利要求10所述的方法,还包括:
在截取用户的数据查询命令之前,登记用户的区域偏好标识,并且其中通过取得用户的区域偏好标识而获得的区域偏好标识是所述登记的区域偏好标识。
17.根据权利要求16所述的方法,其中所述的登记区域偏好标识步骤和所述的取得登记的区域偏好标识步骤适合用于单机应用环境或分布式应用环境。
18.根据权利要求11所述的方法,还包括将访问全球化列的操作状态调整为以下状态之一:
状态1,访问操作与区域偏好相关,如果全球化数据库表没有对应当前区域偏好标识的数据值,在该区域偏好标识下访问全球化列的操作取得值为null(空)的记录;
状态2,访问操作与区域偏好相关,如果全球化数据库表没有对应当前区域偏好标识的数据值,在该区域偏好标识下访问全球化列的操作不能取得记录;以及
状态3,访问操作与区域偏好无关,仅仅对第一表进行,而对第二表没有影响。
19.一种全球化数据库系统,包括:
输入装置,用于输入构成数据库的常规数据;以及
全球化数据库表生成装置,用于从输入的常规数据提取与区域偏好相关的数据,并生成全球化数据库表,其包括至少一个全球化列,并将对应不同的区域偏好的多个同类数据值放入同一全球化列中,用于以后的数据库查询。
20.根据权利要求19所述的全球化数据库系统,其中所述全球化数据库表包括:
第一表,包括全球化数据库表标识列、全球化列和非全球化列,其中全球化数据库表标识列是第一表的主键;以及
第二表,包括全球化数据库表标识列、区域偏好标识列和全球化列,其中全球化数据库表标识列和区域偏好标识列是第二表的主键,全球化数据库表标识列是第一表的外键。
21.根据权利要求20所述的全球化数据库系统,其中所述区域偏好标识列具有默认区域偏好标识,以便第一表中的各全球化列能够取对应该默认区域偏好标识的与区域偏好相关的数据值。
22.根据权利要求19所述的全球化数据库系统,其中:
所述全球化数据库表包括全球化数据库表标识列、全球化列和非全球化列,其中全球化数据库表标识列是全球化数据库表的主键;并且
所述数据库还包括视图,每个视图对应一个区域偏好标识,并且维护与全球化数据库表相同的数据库模式。
23.根据权利要求19所述的全球化数据库系统,其中:
所述全球化数据库表包括全球化数据库表标识列、全球化列和非全球化列,
其中,全球化数据库表标识列是全球化数据库表的主键;全球化列采用结构列,用于维护数据结构,使得在一列中能够维护多个与不同的区域偏好相关的数据值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410068290XA CN100432995C (zh) | 2004-08-27 | 2004-08-27 | 全球化数据库系统及其访问方法 |
US11/213,146 US20060047710A1 (en) | 2004-08-27 | 2005-08-25 | Globalized database system and method for accessing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410068290XA CN100432995C (zh) | 2004-08-27 | 2004-08-27 | 全球化数据库系统及其访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1741014A true CN1741014A (zh) | 2006-03-01 |
CN100432995C CN100432995C (zh) | 2008-11-12 |
Family
ID=35944669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410068290XA Expired - Fee Related CN100432995C (zh) | 2004-08-27 | 2004-08-27 | 全球化数据库系统及其访问方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060047710A1 (zh) |
CN (1) | CN100432995C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078612B2 (en) * | 2008-04-07 | 2011-12-13 | Microsoft Corporation | Providing data based on language choice |
CN101860449B (zh) * | 2009-04-09 | 2014-02-19 | 华为技术有限公司 | 一种数据查询方法、装置及系统 |
US20110302220A1 (en) * | 2010-06-08 | 2011-12-08 | Albert Marcella | Sql processing for data conversion |
US9285870B2 (en) | 2013-09-24 | 2016-03-15 | International Business Machines Corporation | System locale name management |
CN109801179A (zh) * | 2017-11-17 | 2019-05-24 | 英业达科技有限公司 | 资料更新方法及资料系统 |
US10691428B2 (en) * | 2018-10-24 | 2020-06-23 | Sap Se | Digital compliance platform |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018742A (en) * | 1998-07-07 | 2000-01-25 | Perigis Corporation | Constructing a bifurcated database of context-dependent and context-independent data items |
CN1271906A (zh) * | 1999-04-28 | 2000-11-01 | 龙卷风科技股份有限公司 | 全球数据网站的分类全文搜寻系统 |
US20020184308A1 (en) * | 1999-08-23 | 2002-12-05 | Levy Martin J. | Globalization and normalization features for processing business objects |
US7904595B2 (en) * | 2001-01-18 | 2011-03-08 | Sdl International America Incorporated | Globalization management system and method therefor |
US7917888B2 (en) * | 2001-01-22 | 2011-03-29 | Symbol Technologies, Inc. | System and method for building multi-modal and multi-channel applications |
US7013289B2 (en) * | 2001-02-21 | 2006-03-14 | Michel Horn | Global electronic commerce system |
JP2002259803A (ja) * | 2001-02-28 | 2002-09-13 | Kyoko Handa | 情報技術による商品情報のグローバル化システム |
US7831655B2 (en) * | 2001-10-18 | 2010-11-09 | Bea Systems, Inc. | System and method for implementing a service adapter |
US20050050548A1 (en) * | 2003-08-28 | 2005-03-03 | Sun Microsystems, Inc. | Application internationalization using dynamic proxies |
-
2004
- 2004-08-27 CN CNB200410068290XA patent/CN100432995C/zh not_active Expired - Fee Related
-
2005
- 2005-08-25 US US11/213,146 patent/US20060047710A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN100432995C (zh) | 2008-11-12 |
US20060047710A1 (en) | 2006-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6327628B1 (en) | Portal server that provides a customizable user Interface for access to computer networks | |
RU2446456C2 (ru) | Интегрирование учрежденческих поисковых систем со специальными интерфейсами прикладного программирования управления доступом | |
US8966465B2 (en) | Customization creation and update for multi-layer XML customization | |
US7979450B2 (en) | Instance management of code in a database | |
US20020194267A1 (en) | Portal server that provides modification of user interfaces for access to computer networks | |
US8560938B2 (en) | Multi-layer XML customization | |
US20090205013A1 (en) | Customization restrictions for multi-layer XML customization | |
US20070220020A1 (en) | Storage medium storing compiler program for generating virtual database remote access-use program, production method for virtual database remote access-use program and remote access method for virtual database | |
US20090204629A1 (en) | Caching and memory optimizations for multi-layer xml customization | |
US9940392B2 (en) | Performing an object relational model query against a database that includes fields defined at runtime | |
CN1725219A (zh) | 管理多用户存取预定义查询的系统与方法 | |
US20070124373A1 (en) | Methods and apparatus for defining a collaborative workspace | |
CN1705945A (zh) | 全局查询相关属性 | |
US20090204567A1 (en) | Customization syntax for multi-layer xml customization | |
CN1768325A (zh) | 公开内容的抽象数据库抽象中的规则应用管理 | |
CN1864159A (zh) | 通过查询结果扩充和结果数据反馈的迭代数据分析过程 | |
CN1516839A (zh) | 个性化服务器统一用户特征集 | |
CN1794232A (zh) | Crm数据库的安全视图 | |
US20130086118A1 (en) | Systems and methods for object to relational mapping extensions | |
CN1855096A (zh) | 带有基础可扩展框架的面向任务的界面 | |
CN1729448A (zh) | 透明ejb支持和水平数据分割 | |
CN1741014A (zh) | 全球化数据库系统及其访问方法 | |
US20150007126A1 (en) | Generating an Improved Development Infrastructure | |
US11372859B2 (en) | Efficiently supporting value style access of MOBs stored in SQL LOB column by providing value based semantics for LOBs in RDBMS | |
CN1245685C (zh) | 基于构件的操作系统动态设备驱动的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081112 Termination date: 20090928 |