System and apparatus for storage retrieval and analysis of relational and non-relational data

- Oracle

A system and apparatus is disclosed which stores, retrieves and analyzes relational and non-relational data. An application program provides a data query statement containing both relational and non-relational portions to a relational server. In an embodiment, the query statement is a Structured Query Language ("SQL") CONTAINS stored procedure or CONTAINS function statement. The relational data server then provides the non-relational query to either a text queue or database management language ("DML") queue. A non-relational data server then accesses either the text queue or the DML queue. The non-relational data server obtains pointers to the non-relational data and stores them in a temporary table. The pointers and relational data portion are processed by the relational server to obtain the relational and non-relational data. In an embodiment, the non-relational data server is a text server including an engine, filter, lexer, data storage and word list.

Skip to:  ·  Claims  ·  References Cited  · Patent History  ·  Patent History

Claims

1. A database management system, having an input device receiving a database query and an output device providing data, comprising:

(a) a memory containing relational data and non-relational data; and
(b) a processing system, coupled to the memory, including
(i) a relational server, responsive to the database query, outputting relational data; and,
(ii) a non-relational server, responsive to the database query, outputting non-relational data, wherein the database query is an SQL CONTAINS procedure statement.

2. A database management system, having an input device receiving a database query and an output device providing data, comprising:

(a) a memory containing relational data and non-relational data; and
(b) a processing system, coupled to the memory, including
(i) a relational server, responsive to the database query, outputting relational data;
(ii) a non-relational server, responsive to the database query, outputting non-relational data; and,
(iii) means for parsing the database query into a relational database query and a non-relational database query, wherein the means for parsing is responsive to an SQL CONTAINS function statement.

3. A database management system, having an input device receiving a database query and an output device providing data, comprising:

(a) a memory containing relational data and non-relational data; and
(b) a processing system, coupled to the memory, including
(i) a relational server, responsive to the database query, outputting relational data;
(ii) a non-relational server, responsive to the database query, outputting non-relational data;
(iii) means for parsing the database query into a relational database query and a non-relational database query;
(iv) a first queue, coupled to the non-relational server, for storing the non-relational database query;
(v) a second queue, coupled to the non-relational database server, for storing a non-relational database modification request; and
(vi) a table, coupled to the non-relational server and the relational server, for storing a relational data pointer provided by the non-relational server.

4. A database management system, having an input device receiving a database query and an output device providing data, comprising:

(a) a memory containing relational data and non-relational data; and
(b) a processing system, coupled to the memory, including
(i) a relational server, responsive to the database query, outputting relational data;
(ii) a non-relational server, responsive to the database query, outputting non-relational data;
(iii) means for parsing the database query into a non-relational database query and a non-relational database modification request;
(iv) a first text queue, coupled to the non-relational server, for storing the non-relational database query, wherein the first text queue is an Oracle 7 Server Pipe;
(v) a second queue, coupled to the non-relational database server, for storing a non-relational database modification request; and,
(vi) a table, coupled to the non-relational server and the relational server, for storing a relational data pointer provided by the non-relational server.

5. An apparatus for providing data, comprising;

(a) a memory containing relational data and non-relational data;
(b) means for receiving a query, wherein the query is a Structured Query Language ("SQL") 92 statement;
(c) means, coupled to the means for receiving, for parsing the query into a relational portion and a non-relational portion;
(d) means, coupled to the parsing means and memory, for providing relational data from the memory responsive to the query relational portion; and,
(e) means, coupled to the parsing means and memory, for providing non-relational data from the memory responsive to the query non-relational portion.

6. An apparatus for providing data, comprising:

(a) a memory containing relational data and non-relational data;
(b) means for receiving a query, wherein the query is a Structured Query Language ("SQL") CONTAIN function statement;
(c) means, coupled to the means for receiving, for parsing the query into a relational portion and a non-relational portion;
(d) means, coupled to the parsing means and memory, for providing relational data from the memory responsive to the query relational portion; and,
(e) means, coupled to the parsing means and memory, for providing non-relational data from the memory responsive to the query non-relational portion.

7. An apparatus for providing data, comprising:

(a) a memory containing relational data and non-relational data;
(b) means for receiving a query, wherein the query is a Structured Query Language ("SQL") CONTAIN procedure statement;
(c) means, coupled to the means for receiving, for parsing the query into a relational portion and a non-relational portion;
(d) means, coupled to the parsing means and memory, for providing relational data from the memory responsive to the query relational portion; and,
(e) means, coupled to the parsing means and memory, for providing non-relational data from the memory responsive to the query non-relational portion.

8. A method for providing data from a database containing relational data and non-relational data, comprising the steps of:

(a) providing a Structured Query Language ("SQL") statement, wherein the SQL statement is an SQL 92 statement;
(b) parsing the SQL statement into a relational portion and a non-relational portion;
(c) processing the non-relational portion to obtain pointers to the non-relational data in the database;
(d) storing the non-relational pointers; and,
(e) processing the relational portion and pointers to the non-relational data to obtain the data.

9. A method for providing data from a database containing relational data and non-relational data, comprising the steps of:

(a) providing Structured Query Language ("SQL") statement, wherein the SQL statement is a CONTAIN function;
(b) parsing the SQL statement into a relational portion and a non-relational portion;
(c) processing the non-relational portion to obtain pointers to the non-relational data in the database;
(d) storing the non-relational pointers; and,
(e) processing the relational portion and pointers to the non-relational data to obtain the data.

10. A method for providing data from a database containing relational data and non-relational data, comprising the steps of:

(a) providing Structured Query Language ("SQL") statement, wherein the SQL statement is a CONTAIN procedure;
(b) parsing the SQL statement into a relational portion and a non-relational portion;
(c) processing the non-relational portion to obtain pointers to the non-relational data in the database;
(d) storing the non-relational pointers; and,
(e) processing the relational portion and pointers to the non-relational data to obtain the data.

11. A method for providing data from a database containing relational data and non-relational data, comprising the steps of:

(a) providing a Structured Query Language ("SQL") statement;
(b) parsing the SQL statement into a relational portion and a non-relational portion;
(c) processing the non-relational portion to obtain pointers to the non-relational data in the database, comprising the steps of:
(i) queuing the non-relational portion on a queue;
(ii) popping the non-relational portion from the queue; and,
(iii) processing the non-relational portion by a non-relational server;
(d) storing the non-relational pointers; and
(e) processing the relational portion and pointers to the non-relational data to obtain the data.

12. The method of claim 11, wherein the non-relational server comprises a text server including a text engine, a filter and a lexer.

13. An article of manufacture, including a computer readable medium having computer readable program code means embodied therein for obtaining data in a database containing relational and non-relational data, the computer readable program code means in the article of manufacture comprising:

computer readable program code means for causing a computer to read a query statement;
computer readable program code means for causing a computer to parse the query into a relational portion and a non-relational portion;
computer readable program code means for causing a computer to obtain relational data from the database responsive to the relational portion;
computer readable program code means for causing a computer to obtain a pointer to the non-relational data in the database responsive to the non-relational portion; and
computer readable program code means for causing a computer to display the relational data and non-relational data.

14. An article of manufacture, including a computer readable medium having computer readable program code means embodied therein for obtaining data in a database containing relational and non-relational data, the computer readable program code means in the article of manufacture comprising:

computer readable program code means for causing a computer to read a query statement having a relational portion and a non-relational portion, wherein the query statement is a Structured Query Language ("SQL") 92 statement;
computer readable program code means for causing a computer to parse the query into a relational portion and a non-relational portion;
computer readable program code means for causing a computer to obtain relational data from the database responsive to the relational portion;
computer readable program code means for causing a computer to obtain a pointer to the non-relational data in the database responsive to the non-relational portion; and,
computer readable program code means for causing a computer to display the relational data and non-relational data.

15. An article of manufacture, including a computer readable medium having computer readable program code means embodied therein for obtaining data in a database containing relational and non-relational data, the computer readable program code means in the article of manufacture comprising:

computer readable program code means for causing a computer to read a query statement having a relational portion and a non-relational portion, wherein the query statement is a Structured Query Language ("SQL") CONTAIN function statement;
computer readable program code means for causing a computer to parse the query into a relational portion and a non-relational portion;
computer readable program code means for causing a computer to obtain relational data from the database responsive to the relational portion;
computer readable program code means for causing a computer to obtain a pointer to the non-relational data in the database responsive to the non-relational portion; and,
computer readable program code means for causing a computer to display the relational data and non-relational data.

16. An article of manufacture, including a computer readable medium having computer readable program code means embodied therein for obtaining data in a database containing relational and non-relational data, the computer readable program code means in the article of manufacture comprising:

computer readable program code means for causing a computer to read a query statement having a relational portion and a non-relational portion, wherein the query statement is a Structured Query Language ("SQL") CONTAIN procedure statement;
computer readable program code means for causing a computer to parse the query into a relational portion and a non-relational portion;
computer readable program code means for causing a computer to obtain relational data from the database responsive to the relational portion;
computer readable program code means for causing a computer to obtain a pointer to the non-relational data in the database responsive to the non-relational portion; and,
computer readable program code means for causing a computer to display the relational data and non-relational data.
Referenced Cited
U.S. Patent Documents
4774661 September 27, 1988 Kumpati
5157783 October 20, 1992 Anderson et al.
5182708 January 26, 1993 Ejiri
5261102 November 9, 1993 Hoffman
5295256 March 15, 1994 Bapat
5379419 January 3, 1995 Heffernan et al.
5412804 May 2, 1995 Krishna
5412808 May 2, 1995 Bauer
5426780 June 20, 1995 Gerull et al.
5428776 June 27, 1995 Rothfield
5437027 July 25, 1995 Bannon et al.
5499359 March 12, 1996 Vijaykumar
5499371 March 12, 1996 Henninger et al.
5504885 April 2, 1996 Alashqur
5596746 January 21, 1997 Shen et al.
5615362 March 25, 1997 Jensen et al.
Other references
  • "A New Direction in DBMS" by Dr. Michael R. Stonebraker, DBMS (Feb. 1994), p. 50.
Patent History
Patent number: 5819251
Type: Grant
Filed: Feb 6, 1996
Date of Patent: Oct 6, 1998
Assignee: Oracle Corporation (Redwood Shores, CA)
Inventors: Mark Kremer (Sunnyvale, CA), Quoc Tai Tran (Redwood Shores, CA), Michael Depledge (San Jose, CA), Santanu Mukhopadhyay (Foster City, CA), William M. Keese (Menlo Park, CA), Behrouz Arbab-Dehkordi (Foster City, CA)
Primary Examiner: Thomas G. Black
Assistant Examiner: Jean M. Cornelus
Law Firm: Fliesler, Dubb, Meyer & Lovejoy
Application Number: 8/595,905
Classifications
Current U.S. Class: 707/1; 707/104; 707/103
International Classification: G06F 1730;