Abstract:
A data-driven database management system in which data may be stored in memory rather that on a hard-disk drive. The data may be stored using memory address pointers and address off-sets. A user may define previously unknown data storage styles and implement plug-in logic for accessing such data of a previously unknown data style.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims the benefit of the filing date of U.S. Provisional Application Ser. No. 60/546,233 filed on Feb. 20, 2004 and entitled “Data Driven Database Management System.  
         [0002]     Memory-Resident Database Management System and Implementation Thereof; Ser. No. 10/347,678; Filed on Jan. 22, 2003; Inventors: Tianlong Chen, Jonathan Vu.  
         [0003]     Distributed Memory Computing Environment and Implementation Thereof; application Ser. No. 10/347,677, Filed on Jan. 22, 2003; Inventors: Tianlong Chen, Jonathan Vu, Yingbin Wang.  
         [0004]     Invariant Memory Page Pool and Implementation Thereof; Ser. No. 10/425,730, Filed on Apr. 30, 2003; Inventors: Tianlong Chen, Yingbin Wang, Yinong Wei.  
         [0005]     Central Linked List Data Structure and Methods of Use; Filed Jul. 9, 2002, U.S. Pat. No. 6,785,674; Inventor: Jonathan Vu.  
         [0006]     A Method and or System to Perform Automated Facial Recognition and Comparison Using Multiple 2D Facial Images Parsed from a Captured 3D Facial Image; Ser. No. 10/757,144, filed on Jan. 14, 2004 and claiming the benefit of U.S. Provisional Application No. 60/440,338 filed on Jan. 16, 2003; Inventors: Donald A. Milne, III and Jonathon Vu.  
         [0007]     Image Indexing Search and Implementation Thereof; U.S. patent application Ser. No. 10/718,738 filed on Nov. 21, 2003 claiming the benefit of U.S. Provisional Patent Application Ser. No. 60/454,315 filed on Mar. 14, 2003; Inventors: Tianlong Chen, Yi Rui, Yingbin Wang, and Yinong Wei.  
         [0008]     Single Computer Distributed Computing Method and Apparatus for Facial Identification Enhancement; U.S. patent application Ser. No. 10/425,729; filed on Apr. 30, 2003; Inventors: Tianlong Chen, Donald A. Milne, Iii, Yi Rui, Yingbin Wang, Jonathan Vu, And Yinong Wei.  
         [0009]     Integrated Portable Identification and Verification Device; U.S. patent application Ser. No. 10/635,516; filed on Aug. 5, 2003; Inventors: Donald Milne, III and Tianlong Chen.  
         [0010]     The entirety of each of the aforementioned patents and applications is incorporated by reference herein. 
     
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT  
       [0011]     Not applicable.  
       FIELD OF THE INVENTION  
       [0012]     The present invention is related to a new type of database management system and more particularly to a data driven database system and its implementation.  
       BACKGROUND OF THE INVENTION  
       [0013]     Traditional database management systems such as relational database management systems are rather well-defined in not only query statements but also data storage structures such as tables, which are typical of disk-based databases.  
         [0014]     When memory becomes cheaper and cheaper, memory-based databases will become the main trend of the database industry. A memory-based database is not just faster than disk-based database because of memory being faster than disk, but also it has other characteristics distinguishing it from disk-based databases. One distinguishing characteristic is that one can use memory address pointers directly to represent a relationship between data, which normally is not available or not easily available in a disk-based database, and one can embed the business logic into database system to directly manipulate data and data relationship. Such characteristics make it easy to build more complicated data storage structure and database management system.  
         [0015]     The present invention utilizes the uniqueness of memory-based databases in a new type of database management system, i.e., a data-driven database management system.  
         [0016]     Traditional databases, and especially relational databases, use table-like data structures and also use tables as a data storage format. However, a table-like data structure may not be the best data structure and storage format for data searching. The present invention of a data-driven database provides a flexible data management system for various data search and management needs.  
       SUMMARY OF THE INVENTION  
       [0017]     The present invention disclosed and claimed herein is a method and system for constructing a new type of database management system in which a user of the database can map their desired data structure into the database management directly.  
         [0018]     In still another aspect of the disclosed embodiment, a method of mapping a data structure into a database management system is disclosed.  
         [0019]     In still another aspect of the disclosed embodiment, a method of inserting matching logic into a database management system for matching the mapped data is disclosed.  
         [0020]     Still other aspects, features, and advantages of the present invention are readily apparent from the following detailed description, simply by illustrating preferable embodiments and implementations. The present invention is also capable of other and different embodiments, and its several details can be modified in various respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature, and not as restrictive. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0021]     For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description and the accompanying drawings, in which:  
         [0022]      FIG. 1  illustrates a conceptual block diagram of the basic concept of the Data-Driven Database Management (DDDM).  
         [0023]      FIG. 2  illustrates a conceptual block diagram of the basic concept of data matching in the Data-Driven Database Management.  
         [0024]      FIG. 3  illustrates a conceptual block diagram of the data mapping for a data tree relationship in the Data-Driven Database Management.  
         [0025]      FIG. 4  illustrates a conceptual block diagram of the data mapping for a sorted linked list relationship in the Data-Driven Database Management.  
         [0026]      FIG. 5  illustrates a conceptual block diagram of the traditional database management system architecture.  
         [0027]      FIG. 6  illustrates a conceptual block diagram of the Data-Driven Database Management System architecture. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0028]      FIG. 5  illustrates a most commonly used application architecture that involves a database management system, in which a customer client application  501  connects through an application server  503  to access database  513 . The application server  503  is an optional layer in some application environment. In an environment without application server  503 , client application  501  can directly access database  513  through DB Connection layer  505 , which is either direct API (Application Programming Interface), ODBC or JDBC. In the case that application server  503  does exist, the DB Connection layer  505  may reside inside application server  503 . Then data access uses SQL  507  database language to access data storage  509  for query, update or delete operations. In conventional systems, the business logic is built in client application  501 , or more likely in application server  503 . Regardless what kind of application is used in such conventional systems, the underlying data storage format, that is how data is stored in the database management system, is fixed to be a table or its variations, and the data storage format cannot be changed.  
         [0029]     However, given any business logic, the default data storage format may not be the best storage format for fast data access, and the business logic is normally indirectly connecting to the data storage through various overhead layers such as the application server.  
         [0030]     Referring to  FIG. 6 , the present invention shows a new type of database management architecture in which the data storage format inside data storage  609  can be specified (called data mapping  617  herein) by a user before the data is stored into the database  609 , and a user a can plug-in his own logic  607  into the database  609  directly to access data based on the data storage format. Such architecture provides more flexibility and faster access time.  
         [0031]     Still referring to  FIG. 6 , such data driven architecture can be used in disk-based database system, however, such architecture is more suitable for a memory-based database management system, because, in memory, a memory address pointer can be used more easily than in a disk-based database management system.  
         [0032]      FIG. 1  illustrates a possible method for mapping a data relationship  113  to a data storage format  115 . Still referring to  FIG. 1 , Data 1   101  has a relationship  103  with Data 2   105 , and Data 1   101  can be one kind of data type, and Data 2   105  can be another kind of data type. When the data relationship is mapped  117  into data storage, it becomes that Data 1   101  is mapped to Data 1   107  in storage, Data 2   105  is mapped Data 2   111  in storage and relationship  103  is mapped to a memory address pointer  109  in storage. The address pointer  109  remembers (or called “points to”) the storage location of Data 2   111  in storage. When one accesses Data 1   107  in the database, the associated memory pointer  109  indicates Data 1   107  has “relationship” with Data 2   111 , and by accessing the address pointed to by the address pointer  109 , one can find Data 2   111  directly. Besides the address “points to” functionality, the address pointer  109  can also include other relationship information, such as relationship type, relationship access security information etc.  
         [0033]     A more complicated data relationship such as a tree structure is illustrated in  FIG. 3 , where all data are of same data type Data 1 , and Data 1  ( 1 )  301  has a relationship  303  with right child Data 1  ( 2 )  305  and a relationship  309  with left child Data 1  ( 3 )  307 . Each data of Data 1  type, can be mapped  321  from vision concept  317  into a data storage  319  format Data 1   311  in storage with Left Address pointer  313  and Right Address pointer  315 , where Left Address pointer  313  can be stored one unit offset from Data 1   311 , and Right Address pointer  315  can be stored two units offset from Data 1   311 . When one accesses Data 1   311 , by accessing its Left Address pointer  313 , one can find the storage location of its left child and by accessing its Right Address pointer  315 , one can find the storage location of its right child. Again address pointers  313 ,  315  can include other relationship information.  
         [0034]     A data relationship such as a linked list is illustrated in  FIG. 4 , where all data are of same data type Data 1 , and Data 1  ( 1 )  401  links  407  to Data 1  ( 2 )  403  and Data 1  ( 2 )  403  links  409  to Data 1  ( 3 )  407 . Therefore each data of Data 1  type, can be mapped  419  from vision concept  415  into a data storage  417  format Data 1   411  in storage with a link pointer  413 . When one accesses Data 1   411 , by accessing link pointer  413 , one finds the storage location of its next linked node.  
         [0035]     In order to rebuild the in-memory data storage from a backup or for a faster recovery, referring to Patent Application “Memory-Resident Database Management System and Implementation Thereof” filed on Jan. 22, 2003 by Tianlong Chen and Jonathan Vu with U.S. patent application Ser. No. 10/347,678, one can, preferably, use a relative memory address mapping schema like the DMCE Virtual Address, into the said data mapping in this invention. One can also refer to that Patent application and the other Patent applications referenced above for descriptions of underlying memory management.  
         [0036]     Referring to  FIG. 6 , it will make more sense that a user of the Data-Driven Database can use his/her own logic  607  to access the data directly after he/she maps the data and data relationship from vision into storage; because the user may know better what he/she wants to do with the stored data.  
         [0037]     Still referring to  FIG. 6 , the present invention provides a preset Application Programming Interface (API) for application  611  (including  601   603   605 ) to plug-in its own logic functionality  607  to access the mapped data and data relationship in the data storage  609 . For most commonly used data styles, such tables, trees, and linked-lists, application  611  can use built-in database logic functionality  615  to access the mapped data in the data storage  609 . Of course application  611  can combine both built-in  615  and customer plug-in logic  607  to achieve its data access and manipulation requirement. Before the data is actually stored into data storage  609 , the data mapping scheme  617  should be set.  
         [0038]     Still referring to  FIG. 6 , since all data access and manipulation logic whether it is built-in  615  or customer-plug-in  607  is based on a preset API, the database management system therefore can provide all necessary basic functionality that any other database normally has such as “data read”, “data write”, “data add”, “data update”, “delete data”, and can also provide other unique data access methods such as accessing data by following an address pointer and finding an address pointer by location offset, which is normally used in software coding such as C language. Since the data storage format is mapped before data is stored, the location offset is known for later access. Besides the preset API provided by the present database management system, the user can use virtually any logic based on its data access and manipulation need, which can be chosen as a limited option as such plugged-in logic may have stability and security concerns.  
         [0039]     Referring to  FIG. 2 , another benefit of such database system is that one can provide a new data type which previously was not known by the database. Then, one of most important logic functionalities that a user must provide for such a new data type is to provide plug-in logic  213 ,  215  to manipulate mapped data such as to compare two mapped data of the same data type such as Data 1 . 1   201  verse Data 1 . 2   207 , and Data 2 . 1   205  verse Data 2 . 2   211 . The comparison result can be sense of“larger”, “equal to” and “smaller”.  
         [0040]     The foregoing description of the preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The embodiments were chosen and described in order to explain the principles of the invention and its practical application to enable one skilled in the art to utilize the invention in various embodiments as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto, and their equivalents. The entirety of each of the aforementioned documents is incorporated by reference herein.