Nova Patents
EP0803100B1

Database query system

Abstract

A database query system includes a query assistant that permits the user to enter only queries that are both syntactically and semantically valid (and that can be processed by an SQL generator to produce semantically valid SQL). Through the use of dialog boxes, a user enters a query in an intermediate English-like language which is easily understood by the user. A query expert system monitors the query as it is being built, and using information about the structure of the database, it prevents the user from building semantically incorrect queries by disallowing choices in the dialog boxes which would create incorrect queries. An SQL generator is also provided which uses a set of transformations and pattern substitutions to convert the intermediate language into a syntactically and semantically correct SQL query. The intermediate language can represent complex SQL queries while at the same time being easy to understand. The intermediate language is also designed to be easily converted into SQL queries. In addition to the query assistant and the SQL generator, an administrative facility is provided which allows an administrator to add a conceptual layer to the underlying database making it easier for the user to query the database. This conceptual layer may contain alternate names for columns and tables, paths specifying standard and complex joins, definitions for virtual tables and columns, and limitations on user access.

EP0803100B1, drawing sheet 1
Sheet 1 of 40

Term

Term ended

Expired 23 March 2015, 11.5 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

22 claims: 22 independent, 0 dependent

  1. 1
    A database query system for interactively creating, with a user, semantically correct queries, in a target query language, of a database having a predetermined structure, said system comprising:a conceptual layer manager (10) for storing conceptual information about the database (3) including the predetermined structure;a query assistant (10), said query assistant (10) providing the user a set of permissible selections from which to build an intermediate query language containing a semantically correct database query for the database;anda query generator (20), said query generator receiving a query in said intermediate query language from said query assistant (10) and converting said intermediate query language containing the query into the target query language, characterized in that said intermediate query language is built in said query assistant (10) from the target query language by removing condition constructs from the target query language which can be inferred;replacing each type of condition construct of the target query language which is to be included in the intermediate query language with a new pattern defined according to said condition construct;replacing keywords in the target query language with new patterns defined according to said keywords;and defining a set of synonyms for condition constructs in the intermediate query language. Datenbank-Abfragesystem zur interaktiven Erzeugung mit einem Benutzer von semantisch korrekten Abfragen in einer Zielabfragesprache einer Datenbank, die eine vorgegebene Struktur hat, wobei das System umfasst: einen Konzeptlayer-Manager (10) zum Speichern von Konzeptinformationen über die Datenbank (3) einschließlich der vorgegebenen Struktur;einen Abfrage-Assistenten (10), wobei der Abfrage-Assistent (10) dem Benutzer einen Satz zulässiger Auswahlmöglichkeiten liefert, von denen eine Zwischenstufen-Abfragesprache zu bilden ist, die eine semantisch korrekte Datenbankabfrage für die Datenbank enthält;undeinen Abfrage-Generator (20), wobei der Abfrage-Generator eine Abfrage in der Zwischenstufen-Abfragensprache von dem Abfrage-Assistenten (10) empfängt und die Zwischenstufen-Abfragensprache, die die Abfrage enthält, in die Zielabfragesprache umsetzt, dadurch gekennzeichnet, dass die Zwischenstufen-Abfragesprache in dem Abfragen-Assistenten (10) aus der Zielabfragesprache durch Entfernen von Bedingungskonstruktionen aus der Zielabfragesprache gebildet wird, die unterdrückt werden können;dass jeder Typ von Bedingungskonstruktionen der Zielabfragesprache, die in die Zwischenstufen-Abfragesprache einbezogen werden soll, durch ein neues Muster ersetzt wird, welches entsprechend der Bedingungskonstruktion definiert ist;dass Schlüsselwörter in der Zielabfragesprache durch neue Muster ersetzt werden, die entsprechend den Schlüsselwörter definiert sind, unddass ein Satz von Synonymen für die Bedingungskonstruktionen in der Zwischenstufen-Abfragesprache definiert wird. Système de requête de base de données permettant de créer de façon interactive, avec un utilisateur, des requêtes sémantiquement correctes, dans un langage de requête cible, d'une base de données ayant une structure prédéterminée, ledit système comprenant: un gestionnaire de couche conceptuelle (10) permettant d'enregistrer des informations conceptuelles sur la base de données (3), incluant notamment la structure prédéterminée ;un assistant de requête (10), ledit assistant de requête (10) fournissant à l'utilisateur un ensemble de sélections admissibles, à partir duquel doit être formé un langage de requête intermédiaire contenant une requête de base de données sémantiquement correcte pour la base de données ;etun générateur de requêtes (20), ledit générateur de requêtes (20) recevant une requête dans ledit langage de requête intermédiaire dudit assistant de requête (10) et convertissant ledit langage de requête intermédiaire contenant la requête en langage de requête cible, caractérisé en ce que ledit langage de requête intermédiaire est intégré dans ledit assistant de requête (10) à partir du langage de requête cible en retirant du langage de requête cible des éléments conditionnels qui peuvent être éliminés ;en remplaçant chaque type d'élément conditionnel du langage de requête cible qui doit être inclus dans le langage de requête intermédiaire avec un nouveau schéma défini selon ledit élément conditionnel ;en remplaçant les mots-clés du langage de requête cible par de nouveaux schémas définis selon lesdits mots-clés ;et en définissant un ensemble de synonymes pour les éléments conditionnels dans le langage de requête intermédiaire.
  2. 2
    A database query system according to claim 1 wherein said query assistant (10) comprises:storage means (13) for maintaining state information about the current state of a database query;a user interface (11), said user interface indicating to the user a set of permissible selections for building a query and for updating said storage means (13) based on the choice of the user;anda query expert (14), said query expert specifying to said user interface (11) said set of permissible selections by analyzing said state information maintained in said storage means (13) and said conceptual information stored by said conceptual layer manager. Datenbank-Abfragesystem nach Anspruch 1, worin der Abfragen-Assistent (10) umfasst: eine Speichereinrichtung (13), um die Information über den augenblicklichen Zustand der Datenbankabfrage zu speichern;eine Benutzerschnittstelle (10), wobei die Benutzerschnittstelle dem Benutzer einen Satz von zulässigen Auswahlmöglichkeiten zum Aufbauen einer Abfrage und zum Auffrischen der Speichereinrichtung (13) auf der Basis der Auswahl des Benutzers anzeigt;undeinen Abfragen-Experten (14), wobei der Abfrage-Experte an die Benutzerschnittstelle (11) den Satz von zulässigen Auswahlmöglichkeiten dadurch spezifiziert, dass die in der Speichereinrichtung (13) gehaltene Zustandsinformation und die Konzeptinformation, die in dem Konzeptlayer-Manager gespeichert ist, analysiert wird. Système de requête de base de données selon la revendication 1, dans lequel ledit assistant de requête (10) comprend : des moyens de stockage (13) permettant de conserver des informations d'état concernant l'état actuel d'une requête de base de données ;une interface utilisateur (11), ladite interface utilisateur indiquant à l'utilisateur un ensemble de sélections admissibles pour former une requête et pour mettre à jour lesdits moyens de stockage (13) sur la base du choix de l'utilisateur;etun expert de requête (14), ledit expert de requête spécifiant à ladite interface utilisateur (11) ledit ensemble de sélections admissibles en analysant lesdites informations d'état conservées dans lesdits moyens de stockage (13) et lesdites informations conceptuelles stockées par ledit gestionnaire de couche conceptuelle.
  3. 3
    A database query system according to claim 2 wherein said storage means (13) further comprises:a set of state variables;anda set of access routines for adding, deleting and modifying said state variables. Datenbank-Abfragesystem nach Anspruch 2, worin die Speichereinrichtung (13) ferner umfasst: einen Satz von Zustandsvariablen;undeinen Satz von Zugangsroutinen zum Hinzufügen, Löschen und Modifizieren der Zustandsvariablen. Système de requête de base de données selon la revendication 2, dans lequel lesdits moyens de stockage (13) comprend en outre : un ensemble de variables d'état ;etun ensemble de sous-programmes d'accès permettant d'ajouter, de supprimer et de modifier lesdites variables d'état.
  4. 4
    A database query system according to claim 2 wherein said storage means further comprises:a state database, said state database containing said state information;anda set of database access routines for adding to, deleting from and modifying said state database. Datenbank-Abfragesystem nach Anspruch 2, worin die Speichereinrichtung (13) ferner umfasst: eine Zustands-Datenbank, wobei die Zustands-Datenbank die Zustandsinformation enthält;undeinen Satz von Datenbankzugriffsroutinen zum Hinzufügen zu, zum Löschen von und zum Modifizieren der Zustands-Datenbank. Système de requête de base de données selon la revendication 2, dans lequel lesdits moyens de stockage comprennent en outre : une base de données d'état, ladite base de données d'état contenant lesdites informations d'état ;etun ensemble de sous-programmes d'accès à la base de données, permettant de faire des ajouts à, des suppressions dans et des modifications de ladite base de données.
  5. 5
    A database query system according to claim 2 wherein said set of permissible selections is mutually exclusive to a set of nonpermissible selections and is a subset of all column operations and all database tables and columns maintained by said database information manager which the user may next select in building a semantically correct database query. Datenbank-Abfragesystem nach Anspruch 2, worin der Satz von zulässigen Auswahlmöglichkeiten wechselweise exklusiv zu einem Satz von nicht zulässigen Auswahlmöglichkeiten ist und einen Untersatz von allen Spaltenoperationen und allen Datenbanktabellen und -spalten, die an den Datenbank-Informationsmanager gehalten werden, darstellt, die der Benutzer als nächstes beim Aufbau einer semantisch korrekten Datenbank-Abfrage auswählen kann. Système de requête de base de données selon la revendication 2, dans lequel ledit ensemble de sélections admissibles et un ensemble de sélections non admissibles s'excluent l'un l'autre, et ledit ensemble de sélections admissibles est un sous-ensemble de toutes les opérations en colonnes et de tous les tableaux et colonnes de la base de données conservés par ledit gestionnaire d'informations de base de données, que l'utilisateur peut choisir la fois suivante en formant une requête de base de données sémantiquement correcte.
  6. 6
    A database query system according to claim 5 wherein said user interface displays and visually differentiates said set of permissible selections and said set of nonpermissible selections. Datenbank-Abfragesystem nach Anspruch 5, worin die Benutzerschnittstelle den Satz von zulässigen Auswahlmöglichkeiten und den Satz von nicht zulässigen Auswahlmöglichkeiten anzeigt und visuell unterscheidet. Système de requête de base de données selon la revendication 5, dans lequel ladite interface utilisateur affiche et différencie visuellement ledit ensemble de sélections admissibles et ledit ensemble de sélections non admissibles.
  7. 7
    A database query system according to claim 6 wherein said user interface (11) visually differentiates by color. Datenbank-Abfragesystem nach Anspruch 6, worin die Benutzerschnittstelle (11) durch Farbe visuell unterscheidet. Système de requête de base de données selon la revendication 6, dans lequel ladite interface utilisateur (11) effectue une différenciation visuelle par des couleurs.
  8. 8
    A database query system according to claim 5 wherein said user interface (11) indicates to the user said set of permissible selections for building a query by only displaying to the user said set of permissible selections and not displaying said set of impermissible selections. Datenbank-Abfragesystem nach Anspruch 5, worin die Benutzerschnittstelle (11) dem Benutzer den Satz von zulässigen Auswahlmöglichkeiten zum Aufbau einer Abfrage dadurch anzeigt, daß dem Benutzer nur der Satz von zulässigen Auswahlmöglichkeiten angezeigt wird und daß der Satz von unzulässigen Auswahlmöglichkeiten nicht angezeigt wird. Système de requête de base de données selon la revendication 5, dans lequel ladite interface utilisateur (11) indique à l'utilisateur ledit ensemble de sélections admissibles pour former une requête en affichant seulement à l'utilisateur ledit ensemble de sélections admissibles et non ledit ensemble de sélections non admissibles.
  9. 9
    A database query system according to claim 6 wherein said user interface (11) is visually differentiated by type characteristic. Datenbank-Abfragesystem nach Anspruch 6, worin die Benutzerschnittstelle (11) durch Schriftbildcharakteristika visuell unterscheidet. Système de requête de base de données selon la revendication 6, dans lequel ladite interface utilisateur (11) est différenciée visuellement par caractéristique de type.
  10. 10
    A database query system according to claim 2 wherein said query expert (14) is composed of procedural logic. Datenbank-Abfragesystem nach Anspruch 2, worin der Abfragen-Experte (14) aus einer Verfahrenslogik zusammengesetzt ist. Système de requête de base de données selon la revendication 2, dans lequel ledit expert de requête (14) est composé d'une logique de procédure.
  11. 11
    A database query system according to claim 2 wherein said query expert (14) is a rule-based expert system. Datenbank-Abfragesystem nach Anspruch 2, worin der Abfragen-Experte (14) ein auf Regeln basierendes Expertensystem ist. Système de requête de base de données selon la revendication 2, dans lequel ledit expert de requête (14) est un système-expert à base de règles.
  12. 12
    A database query system according to claim 1 wherein said target query language is Structured Query Language (SQL). Datenbank-Abfragesystem nach Anspruch 1, worin die Zielabfragesprache die Structured Query Language (SQL) ist. Système de requête de base de données selon la revendication 1, dans lequel ledit langage de requête cible est un langage structuré d'interrogation (SQL).
  13. 13
    A database query system according to claim 1 wherein said conceptual information comprises table, column, and relationship information. Datenbank-Abfragesystem nach Anspruch 1, worin die Konzeptinformation einen Tabellen-, Spalten- und Beziehungsinformation umfaßt. Système de requête de base de données selon la revendication 1, dans lequel lesdites informations conceptuelles comprennent des informations de tableau, de colonne et de relation.
  14. 14
    A database query system according to claim 13 wherein said table and column information is automatically read from the predetermined structure. Datenbank-Abfragesystem nach Anspruch 13, worin die Tabellen- und Spalteninformation automatisch aus der vorgegebenen Struktur ausgelesen wird. Système de requête de base de données selon la revendication 13, dans lequel lesdites informations de tableau et de colonne sont automatiquement lues par la structure prédéterminée.
  15. 15
    A database query system according to claim 13 wherein said conceptual information further comprises one or more of the following:foreign keys, table join paths, table join expression for non-equijoins, virtual table definitions, virtual column definitions, table descriptions, column descriptions, hidden tables and hidden columns. Datenbank-Abfragesystem nach Anspruch 13, worin die Konzeptinformation ferner eine oder mehrere der folgenden Informationen umfasst: fremde Schlüsselwörter, Tabellenverknüpfungspfade, Tabellenverknüpfungsausdrücke für Non-Equijoins, virtuelle Tabellendefinitionen, virtuelle Spaltendefinitionen, Tabellenbeschreibungen, Spaltenbeschreibungen, verborgene Tabellen und verborgene Spalten. Système de requête de base de données selon la revendication 13, dans lequel lesdites informations conceptuelles comprennent en outre un ou plusieurs éléments parmi les suivants : clés étrangères, chemins de jonction de tableaux, expression de jonction de tableaux pour non équijonctions, définitions de tableau virtuel, définitions de colonne virtuelle, descriptions de tableau, descriptions de colonne, tableaux cachés et colonnes cachées.
  16. 16
    A database query system according to claim 13 wherein said conceptual information further comprises virtual column definitions. Datenbank-Abfragesystem nach Anspruch 13, worin die Konzeptinformation ferner virtuelle Spaltendefinitionen umfasst. Système de requête de base de données selon la revendication 13, dans lequel lesdites informations conceptuelles comprennent en outre des définitions de colonne virtuelle.
  17. 17
    A database query system according to claim 16 wherein said virtual column definition contains primary key and foreign key references to define a join operation. Datenbank-Abfragesystem nach Anspruch 16, worin die virtuelle Spaltendefinition primäre Schlüsselwort- und Fremdschlüsselwortreferenzen enthält, um eine Verknüpfungsoperation zu definieren. Système de requête de base de données selon la revendication 16, dans lequel ladite définition de colonne virtuelle comprend des références de clé primaire et de clé étrangère pour définir une opération de jonction.
  18. 18
    A database query system according to claim 13 wherein said conceptual information further comprises table join expressions for non-equijoins. Datenbank-Abfragesystem nach Anspruch 13, worin die Konzeptinformation ferner Tabellenverknüpfungsausdrücke für Non-Equijoins umfaßt. Système de requête de base de données selon la revendication 13, dans lequel lesdites informations conceptuelles comprennent en outre des expressions de jonction de tableaux pour non équijonctions.
  19. 19
    A database query system according to claim 1 wherein said query generator (20) converts said intermediate query language into said target query language by a set of successive transformations. Datenbank-Abfragesystem nach Anspruch 1, worin der Abfragen-Generator (20) die Zwischenzustand-Abfragesprache in die Zielabfragesprache durch einen Satz von aufeinanderfolgenden Transformationen umsetzt. Système de requête de base de données selon la revendication 1, dans lequel ledit générateur de requêtes (20) convertit ledit langage de requête intermédiaire én ledit langage de requête cible par un ensemble d'informations successives.
  20. 20
    A database query system according to claim 19 wherein at least one of said set of successive transformations is transformation by pattern substitution. Datenbank-Abfragesystem nach Anspruch 19, worin wenigstens eine des Satzes der aufeinanderfolgenden Transformationen eine Transformation durch Mustersubstitution ist. Système de requête de base de données selon la revendication 19, dans lequel au moins une transformation dudit ensemble de transformations successives est une transformation par substitution de forme.
  21. 21
    A database query system according to claim 19 wherein said set of transformations comprises:a set of structural transformations;a set of transformations to include inferred information;anda set of transformations by pattern substitution. Datenbank-Abfragesystem nach Anspruch 19, worin der Satz von Transformationen umfasst: einen Satz von Strukturtransformationen;einen Satz von Transformationen, um unterdrückt Informationen einzubeziehen;undeinen Satz von Transformationen durch Mustersubstitution. Système de requête de base de données selon la revendication 19, dans lequel ledit ensemble de transformations comprend : un ensemble de transformations structurelles ;un ensemble de transformations devant contenir les informations éliminées ;etun ensemble de transformations par substitution de schéma.
  22. 22
    A database query system according to claim 1 wherein said constructs from the target database language which can be inferred include grouping constructs and join constructs. Datenbank-Abfragesystem nach Anspruch 1, worin die Konstruktionen von der Zieldatenbanksprache, die unterdrückt werden können, Gruppierungskonstruktionen und Verbindungskonstruktionen umfassen. Système de requête de base de données selon la revendication 1, dans lequel ledit élément du langage de requête cible pouvant être éliminé comporte des éléments de groupement et des éléments de jonction.
Independent claims22