WO2003012690A1 - Adaptable database runtime kernel - Google Patents
Adaptable database runtime kernel Download PDFInfo
- Publication number
- WO2003012690A1 WO2003012690A1 PCT/NO2002/000274 NO0200274W WO03012690A1 WO 2003012690 A1 WO2003012690 A1 WO 2003012690A1 NO 0200274 W NO0200274 W NO 0200274W WO 03012690 A1 WO03012690 A1 WO 03012690A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- module
- database
- code
- storage
- Prior art date
Links
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Definitions
- the invention relates in general to database technology, and more specifically to a computer system for providing access to a database upon a request from an application computer program.
- the invention relates to such a system which comprises a data model represented in a data dictionary, an application program interface, a data storage, and a database kernel providing access from the application program interface to the data storage.
- the invention also relates to a method for improving such a database system, a database kernel in such a database system and a code generator in such a database system.
- meta-information is often referred to as the data model.
- the meta-information may be viewed as structural information, and a description of how the real information has to be structured.
- Fig. 1 is a schematic block diagram illustrating the major components in a prior art database system.
- the database runtime environment consists of these parts:
- Data storage 120 which is the physical storage of data, i.e. data files.
- - Database kernel 110 serving as a database runtime and storage engine, which is the actual data interpreter.
- On-line Data dictionary 130 that holds the meta-information.
- External application programs 150 access the database system via an application program interface (not indicated) to the kernel 110.
- Database definition or schema/data model 160 (not part of the database) is interpreted by the schema compiler and stored in the data dictionary 130 to allow the database kernel 110 to act in accordance to the data model.
- the data storage 120 is the place where the actual data are kept. Often it uses the operating system's standard file system, but it is not unusual to have special file access in order to speed up data transfer to and from disk. Usually the data storage is platform dependent, which means that data stored on one platform can't be transferred to another platform without data conversion.
- Meta information is as mentioned above information about the information. It describes all tables, columns, fields etc. which may be mentally viewed as the table layout.
- the data dictionary also holds information about data types for the columns and domain restrictions for these columns.
- NAME is character string consisting of characters 'a'-'z', 'A'-'Z' and '.', ' ', '-', and INCOME is a positive integer
- CURRENCY is one of: 'USD' 'NOK', ⁇ UR', 'JPY', 'GBP', r SEK ⁇ 'DKK' ).
- the data dictionary also holds information about the different constraint types as primary keys, foreign keys, subset constraints, exclude constraints and other constraints.
- the dictionary and database runtime should be able to handle all types of constraints (in addition to those mentioned above), but current market leading systems only handle primary keys, unique keys, foreign keys and mandatory columns.
- the data dictionary 130 also contains information about external views. This means information of how the information are to be presented to a specific application. One application may wish to view just the 'Name' and 'Address' columns of the table 'Person' while another application wish to view the 'Project', 'Assignment' and 'Person' tables as a compound table 'Project- Assignment'. Many data dictionaries also contain user definitions and user authorization information.
- the database runtime module & storage engine 110 is the heart of the database system. It handles data retrieval request and update requests. In order to fulfill any request the runtime system has to consult the data dictionary 130. First the runtime module 110 has to consult the dictionary 130 in order to validate the application's request. It has to check that the requested data is known by the application 150 (or should be known), and do a mapping to the underlying data model. It then has to consult the data dictionary 130 in order to determine how the actual request to the storage engine should be expressed. When the result from the storage engine is returned, the database runtime once more has to consult the dictionary 130 in order to do a transformation of the retrieved data to fit the applications expectations with respect to naming and structure.
- the database runtime module 110 has to run a consistency check of the database based on the rules stored in the data dictionary. For each rule found in the data dictionary 130, the runtime module 110 has to analyze the rule and run a consistency check. This is very complicated and time consuming. All market leading database vendors therefore do this kind of consistency control after every single update, to prevent a large backlog of consistency controls to be performed. But most important; unless the controls are carried out immediately, the functionality required to do the control after the entire transaction has been carried out will be very complex.
- the runtime module 110 has to handle (consistency check, authorization, etc.) the module is oversized, which involves an efficiency problem.
- the dictionary compiler or schema compiler 140 checks the data model for consistency. If the data model is consistent it stores the data model information in the data dictionary.
- the database runtime module 110 has to dynamically validate the request, and dynamically create an execution plan. In order to do that the system has to send a lot of enquiries to the data dictionary 130 and interpret the results. This has to be done for every single request. All enquiries to the data dictionary 130 creates a lot of overhead and decrease performance significantly. It also requires the database runtime module 110 to be constructed such that all type of data models can be handled. As a result of this there are a lot more program code than necessary for most data models and the runtime module 110 is oversized for most applications.
- DBMS Database management systems
- Current DBMS normally solves a lot of problems that are not required by the applications. That means, an application rarely makes use of all offered functionally at the same time. Different applications require different functionality. The result of this is that DBMS offers a lot more functionality that requested at the same time much functionality required is not offered. Compared to the offered functionality, the footprints of current DBMS are fairly reasonable, but compared to required functionality they are oversized. For desktop use this is no problem, but for handheld applications and embedded systems this is a major problem. Handheld devices and embedded devices has very limited resources, therefore small footprint databases are vital. It is a further object of the present invention to ease database and application programming, particularly to ease constraint handling and thereby reduce application complexity.
- a computer system for providing access to a database upon a request from an application computer program comprising - a data model represented in a data dictionary,
- said database kernel comprises a database runtime module for providing access from the application program interface to the database kernel, said runtime module (210) being dynamically changeable, dependent on the data model (260) represented in the data dictionary, and - a storage engine module for providing access from the runtime module to the data storage, said storage engine module being invariable, independent of said data model.
- the system further comprises an automatic code generator which is adapted to generate an executable program code for the runtime module based upon the data model represented in the data dictionary.
- the program code for the runtime module is preferably generated by the code generator subsequent to any amendments in the data model.
- the code generator preferably comprises a source code generating module and a compiler module, said code generating module being adapted to generate a source code to be processed by the compiler module, thus generating said executable program code.
- the code generating module is further preferably adapted for receiving structural data provided from the data dictionary, for receiving syntactical data provided from a template, and for processing said structural data in accordance with rules defined by the syntactical data, thus producing source code adapted for input to the compiler module.
- the code generating module is advantageously adapted to generate descriptive code or procedural code, dependent on the syntactical data provided from the template.
- the storage engine is preferably adapted to offer the runtime module a platform independent access to the data stored in the data storage.
- the storage engine is also adapted to store and retrieve data elements of a first data structure, comprising an unordered set of data, and data elements of a second data structure, comprising an ordered set of data.
- the storage engine is also preferably adapted to provide an identifier in each data elements of said first data structure, and to provide data elements of said second structure wherein each entry has a set of such associated identifiers.
- a method for improving a database system for providing access to a database upon a request from an application computer program comprising
- a database kernel providing access from the application program interface to the data storage
- the method being characterized by the steps of providing in the database kernel a database runtime module for providing access from the application program interface to the database kernel, said runtime module being dynamically changeable, dependent on the data model represented in the data dictionary, and providing in the database kernel a storage engine module for providing access from the runtime module to the data storage, said storage engine module being invariable, independent of said data model.
- the invention also relates to a database kernel in a computer system for providing access to a database upon a request from an application computer program, said system comprising
- said database kernel providing access from the application program interface to the data storage
- said database kernel comprising a database runtime module for providing access from the application program interface to the database kernel, said runtime module being dynamically changeable, dependent on the data model represented in the data dictionary, and a storage engine module for providing access from the runtime module to the data storage, said storage engine module being invariable, independent of said data model.
- the invention relates to an automatic code generator in a computer system for providing access to a database upon a request from an application computer program, said system comprising - a data model represented in a data dictionary,
- a database kernel providing access from the application program interface to the data storage
- said database kernel comprising a database runtime module for providing access from the application program interface to the database kernel, said runtime module being dynamically changeable, dependent on the data model represented in the data dictionary, and a storage engine module for providing access from the runtime module to the data storage, said storage engine module being invariable, independent of said data model, said code generator being adapted to generate an executable program code for the runtime module based upon said data model.
- Fig. 1 is a schematic block diagram illustrating a database system according to prior art
- Fig. 2 is a schematic block diagram illustrating a database system according to the invention
- Fig. 3 is a data structure diagram illustrating three types of data structures
- Fig. 4 is a sequence diagram illustrating an example of an update sequence
- Fig. 5 is a diagram illustrating a data processing hierarchy
- Fig. 6 is a block diagram illustrating the use of various application interfaces in a database system according to the invention
- Fig. 7 is a block diagram illustrating the principles of a code generator
- Fig. 8 is a diagram illustrating a data dictionary structure.
- Fig. 2 is a schematic block diagram illustrating a database system according to the invention.
- the system comprises a database runtime module 210, a storage engine denoted a RISK module (Reduced Instruction Set Kernel) 215, a data storage 220, an offline data dictionary 230, a code generator 240 which also has the capability to act as a schema compiler as indicated by 140 in Fig. 1.
- Applications 250 and Schema/Data model 260 are external elements which do not form part of the system.
- the code generator first compile the schema similar to the prior art schema compiler 140 and store the structural information in the offline data dictionary 230. Then, based on the stored information in the offline data dictionary a new database runtime module 210 is generated.
- the newly created source code must be compiled, upon successful compilation a new database runtime module is created.
- the database runtime module is generated and unique for each data model, the application programming interface (the part of database runtime module 210 seen by the application) is kept unchanged.
- the arrow between the code generator 240 and database runtime module 210 is an one way arrow indicting that it is not possible for the database runtime module 210 to access the data dictionary 230.
- the database kernel (constituted by the runtime module 210 and the storage engine/RISK module 215) is based on the data model. More specifically, the runtime module part 210 of the kernel is based on the data model, whereas the storage engine 215 is not.
- an application 250 wants to carry out a database operation, it will send the question to the database runtime module 210 that immediately can pass the right question to a storage engine 215 denoted a RISK module (Reduced Instruction Set Kernel).
- the information returned to the runtime module 210 by the RISK module 215 will be immediately understood by the runtime module 210 and transferred back to the application 250.
- the code generator 240 is introduced to automatically create the best possible runtime environment for a given data model (the data model stored in the data dictionary 230).
- the use of a code generator in this setting tailors the database kernel to suit a specific need, at the same time maximum flexibility is ensured due to the data dictionary 230.
- code generator 240 In principle almost all code generators may be used as the code generator 240, if the supporting data dictionary 230 has sufficient structures to express a general data model structure and all types of constraints.
- the code generator 240 should be neutral to which format or language the code is produced. It is therefore advisable with a generator that works on templates separated from the dictionary 230 and separated from the generator itself.
- the code generator 240 may have integrated template(s) and dictionary, or alternatively separate templates and dictionary.
- the code generator 240 may be perfectly capable to generate C, C++, Pascal, Java, as well as SQL schemas, OQL schemas and Word documents, provided templates for these productions are developed.
- the neutrality has significantly eased the process to tailor the template that is the basis for the code produced. The neutrality is not imperative, but a non template based generator will certainly create a more complicated development process.
- Fig. 7 is a block diagram further illustrating the principles of a code generator.
- the code generator 240 cooperates with the data dictionary 230 and the templates 720.
- the code generator 240 produces documents 710 based on the data dictionary 230, which describes data model and the expected output.
- the templates 720 describe the syntactical rules and constructions that the code must be in accordance with.
- the code produced by the code generator 240 may both be descriptive and procedural.
- the produced documents 710 may be of different types, such as eDB 711, Oracle 712, Sybase 713, VC++ 714, Delphi 715, Web objects 716 and more. Both these code examples may be produced:
- the templates 720 describe the code production process.
- a template can be regarded as a Microsoft Word Template, but in addition it has to have control flow mechanisms that manage the actual production process.
- An example of a template is:
- the template is actually an integrated part of the code generator, but it may be viewed as a separate part that is input to or included in the code generator depending on what kind of code the generator is configured to produce.
- WA_Length CompressIndlnWA (Itree) ;
- Error KernelObtamPosition (Itree, First, WA, 0, 4) ; if (Error
- NoErr) goto Exit; ExpandlndFromWA(Itree) ; while ( iMatchlndex (Itree) ) ⁇
- WA_Length CompressIndlnWA (Itree) ;
- the offline data dictionary 230 The offline data dictionary 230
- the offline data dictionary 230 contains the same kind of information as a online data dictionary in traditional database systems. It also plays the same role as a placeholder for structural information.
- the data dictionary is basically a description of the data model. It has elements like Domain (or data types), tables and columns. It knows about constraints as foreign key etc.
- the data dictionary is structured as a flat ASCII file describing all elements necessary. An example of such a structure is schematically illustrated in fig. 8.
- TableName For each table object TableName is stored as an attribute. For each column object ColumName, Type, Mandatory etc is stored as attributes.
- the database runtime module 210 The database runtime module 210
- the database runtime module 210 comprises a set of record definitions and functions tailored to the actual data model as described in the database schema 160 and in the data dictionary 230. For each table there is a struct definition (or record definition) and a set of basic operations. These operations include functions for insert, delete, update and retrieve.
- the insert function knows the format for each attribute, which attribute that are mandatory, which integrity rules that are involed etc. and also how the information is formatted and where the information resides in the permanent storage.
- the insert function knows all about involved constraint and integrity rules that apply for the actual object type handled by this function. Thus the insert function does not have to consult any data dictionary in order to figure out which measures that must be taken in order to validate the data.
- the delete function In the exact same manner as insert function the delete function knows all about the involved integrity rules, and how to interpret the data.
- update function knows all about the involved integrity rules. In fact update combines the insert and delete functionality.
- the obtain function comes in a large number of varieties. These varieties falls into three categories: Direct, Relative and Position. As the obtain function knows the data structure this function neither needs any dictionary.
- ObtainDirect enables the application to do a specified search in the database. That means search for a data entry which a special value or combination of such.
- the obtain-relative function may either be positional (item next or prior to current), based on different value (next-different or prior-different) or based on same value (next or prior with same value).
- Example eDB_OBT_Relative(Person, Next) // Returns next person after Bill eDB_OBT_Relative(Person, NextDifferent) // Returns next person with another name eDB_OBT_Relative(Person, NextEqual) // Returns next person with same name.
- eDB_OBT_Relative(Person, Prior) // Returns next person prior to Bill eDB_OBT_Relative(Person, PriorDifferent) // Returns prior person with another name eDB_OBT_Relative(Person, PriorEqual) // Returns prior person with same name.
- ObtainPosition enables the application to directly access first or last data item.
- eDB_OBT _Relative(Person, Last) // Returns last person, according to an index.
- an index name can be added to specify which ordering of data to use when navigating in the database.
- the RISK module 215 is what generally is recognized as storage engine.
- the RISK module offers the runtime module a platform independent access to the data.
- the RISK module (storage engine) undertook some dramatic changes.
- the navigational tool include functions like 'Ge First', 'Ge Last', 'GetGreaterThan', 'GetLessThan'. 'Next', 'Prior', 'NextDifferent', "PriorDifferent'.
- the RISK module 215 has to have different structures that maintain an ordering of the data. Basically the RISK module offer three types of structures; BASE, INDEX and PROJECTION. See the data storage section below for a further description of these structures.
- Data storage 220 provides for the physical storage of data, i.e. data files.
- Fig. 3 is a data structure diagram illustrating three types of data structures that may be handled by the RISK module 215 and stored in the data storage 220; BASE 310, INDEX 320 and PROJECTION 330.
- the RISK module Basically, there are two types of storage structures handled by RISK module. The first is an unordered set of data, which is the BASE structure 310, and the second is the ordered set of data which is the INDEX structure 320.
- the PROJECTION structure is just a simplified INDEX structure.
- BASE structure 310 is the basic structure that holds the actual information. The information is stored linear as they are entered into the database. Each data entry may have a variable size (length) and a unique rowid.
- INDEX structure 320 is the structure used to index the base structure 310. Note that neither the RISK module nor the data storage itself knows about the logical (and actual) connections between these structures.
- data entry is a variable sized data area. For each data entry, the length and a set of rowids where the actual value is referenced. Not that this is a fairly compact way of storing the data, and at the same time ensuring a high performance.
- PROJECTION Structure 330 is a structure to hold information about the BASE (or INDEX) structure.
- the RISK module or the data storage itself knows about this interconnection.
- the data is a variable sized data entry, but instead of storing each individual rowid, the just the number of rowids are stored.
- the internal structure of data entries of these structures 310, 320, 330 is not known by the RISK module 215.
- the data entries are seen as complete undividable items. In fact these data entries can have a very complicated structure, but this internal structure is only known by database runtime module 210.
- Every BASE structure 310 data entry has an unique identifier named Rowid.
- the Rowid is created by the RISK module 215.
- Data entries in the INDEX structure 320 do not have unique Rowids, each data entry has a set of associated Rowids.
- Data entries in the PROJECTION structure 330 do not have rowids at all, just a number that tells how many associated rowids a corresponding data entry in an index structure 320 would have had.
- RISK module 215 does not contain any dictionary kind of information it is not capable to maintain any interconsistency between the different structures. It is the runtime module 210 that maintains the internal consistency between the different structures, as that module is the only module that have knowledge of THE data model 260.
- Fig. 4 is a sequence diagram illustrating an example of an update sequence.
- the sequence comprises four stages: 1.
- An integrity check 430 wherein the runtime module 210 and the RISK module 215 searches for conflicts/violations.
- every computer program is a set of loops that repeats a set of tasks a number of times. These loops lie often within each other.
- Fig. 5. is a schematic diagram illustrating the data processing hierarchy in a database system.
- the outer loops 510 are controlled by the application 250 (for instance retrieval of a list of employees).
- the loops in between 520 are controlled by the database runtime system 210 (for instance collection of each of the attributes for the employee, department information etc. This may involve several loops into several tables to retrieve all necessary information.)
- the inner loops 530 are controlled by the storage engine / RISK module 215 (for instance this is a collection of each of the disk blocks required to gather the necessary information, and to split these block into single data items).
- the storage engine / RISK module 215 for instance this is a collection of each of the disk blocks required to gather the necessary information, and to split these block into single data items.
- the RISK module 215 also serializes the innermost loops. Instead of start the looping process all over each time it gains control, it simply continues from where it was when it gave control back to the Runtime module 210 last time. This obviously reduce looping depth an reduce the total number of instructions needed to complete a task.
- the database structure according to the invention gives: a non interpreting database runtime. minimal sized runtime module tailored to the actual problem area. database runtime that runs the most efficient code. full flexibility with respect to external interfaces, maintainability as normal systems a runtime module that is able to handle all kind of constraints, a portable and scalable database system
- the database approach according to the invention does not contain any online data dictionary. All data dictionary information is embedded in the database runtime module. This means that there is no need for data dictionary enquiries. Requests like 'Describe table person' can be fulfilled immediately without any dictionary enquiries. All consistency checking code is generated as part of the code, so there is no need for interpreting consistency information.
- the runtime module does not contain any superfluous code. If there is no float data types in use, no code to handle float data types will be generated as part of the database runtime. The same applies for consistency checking as well. This ensures a code that is minimal for the actual data model (and data dicitionary) and will further ensure a minimal sized database system.
- a traditional data dictionary normally consists of external view information (i.e. SQL Views) that may be used to tailor an interface to a specific application.
- external view information i.e. SQL Views
- traditional database systems only support one kind of database interfaces (Relational, Network oriented, Hierarchical, ObjectRelational or ObjectOriented). They never support a mix of these.
- a particular development tool for developing solutions according to the invention has the knowledge of external views (also with respect to different database technologies), so it can generate all interfaces needed, tailored to the actual database.
- Fig. 6 is a block diagram illustrating the use of various application program interfaces (APIs) in a database system according to the invention. This figure shows that more applications 250a, 250b, 250c can access the same database.
- the code generator 240 can not only generate the runtime module, but also (by use of particular templates) different application program interfaces 205a, 205b, 205c on top of the database runtime module 210. Each of these interfaces 205a, 205b, 205c can be used simultaneously to allow access to the database from different applications 250a, 250b, 250c, respectively.
- a booking application and a flight control application can both access the schedule in the database using an SQL interface, while an XML based flight publication application concurrently access the schedule.
- the inventive approach allows the same type of system development as traditional database system development.
- the application developers focus on just the same aspects; which are developing business logic, user interfaces and interfaces to other systems.
- the database API Application Program Interface
- a runtime module that is able to handle all kind of constraints.
- the runtime module may also be generated using another programming language as for instance Java, C++, Basic or Pascal.
- the database system according to the invention is well suited for hand held devices with limited computing power.
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02746220A EP1421517A1 (en) | 2001-08-01 | 2002-07-31 | Adaptable database runtime kernel |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NO20013784A NO314426B1 (en) | 2001-08-01 | 2001-08-01 | Adaptable database runtime kernel |
NO20013784 | 2001-08-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2003012690A1 true WO2003012690A1 (en) | 2003-02-13 |
Family
ID=19912712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/NO2002/000274 WO2003012690A1 (en) | 2001-08-01 | 2002-07-31 | Adaptable database runtime kernel |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1421517A1 (en) |
NO (1) | NO314426B1 (en) |
WO (1) | WO2003012690A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919615A (en) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | Data access method and system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819090A (en) * | 1994-03-04 | 1998-10-06 | Ast Research, Inc. | Application control module for common user access interface |
US5835910A (en) * | 1994-11-10 | 1998-11-10 | Cadis, Inc. | Method and system for comparing attributes in an object-oriented management system |
WO1999054833A2 (en) * | 1998-04-20 | 1999-10-28 | Recursion Dynamics Inc. | Dynamically configurable data storage and processing system optimized for performing database operations |
WO2000052571A1 (en) * | 1999-03-02 | 2000-09-08 | Acta Technology, Inc. | Specification to abap code converter |
US6266666B1 (en) * | 1997-09-08 | 2001-07-24 | Sybase, Inc. | Component transaction server for developing and deploying transaction- intensive business applications |
-
2001
- 2001-08-01 NO NO20013784A patent/NO314426B1/en not_active IP Right Cessation
-
2002
- 2002-07-31 WO PCT/NO2002/000274 patent/WO2003012690A1/en not_active Application Discontinuation
- 2002-07-31 EP EP02746220A patent/EP1421517A1/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819090A (en) * | 1994-03-04 | 1998-10-06 | Ast Research, Inc. | Application control module for common user access interface |
US5835910A (en) * | 1994-11-10 | 1998-11-10 | Cadis, Inc. | Method and system for comparing attributes in an object-oriented management system |
US6266666B1 (en) * | 1997-09-08 | 2001-07-24 | Sybase, Inc. | Component transaction server for developing and deploying transaction- intensive business applications |
WO1999054833A2 (en) * | 1998-04-20 | 1999-10-28 | Recursion Dynamics Inc. | Dynamically configurable data storage and processing system optimized for performing database operations |
WO2000052571A1 (en) * | 1999-03-02 | 2000-09-08 | Acta Technology, Inc. | Specification to abap code converter |
Non-Patent Citations (1)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 21, no. 6, November 1978 (1978-11-01), pages 2532 - 2533 |
Also Published As
Publication number | Publication date |
---|---|
NO314426B1 (en) | 2003-03-17 |
EP1421517A1 (en) | 2004-05-26 |
NO20013784L (en) | 2003-02-03 |
NO20013784D0 (en) | 2001-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100468396C (en) | Mapping architecture for arbitrary data models | |
US7457810B2 (en) | Querying markup language data sources using a relational query processor | |
Rahm et al. | A survey of approaches to automatic schema matching | |
US6374252B1 (en) | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon | |
Miller et al. | The Clio project: managing heterogeneity | |
US8250529B2 (en) | Specification to ABAP code converter | |
US8412746B2 (en) | Method and system for federated querying of data sources | |
US5970490A (en) | Integration platform for heterogeneous databases | |
US7031956B1 (en) | System and method for synchronizing and/or updating an existing relational database with supplemental XML data | |
US6014670A (en) | Apparatus and method for performing data transformations in data warehousing | |
CN103226478A (en) | Method for automatically generating and using code | |
Brunel et al. | Supporting hierarchical data in SAP HANA | |
US7251641B2 (en) | Adjustable database runtime kernel | |
Jennings | Professional ADO. NET 3.5 with LINQ and the Entity Framework | |
WO2003012690A1 (en) | Adaptable database runtime kernel | |
Blakeley et al. | Distributed/heterogeneous query processing in Microsoft SQL server | |
Muller | Software engineering for the industrial Internet: Situation-aware smart applications | |
Attardi et al. | Template metaprogramming an object interface to relational tables | |
Lawrence | Automatic Conflict Resolution to Integrate Relational Schema | |
Vega Ruiz et al. | Mortadelo: automatic generation of NoSQL stores from platform-independent data models | |
Bozzon et al. | Integrating databases, search engines and web applications: a model-driven approach | |
US20110282911A1 (en) | Method and apparatus for providing a relational document-based datastore | |
WO1993007564A1 (en) | Computer system for generating sql statements from cobol code | |
Grossman et al. | Integrating structured data and text | |
Ovchinnikov et al. | A declarative concept-based query language as a mean for relational database querying |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG UZ VN YU ZA ZM ZW Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG UZ VN YU ZA ZM |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2002746220 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2002746220 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |