WO2005045707A1 - Object persistence in a database store - Google Patents
Object persistence in a database store Download PDFInfo
- Publication number
- WO2005045707A1 WO2005045707A1 PCT/US2004/024537 US2004024537W WO2005045707A1 WO 2005045707 A1 WO2005045707 A1 WO 2005045707A1 US 2004024537 W US2004024537 W US 2004024537W WO 2005045707 A1 WO2005045707 A1 WO 2005045707A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- type
- field
- query
- storage
- attribute
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24557—Efficient disk access during query execution
-
- 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/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/955—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Definitions
- the present invention relates to data storage in a computer system, and more particularly, to a system and method for persisting objects in a database store.
- Microsoft SQL SERVER is a comprehensive database management platform that provides extensive management and development tools, a powerful extraction, transformation, and loading (ETL) tool, business intelligence and analysis services, and other capabilities.
- ETL extraction, transformation, and loading
- Two improvements to SQL SERVER have recently been implemented.
- the Microsoft Windows .NET Framework Common Language Runtime (CLR) has been integrated into the SQL SERVER database, and second, a new object, referred to as a user defined type (UDT), can now be created with managed code in the CLR environment and persisted in the database store.
- CLR is the heart of the Microsoft .NET Framework, and provides the execution environment for all .NET code.
- code that runs within the CLR is referred to as "managed code.”
- the CLR provides various functions and services required for program execution, including just-in-time (JIT) compilation, allocating and managing memory, enforcing type safety, exception handling, thread management and security.
- JIT just-in-time
- the CLR is now loaded by SQL SERVER upon the first invocation of a .NET routine.
- database programmers were limited to using Transact-SQL when writing code on the server side.
- Transact-SQL is an extension of the Structured Query Language as defined by the International Standards Organization (ISO) and the American National Standards Institute (ANSI).
- Transact-SQL database developers can create, modify and delete databases and tables, as well as insert, retrieve, modify and delete data stored in a database.
- Transact-SQL is specifically designed for direct structural data access and manipulation. While Transact-SQL excels at structural data access and management, it is not a full-fledged programming language in the way that Visual Basic .NET and C# are. For example, Transact-SQL does not support arrays, collections, for each loops, bit shifting or classes. [0006] With the CLR integrated into the SQL SERVER database, database developers can now perform tasks that were impossible or difficult to achieve with Transact-SQL alone. Both Visual Basic .NET and C# are modern programming languages offering full support for arrays, structured exception handling, and collections.
- SQL SERVER also adds support for user defined types (UDT) - a new mechanism that enables a developer to extend the scalar type system of the database.
- UDTs provide two key benefits from an application architecture perspective: they provide strong encapsulation (both in the client and the server) between the internal state and the external behaviors, and they provide deep integration with other related server features. Once a UDT is defined, it can be used in all the contexts that a system type can be used in SQL SERVER, including in column definitions, variables, parameters, function results, cursors, triggers, and replication.
- the process of defining a UDT on a database server is accomplished as follows: a) create a class in managed code that follows the rules for UDT creation; b) load the Assembly that contains the UDT into a database on the server using the CREATE ASSEMBLY statement; and c) create a type in the database using the CREATE TYPE statement that exposes the managed code UDT.
- the UDT can be used in a table definition.
- this class is then compiled into a dynamic link library (dll).
- An Assembly containing the compiled class is then created using the following T-SQL script commands: create assembly test from 'c: ⁇ test.dU' go [0011]
- the following T-SQL script commands are then used to create the UDT on the server: create type Baseltem external name [test]: [Baseltem] go [0012]
- a table e.g., "MyTable” can be created defining an attribute of the table as the UDT type, as follows: create table MyTable ( Item Baseltem, ItemId as item::ID ) go [0013]
- the UDT expression can then be used in a query such as: SELECT Item.ID, Item.Name FROM MyTable.
- applications can now instantiate objects of the type defined by the managed code class and have those objects persisted in the relational database store as an instance of the UDT.
- the class that defines the UDT can also include methods that implement specific behaviors on objects of that type. An application can therefore instantiate objects of a type defined as a UDT and can invoke managed behaviors over them.
- the present invention is directed to a system and method that provides a new persistence format for user defined types (UDTs) within a database store that enables information about the structure of a UDT to be communicated to the underlying data store. This information enables a number of store optimizations, including direct structural access to members of the type.
- the present invention enables metadata exchange between the type implementer and the data store. The store uses the metadata to determine the storage layout for instances of the type.
- the store is able to detect access patterns that can be optimized to directly operate over the storage representation without hydration (deserialization) of the object.
- the system is able to build data distribution statistics and indexes over the individual members without requiring redundant persistence of the computed value.
- Fig. 1 is an exemplary code segment illustrating a managed code class definition for a user defined type
- Fig. 2 is a block diagram illustrating the serialization and deserialization of an instance of a user defined type that has been instantiated in managed code
- Fig. 1 is an exemplary code segment illustrating a managed code class definition for a user defined type
- Fig. 2 is a block diagram illustrating the serialization and deserialization of an instance of a user defined type that has been instantiated in managed code
- FIG. 3 is a diagram illustrating a database table in which an object of a user defined type has been persisted;
- Fig. 4 A is a flow diagram illustrating one embodiment of an aspect of the method of the present invention;
- Fig. 4B is a flow diagram illustrating one embodiment of another aspect of the method of the present invention;
- Fig. 5 is an exemplary code segment illustrating a managed code class definition for a user defined type that has been annotated in accordance with the present invention;
- Fig. 5 is an exemplary code segment illustrating a managed code class definition for a user defined type that has been annotated in accordance with the present invention;
- Fig. 5 is an exemplary code segment illustrating a managed code class definition for a user defined type that has been annotated in accordance with the present invention.
- FIG. 6 is a block diagram of a system in which the present invention can be implemented, as well as illustrating the structural access and return of a value of a persisted object of a UDT in accordance with the method of the present invention;
- Fig. 7 is a block diagram representing an exemplary network environment having a variety of computing devices in which the present invention may be implemented;
- Fig. 8 is a block diagram representing an exemplary computing device in which the present invention may be implemented.
- the present invention is directed to a system and method that provides a new persistence format for user defined types (UDTs) within a database store that enables information about the structure of a UDT to be communicated to the underlying data store.
- This information enables a number of store optimizations, including direct structural access to members of the type.
- the present invention enables metadata exchange between the type implementer and the data store.
- the store uses the metadata to determine the storage layout for instances of the type. With this information, the store is able to detect access patterns that can be optimized to directly operate over the storage representation without hydration (deserialization) of the object.
- FIG. 4A is a flow diagram illustrating one embodiment of a method of the present invention. As illustrated, the method begins at step 400 with the definition of a user defined type. As with most UDTs, the type is defined as a CLR class in managed code using, for example, a high-level programming language such as Visual Basic .NET or C#.
- the class definition is annotated in step 402 to provide metadata that describes the storage layout of the UDT.
- the metadata describes the storage facets of the fields of the type, such as size, precision, scale, etc. as well as denoting equivalent structural access paths for every behavior of the type.
- Figure 5 is an exemplary code listing in which the CLR class shown Figure 1 has been annotated in accordance with the present invention. In the present embodiment, there are three aspects to this annotation. [0032] First, the class definition is annotated to identify the UDT as one to which the new persistence format of the present invention will be applied. In the present embodiment, this is achieved by adding the parameter "Format.
- every managed behavior e.g., a method that can be invoked on the UDT object to return the value of a field
- every managed behavior is annotated with an attribute that denotes an equivalent structural access path for that managed behavior.
- the custom attribute used for this purpose is named SqlUdtProperty()
- the database server e.g., SQL SERVER
- the database server e.g., SQL SERVER
- SqlUdtProperty denotes that the body of the property can be ignored, and the name of the field is used as the structural access path.
- property accessors are the only behaviors that can be accessed structurally. However, in other embodiments, other types of methods may be capable of structural access.
- SqlUdtPropertyQ custom attribute has been added at lines 11 and 24 to annotate the respective managed behaviors of the class.
- the UDT as defined by the UDT author is created on the database server and the metadata reflected in the class definition annotations is imported into the database store, which uses the metadata to determine the storage layout for instances of the type.
- the SqlUdtField attribute in combination with the actual type of a given field is used to control the storage layout of the persisted value of that field. For example, if the attribute indicates that a field is nullable, the component of the database system that handles storage can reserve a bit in the area used to store null values for this field. As another example, if the field is of a varying sized type (like string), the attribute may indicate that the field is actually fixed size.
- step 404 of the method is carried out by (1) compiling the CLR class file that defines the UDT into a dynamic link library (.dll), (2) creating an Assembly that contains the UDT and registering the Assembly with the store, and then (3) creating the UDT over the managed type.
- step(3) the storage facets of the type are validated and the metadata information reflected in the annotations to the CLR class definition are imported into the database system catalog that describes the structure of the type.
- these steps can be carried out using the following T-SQL script commands: —create the assembly create assembly test from 'c: ⁇ test.dH' go
- FIG. 4B is a flow diagram illustrating a method for accessing values of a UDT to which the new persistence format of the present invention has been applied, e.g., UDTs annotated with the "Format. Structured" property as discussed above.
- the database server receives a query that includes a predicate or an expression that references a managed behavior of an object persisted in the database store, to which the method of the present invention has been applied.
- a query that includes a predicate or an expression that references a managed behavior of an object persisted in the database store, to which the method of the present invention has been applied.
- a Format. Structured UDT named "Person” has been created and that it includes a field of type SqlString called "Name,” which has been properly annotated with the SqlUdtFieldQ attribute as described above.
- the Person type has a managed behavior that returns the value of the "Name" field of an instance of the type and that the behavior has been properly annotated with the SqlUdtProperty() attribute.
- the database server may receive the following query on the Person object: SELECT Person.Name FROM T where T is a table that contains a UDT column called Person.
- T is a table that contains a UDT column called Person.
- Deserialization is implemented by a type-specific deserializer that is also generated on the fly.
- the process of deserialization involves using the contents of the on-disk representation to populate the internals of the new managed object.
- the query: SELECT persomName FROM T gets converted to: SELECT deserializeInto(hew person()), personDatum)->invokeFunction(Name) FROM T
- the query is processed differently. Specifically, the query operation is translated into its equivalent structural access path based on the metadata stored in the system catalog of the database.
- the assembly metadata for the UDT is examined to determine that Name is a property that can be rewritten for structural access. If it can be executed structurally, sql metadata and assembly metadata are used to determine the physical access information (location, type and size of the value, along with the access path to get to it).
- FIG. 6 is a block diagram that illustrates a system that implements the method illustrated in Figure 4B.
- an application generates a query that includes a predicate or an expression that references a managed behavior of an object persisted in the database store, to which the present invention has been applied.
- a query processing system of the database server uses the stored metadata associated with the UDT to translate the query into an equivalent structural access path, as shown at (2).
- the value is then accessed structurally and returned to the application without object hydration and without invoking the behavior on the object, as shown at (3).
- developers have the ability to build computed column indexes over structurally accessible UDT operations without requiring the column to be persisted redundantly.
- the direct structural access to a value provided by the present invention can be used to retrieve interesting information from the value, such as the actual type of the value, or whether the value contains embedded large values.
- the present invention can also be used to provide structural transformations of a value in response to servicing and data upgrade scenarios. Additionally, the present invention can be used to migrate and import/export values from one domain (store) to another more efficiently.
- the methods and apparatus of the present invention may be embodied in the form of program code (i.e., instructions).
- This program code may be stored on a computer-readable medium, such as a magnetic, electrical, or optical storage medium, including without limitation a floppy diskette, CD-ROM, CD-RW, DVD-ROM, DVD-RAM, magnetic tape, flash memory, hard disk drive, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer or server, the machine becomes an apparatus for practicing the invention.
- a computer on which the program code executes will generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device.
- the program code may be implemented in a high level procedural or object oriented programming language. Alternatively, the program code can be implemented in an assembly or machine language. In any case, the language may be a compiled or interpreted language.
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020057010614A KR101183356B1 (en) | 2003-10-23 | 2004-07-29 | Object persistence in a database store |
JP2006536593A JP4604042B2 (en) | 2003-10-23 | 2004-07-29 | System and method for object maintenance in a database store |
EP04779551.3A EP1593059B1 (en) | 2003-10-23 | 2004-07-29 | Object persistence in a database store |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/692,225 | 2003-10-23 | ||
US10/692,225 US6941316B2 (en) | 2003-10-23 | 2003-10-23 | System and method for object persistence in a database store |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005045707A1 true WO2005045707A1 (en) | 2005-05-19 |
Family
ID=34522060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2004/024537 WO2005045707A1 (en) | 2003-10-23 | 2004-07-29 | Object persistence in a database store |
Country Status (6)
Country | Link |
---|---|
US (2) | US6941316B2 (en) |
EP (1) | EP1593059B1 (en) |
JP (1) | JP4604042B2 (en) |
KR (1) | KR101183356B1 (en) |
CN (1) | CN100501727C (en) |
WO (1) | WO2005045707A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9275224B2 (en) | 2013-10-18 | 2016-03-01 | Electronics And Telecommunications Research Institute | Apparatus and method for improving detection performance of intrusion detection system |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472107B2 (en) * | 2003-06-23 | 2008-12-30 | Microsoft Corporation | Integrating horizontal partitioning into physical database design |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US6941316B2 (en) * | 2003-10-23 | 2005-09-06 | Microsoft Corporation | System and method for object persistence in a database store |
US20050091231A1 (en) * | 2003-10-24 | 2005-04-28 | Shankar Pal | System and method for storing and retrieving XML data encapsulated as an object in a database store |
US7213015B1 (en) * | 2003-12-31 | 2007-05-01 | Ncr Corporation | Storing and delivering program code for manipulation of a user-defined data type |
US6976029B2 (en) * | 2004-02-10 | 2005-12-13 | Microsoft Corporation | System and method for providing user defined types in a database system |
US20050234986A1 (en) * | 2004-04-09 | 2005-10-20 | Microsoft Corporation | Systems and methods for fragment-based serialization |
US7730041B2 (en) * | 2004-08-25 | 2010-06-01 | Microsoft Corporation | Data abstraction based serialization |
US20060230016A1 (en) * | 2005-03-29 | 2006-10-12 | Microsoft Corporation | Systems and methods for statistics over complex objects |
US7555506B2 (en) * | 2005-04-05 | 2009-06-30 | Microsoft Corporation | Partial deserialization of complex type objects |
US7680013B2 (en) * | 2005-11-29 | 2010-03-16 | Canon Kabushiki Kaisha | Optical information recording and reproducing apparatus |
US7945596B2 (en) | 2006-06-20 | 2011-05-17 | Microsoft Corproation | Programming model for customized data objects |
US20080027958A1 (en) * | 2006-07-31 | 2008-01-31 | Microsoft Corporation | Data Cleansing for a Data Warehouse |
US7565376B2 (en) * | 2006-12-22 | 2009-07-21 | Sap Ag | Dynamic assessment and persistence of object instances |
US7779037B2 (en) * | 2007-03-27 | 2010-08-17 | International Business Machines Corporation | Sharing a single instance of a user defined type |
US9256654B2 (en) * | 2007-12-07 | 2016-02-09 | Microsoft Technology Licensing, Llc | Dynamic schema content server |
US7917547B2 (en) * | 2008-06-10 | 2011-03-29 | Microsoft Corporation | Virtualizing objects within queries |
US9274773B2 (en) | 2011-06-23 | 2016-03-01 | Microsoft Technology Licensing, Llc | Translating programming language patterns into database schema patterns |
US9483512B2 (en) * | 2011-11-07 | 2016-11-01 | Sap Se | Columnar database using virtual file data objects |
CN103176974B (en) * | 2011-12-20 | 2016-01-13 | 国际商业机器公司 | The method and apparatus of access path in optimization data storehouse |
JP6044960B2 (en) * | 2013-12-26 | 2016-12-14 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Method, apparatus and computer program for specializing serializer |
US10565187B2 (en) * | 2016-11-17 | 2020-02-18 | Sap Se | Management of transactions spanning different database types |
CN110019081B (en) * | 2017-07-20 | 2023-04-07 | 中兴通讯股份有限公司 | Data persistence processing method, device and system and readable storage medium |
US10796013B2 (en) * | 2017-11-13 | 2020-10-06 | Veeva Systems Inc. | User programmatic interface for supporting data access control in a database system |
CN112148795B (en) * | 2020-09-27 | 2021-06-15 | 上海依图网络科技有限公司 | Data processing method, device, equipment and medium |
CN115563638B (en) * | 2022-11-15 | 2023-04-18 | 阿里云计算有限公司 | Data processing method, system, device and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199100B1 (en) * | 1988-07-15 | 2001-03-06 | International Business Machines Corp. | Interactive computer network and method of operation |
US6223344B1 (en) * | 1998-06-11 | 2001-04-24 | Internationl Business Machines Corporation | Apparatus and method for versioning persistent objects |
US20020174128A1 (en) | 2000-07-31 | 2002-11-21 | Oracle International Corporation | Opaque types |
US6505211B1 (en) | 1999-01-26 | 2003-01-07 | International Business Machines Corporation | Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5900870A (en) * | 1989-06-30 | 1999-05-04 | Massachusetts Institute Of Technology | Object-oriented computer user interface |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US6708196B1 (en) * | 1994-04-15 | 2004-03-16 | Microsoft Corporation | Method and system for caching presentation data |
US6078925A (en) * | 1995-05-01 | 2000-06-20 | International Business Machines Corporation | Computer program product for database relational extenders |
US5864862A (en) * | 1996-09-30 | 1999-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for creating reusable components in an object-oriented programming environment |
US6785690B1 (en) * | 1996-03-18 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | Method and system for storage, retrieval, and query of objects in a schemeless database |
JP3747525B2 (en) * | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | Parallel database system search method |
US6112024A (en) * | 1996-10-02 | 2000-08-29 | Sybase, Inc. | Development system providing methods for managing different versions of objects with a meta model |
US6070174A (en) * | 1997-09-30 | 2000-05-30 | Infraworks Corporation | Method and apparatus for real-time secure file deletion |
US6108004A (en) * | 1997-10-21 | 2000-08-22 | International Business Machines Corporation | GUI guide for data mining |
US6263342B1 (en) * | 1998-04-01 | 2001-07-17 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated datastore object |
US6519597B1 (en) * | 1998-10-08 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for indexing structured documents with rich data types |
US6338056B1 (en) * | 1998-12-14 | 2002-01-08 | International Business Machines Corporation | Relational database extender that supports user-defined index types and user-defined search |
US6199195B1 (en) * | 1999-07-08 | 2001-03-06 | Science Application International Corporation | Automatically generated objects within extensible object frameworks and links to enterprise resources |
US6370541B1 (en) * | 1999-09-21 | 2002-04-09 | International Business Machines Corporation | Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores |
US6556983B1 (en) * | 2000-01-12 | 2003-04-29 | Microsoft Corporation | Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space |
US6671687B1 (en) * | 2000-09-29 | 2003-12-30 | Ncr Corporation | Method and apparatus for protecting data retrieved from a database |
US6999956B2 (en) * | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US6877111B2 (en) * | 2001-03-26 | 2005-04-05 | Sun Microsystems, Inc. | Method and apparatus for managing replicated and migration capable session state for a Java platform |
US6697818B2 (en) * | 2001-06-14 | 2004-02-24 | International Business Machines Corporation | Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database |
US6772178B2 (en) * | 2001-07-27 | 2004-08-03 | Sun Microsystems, Inc. | Method and apparatus for managing remote data replication in a distributed computer system |
US6941316B2 (en) | 2003-10-23 | 2005-09-06 | Microsoft Corporation | System and method for object persistence in a database store |
-
2003
- 2003-10-23 US US10/692,225 patent/US6941316B2/en not_active Expired - Lifetime
-
2004
- 2004-07-29 KR KR1020057010614A patent/KR101183356B1/en active IP Right Grant
- 2004-07-29 EP EP04779551.3A patent/EP1593059B1/en active Active
- 2004-07-29 CN CNB2004800016979A patent/CN100501727C/en active Active
- 2004-07-29 JP JP2006536593A patent/JP4604042B2/en active Active
- 2004-07-29 WO PCT/US2004/024537 patent/WO2005045707A1/en active Application Filing
-
2005
- 2005-01-04 US US11/028,783 patent/US7356546B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199100B1 (en) * | 1988-07-15 | 2001-03-06 | International Business Machines Corp. | Interactive computer network and method of operation |
US6223344B1 (en) * | 1998-06-11 | 2001-04-24 | Internationl Business Machines Corporation | Apparatus and method for versioning persistent objects |
US6505211B1 (en) | 1999-01-26 | 2003-01-07 | International Business Machines Corporation | Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition |
US20020174128A1 (en) | 2000-07-31 | 2002-11-21 | Oracle International Corporation | Opaque types |
Non-Patent Citations (3)
Title |
---|
CAREY M ET AL.: "0-0, What Have They Done to DB2?", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON VERY LARGE DATABASES, 1 January 1999 (1999-01-01) |
PARDEDE E ET AL., NEW SQL STANDARD FOR OBJECT-RELATIONAL DATABASE APPLICATIONS, 22 October 2003 (2003-10-22) |
See also references of EP1593059A4 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9275224B2 (en) | 2013-10-18 | 2016-03-01 | Electronics And Telecommunications Research Institute | Apparatus and method for improving detection performance of intrusion detection system |
Also Published As
Publication number | Publication date |
---|---|
JP2007509425A (en) | 2007-04-12 |
EP1593059A1 (en) | 2005-11-09 |
US6941316B2 (en) | 2005-09-06 |
EP1593059B1 (en) | 2020-08-05 |
US20050091228A1 (en) | 2005-04-28 |
EP1593059A4 (en) | 2008-12-03 |
JP4604042B2 (en) | 2010-12-22 |
US7356546B2 (en) | 2008-04-08 |
KR20060121653A (en) | 2006-11-29 |
KR101183356B1 (en) | 2012-09-14 |
CN1723461A (en) | 2006-01-18 |
US20050120048A1 (en) | 2005-06-02 |
CN100501727C (en) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6941316B2 (en) | System and method for object persistence in a database store | |
US7596576B2 (en) | System and method for providing user defined types in a database system | |
US7284010B2 (en) | System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined | |
US7376656B2 (en) | System and method for providing user defined aggregates in a database system | |
KR101086567B1 (en) | System and method for storing and retrieving xml data encapsulated as an object in a database store | |
EP1622046A2 (en) | System and method for delayed fetching of designated members of a user defined type | |
EP1603057A2 (en) | Systems and methods for the implementation of unordered and ordered collections in data store | |
JP5108309B2 (en) | System and method for supporting user-defined type inheritance |
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 BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG 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 NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ NA 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 HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2374/DELNP/2005 Country of ref document: IN Ref document number: 2377/DELNP/2005 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020057010614 Country of ref document: KR |
|
REEP | Request for entry into the european phase |
Ref document number: 2004779551 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2004779551 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 20048016979 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006536593 Country of ref document: JP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWP | Wipo information: published in national office |
Ref document number: 2004779551 Country of ref document: EP |