CN101297290B - 用于控制关系型数据库系统的方法和设备 - Google Patents
用于控制关系型数据库系统的方法和设备 Download PDFInfo
- Publication number
- CN101297290B CN101297290B CN2005800519436A CN200580051943A CN101297290B CN 101297290 B CN101297290 B CN 101297290B CN 2005800519436 A CN2005800519436 A CN 2005800519436A CN 200580051943 A CN200580051943 A CN 200580051943A CN 101297290 B CN101297290 B CN 101297290B
- Authority
- CN
- China
- Prior art keywords
- relation
- data
- database
- relevant
- access path
- 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.)
- Expired - Fee Related
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
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
-
- 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
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Vehicle Body Suspensions (AREA)
- Control Of Metal Rolling (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
本发明涉及通过使用数据库语言利用提供可用的所述关系表在关系型数据库中执行数据库查询来控制关系数据库系统的方法,关系型数据库包括作为相关数据结构的多个通过关系相互关联的数据表。通过指示处理函数要应用的数据表、并且指示要用于所述处理的所选数据表顺序创建无关系相关操作的可处理数据库指令。确定具体指出对所述数据库的访问顺序的访问路径。为此,根据两个相继数据表间存在的关系利用每两个相继的所选数据表间的关系表计算部分访问路径。然后将所有计算得到的部分访问路径组合成访问路径。
Description
本发明涉及一种方法,其通过使用数据库语言、利用提供的关系表、并且创建不包括任何关系相关操作的可处理数据库语句、确定具体指明数据库访问顺序的访问路径而在关系型数据库中执行数据库查询来控制关系型数据库系统,所述关系型数据库包括作为相关数据结构的多个通过关系相互关联的数据表。
关系型数据库概念的特征在于,同其他数据库相比,通过减小冗余改善用户友好程度、分开程序和数据、表格结构和数据完整性。
进行了基于关系型数据库的模型开发数据库查询语言的多次尝试,其中,SQL是迄今为止最易用的。同时,将所有其他的方法如OLAP、OQL和TSQL等集成到SQL标准。
US 2005/0076045A1涉及在关系型数据库系统中结构化数据以提高处理多维数据库的可能性的方法,其实现如下:通过提供将一维的多个项(保存值的项和结构项)结合到此维度的一个新项(结构项)中的可能,同时使用一种方法通过数据中间存储生成优化SQL语句,用于弥补相同查询中由其他SQL语句造成的大量的速度损失。它描述了一种将一个维度的各个项层次化合并的方法,在使用的数据表中没有保存聚集值。除了现有的有聚集值的项(保存值的项),可以根据此公开的方法随意选择现有的无聚集值的项(结构项),还可以所示改变或扩展。
US 6732091B1描述了处理数据库查询如SQL的方法,其中从针对给定语句得到相同结果的多个可能访问规划中选出对于实际数据结构最好的访问规划。其基础是只允许自然联接关系表的有限形式。
在实践中已经证实,仅针对当前状态实际使用的数据库的具体数据结构的查询是有弊端的。改变数据结构会立即改变查询。因此,对一个数据结构的同一查询针对另一数据结构可能看起来完全不同。
在许多情况下,SQL查询的主要元素由基于关系的操作形成,例如投影、联接或者选择,或者由基于集合的操作形成,如集合的并、交、差操作。这意味着总是要根据已有的关系信息使用至少一个数据表和约束的笛卡尔积。
下面的示例1示出了数据结构对查询公式的影响。
示例1:
输出所有位于奥地利维也纳的公司,根据公司名称、公司部门和联系人排序
数据结构1:
关系:companies<->departments<->contact_persons
SELECT companies.*,departments.*,contact_persons.*--------------处理函数
FROM companies,departments,contact_persons---------笛卡尔积;关系信息
WHERE(companies.company_ID=departments.company_#)--------关系信息
AND(departments.department_ID=contact_persons.departmetn_#)-关系信息
AND(companies.city=“Vienna”)-----------------------------------------处理函数
ORDER BY companies.name-----------------------------------------------处理函数
数据结构2:
关系:companies<->area_of_business<->departments<->contact_persons
SELECT companies.*,departments.*,contact_persons.*--------------处理函数
FROM companies,area_of_business,departments,contact_persons-笛卡尔积;关系信息
WHERE(companies.c_ID=area_of_business.c_#)---------------------关系信息
AND(area_of_business.area_ID=departments.area_#)----------------关系信息
AND(departments.d_ID=contact_persons.d_#)------------------------处理函数
ORDER BY companies.name------------------------------------------------处理函数
可以看到,关系是基于给定数据结构的,因此对于每个数据库语句必须重新编写公式,从而依赖于数据结构。
本发明的目标是创建一种方法,消除数据库语句对数据结构的依赖,从而实现用户的简单使用。
本发明的另一个目标是允许符号长度的减少,从而使查询语句更为清楚明了。
本发明的另一目标是提供上述方法,其可以用只为一个特定数据结构编写的语句同时访问已有的不同数据结构。
根据本发明,上述目标通过如下方法实现:一种控制方法,其通过使用数据库语言、利用提供的关系表、及创建的不包括任何关系相关操作的可处理数据库语句、且使用确定的具体指明对关系型数据库的访问顺序的访问路径而在关系型数据库中执行数据库查询来控制关系型数据库系统,所述关系型数据库包含作为相关数据结构的多个通过关系相互关联的数据表,其特征在于:
-创建的所述数据库语句只包含处理函数、所述处理函数将应用的数据表和它们的列、以及进行处理时要根据的顺序和结构层次,
其中所用的所述顺序和结构层次以有序树的形式呈现,所述有序树的根只包含高层查询的所有数据表的名称,下层子查询是所述根的下层,且作为节点列在所述有序树结构中,这些节点包含与子查询相关的数据表名称,
-在所述关系表中,通过至少一个关键域将关系指示为两个数据表间的连接,
-通过首先根据每两个相继的选择的数据表间存在的所述关系,计算该两个相继的所选数据表间的部分访问路径,然后将所有计算得到的部分访问路径组合成具体指示对所述关系型数据库的访问顺序的访问路径,经所述关系表来确定具体指示对所述关系型数据库的访问顺序的访问路径,
-通过已经使用所述关系表确定的所述访问路径在所述数据库语句中引入基于关系的操作,生成可由支持SQL标准的任意数据库系统处理的SQL语句。
根据本发明,还提供了一种控制设备,其通过使用数据库语言、利用提供的关系表、及创建的不包括任何关系相关操作的可处理数据库语句、且使用确定的具体指明对关系型数据库的访问顺序的访问路径而在关系型数据库中执行数据库查询来控制关系型数据库系统,所述关系型数据库包含作为相关数据结构的多个通过关系相互关联的数据表,其特征在于:
-创建的所述数据库语句只包含处理函数、所述处理函数将应用的数据表和它们的列、以及进行处理时要根据的顺序和结构层次,
其中所用的所述顺序和结构层次以有序树的形式呈现,所述有序树的根只包含高层查询的所有数据表的名称,下层子查询是所述根的下层,且作为节点列在所述有序树结构中,这些节点包含与子查询相关的数据表名称,
所述设备包括:
在所述关系表中,通过至少一个关键域将关系指示为两个数据表间的连接的装置,
通过首先根据每两个相继的选择的数据表间存在的所述关系,计算该两个相继的所选数据表间的部分访问路径,然后将所有计算得到的部分访问路径组合成具体指示对所述关系型数据库的访问顺序的访问路径,经所述关系表来确定具体指示对所述关系型数据库的访问顺序的所述访问路径的装置,
通过已经使用所述关系表确定的所述访问路径在所述数据库语句中引入基于关系的操作,生成可由支持SQL标准的任意数据库系统处理的SQL语句的装置。
通过略去所有的关系相关的操作,数据库语句一方面被缩短,从而对于用户来说安排更清楚,另一方面,它呈现的形式与下层数据结构无关,从而在创建和处理速度方面提供了优势。通过使用对于每个数据结构已知的关系表,计算得到确定数据库访问顺序的访问路径,它既可以用于生成SQL语句,也可以在处理中直接使用。
关系表包含对应于和数据库查询相关的数据结构的所有关系,可以进一步包含随意生成的关系。
根据本发明的方法的一个可能实施例可以包含:为确定部分访问路径,根据图论将关系表读入图中,使用此方法形成的图来计算部分访问路径。这意味着根据本发明对访问路径的确定可以通过应用基本已知的技术以简单的方式实现。
实现本发明的另一个模式可以通过访问路径在数据库语句中引入关系相关的操作。引入的关系相关操作使得可以将根据本发明开发的数据库语句转化成程序形式的有效SQL语句,从而无需完全由用户自己创建、输入所有SQL数据库语句,特别是当涉及复杂的查询时。
根据本发明的另一替代实施例,被确定的提供了逐步参考数据表的访问路径可以在数据库语句中分开指示,在访问数据库时,这些数据表的参考被逐步访问。此处查询直接使用可处理数据库语句和确定的访问路径。
当有不同数据结构时,根据本发明的另一实施例,可以通过如下方法将对一个数据结构有效的数据库语句转化成对另一数据结构有效的数据库语句:
-从用于具有与之相关的第一数据结构的第一数据库的数据库语句中清除相关的第一基于关系的操作,
-在清除了第一关系的数据库语句中引入第二基于关系的操作,第二基于关系的操作对应于与第二数据库相关的第二数据结构,
-通过使用第二基于关系的操作的相关的表确定部分访问路径、将它们组合获得访问路径,根据包含第二基于关系的操作的所据库语句执行查询。
特别是对于大型数据库用户,它使得能够划算的将已有的针对特定数据结构的查询语句合并到针对不同数据结构的语句中。
所有上述创造性方法的实施例都适宜实现包含具有关系型数据库的计算机系统、数据处理单元及存储器的关系型数据库系统,所述数据处理单元根据本发明的方法进行工作。
此计算机程序可以是任意形式,但特别是在如具有计算机程序编码装置的软盘、CD或DVD的计算机可读介质上的计算机程序产品,其中计算机程序被加载后,程序使计算机执行根据本发明的方法,创建数据载体或电子载体信号。然而,也可能是包括电子载体信号上的计算机程序的计算机程序产品,其中加载计算机程序后,程序使计算机执行根据本发明的方法。
因此本发明的目标还通过提供数据载体或其等效的、可以读入关系型数据库系统的电子载体信号实现,其中数据载体上呈现的数据库语句在创建时不包含任何关系相关的操作,其只通过指示处理函数、处理函数要应用的数据表和它们的列以及进行所述处理根据的顺序和结构层次,其中所用的所述数据表的顺序和结构层次以有序树的形式呈现,所述有序树的根只包含高层查询的所有数据表的名称,下层子查询是所述根的下层且作为节点列在所述树结构中,其包含与子查询相关的数据表名称;在所述关系表中,采用自身公知的方式通过至少一个关键域将关系指示为两个数据表间的连接,所述数据载体包括访问路径,通过首先根据每两个相继的被选择的数据表间存在的所述关系利用该两个相继的所选数据表间的所述关系表计算部分访问路径,然后将所有计算得到的部分访问路径组合成所述访问路径确定所述访问路径,其中,通过已经使用所述关系表确定的所述访问路径在所述数据库语句中引入基于关系的操作,生成可由支持SQL标准的任意数据库系统处理的SQL语句。
包含数据库语句的发明数据载体的另一实施例可以包含访问路径,其根据本发明的方法确定,已引入至数据库语句,通过它访问关系型数据库,用于控制数据库系统。
或者,用于被读入根据本发明的关系型数据库系统的数据载体可以具有访问路径,其通过数据库语句访问关系型数据库(在数据载体上单独指示)用于控制数据库系统,访问路径提供逐步对数据表的参考,这些逐步对数据表的参考用于访问数据库。
此外本发明还涉及具有指令的计算机程序,其执行根据本发明的方法。
此外本发明还涉及具有计算机可读介质、以计算机程序编码形式存在的计算机程序产品,其中计算机程序加载后,此程序使计算机执行根据本发明的方法。
最后,本发明还涉及具有在电子载体信息上的计算机程序的计算机程序产品,其中计算机程序加载后,此程序使计算机执行根据本发明的方法。
附图说明
下面将参考附图中示出的示例应用来详细说明本发明,其中:
图1的示意图是将本发明方法应用于查询示例(示例1)中的有序树;
图2示出的示意图是本发明方法在另一查询示例(示例2)中确定访问路径使用的有序树;
图3示出的示意图是第一数据结构的示例关系表;
图4示出的示意图是第二数据结构的示例关系表;和
图5示出的是本发明方法应用中使用的另一示例扩展关系表。
具体实施方式
数据库系统的主要任务是保存和管理数据,通过数据库查询提供数据。
本发明涉及关系型数据库系统,其使用数据库语言来访问保存在数据库中的数据。在示出的示例实施例中,使用广泛应用的数据库语言SQL,但是本发明不限于此。
每个关系型数据库包括多个数据表形式的相关数据结构,其通过关系相互关联。数据表可以理解成如示例表1至表10示出的以行和列组织的数据。
在本说明书中,术语“行关系”指示表中每一行,即例如表1中的“companies”(company_ID、name、street、ZIP、city、no._of_staff)和表2中的“departments”(department_ID、company_#、department_name)。这两个数据表间通过至少一个键值域相关联,如1:n;companies(company_ID)<->departments(company_#)被称作“关系”。“companies”表(表1)中的“company_ID”列是主键,在“departments”表(表2)中“company_#”列中可以有其任意数量的值。
对于每个数据结构,提供了关系表,其包含与数据库查询相关的数据结构对应的所有关系,可选地还包括任意生成的关系。
对于上述数据表1至表10的数据结构,可以用公式表达如下请求,其示出根据本发明的方法可以解决如何复杂的问题。下述示例参考上述数据结构。
示例2:
列出所有公司,包括它们年总事件营业额,其中今年至少建立10次联系,其市场部今年至少被预定3次事件,食物和饮料营业额超过50欧元。
在根据本发明的方法中,本质上要执行如下步骤:
1)形成没有任何关系操作的可处理数据库语句
2)确定访问路径
具体的,执行如下步骤:
1)指示处理函数和处理函数应用的数据表以及它们的列,以及根据执行处理的顺序和结构层次。
SELECT----------------------处理函数
companies--------------------处理函数应用的数据表
all columns(.*)--------------处理函数应用的列
指示“company”表的所有列
确定“invoice_line_item”表中相关列的所有项目总数和,限定在事件发生的年份(即今年)
因此,根据本发明创建的数据库语句结果如下:
[此处的”date.year”替换今年01-01至今年12-31间]
此查询只包含处理函数要应用的表,没有任何关系。因此,不依赖于任何数据结构,与此同时,符号的长度得到缩减,增加了清晰性。例如,消除了通常形成的由关系约束的笛卡尔积,因为此语句已经包含了可以结合关系表确定针对各个数据结构的访问路径时使用的所有信息,因此一方面实现了不依赖具体的数据结构,另一方面,用户查询的输入量缩短,只限于主要内容,这样就增加了清晰性。
2)根据要解决的问题的表述,呈现出使用的数据表的自然顺序,以及查询(语句)中的结构层次,其取决于要处理的子查询(子选择语句SUBSELECT),借助关系表(表11)从中确定部分访问路径,从而生成用于各个数据结构的SQL语句。
上述使用的数据表的顺序和结构层次优选以有序树7(图1)的形式呈现,其包括根节点10和节点11、12、13和14,节点14是节点13的子节点。
作为其信息域21,在有序树7的根节点10只包含了高层查询的所有数据表名称,例如使用在语句中相同的顺序以列表或阵列的形式保存,可选择地不包含重复的数据表名称。对于根节点10,其信息域21包含数据表COMPANIES(表1)。子查询(子选择语句)及它们的下级子查询(子选择语句中的子选择语句)是根节点10的下层,在树结构中是节点11、12、13、14。节点11、12、13、14的信息域22、23、24、25包含了子查询相应的数据表名称,其用在各自的子选择子句中,也优选使用列表或阵列的形式。对于节点13,这些是其信息域24中的数据表EVENTS(表5)、DEPARTMENTS(表2)、EVENTS(表5)。根据查询公式,节点13的子选择子句进一步包含子选择语句,即节点14,然后接着节点14的信息域中有数据表INVOICE_LINE_ITEMS(表9)和ADDITIONAL_INVOICE_LINE_ITEMS_TITLES(表10)。
树7以前序顺序运行:根节点10,节点11,节点12,节点13然后是节点14。
结构层次如下表示:
第1层:companies
根节点10,高层查询
第1.1层:invoice_line_items,events
节点11,主查询中SELECT部分中的子查询
第1.2层:contacts,contacts
节点12,主查询中WHERE部分中的子查询
第1.3层:events,departments,events
节点13,主查询中AND部分中的子查询
第1.3.1层:invoice_line_items,additional_invoice_line_times_titles
节点14,AND子查询中的子查询
接着通过计算部分访问路径确定指定具体数据库访问顺序的访问路径,根据相继数据表间已有的关系,通过两个所选相继数据表间的关系表计算部分访问路径,然后将所有计算得到的部分访问路径组合成访问路径。
注意由于在语句中省略了所有乘积描述(FROM部分),因此用处理函数公式形成的数据表顺序可能导致两次或多次遍历部分访问路径,这样在形成笛卡尔积时,相同的数据表可能被错误的多次考虑,导致错误的查询结果。
通过使用上述关系表(表11)确定的访问路径,现在可以根据本发明将关系操作引入数据库语句(示例2),生成可以由支持SQL标准的任意数据库系统处理的下述SQL语句(引入的操作显示成斜体字)。随后将阐述一种可能的计算方法。
这种方法得到的语句长度与步骤1)中的相比清楚的显示了可以获得的有关长度和清晰性,尤其是与数据结构无关性的优势。
如果此语句保存成查询,本发明的符号和生成的符号可以同样使用,不再需要重新计算。只有当数据结构和/或语句本身需要改变或修改时才执行重新计算。因此消除了转化成SQL语句所需的短期时间。本领域的技术人员可以理解进一步的优化。
另一种可能是分开指示确定的访问路径,其提供了逐步对数据表的参考,逐步跟随这些数据表参考以访问数据库。此方法生成如下内容:
这样就消除了在语句引入内容,访问路径提供了对数据表的逐步参考。在访问数据库时,逐步跟随这些参考。
下面说明通过图1中描述的有序树来确定访问路径的一种可能的算法,其参考简单的数据结构从而不因为表名称等分神以提供更好的理解。但要注意的是,此处提到的算法只是可用于计算的多种算法中的一种。
总体上,在确定总访问路径时要删除列表中重复的部分路径。
例如,提供的数据表是A、B、C、D、E、F、G、H。
有序树根节点的信息域包含:A、C、F、B。
结果得到如下部分路径:
部分路径AC:A B C
部分路径CF:C D E F
部分路径FB:F E D C B
因此未调整的总访问路径是:A B C D E F E D C B
可以看到,E D C B出现了两次,需要删除。因此正确的总访问路径是:A B C D E F
假定存在图2中示出的树,下面描述根据本发明的方法计算访问路径、通过执行下述步骤将之转化成SQL语句的多种可能的方法中的一种。
数据结构包含数据表A、B、C、D、E......
根据图2表示所基于的查询,为简化的目的获得如下树结构。
根(节点)101的信息域201包含C、A、D
节点102的信息域202包含G、E
节点103的信息域203包含F、I、G
节点104的信息域204包含K、H、K、B
节点105的信息域205包含G、D
属于数据结构的关系表,为了简化表示以简单的方式选择链接,字母相随的数据表通过各自相同的关系域相连,即A<-B、B<->C、C<->D......可以从表12(关系表)中看出,假定如下关系域:
表A 列a、z1
表B 列b、a1
表C 列c、b1
表D 列d、c1
为给定查询创建的有序树根据所谓的前序顺序遍历所有节点,从第一节点开始,即有序树107的根节点101,然后根据所有其它节点的结构层次访问节点102、103、104、105。
第1层:C、A、D
根(节点)10
第1.1层:E、G
节点102
第1.2层:F、I、G
节点103
第1.2.1层:K、H、K、B
节点104
第1.3层:G、D
节点105
如前所述,图2示出了没有细节的查询树。根101(顶节点)的信息域201包含高层查询中第1层代表的所有数据表名称的列表或阵列或类似结构;如上所述,在此非特定查询中只指示处理函数应用的数据表。指示的数据表顺序是C、A、D。
在下一结构层次1.1中,为高层查询的每个子查询创建节点102、103、104,每个节点中的信息域202、203、205中以列表、阵列或类似结构包含各自子查询使用的数据表名称。例如节点102的顺序是G、E,节点103的顺序是F、I、G等等。
结构层次1.2.1代表子查询1.2(节点103)的子查询,在其信息域204中包含使用的数据表名称K、H、K、B。
在每个节点中,从根101开始遍历数据表名称列表,例如其信息域201中的数据表C、A、D,为列表中的每两个相继数据表计算部分访问路径,如上所述避免重复遍历,以避免不必要的导致错误的乘积计算。
注意在另一节点下的直接节点被称作此节点的(直接)继任者。相应的,另一节点被称作直接前任。
在节点的信息域中所有列表被遍历后,识别前序顺序中的下一个节点。确定下一节点的信息域的列表的第一数据表和其直接前任的信息域的列表的最后数据表间的部分访问路径,然后遍历所述下一节点的列表直到最后的数据表,如上所述。例如,
节点104;
遍历其信息域204中的数据表列表:
K、H、K、B。
根据前序顺序,下一节点是节点105,但节点105的直接前任是节点101,识别G(节点105)和D(节点101)间的链接,计算部分路径。然后遍历树107的节点105的信息域205中的数据表G、D。
如前面所提到的,在遍历每个节点后或遍历的过程中消除重复的部分路径,这样就舍弃包括根节点的各个节点或其前任中所有两次或多次出现的数据表名称和关系信息。
按如下步骤执行每个部分访问路径的计算。
首先,将例如关系表(表12)读入图,图中的每条边包含关系条件,使用图论确定两个数据表间的关系链接。
因此,例如对于第1层,在第一步中计算得到的A和C间的路径是C->A,最短路径是如下列表:
表 关系条件
C B b1 b
B A a1 a
然后是A->D,路径是A、B、C、D
这样,完成了第一节点101的信息域201中列表的遍历,现在接下来是调整,即消除具有相同值的行,然后将结果转化成字符串,在合适的位置引入SQL语句中(SELECT后,WHERE前)。
对于第1层,得到下列字符串:
FROM A,B,C,D
WHERE(A.a=B.a1)AND(B.b=C.b1)AND(C.c=D.c1)
这样就到达了当前节点(此例中是根节点)的列表尾部。下一步是确定是否有前任节点。对于根节点,根据定义它没有前任。
总结起来,执行如下步骤:
节点101的信息域201
C->A
A->D
结果:FROM A,B,C,D
WHERE(A.a=B.a1)AND(B.b=C.b1)AND(C.c=D.c1)
下一节点:102,前任节点:101
当前节点的第一数据表和前任节点的最后数据表
D->G
遍历列表
G->E
结果:FROM E,F,G
WHERE(D.d=E.d1)AND(E.e=F.e1)AND(F.f=G.f1)
下一节点:103,前任节点:101
当前节点的第一数据表和前任节点的最后数据表
D->F
遍历列表
F->I
I->G
结果:FROM E,F,G,H,I
WHERE(D.d=E.d1)AND(E.e=F.e1)AND(F.f=G.f1)AND(G.g=H.g1)AND(H.h=I.h1)
下一节点:104,前任节点:103
当前节点的第一数据表和前任节点的最后数据表
G->K
遍历列表
K->H
H->K
K->B
结果:FROM J,K
WHERE(I.i=J.i1)AND(J.j=K.j1)
下一节点:105,前任节点:101
当前节点的第一数据表和前任节点的最后数据表
D->G
遍历列表
G->D
结果:FROM E,F,G
WHERE(D.d=E.d1)AND(E.e=F.e1)AND(F.f=G.f1)
根据本发明的方法应用可以包含为如下情况,对于已有数据结构,存在多个已有的无法应用于另一数据结构的不同语句,因为数据表间有不同的关系。在实践中,公司合并时,或者是当从一个项目提供商转换到另一个提供商的过程中转换数据时,或者是由于速度下降改变数据结构时经常遇到这个问题。
由于本发明使得可以生成不参考特定数据结构的数据语句,因此下述过程变得可能。
从具有与之相关的第一数据结构的第一数据库的数据库语句中清除相关的第一关系操作。
然后,将与第二数据库相关的第二数据结构对应的第二关系操作引入清除了第一关系操作的数据库语句中。
现在可以通过确定部分访问路径、使用相关的第二关系表、然后将它们组合得到访问路径,根据包含第二关系操作的数据库语句执行查询。
发明方法可以使用新的关系表应用此语句。
为了展示数据结构对数据语句的影响,图3和图4示出了其它两个数据结构3和数据结构4各自不同关系表的示意图,在其上要执行相同的查询。
在图5中,以扩展的形式示出了图4中的数据结构4的关系表。除了通常的数据表之间的关系外,右边的列包含随意分配的名称或宏代码,在调用时可以替代左边列中的数据表设置或执行是。在本发明的主要内容的背景下,它使得能够进一步不依赖于数据结构,因为可能计算得到表名称及表域或给它们别的名称。
图5中的数据结构4的扩展关系表:
在此指示数据表的别名和数据域的别名,以及分割表有关的信息,如companies.city。
示例3:
市场部门有至少3名联系人的所有公司。
首先,根据本发明的示例应用中,指示根据查询所需的数据表和处理函数。
针对数据结构3和数据结构4执行本发明的方法得到各自不同的SQL语句。
Claims (11)
1.一种控制方法,其通过使用数据库语言、利用提供的关系表、及创建的不包括任何关系相关操作的可处理数据库语句、且使用确定的具体指明对关系型数据库的访问顺序的访问路径而在关系型数据库中执行数据库查询来控制关系型数据库系统,所述关系型数据库包含作为相关数据结构的多个通过关系相互关联的数据表,其特征在于:
-创建的所述数据库语句只包含处理函数、所述处理函数将应用的数据表和它们的列、以及进行处理时要根据的顺序和结构层次,
其中所用的所述顺序和结构层次以有序树的形式呈现,所述有序树的根只包含高层查询的所有数据表的名称,下层子查询是所述根的下层,且作为节点列在所述有序树结构中,这些节点包含与子查询相关的数据表名称,
-在所述关系表中,通过至少一个关键域将关系指示为两个数据表间的连接,
-通过首先根据每两个相继的选择的数据表间存在的所述关系,计算该两个相继的所选数据表间的部分访问路径,然后将所有计算得到的部分访问路径组合成具体指示对所述关系型数据库的访问顺序的访问路径,经所述关系表来确定具体指示对所述关系型数据库的访问顺序的所述访问路径,
-通过已经使用所述关系表确定的所述访问路径在所述数据库语句中引入基于关系的操作,生成可由支持SQL标准的任意数据库系统处理的SQL语句。
2.根据权利要求1的方法,其特征在于所述关系表包含对应于与被查询的所述关系型数据库相关的所述数据结构的所有关系。
3.根据权利要求2的方法,其特征在于,所述关系表包含随意生成的关系。
4.根据权利要求1至3中任意一项的方法,其特征在于为确定所述部分访问路径,将所述关系表根据图论读入图中,使用由此形成的图计算所述部分访问路径。
5.根据权利要求1、2或3的方法,其特征在于所述确定的访问路径提供对数据表的逐步引用,且在所述数据库语句中被分开指示,且对于访问所述关系型数据库,对所述数据表的所述引用被逐步遵循。
6.根据权利要求4的方法,其特征在于所述确定的访问路径提供对数据表的逐步引用,且在所述数据库语句中被分开指示,且对于访问所述关系型数据库,对所述数据表的所述引用被逐步遵循。
7.根据权利要求1至3中任意一项的方法,其特征在于:
-从用于第一数据库的数据库语句中清除相关的第一基于关系的操作,所述数据库语句具有与所述第一数据库相关的第一数据结构和所述相关的第一基于关系的操作,
-在清除了所述相关的第一基于关系的操作的所述数据库语句中引入第二基于关系的操作,所述第二基于关系的操作对应于与第二数据库相关的第二数据结构,
-通过使用所述第二基于关系的操作的相关的表确定所述部分访问路径、并将所述部分访问路径组合以获得访问路径,根据包含所述第二基于关系的操作的所述数据库语句执行所述数据库查询。
8.根据权利要求4的方法,其特征在于:
-从用于第一数据库的数据库语句中清除相关的第一基于关系的操作,所述数据库语句具有与所述第一数据库相关的第一数据结构和所述相关的第一基于关系的操作,
-在清除了所述相关的第一基于关系的操作的所述数据库语句中引入第二基于关系的操作,所述第二基于关系的操作对应于与第二数据库相关的第二数据结构,
-通过使用所述第二基于关系的操作的相关的表确定所述部分访问路径、并将所述部分访问路径组合以获得访问路径,根据包含所述第二基于关系的操作的所述数据库语句执行所述数据库查询。
9.根据权利要求5的方法,其特征在于:
-从用于第一数据库的数据库语句中清除相关的第一基于关系的操作,所述数据库语句具有与所述第一数据库相关的第一数据结构和所述相关的第一基于关系的操作,
-在清除了所述相关的第一基于关系的操作的所述数据库语句中引入第二基于关系的操作,所述第二基于关系的操作对应于与第二数据库相关的第二数据结构,
-通过使用所述第二基于关系的操作的相关的表确定所述部分访问路径、并将所述部分访问路径组合以获得访问路径,根据包含所述第二基于关系的操作的所述数据库语句执行所述数据库查询。
10.根据权利要求6的方法,其特征在于:
-从用于第一数据库的数据库语句中清除相关的第一基于关系的操作,所述数据库语句具有与所述第一数据库相关的第一数据结构和所述相关的第一基于关系的操作,
-在清除了所述相关的第一基于关系的操作的所述数据库语句中引入第二基于关系的操作,所述第二基于关系的操作对应于与第二数据库相关的第二数据结构,
-通过使用所述第二基于关系的操作的相关的表确定所述部分访问路径、并将所述部分访问路径组合以获得访问路径,根据包含所述第二基于关系的操作的所述数据库语句执行所述数据库查询。
11.一种控制设备,其通过使用数据库语言、利用提供的关系表、及创建的不包括任何关系相关操作的可处理数据库语句、且使用确定的具体指明对关系型数据库的访问顺序的访问路径而在关系型数据库中执行数据库查询来控制关系型数据库系统,所述关系型数据库包含作为相关数据结构的多个通过关系相互关联的数据表,其特征在于:
创建的所述数据库语句只包含处理函数、所述处理函数将应用的数据表和它们的列、以及进行处理时要根据的顺序和结构层次,
其中所用的所述顺序和结构层次以有序树的形式呈现,所述有序树的根只包含高层查询的所有数据表的名称,下层子查询是所述根的下层,且作为节点列在所述有序树结构中,这些节点包含与子查询相关的数据表名称,
所述设备包括:
在所述关系表中,通过至少一个关键域将关系指示为两个数据表间的连接的装置,
通过首先根据每两个相继的选择的数据表间存在的所述关系,计算该两个相继的所选数据表间的部分访问路径,然后将所有计算得到的部分访问路径组合成具体指示对所述关系型数据库的访问顺序的访问路径,经所述关系表来确定具体指示对所述关系型数据库的访问顺序的所述访问路径的装置,
通过已经使用所述关系表确定的所述访问路径在所述数据库语句中引入基于关系的操作,生成可由支持SQL标准的任意数据库系统处理的SQL语句的装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/AT2005/000430 WO2007048148A1 (de) | 2005-10-28 | 2005-10-28 | Verfahren zur steuerung eines relationalen datenbanksystems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101297290A CN101297290A (zh) | 2008-10-29 |
CN101297290B true CN101297290B (zh) | 2013-05-08 |
Family
ID=35427226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800519436A Expired - Fee Related CN101297290B (zh) | 2005-10-28 | 2005-10-28 | 用于控制关系型数据库系统的方法和设备 |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP1941395B1 (zh) |
JP (1) | JP5087547B2 (zh) |
CN (1) | CN101297290B (zh) |
AT (1) | ATE476712T1 (zh) |
CA (1) | CA2626048A1 (zh) |
DE (1) | DE502005010057D1 (zh) |
ES (1) | ES2350243T3 (zh) |
HK (1) | HK1118118A1 (zh) |
WO (1) | WO2007048148A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646111A (zh) * | 2012-02-16 | 2012-08-22 | 中国测绘科学研究院 | 一种基于知识库的通用关联信息查询树的快速构建方法 |
CN105306987B (zh) * | 2015-10-23 | 2018-06-22 | 深圳国微技术有限公司 | 一种控制ts流接口输出码率的装置 |
CN106933929B (zh) * | 2015-12-31 | 2020-02-07 | 北京国双科技有限公司 | 调整数据表连接的方法和装置 |
CN108205593A (zh) * | 2017-12-29 | 2018-06-26 | 华为技术有限公司 | 一种查询的方法及装置 |
CN111125155B (zh) * | 2018-10-31 | 2023-10-27 | 北京国双科技有限公司 | 基于访问路径的数据查询方法、装置、存储介质及处理器 |
CN111831882B (zh) * | 2019-04-16 | 2024-07-30 | 阿里巴巴集团控股有限公司 | 一种查询交互方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732091B1 (en) * | 1999-04-16 | 2004-05-04 | Targit A/S | Method and an apparatus for the processing of queries to a database |
US6834287B1 (en) * | 2001-03-14 | 2004-12-21 | Trilogy Development Group, Inc. | Classification engine for managing attribute-based data |
CN1560763A (zh) * | 2004-02-19 | 2005-01-05 | 北京大学 | 一种可扩展标记语言路径查询翻译为结构查询的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3779431B2 (ja) * | 1997-06-13 | 2006-05-31 | 富士通株式会社 | リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体 |
JP3856978B2 (ja) * | 1999-03-30 | 2006-12-13 | 三菱電機株式会社 | 階層型分布図表示方式及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
WO2002075598A1 (en) * | 2001-03-19 | 2002-09-26 | Exie As | Methods and system for handling mulitple dimensions in relational databases |
US7617179B2 (en) * | 2002-06-29 | 2009-11-10 | Ianywhere Solutions, Inc. | System and methodology for cost-based subquery optimization using a left-deep tree join enumeration algorithm |
-
2005
- 2005-10-28 ES ES05799132T patent/ES2350243T3/es active Active
- 2005-10-28 WO PCT/AT2005/000430 patent/WO2007048148A1/de active Application Filing
- 2005-10-28 DE DE502005010057T patent/DE502005010057D1/de active Active
- 2005-10-28 JP JP2008536874A patent/JP5087547B2/ja not_active Expired - Fee Related
- 2005-10-28 EP EP05799132A patent/EP1941395B1/de not_active Not-in-force
- 2005-10-28 CA CA002626048A patent/CA2626048A1/en not_active Abandoned
- 2005-10-28 AT AT05799132T patent/ATE476712T1/de active
- 2005-10-28 CN CN2005800519436A patent/CN101297290B/zh not_active Expired - Fee Related
-
2008
- 2008-08-19 HK HK08109268.8A patent/HK1118118A1/xx not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732091B1 (en) * | 1999-04-16 | 2004-05-04 | Targit A/S | Method and an apparatus for the processing of queries to a database |
US6834287B1 (en) * | 2001-03-14 | 2004-12-21 | Trilogy Development Group, Inc. | Classification engine for managing attribute-based data |
CN1560763A (zh) * | 2004-02-19 | 2005-01-05 | 北京大学 | 一种可扩展标记语言路径查询翻译为结构查询的方法 |
Non-Patent Citations (1)
Title |
---|
CN 1560763 A,全文. |
Also Published As
Publication number | Publication date |
---|---|
WO2007048148A1 (de) | 2007-05-03 |
ATE476712T1 (de) | 2010-08-15 |
EP1941395A1 (de) | 2008-07-09 |
CN101297290A (zh) | 2008-10-29 |
DE502005010057D1 (de) | 2010-09-16 |
JP2009514071A (ja) | 2009-04-02 |
EP1941395B1 (de) | 2010-08-04 |
CA2626048A1 (en) | 2007-05-03 |
ES2350243T3 (es) | 2011-01-20 |
HK1118118A1 (en) | 2009-01-30 |
JP5087547B2 (ja) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7505888B2 (en) | Reporting model generation within a multidimensional enterprise software system | |
US9639814B2 (en) | Automated default dimension selection within a multidimensional enterprise software system | |
AU2005310977B2 (en) | Aggregatable dimension information FN multidimensional enterprise software system | |
AU2005315255B2 (en) | Automated relational schema generation within a multidimentional enterprise software system | |
CN106649225A (zh) | 一种基于json自定义的报表生成系统及方法 | |
CN101297290B (zh) | 用于控制关系型数据库系统的方法和设备 | |
KR20020009623A (ko) | 표형식 데이터 결합방법 및 제시방법 | |
JP2002024286A (ja) | データ表示方法および装置並びにその処理プログラムを記録した記録媒体 | |
JP2006172446A (ja) | 複合データアクセス | |
CN102855332A (zh) | 一种基于图形数据库的图形配置管理数据库 | |
JP2004094425A (ja) | データベース構築処理変更方法 | |
CN101477555B (zh) | 基于sql数据库的任务树的快速检索及生成显示的方法 | |
JP2006524376A (ja) | 汎用データベーススキーマ | |
JP2007133624A (ja) | 連結関係情報を用いた情報管理方法及び装置 | |
CA2503503A1 (en) | Data processing method and data processing system | |
JP3552339B2 (ja) | データベースシステム | |
KR20080068035A (ko) | 관계형 데이터베이스 시스템을 제어하기 위한 방법 | |
CN114661704B (zh) | 数据资源全生命周期管理方法、系统、终端及介质 | |
JP2020135774A (ja) | アプリケーション画面表示プログラム実装方法 | |
JP2012038103A (ja) | 設定情報入力支援プログラムおよび設定情報入力支援装置 | |
JPS63625A (ja) | パラメ−タ・テ−ブルの利用方式 | |
GB2420196A (en) | Method and system for modelling data |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 Termination date: 20151028 |
|
EXPY | Termination of patent right or utility model |