Method and apparatus for integrating data from external sources into a database system
First Claim
1. A relational database system comprising:
- fields in a table of the relational database system that are defined as having values that represent sources of data, the values being objects whose classes are subclasses of a class that is built into the relational database system; and
subclass defining apparatus which permits a user of the relational database system to define the subclasses.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques used in a relational database system for defining subclasses of built-in classes and thereby achieving columns in database tables which contain polymorphic objects of the built-in classes. The methods for the subclasses are contained in named packages. A table in the database system'"'"'s schema relates the package name to a storage location managed by the relational database system that contains the compiled code for the package. When a method from the package is invoked, a dynamic linker uses the name and the table to locate the compiled code and then executes the compiled code. Users may define their own subclasses by writing a package and then compiling the package using a compiler belonging to the database system. The compiler puts the compiled code in one of the storage locations and modifies the table so that the package name is related to the storage location. The compilation and binding techniques may be used generally to implement plugins in the database system. One use of subclasses is to make objects that are capable of handling data from different kinds of data sources that are external to the database system, including data from files on the system upon which the database system is running and data from HTTP servers. In a preferred embodiment, these objects can also handle data stored locally within the database system and can transfer data between the external source and the local storage. Another use of subclasses is to make it possible for objects that handle data that represents the same kind of entities, but use different formats to read the format information from the data itself.
35 Citations
60 Claims
-
1. A relational database system comprising:
-
fields in a table of the relational database system that are defined as having values that represent sources of data, the values being objects whose classes are subclasses of a class that is built into the relational database system; and
subclass defining apparatus which permits a user of the relational database system to define the subclasses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
the fields are in a column of the table whose fields have the built-in class and the objects in the fields may belong to different subclasses of the built-in class.
-
-
3. The relational database system set forth in claim 1 wherein:
-
objects belonging to the built-in class have a predetermined set of attributes and may be manipulated using a predetermined set of methods; and
the subclass defining apparatus permits the user to define a specifier for the subclass and methods for a subset of the predetermined set of methods.
-
-
4. The relational database system set forth in claim 3 wherein:
-
the predetermined set of attributes includes the subclass specifier that specifies the object'"'"'s subclass;
the predetermined methods includes a method that sets the subclass specifier; and
the database system uses the subclass specifier to locate the methods for the specified subclass.
-
-
5. The relational database system set forth in claim 4 wherein:
-
the database system includes data tables including the table with the column and schema tables that define the data tables; and
the subclass defining apparatus includes a schema table which relates the subclass specifier to the subclass'"'"'s methods; and
the database system uses the schema table to locate the methods for the specified subclass.
-
-
6. The relational database system set forth in claim 5 wherein:
the subclass defining apparatus further includes a method installer that compiles source code for a subclass'"'"'s methods, stores the object code produced by the compiler in the database system, and updates the schema table so that the database system can use the schema table to located the object code for the methods.
-
7. The relational database system set forth in claim 1 wherein:
-
the predetermined set of attributes includes a non-local data source specifier that specifies a particular kind of non-local source for the data represented by the object;
the predetermined set of methods includes a method that sets the non-local data source specifier and the subset of user-defined methods for the specified subclass includes methods for manipulating the kind of non-local data sources represented by the subclass.
-
-
8. The relational database system set forth in claim 7 wherein:
-
the predetermined set of attributes further includes a local data specifier that specifies a local data source for the data represented by the object and a local specifier that specifies whether the data represented by the object is in the specified local data source;
the methods include a method that sets the local specifier and the subset of the methods includes an import method that imports data from the non-local data source to the specified local data source.
-
-
9. The relational database system set forth in claim 8 wherein:
the subset of the methods includes an export method that exports data from the local data source to the specified non-local data source.
-
10. The relational database system set forth in claim 7 wherein:
the subset of the methods includes a method that provides a command to a non-local data source of the subclass'"'"'s kind.
-
11. The relational database system set forth in claim 7 further comprising:
a built-in subclass of the built-in class for files that are local to a computer system upon which the database system is running.
-
12. The relational database system set forth in claim 7 further comprising:
a built-in subclass of the built-in class for data sources that obey the HTTP protocol.
-
13. The relational database system set forth in claim 4 wherein:
-
the data represented by objects of the built-in class has a plurality of formats; and
the subclasses correspond to certain ones of the formats.
-
-
14. The relational database system set forth in claim 13 wherein:
the methods for the subclasses read format information from the data.
-
15. The relational database system set forth in claim 14 wherein:
the methods include a method for reading a format type from the data.
-
16. The relational database system set forth in claim 13 wherein:
the built-in classes include a class for audio objects.
-
17. The relational database system set forth in claim 13 wherein:
the built-in classes include a class for image objects.
-
18. The relational database system set forth in claim 13 wherein:
the built-in classes include a class for video objects.
-
19. A relational database system that runs on a computer system that has access to data from different kinds of sources, the relational database system having the improvement comprising:
-
at least one table having at least one column with at least two fields, one of the at least two fields containing a value specifying a first source and the first source'"'"'s kind and another containing a value specifying another source and the other source'"'"'s kind, the other source'"'"'s kind being different from the first source'"'"'s kind;
executable code including first executable code that manipulates sources of the first source'"'"'s kind to perform an operation and second executable code that manipulates sources of the other source'"'"'s kind to perform the operation; and
a code selector to select and execute executable code for the operation according to a field'"'"'s value. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
at least one of the first executable code and the second executable code is defined by a user of the database system.
-
-
21. The relational database system set forth in claim 20 wherein:
the user-defined code is accessed by the database system via a table in the database system'"'"'s schema.
-
22. The relational database system set forth in claim 19 wherein:
at least one of the sources is of a kind that is non-local to the database system.
-
23. The relational database system set forth in claim 22 wherein:
sources of the non-local kind are within the computer system.
-
24. The relational database system set forth in claim 22 wherein:
sources of the non-local kind are accessible from but outside the computer system.
-
25. The relational database system set forth in claim 22 wherein:
-
each of the values in the column'"'"'s fields specifies a local source in addition to any source belonging to a non-local kind; and
the operation is an import operation that imports data from the source of the non-local kind to the local source.
-
-
26. The relational database system set forth in claim 25 wherein:
the operation is an export operation that exports data from the local source to the source of the non-local kind.
-
27. The relational database system set forth in claim 22 wherein:
the operation is providing a command to the source.
-
28. The relational database system set forth in claim 22 wherein:
the kind of one of the sources is a file in the computer system.
-
29. The relational database system set forth in claim 22 wherein:
the kind of one of the sources is a source that obeys the HTTP protocol.
-
30. The relational database system set forth in claim 19 wherein:
-
the data from the first source and the data from the second source represent the same kind of entity but have different formats; and
the operation is reading format information from the data.
-
-
31. A data storage device characterized in that the data storage device contains code which when executed by a processor implements a relational database system comprising:
-
fields in a table of the relational database system that are defined as having values that represent sources of data, the values being objects whose classes are subclasses of a class that is built into the relational database system; and
subclass defining apparatus which permits a user of the relational database system to define the subclasses. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
the fields are in a column of the table whose fields have the built-in class and the objects in the fields may belong to different subclasses of the built-in class.
-
-
33. The data storage device set forth in claim 31 further characterized in that:
-
objects belonging to the built-in class have a predetermined set of attributes and may be manipulated using a predetermined set of methods; and
the subclass defining apparatus permits the user to define a specifier for the subclass and methods for a subset of the predetermined set of methods.
-
-
34. The data storage device set forth in claim 33 further characterized in that:
-
the predetermined set of attributes includes the subclass specifier that specifies the object'"'"'s subclass;
the predetermined methods includes a method that sets the subclass specifier; and
the database system uses the subclass specifier to locate the methods for the specified subclass.
-
-
35. The data storage device set forth in claim 34 further characterized in that:
-
the database system includes data tables including the table with the column and schema tables that define the data tables; and
the subclass defining apparatus includes a schema table which relates the subclass specifier to the subclass'"'"'s methods; and
the database system uses the schema table to locate the methods for the specified subclass.
-
-
36. The data storage device set forth in claim 35 further characterized in that:
the subclass defining apparatus further includes a method installer that compiles source code for a subclass'"'"'s methods, stores the object code produced by the compiler in the database system, and updates the schema table so that the database system can use the schema table to located the object code for the methods.
-
37. The data storage device set forth in claim 31 further characterized in that:
-
the predetermined set of attributes includes a non-local data source specifier that specifies a particular kind of non-local source for the data represented by the object;
the predetermined set of methods includes a method that sets the non-local data source specifier and the subset of user-defined methods for the specified subclass includes methods for manipulating the kind of non-local data sources represented by the subclass.
-
-
38. The data storage device set forth in claim 37 further characterized in that:
-
the predetermined set of attributes further includes a local data specifier that specifies a local data source for the data represented by the object and a local specifier that specifies whether the data represented by the object is in the specified local data source;
the methods include a method that sets the local specifier and the subset of the methods includes an import method that imports data from the non-local data source to the;
specified local data source.
-
-
39. The data storage device set forth in claim 38 further characterized in that:
the subset of the methods includes an export method that exports data from the local data source to the specified non-local data source.
-
40. The data storage device set forth in claim 37 further characterized in that:
the subset of the methods includes a method that provides a command to a non-local data source of the subclass'"'"'s kind.
-
41. The data storage device set forth in claim 37 further characterized in that:
a built-in subclass of the built-in class for files that are local to a computer system upon which the database system is running.
-
42. The data storage device set forth in claim 37 further characterized in that:
a built-in subclass of the built-in class for data sources that obey the HTTP protocol.
-
43. The data storage device set forth in claim 34 further characterized in that:
-
the data represented by objects of the built-in class has a plurality of formats; and
the subclasses correspond to certain ones of the formats.
-
-
44. The data storage device set forth in claim 43 further characterized in that:
the methods for the subclasses read format information from the data.
-
45. The data storage device set forth in claim 44 further characterized in that:
the methods include a method for reading a format type from the data.
-
46. The data storage device set forth in claim 43 further characterized in that:
the built-in classes include a class for audio objects.
-
47. The data storage device set forth in claim 43 further characterized in that:
the built-in classes include a class for image objects.
-
48. The data storage device set forth in claim 43 further characterized in that:
the built-in classes include a class for video objects.
-
49. A data storage device, characterized in that:
-
the data storage device contains code which when executed by a processor implements a relational database system that has access to data from different kinds of sources, the relational database system having the improvement comprising;
at least one table having at least one column with at least two fields, one of the at least two fields containing a value specifying a first source and the first source'"'"'s kind and another containing a value specifying another source and the other source'"'"'s kind, the other source'"'"'s kind being different from the first source'"'"'s kind;
executable code including first executable code that manipulates sources of the first source'"'"'s kind to perform an operation and second executable code that manipulates sources of the other source'"'"'s kind to perform the operation; and
a code selector to select and execute executable code for the operation according to a field'"'"'s value. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
at least one of the first executable code and the second executable code is defined by a user of the database system.
-
-
51. The data storage device set forth in claim 50 further characterized in that
the user-defined code is accessed by the database system via a table in the database system'"'"'s schema. -
52. The data storage device set forth in claim 49 further characterized in that:
at least one of the sources is of a kind that is non-local to the database system.
-
53. The data storage device set forth in claim 52 further characterized in that:
sources of the non-local kind are within the computer system.
-
54. The data storage device set forth in claim 52 further characterized in that:
sources of the non-local kind are accessible from but outside the computer system.
-
55. The data storage device set forth in claim 52 further characterized in that:
-
each of the values in the column'"'"'s fields specifies a local source in addition to any source belonging to a non-local kind; and
the operation is an import operation that imports data from the source of the non-local kind to the local source.
-
-
56. The data storage device set forth in claim 55 further characterized in that:
the operation is an export operation that exports data from the local source to the source of the non-local kind.
-
57. The data storage device set forth in claim 52 further characterized in that:
the operation is providing a command to the source.
-
58. The data storage device set forth in claim 52 further characterized in that:
the kind of one of the sources is a file in the computer system.
-
59. The data storage device set forth in claim 52 further characterized in that:
the kind of one of the sources is a source that obeys the HTTP protocol.
-
60. The data storage device set forth in claim 59 further characterized in that:
-
the data from the first source and the data from the second source represent the same kind of entity but have different formats; and
the operation is reading format information from the data.
-
Specification