EP1405217A1 - A flexible virtual database system including a hierarchical application parameter repository - Google Patents
A flexible virtual database system including a hierarchical application parameter repositoryInfo
- Publication number
- EP1405217A1 EP1405217A1 EP02737504A EP02737504A EP1405217A1 EP 1405217 A1 EP1405217 A1 EP 1405217A1 EP 02737504 A EP02737504 A EP 02737504A EP 02737504 A EP02737504 A EP 02737504A EP 1405217 A1 EP1405217 A1 EP 1405217A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- virtual
- tables
- column
- application
- row
- 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.)
- Withdrawn
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24535—Query rewriting; Transformation of sub-queries or views
Definitions
- the present invention addresses this problem by providing a virtual database system that provides a flexible number and structure of database tables while using a fixed structure database system as its core.
- the virtual database tables and constructs can be varied as needed by application developers (and users) while the structure of the underlying fixed database remains unchanged, thus alleviating concerns regarding changes to the database.
- the virtual database system can be used for a variety of applications.
- a hierarchical application parameter repository is implemented wherein parameters used by specific applications can be defined at various levels, such as for the application as a whole, for the application as used by a particular group, or as used by a particular user.
- Fig. 1 is a block diagram illustrating the operating environment of the present invention
- Fig 2. is a diagram illustrating the high level architectural concepts of the present invention.
- Fig. 3 is a diagram illustrating a fixed table set used for implementing the virtual table system of present invention
- Fig. 4 is an illustration of a virtual table definition
- Figs. 5a-5b illustrate a populated virtual table
- Fig. 6 is an illustration of a sparsely populated virtual table also showing changes to the virtual tables column structure
- Fig. 7 is a high level diagram of the virtual database translator system
- Figs. 8 -18 are flow charts illustrating the operation of various functions illustrated in Fig. 7;
- Fig. 19 is a diagram of a hierarchical application tree
- Fig. 20 is a diagram of a conventional application parameter naming system
- Fig. 21 is a diagram illustrating the real and virtual tables used to implement the hierarchical application parameter repository aspect of the invention.
- Figs.22 and 23 are high level flow charts illustrating a method for getting and setting parameter values;
- Fig. 24 is a high-level diagram of the fixed table set for implementing the virtual table system and the hierarchical application parameter repository according to a preferred embodiment of the invention.
- the present invention provides a virtual database system 10 which can be used by a number of application programs 12.
- the virtual database is configured to appear to an application program 12 as a conventional database system.
- the virtual database system 10 comprises a virtual database translator 14 which is connected to a fixed structure database 16.
- the fixed structured database 16 can comprise any conventionally known database environment.
- the fixed structure database 16 is configured with a limited number of "real" data tables which are used to implement the virtual database system. Virtual tables can be defined, modified, and deleted by changing the contents of the real tables in the fixed database 16 without changing the structure or adding new tables to the fixed database 16.
- fixed structure database 16 Because the structure of the tables in fixed structure database 16 does not need to be updated (although the table contents can change), these tables are also referred to herein as "fixed tables". In this manner, the application program 12 is provided with a flexible and easily changed database environment without compromising the integrity of the underlying fixed structured database 16.
- a hierarchical application parameter repository is linked to the virtual database system.
- the repository provides a mechanism for storing and retrieving application parameter values and defining the values hierarchically, such that different values can be specified, e.g., at the level of an application, group, or user.
- the parameter repository is particularly structured to reduce storage requirements for application parameter names that have a high degree of redundant name segments.
- FIG. 2 there is shown an illustration of the basic architectural concepts which define the virtual database environment.
- the virtual data tables provided by the system and the contents of the virtual tables are defined in a small and fixed number of logical groupings or sets.
- a first set 20 identifies potential defined tables, e.g., by providing a list of names or unique identifiers that can be attached to a defined virtual table.
- a second set 22 identifies columns which can be used in tables.
- a third set 24 specifies associations between, among other things, tables and columns.
- a virtual table is defined when one or more columns in the column set 22 are associated with a "potential" table defined in the table set 20.
- a table in the set 20 can be associated with multiple columns in the column set 22 and one column can be associated with many different tables.
- the table set 20, column set 22, and association set 24 contain metadata which, taken together, defines the structure of the virtual tables which exist in the virtual database environment and which can be used by the application programs 12.
- the present architecture further includes a data object set 26 which contains the actual data used to populate specified cells in a given virtual table.
- Each data object in the set 26 contains information which identifies a particular table, a particular column and row in that table, and the data contained in the cell at the intersection of the specified column and row.
- columns and data object sets 20, 22, 26, preferably and additional set of tags 28 is provided which stores each unique data instance.
- the table definition and population sets 20, 22, 26 contain pointers to the appropriate entry in the tags set 28.
- unnecessary duplication of resources to store commonly entered and reused data is reduced.
- a change to the underlying data instance will immediately be reflected everywhere that instance is linked.
- a variety of techniques can be used to store these limited number of sets in a conventional database system which forms the fixed structure database core 16 of the virtual database system 10. Provided that the sets can be adequately specified and their contents modified, the technology used to implement the underlying database 16 can vary.
- the fixed-structure database 16 is a conventional relational database system.
- the basic architecture can be implemented in other systems, such as an object-oriented database and minor variations in implementation which may be necessary will be apparent to those of skill in the art.
- the complete virtual database environment 10 can be implemented using five discreet tables in a fixed database environment 16 - one table for each of the data sets 20-28.
- a single master table which is used to store the data comprising table set 20, column set 22, and data object set 26.
- a second association table is used to store data which defines the association set 24.
- a third table is used to store the set of tags 28.
- the small number of real data tables which are implemented in the fixed structure database 16 allows the database structure to be optimized to work with these data structures and also simplifies initial system setup and maintenance because of the relatively streamlined architecture.
- the virtual database environment simplifies developing software applications in a database environment which must be tightly controlled in order to preserve system integrity.
- the table structure for complete and stable software can be directly implemented in the underlying core database system 16.
- tables used for systems under development can be implemented using the virtual database system, thereby permitting the developer to easily modify the structure of the tables for the new software without unlocking the tables in the core database. Similar considerations apply for applications in which users can customize the layout and contents of data tables used by the application.
- FIG. 3 there is shown an illustration of the three primary tables used to implement sets 20-28 of the virtual database environment in a relational database environment.
- the three defined tables are a master maps table 30, an association table 32, and a master tags table 34.
- the master maps table 30 is used to define the members in the table and column sets 20, 22 as well as store the data used to populate the virtual tables (e.g., the data objects set 26).
- the data entries shown in Fig. 3 are initial values that can be used to define the tables and columns sets 20, 22 as virtual tables.
- the association table 32 is used to specify an association between different rows in the master maps table 30 for use in defining virtual tables. This is discussed more fully below.
- the master tags table 34 is a directory of unique data values, such as words or numbers. Each unique data value has a corresponding tag which is used for referencing the value. In a particular implementation, multiple master tags tables 34 can be provided, each of which is configured to store information of a specific data-type, such as string or numeric.
- the master maps table 30 is comprised of four separate columns.
- the ID column 302 is used to store an identifying number or value which can be referenced in other columns of the master maps table 30.
- the TED column 304 is used to reference the identity of a particular table to which the given master maps row relates.
- the CID column 306 is used when a row in the master map table 30 indicates data for populating a cell in a virtual table and contains entries indicating the virtual table at issue and the row and column where the population data belongs.
- the tags column 308 is used to reference an entry in a master tags table 34 which provides a value for the respective table, column, or cell contents specified by the master maps table row.
- the various tables implemented on the fixed database 16 will also generally contain one or more internal key columns which provide a unique identifier for each row in the table and which is used by the fixed structure database 16 when accessing the tables.)
- the CID column can also be used to specify the data type to which the tag refers.
- the master maps table 30 is initially populated with data that defines the table set 20 and column set 22 into which the defined list of tables and columns will be placed.
- Row 310 defines a virtual "meta-table” which stores the table set 20.
- a unique predefined “table definition” ID here specified as "1" is used to indicate membership in the table set 20.
- a value of 1 in the TDD column 304 of row 310 indicates that this entry is a member of the table set. (In other words, the set of tables contains itself).
- the tag field of 1 identifies a tag value "table names" which is used to name the set of tables to give meaning to human operators. A tag does not need to be defined but is useful for functions such as displaying the set of defined tables.
- row 312 in the master maps table 30 is used to define the initial meta-table to contain the set of columns 22.
- a predetermined "column definition value”, here the ID of "2”, is used to indicate membership in the column set.
- the column set definition row has a tag which links to the value "column names" which, as with the table names tag, is useful for display and manipulation of the set of columns but is not required.
- two default column definitions (rows 314, 316) are also defined. These rows specify that the tags 1 and 2 represent members of the column set 22. To minimize the number of entries in the master tags table, the column definition rows 314, 316 point to the same tags as used to define the sets themselves. However, there is no requirement that this be so and any tag value could be referenced as desired.
- FIG. 3 Also shown in Fig. 3 are the contents of the table set 20, the column set 22 and the structure of the defined virtual meta-tables.
- the table set 20 contains two defined table identifiers entitled "Table Names” and "Col. Names” (as specified by the tag references to the master tags table 34).
- the column name set 22 also contains two defined column identifiers entitled Table Names and Col. Names.
- the associations in table 32 indicate that each table has a respective column contained in it.
- the initial data in the master map table 30 and association table 32 thus define the virtual Table Name table 20' which contains a column entitled Table Names and the virtual Col. Names table 22' containing a column entitled Col. Names.
- the virtual Table Names column of the Table Names table 20' also contains data (not shown for clarity) indicating the two defined tables, namely Table Names and Col. Names.
- the virtual Col. Names table 22' contains similar data.
- Pre-definition of these virtual meta-tables is provided to permit easy manipulation of the virtual meta-tables.
- the meta-tables 20', 22' to contain the table names and column names sets 20, 22 in this manner, these virtual tables can be operated upon using substantially the same methods as used to process other virtual tables defined by a user.
- the database functionality provided to access more general virtual tables can be leveraged for use with the meta-tables and the number of special-case routines which must be provided by the virtual database software environment for operating on the meta-tables is limited.
- the definition of these sets in the master maps, association, and master tags tables 30-34 is not an architectural requirement of the invention.
- the virtual table environment is configured and can be used to define, populate, and manipulate a variety of virtual tables.
- the creation and modification of an example table will be discussed with reference to figures 4-6.
- FIG. 4 there is shown the data table environment of Fig. 3 further containing definitions for a sample virtual table entitled "Members" which contains three columns: name, telephone, and e-mail.
- the data values which are used to define the name of the table and the columns in the table are added to the master tags table 34.
- the table identified by row 5 contains the columns defined by rows 6, 7, and 8.
- Fig. 4 For reference, also shown in Fig. 4 is the complete contents of the table set 20 and column name set 22 as contained in the master maps table 30 and the structure of the members virtual table 400 defined by the association data.
- the virtual table can be populated with real data.
- FIG 5 a there are shown additional data entries to the master maps and master tags tables 30, 34 which populate two rows of the virtual table members 400.
- Each cell in a virtual table is populated individually by adding a row to the master maps table 30 which identifies the virtual table at issue, the column in that table, and the particular row in which the cell appears.
- the table and column are identified by referencing the appropriate table and column DD in the TDD and CDD fields of the master maps table 30.
- the row is identified by referencing a key which uniquely identifies each row in the virtual table.
- the "unique" key for a row in a virtual table corresponds to a value in the DD field of the master maps table 30.
- a key is unique for a given row in a virtual table, when that row contains multiple columns, the key DD value can appear multiple times in the master maps table 30 since several different cells can be separately defined for a specific row of a virtual table.
- both rows in the member tables specify the same telephone number.
- the master tags table 34 the unique data item specifying the telephone number only needs to be stored once. Re-use of the unique data object is easily facilitated simply by referencing the defined tag, reducing the resources required to specify this data, particularly for commonly used data.
- a single master tags table 34 is used. In certain implementations, it is impractical to use one tags table to store data values of different types. Accordingly, in a preferred implementation, multiple master tags tables are provided, each associating a given tag with a value of a specific data type. As in a conventional database system, a virtual column is specified to contain data of a given data type.
- the CDD field for a specific meta-data column or row entries in the master maps table 30 is used to specify the data type or a particular master tags table which should be used to evaluate tags in descendant rows referencing that specific meta-data row. Although this CDD value can directly identify a given master tags file, preferably, the linkage is indirect and specified via the association table 32.
- Fig. 5b shows the data environment of Fig. 5a having two separate master tag files, a first master tags table 34a containing text values and a second master tags table 34b containing numeric data (which is assumed, for purposes of the present example, to encompass formatted telephone numbers).
- the CDD fields (which are undefined in Fig. 5a) identify which of the two master tags files should be used when obtaining a value for a referenced tag.
- the CDD field in a specific meta data row identifies the tag file to be used for tags in "descendant" rows which reference the specific row.
- This value as provided by entry 21 in the association table 32, references the "numeric" master tags table 34b.
- the appropriate master tags table to use when evaluating tags in other row entries in the master tags table 32 are evaluated similarly by determimng the meta-data row referenced in the given row and using the CDD specified in the parent row to determine which master tags table to use.
- Figure 6 is an illustration of the ease with which the present invention permits the underlying structure of a virtual table to be modified by adding entries to the master maps table 30.
- a new column can be added to a virtual table simply by adding an additional row of data to the master maps table 30 and a corresponding row in the association table 32.
- Additional tags can also be defined as required.
- adding rows to the underlying master maps, association, and master tags tables 30, 32, 34 does not alter the structure of those fixed tables, only their contents. As a result, after these tables are initially defined in the core fixed database system 16, their structure can be "locked", helping to preserve system integrity while still providing a flexible virtual database environment.
- a new row 338 is added to the master maps table 30 so as to add a new column "fax" to the column set 22.
- Row 340 added to the association table 32 specifies that the new column is a member of the table 5.
- the cells in each row are defined individually, the overall virtual table can be sparsely populated and system resources used only when storing data within a particular cell. If a cell is empty, then no resources are used to represent that fact. This can greatly reduce the amount of system resources needed to store a large but sparsely populated virtual table.
- the structure and content of a virtual table can easily be extracted and presented to an application program for subsequent use.
- the virtual table can be easily modified by adding appropriate rows to the underlying meta-data tables 30, 32, 34 and deletions of the contents of data cells, rows, columns, and even entire tables can be accomplished by removing the appropriate rows from the master maps and association tables.
- FIG. 7 there is shown a high level block diagram of the various functional elements which comprise the virtual database translator 14 (Fig. 1).
- the translator 14 contains a number of different functional module groups which together implement a basic set of database functions that allow the virtual database system to appear to an application program 12 as if it were a conventional database.
- a separate virtual database interface 15 can be defined which permits application programs 12 to interact with the translator 14 using conventional programming techniques.
- a database management system 17 which can be used by the translator 14 when accessing the contents of the fixed structure database 16.
- the function groups illustrated in figure 7 have been arranged into broad groupings including a set of virtual element creation module 72, deletion module 74, table formatting module 76, data retrieval modules 78 and lower level virtual element mapping modules 80. These groupings are for convenience and discussion purposes only and the particular programming modules and functionality can be organized and arranged in a wide variety of different configurations. Moreover, as will be recognized by those of skill in the art, various of the specifically discussed functions can be combined and it may not be necessary to define all of the functions in particular implementations.
- the virtual element creation module set 72 comprises functions which permit an application to define a new virtual table, add a new column to a virtual table, and populate a cell within a virtual table.
- the virtual element deletion module set 74 contains functions which allow an application program to delete a cell, row, or column of a virtual table or an entire virtual table itself.
- the data retrieval module set 78 contains functionality which permits an application program to retrieve the contents of a virtual table and also retrieve a list of the defined tables and the defined columns, e.g., the contents of the tables and columns sets 20, 22.
- a table formatting module 76 can be provided to format retrieved virtual table data in a manner which is suitable for the programming environment. The particular table format used depends in large part on the operating environment present on the implementing system and the manner in which the application programs are allowed to access the data. For example, in one embodiment, the table formatting module 76 can be configured to return virtual table and other data in a format compatible with an Excel spreadsheet or a Microsoft Access database.
- a lower level element mapping module set 80 can be additionally provided and which comprises functionality for mapping a specific value name, such as "members" to a corresponding tag number, table ED, or column DD, so that application programs can reference tables and columns by their names.
- a separate data cache 82 can be provided for use as a temporary repository for data retrieved from the fixed structure database 16.
- the cache 82 can also be used to store images of particular virtual tables so that repeated use does not require that the structure and contents of the virtual table be continually rebuilt from the source data in the master maps, tag, and association tables 30, 32, 34.
- Any suitable caching system known to those of skill in the art can be used and the types of data which is cached and the manner of caching is a matter of design choice.
- Figures 8 — 18 are flow charts which illustrate a particular methodology which can be used to implement the various functions specified in figure 7.
- FIG. 8 Each of the flowcharts will now be discussed.
- the various virtual database functions are discussed with reference to a single master tags table 34.
- the described functionality can be extended to include the data typing and CDD cross-referencing necessary to manage and use the various master tag tables.
- Such data-type aware functionality can be implemented in various ways and appropriate methods will be known to those of skill in the art.
- FIG 8 there is shown a flow chart of a method for retrieving a list of the defined table and column names in the virtual database.
- This functionality is useful for providing information to an application program for building and editing virtual tables.
- the system receives a request to list those defined virtual tables or columns in the system.
- the tag value in each retrieved row is evaluated against the master tags table 34 to obtain the value of the identified members of the table or column set.
- the retrieved list can be returned as a collection or list of name data to be used by the requesting application.
- the data is formatted as a table having a single column and is returned to the user in a manner similar to that used to return virtual table data.
- the table is formatted with a column that contains the members of the table or column set 20, 22.
- the column is given a name in accordance with the tag indicated in the appropriate master maps table row.
- Step 806 Referring to the example data shown in Fig. 3, the table containing members of the table set 20 and the column within that table are both defined as "table names”. Finally, the data can be formatted in accordance with general system requirements and perhaps options specified by the calling application and then returned to the calling program. (Step 808).
- Figure 9 is a flow chart illustrating a general method for retrieving the contents of a virtual table.
- a request is received by the virtual table system to retrieve the contents of a virtual table having a specified DD (Step 900).
- the row in the master maps table 30 having the specified table DD is retrieved and the defined tag is mapped to the master tags table 34 in order to obtain the name of the virtual table.
- Step 902 Alternatively, if the table is specified according to its name, a GetTableDD function can be implemented in order to map the name to a corresponding DD in a master maps table 30. A method for doing this is illustrated in figure 11, discussed below.
- the association table 32 is accessed to identify the columns which have been associated with the particular table.
- Step 904 The corresponding rows in a master maps table for the associated columns are accessed and the defined tags are mapped to the master tags table 34 to identify the names given to the columns in the virtual table.
- Step 906 The retrieved table and column names are then used to build the structure of the virtual table.
- Step 908 The particular form in which the table structure is defined is dependent upon how the virtual tables are to be represented in system memory and returned to an application program. Different formats are available and will be known to those of skill in the art.
- the data populating the virtual table is retrieved.
- the rows in the master maps table 30 which contain a TDD equal to the defined table DD are identified.
- the DD for each identified row in the master maps table 30 identifies a particular row in the virtual table and the corresponding CDD value identifies a particular column.
- the two values thereby define a unique cell in the virtual table the contents of which is specified (indirectly) by the tag in the respective row of the master maps table 30.
- Step 914 After all of the table-populating rows have been processed, the populated virtual table is formatted as appropriate, and possibly in further accordance with user input options, and the virtual table is returned to the calling program.
- FIG 10 is a flow chart illustrating a method for defining a new virtual table.
- the tag corresponding to the desired virtual table name is retrieved from the master tags table 34 or, if needed, a new tag is defined.
- Step 1002 Next, input is received identifying the columns which are to appear in the new table.
- the table definition can be an interactive or iterative process. Alternatively, the application program can pass all of the table definition parameters at once).
- a GetTableDD function can be provided to map a key word to a corresponding table DD number.
- the function receives a key word table name as input. (Step 1100).
- Figure 12 is a flow chart for a function which will return a column DD corresponding to specified key word.
- a number of operations on a virtual table require determining a tag which corresponds to a specified value.
- a particular implementation of a general GetTag function is illustrated in figure 13. Initially, the value data is received as input (Step 1300) and that value is mapped to the master tags table 34. (Step 1302). Preferably, and unlike the more specific GetTableDD and GetColumnDD functions, if the specified value is not present in the table (Step 1304), the value is added to the master tag table and a new corresponding tag value is defined. (Step 1306). The previously or newly-defined tag is then returned.
- This GetTag functionality is particularly useful when new tables, columns, and cell contents are defined because the act of definition implies that a new tag value be created if one does not already exist.
- the GetTag function is implemented with a flag which would disable the automatic updating of the master tags table 34 and thus permit the system to easily determine if a tag has been previously defined or if the reference is to an undefined value.
- Figure 14 is a flow chart illustrating a basic method for populating a cell in a previously defined virtual table.
- a populate cell request receives as input the identity of the table and column at issue, the key for the row containing the cell at issue, and the data to place in that cell. (Step 1400). If necessary, the DD for the specified table and column are retrieved. If the table and column are not previously defined, appropriate errors can be returned to the calling program. (Steps 1402-1412). Once the table and column DD have been determined, the specified key for the row is examined.
- Specifying a row key equal to zero or null can be used to indicate that a new row should be defined in the specified virtual table. (Step 1414). Alternatively, another predefined input or program flag can be used to specify a new row definition. If a new row is to be defined, a unique DD value is generated (relative to the previously defined DDs in the master maps table 30) and used as the key for the row. (Step 1416). The tag corresponding to the desired cell value is then retrieved, perhaps with the addition of that value to the master tags table 34 as provided by the GetTag function of Fig. 13. (Step 1418).
- a new row in the master maps table 30 is created having an DD equal to the specified or newly-defined row key, a TDD equal to the table DD, a CDD equal to the column DD, and a tag equal to the tag corresponding to the data which should be in the cell. (Step 1420).
- Figure 15 is a flow chart of a function to delete the contents of a cell in a virtual table.
- the function receives as input a table name, column name, and row key identifier. (Step 1500). If necessary, the DD for the specified table and specified columns are retrieved and, if an improper reference is made an appropriate return code issued. (Steps 1504-1512). The corresponding row in the master maps table having an DD equal to the row key, a TDD equal to the table DD and a CDD equal to the column DD is identified and deleted from the master maps table 30. (Step 1514).
- figure 16 is a flow chart illustrating the deletion of a row in a virtual table.
- the system receives as input a table name and the key identifying the row in the virtual table to be deleted. (Step 1600).
- the identity for the specified table is retrieved and, if an improper reference is made, an error code returned to the calling program. (Step 1602-1606).
- Each row in the master maps table having an DD equal to the row key and a TDD equal to the identified table name is then identified and subsequently removed from the master maps table. (Step 1608).
- Figure 17 is a flow chart illustrating one method of deleting a column in a virtual table.
- the system receives a table name and column name identifier as inputs and subsequently retrieves the corresponding table and column DDs, for example, by using the GetTableDD function of Fig. 11 and GetColumnDD function of Fig. 12. Error return codes can be returned in the case of an improper table or column reference.
- each row in the master maps table which references the column for the specified table is also deleted.
- the association between the identified table and the deleted column is removed from the association table 32. (Step 1718).
- Figure 18 is a flow chart of a method for deleting a virtual table.
- the system receives the table name as input and determines the corresponding DD for that table, returning an invalid table error in the case of an improper reference.
- Steps 1800-1806 All rows in the master maps table having a TDD equal to the table DD are identified and deleted.
- all column associations to the specified table are deleted from the association table 32.
- the row in the master maps table which defines the virtual table i.e., the row having an DD equal to the table DD is deleted. (Steps 1810, 1812).
- this set of functionality provides the tools which are required for an application program to create, manipulate and utilize a virtual database system which is based on a fixed table structure containing only three predefined tables. More complex functionality can be provided by building upon this set of basic database functions. For example, an SQL query engine can be specified which will receive database queries from an application program and issue the appropriate low level database commands to the virtual database system. As a result, for all intents and purposes, the virtual database system will appear to an external application as if it is an entire database system and the application program can operate without knowledge of the fact that a fixed structure database 16 is at the core of the virtual database system 10.
- a hierarchical application parameter repository is provided which is configured to efficiently store parameter values for multiple applications and also provide automatically hierarchical specifications of parameter values.
- the hierarchical parameter repository is linked to the virtual database system and at least some of the tables used by the repository system are implemented as virtual tables.
- the repository can be implemented using only a small number of "real" tables in the fixed database system 16 while additional virtual tables are implemented as needed.
- Fig. 19 is a tree diagram of an application and user hierarchy 1900.
- a typical computing environment has a plurality of applications 1902.1-1902. n.
- Each application can be used by a number of specified users 1906.1-1906.m.
- the users are generally organized into groups, such as departments and divisions. While multiple groups may use a common application, various aspects of the application will often need to be customized for each group. Similarly, users are generally permitted to customize particular aspects of an application, such as its appearance and whether certain features are automatically enabled or must be manually started.
- An application that is written to be used in this type of environment will conventionally include various parameters that can be assigned values to define how the application is customized. (In the present discussion, parameters are also and interchangeably referred to as "properties").
- One technique for defining such values is hierarchical. The property is first assigned a default value at the application level. Each group using the application can then specify a value for the property which will override the application-level value. Similarly, users can be permitted to specify a value which will override higher-level group and application values.
- This type of hierarchy will be referred to herein as "AGU" (Application, Group, User).
- the present hierarchical application parameter repository will allow the AGU concept to be easily and essentially transparently implemented in a multi-user application environment.
- the AGU parameter repository is preferably configured to efficiently manage parameters which are named in accordance with a common naming convention.
- naming conventions which are used for internal variables, such as program parameters.
- Figure 20 is a diagram of a conventional application parameter naming system.
- An application typically has a number of internal modules and sub-modules. Parameters are generally named using one or more prefix segments which indicate the hierarchical location in the application of the parameter followed by a more generic name. For an application with a single layer of modules, parameters could be represented in the form ⁇ applicatiori>. ⁇ module>. ⁇ name>.
- application FOO 2000 contains three modules: Main 2002, System 2004, and Display 2006. A background color parameter used by the display module can then be specified as foo. display. bkg_colof '.
- This hierarchical naming system ensures that parameters are uniquely named across the various program modules while still permitting the use of commonly used names. However, it also introduces a very large degree of repetition in the parameter names. For example, the parameters associated with the display module all have the prefix "foo. display". This makes storage of the full parameter names unwieldy.
- the preferred implementation of the hierarchical parameter repository according to this aspect of the invention implements an efficient method for storing and referencing parameter names.
- Fig. 21 is a diagram illustrating the real and virtual tables used in a preferred implementation of the hierarchical application parameter repository aspect of the invention.
- the application hierarchy shown in Fig. 19 is represented by the Application User Map table 2100 which provides a unique reference number for each node in the hierarchical tree. This reference number is referred to herein as the "AGU" number.
- Each defined parameter or property has a unique property DD (PDD).
- the Property Values table 2110 stores the value assigned to each parameter or property and different values can be assigned to the same property for different AGU numbers. This permits a parameter to be assigned, for example, a default value for the application which can be overridden by a value defined at the group level (and further overridden by a user-defined value).
- the Config Map table 2120 is used to implement a hierarchical parameter naming system, such as shown in Fig. 20, and provide a PDD value for each parameter.
- the application user map table 2100 is configured to have a uniquely numbered row (identified by the AGU number) that corresponds to each node in the application hierarchy.
- Each separate application, user, group, or other hierarchical set, is given a respective DD.
- the hierarchy shown in Fig. 19 contains application with DDs 101 and 102, groups having DDs 201, 202, and users with DDs 300-302.
- a column in the table 2100 is provided for each level in the hierarchy and is used to store a respective DD for a node at that level.
- a specific node in the application hierarchy is represented in a row of the application user map 2100.
- the row indicates the respective DD values of the various nodes on the path from the application node to the specific node at issue. If the node is an "internal node" (and has descendant nodes), the DD values in the columns for lower levels in the hierarchy can be assigned a null, zero, or other value indicating the intermediate node status.
- numeric identifiers are used which are cross-referenced to one or more corresponding reference tables 2140.
- these tables can be implemented in the fixed database system 16, preferably they are implemented as virtual tables in the virtual table system and, most preferably, each level in the hierarchy has an associated cross-reference table as shown.
- Various cross-referencing techniques can be used.
- the Config Map table 2120 provides an efficient, mechanism for mapping a parameter name to a property DD.
- a parameter name generally comprises one or more segments, such as ⁇ application>. ⁇ module>. ⁇ name>.
- the relationship between the segments can be represented in a hierarchical tree format, such as in Fig. 20.
- the config map table 2120 is a preferred manner of representing such a tree.
- the table 2120 has three columns, a PDD column which contains property DD numbers, an FDD column which references a parent or "father" PID (or is a null or zero value if it is a top-level entry).
- the third column contains data which indicates the name for respective segments.
- segment names can be represented directly in the config map 2120, preferably the values are represented by suitable tags and a TAGDD table 2130 is provided to cross-reference the tag DD to a segment value.
- the TAGDD table 2130 is implemented as a virtual table.
- the entire parameter name can be reconstructed and a unique PDD value for that parameter is provided by the PDD for the lowest or leaf node in the chain.
- the PDD for the parameter ⁇ foo. display. bkg_color' ' ' can be determined by first translating the segments into the corresponding tag values, e.g., 50.51.52. These values can then be cross-referenced to the TAGDD column in the config map table 2120. The PED-FDD chain is traversed using conventional techniques to identify the unique path which has these tag values and thereby the unique PDD for that parameter.
- the unique property DD value for the parameter "700. display. ,bkg_color” is 20.
- the unique PID for the sample parameter "foo.display.resolution" is 21.
- a GetY a ⁇ ue(parameter) function is implemented which can be called by an application program.
- the functionality is summarized in the flowchart of Fig. 21.
- the operation system (or other functionality) also passes information which indicates the various hierarchical details of the environment from which the call was made, e.g., the application name, the group, and the user.
- the PDD of the parameter is determined.
- the passed hierarchical names are also translated into corresponding DD numbers, such as an ADD, GDD, and UDD, by cross-referencing appropriate tables, such as virtual reference tables 2140.
- the value of the parameter is hierarchically determined by retrieving the defined value for the parameter for the AGU hierarchy in a top- down sequence and replacing a higher-level value with a lower-level value, until the AGU hierarchy has been traversed.
- the final value is then returned to a caller. More specifically, starting at the top level of the hierarchy (step 2206), the AGU number for each hierarchical level in the hierarchical details passed to the GetValue function is determined and the value of the parameter for that AGU number is determined. (Step 2208) . If a parameter value is defined at that level (step 2210), the current value of the parameter is set to the retrieved value (step 2212). If there are additional levels in the hierarchy (step 2214), the process continues at the next level of the hierarchy. (Step 2216). After all specified levels in the hierarchy have been examined, the final current value of the parameter is returned. (Step 2218).
- AGU 2
- the process continues to the lowest level of the hierarchy which provides a parameter value of "green”. If a parameter is not defined at a given hierarchical level, the existing return value is retained. The process continues until the entire hierarchy has been traversed after which the final value ("green” in the example) is passed back to the calling program.
- a similar function SeWa ⁇ ue(parameter, value) can be defined.
- a high-level flowchart of this function is shown in Fig. 23.
- the calling program passes the parameter name and value to set as well as data indicating the hierarchical position the value is to be defined (e.g., application and group names for a parameter defined at the group level).
- the parameter is translated to determine the corresponding PDD.
- Step 2302 If no PDD is defined (Step 2304) , the config map table 2120 and tagid virtual table 2130 can be updated as needed to define the new parameter (Step 2306).
- the hierarchical data is also translated to determine the corresponding DDs at the hierarchical definition level and thereby the AGU number.
- Step 2308 If the parameter is aheady defined at that level in the property values table 2110 (step 2310), the prior value is replaced (step 2314). Otherwise, a new row is added to the property values table 2120 containing the appropriate AGU and PDD numbers (step 2312) and the new property value added to that row.
- an additional "Property Perms" table 2170 (not shown in Fig. 21) can be provided to indicate which parameters are read-write, read-only, etc. Restrictions can be defined hierarchically such that, for example, a parameter is read-write at the group level, but not at the user-level. When the SetValue function is called, the property perms table 2170 can first be accessed to determine if there are any restrictions on setting the specified parameter.
- An AGU Table Map 2150 (fig. 21) provides a cross-reference between AGU numbers and an DD in the master maps table 30.
- the master maps DD can be used to reference a virtual table, a column, or a row within a virtual table.
- each application can have a corresponding virtual table 2160 and the AGU table map 2150 associates the DD of the corresponding table with the application-level AGU value. Group and user-level AGU values can then be used to reference particular columns or rows within the application table.
- the application level AGU DD for application 101 is 1 and this is linked to virtual table DD 30.
- User 302 of application 101 in group 201 has an AGU of 6 and this is linked by the AGU table map 2150 to DD 50, which is a row in table 2160.
- Other variations are also possible. Any type of information can be stored in the tables and rows and this mechanism provides an efficient way to dedicate virtual table storage space to application, groups, users, etc. for use as needed.
- Fig. 24 is a high-level diagram of the fixed table set for implementing the virtual table system and the hierarchical application parameter repository according to a preferred embodiment of the invention.
- the complete virtual database system and a linked hierarchical application parameter repository can be implemented using only a small number of simple relational tables with a fixed structure. (Multiple master tag files defined for specific data types are not shown for clarity). New tables can be added to the virtual table system without changing the structure of the underlying tables shown.
- the application parameter repository provides automatic hierarchical parameter valuation according to a defined application-group— user hierarchy. By linking the repository the virtual table system, the number of tables which are implemented in the fixed database core is minimized and applications, groups, users, etc. can easily be linked to specific virtual tables or portions thereof according to their position in the application hierarchy.
- the invention in its various aspects, can be implemented utilizing various conventional database systems and operated on a wide variety of different computing platforms including conventional stand-along and networked database environment and other types of computing systems, including so-called “smart appliances", personal digital assistants, and other electronic devices which need to store data in a flexible manner.
- the methodology of the invention will typically be encompassed by a collection of database table definitions which implement the fixed database structures in the core database or software code to create these database structures.
- the various functional elements discussed with respect to Fig. 7 and elsewhere can be implemented using conventional programming languages and techniques which will be known to those of skill in the art.
- the resulting computer software can reside in RAM, ROM, or on a computer program product, such as a magnetic or optical disk.
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29828601P | 2001-06-14 | 2001-06-14 | |
US298286P | 2001-06-14 | ||
PCT/US2002/018910 WO2002103573A1 (en) | 2001-06-14 | 2002-06-13 | A flexible virtual database system including a hierarchical application parameter repository |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1405217A1 true EP1405217A1 (en) | 2004-04-07 |
EP1405217A4 EP1405217A4 (en) | 2007-07-11 |
Family
ID=23149852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02737504A Withdrawn EP1405217A4 (en) | 2001-06-14 | 2002-06-13 | A flexible virtual database system including a hierarchical application parameter repository |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP1405217A4 (en) |
WO (1) | WO2002103573A1 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10113515A1 (en) * | 2001-03-20 | 2002-10-02 | Bfm Building & Facility Man Gm | Database system |
US8117187B2 (en) | 2005-10-28 | 2012-02-14 | Mediareif Moestl & Reif Kommunikations-Und Informationstechnologien Oeg | Method for controlling a relational database system |
US7937390B2 (en) | 2006-06-01 | 2011-05-03 | Mediareif Moestl & Reif Kommunikations-Und Informationstechnologien Oeg | Method for controlling a relational database system |
US7774337B2 (en) | 2006-07-11 | 2010-08-10 | Mediareif Moestl & Reif Kommunikations-Und Informationstechnologien Oeg | Method for controlling a relational database system |
US7756731B2 (en) * | 2006-08-15 | 2010-07-13 | Amadeus S.A.S. | System for managing travel vouchers and method of same |
US7603388B2 (en) | 2006-09-26 | 2009-10-13 | Microsoft Corporation | Representing file data using virtual hierarchy |
US8631034B1 (en) | 2012-08-13 | 2014-01-14 | Aria Solutions Inc. | High performance real-time relational database system and methods for using same |
US10430406B2 (en) | 2012-08-13 | 2019-10-01 | Aria Solutions, Inc. | Enhanced high performance real-time relational database system and methods for using same |
GB2509978A (en) * | 2013-01-21 | 2014-07-23 | Ibm | Polymorphic columns in database |
CN107273369B (en) * | 2016-04-06 | 2020-11-20 | 创新先进技术有限公司 | Table data modification method and device |
US11409729B2 (en) | 2017-12-01 | 2022-08-09 | International Business Machines Corporation | Managing database object schema virtual changes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2172130A (en) * | 1985-03-07 | 1986-09-10 | Oki Electric Ind Co Ltd | Method and system for managing view |
EP0230279A2 (en) * | 1986-01-16 | 1987-07-29 | Hitachi, Ltd. | Method of controlling database access |
JPH0798669A (en) * | 1993-08-05 | 1995-04-11 | Hitachi Ltd | Distributed data base management system |
US5701453A (en) * | 1993-07-01 | 1997-12-23 | Informix Software, Inc. | Logical schema to allow access to a relational database without using knowledge of the database structure |
WO2000079434A1 (en) * | 1999-06-22 | 2000-12-28 | Internet Dynamics, Inc. | Query interface to policy server |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634053A (en) * | 1995-08-29 | 1997-05-27 | Hughes Aircraft Company | Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases |
US5901214A (en) * | 1996-06-10 | 1999-05-04 | Murex Securities, Ltd. | One number intelligent call processing system |
US5761494A (en) * | 1996-10-11 | 1998-06-02 | The Sabre Group, Inc. | Structured query language to IMS transaction mapper |
US6185560B1 (en) * | 1998-04-15 | 2001-02-06 | Sungard Eprocess Intelligance Inc. | System for automatically organizing data in accordance with pattern hierarchies therein |
-
2002
- 2002-06-13 EP EP02737504A patent/EP1405217A4/en not_active Withdrawn
- 2002-06-13 WO PCT/US2002/018910 patent/WO2002103573A1/en not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2172130A (en) * | 1985-03-07 | 1986-09-10 | Oki Electric Ind Co Ltd | Method and system for managing view |
EP0230279A2 (en) * | 1986-01-16 | 1987-07-29 | Hitachi, Ltd. | Method of controlling database access |
US5701453A (en) * | 1993-07-01 | 1997-12-23 | Informix Software, Inc. | Logical schema to allow access to a relational database without using knowledge of the database structure |
JPH0798669A (en) * | 1993-08-05 | 1995-04-11 | Hitachi Ltd | Distributed data base management system |
WO2000079434A1 (en) * | 1999-06-22 | 2000-12-28 | Internet Dynamics, Inc. | Query interface to policy server |
Non-Patent Citations (3)
Title |
---|
LORENTZ D. ET AL.: "Oracle 8i Reference Release 2 (8.1.6)" 1999, ORACLE CORPORATION , REDWOOD, CA, USA , XP002434092 * pages 2-3 - pages 2-6 * * pages 2-43 - pages 2-49 * * pages 2-75 - pages 2-83 * * pages 2-92 - pages 2-93 * * pages 2-163 * * |
LU H ET AL: "DESIGN OF A DISTRIBUTED DATA DICTIONARY SYSTEM" PROCEEDINGS OF THE NATIONAL COMPUTER CONFERENCE. CHICAGO, JUNE 15 - 18, 1987, AFIPS CONFERENCE PROCEEDINGS, RESTON, AFIPS PRESS, US, vol. VOL. 56, June 1987 (1987-06), pages 583,585-590, XP000746606 * |
See also references of WO02103573A1 * |
Also Published As
Publication number | Publication date |
---|---|
EP1405217A4 (en) | 2007-07-11 |
WO2002103573A1 (en) | 2002-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220179876A1 (en) | Metadata hub for metadata models of database objects | |
US7599948B2 (en) | Object relational mapping layer | |
US9009099B1 (en) | Method and system for reconstruction of object model data in a relational database | |
US8612468B2 (en) | System and method for retrieving data from a relational database management system | |
US6279008B1 (en) | Integrated graphical user interface method and apparatus for mapping between objects and databases | |
US6374252B1 (en) | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon | |
US7533136B2 (en) | Efficient implementation of multiple work areas in a file system like repository that supports file versioning | |
US8161074B2 (en) | Operationally complete hierarchical repository in a relational database | |
US9218409B2 (en) | Method for generating and using a reusable custom-defined nestable compound data type as database qualifiers | |
US7539672B2 (en) | Apparatus, system, and method for direct retrieval of hierarchical data from SAP using dynamic queries | |
US20040015516A1 (en) | Object graph faulting and trimming in an object-relational database system | |
JP2001527243A (en) | Method and apparatus for generating an index in a relational database corresponding to a class in an object-oriented application | |
KR20060050965A (en) | Durable storage of .net data types and instances | |
JP4351530B2 (en) | Efficient index structure for accessing hierarchical data in relational database systems | |
US7685155B2 (en) | System and method of providing and utilizing an object schema to facilitate mapping between disparate domains | |
US7543004B2 (en) | Efficient support for workspace-local queries in a repository that supports file versioning | |
WO2002103573A1 (en) | A flexible virtual database system including a hierarchical application parameter repository | |
JP2006524376A (en) | Generic database schema | |
US11561976B1 (en) | System and method for facilitating metadata identification and import | |
Cabibbo et al. | Managing inheritance hierarchies in object/relational mapping tools | |
CN113282579A (en) | Heterogeneous data storage and retrieval method, device, equipment and storage medium | |
CN102289448A (en) | Accessing entities of data access layer | |
WO1999033004A1 (en) | An integrated graphical user interface method and apparatus for mapping between objects and databases | |
EP4170516A1 (en) | Metadata elements with persistent identifiers | |
US11940951B2 (en) | Identification and import of metadata for extensions to database artefacts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20040114 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: MEI, SHUEN Inventor name: SANTOS, ROBERT, J. Inventor name: TERVIN, ROBERT, J. |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20070612 |
|
17Q | First examination report despatched |
Effective date: 20070831 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20110621 |