Zusammenfassung
Diese Arbeit demonstriert eine neue Methode für rekursive Anfragen in Zusammenhang mit geschachtelten Tabellen. Die Methode wird funktionale Rekursion genannt. Im Gegensatz zu den meisten früheren Ansätzen formuliert der Benutzer rekursive Anfragen mit Hilfe einer Funktion statt einer üblichen Mengenrekursion. Das Terminierungskriterium ist implizit gegeben und muß nicht wie bei einer konventionellen Programmiersprache explizit programmiert werden. Durch entsprechende Parameter kann der Benutzer eine Selektion auf sehr natürliche Weise in die Rekursion integrieren. Dies ist ein wesentlicher Vorteil gegenüber konventioneller mengenorientierter Rekursion. Bei mengenorientierter Rekursion ist der Benutzer meist gezwungen, zunächst eine rekursive Anfrage zu formulieren, welche konzeptionell eine sehr große Menge liefert. Auf diese Menge wird dann eine Selektion angewendet. Es ist Aufgabe des Optimierers, die Selektion in die Rekursion zu integrieren, d.h. es ist Aufgabe des Optimierers, herauszufinden, was der Benutzer eigentlich ausdrücken wollte, weil hier eine Integration einer Selektion in die Rekursion nicht direkt ausdrückbar ist. Diese Probleme werden bei Verwendung von funktionaler Rekursion vermieden. Die Methode wird erläutert an Hand von Beispielen aus dem Gebiet des Software Engineering. Hierdurch wird demonstriert, daß die Methode sich u.a. anbietet für Probleme aus dem Bereich des computeruntersützten Software Engineering (CASE). Die Methode ist jedoch nicht beschränkt auf diesen Problemkreis. Optimierungsund Implementierungstechniken werden ebenfalls in der Arbeit angegeben.
Abstract
The work presented in this paper demonstrates a new method for recursive queries in the context of nested tables. The method is called functional recursion. In contrast to most previous approaches, the user formulates recursive queries by writing a function instead of a set recursion. The termination criterion which sometimes is rather complex does not have to be programmed by the user but is given implicitely. By providing appropriate parameters to a function, the user can integrate a selection into the recursion in a convenient and natural way. This is not the case for set recursion. When using set recursion, the user is forced to formulate a query which computes more than is really needed. It is the task of the optimizer then to push a subsequent selection into the recursion. This means that the user cannot write the query in a natural way. Instead, the system has to figure out what the user wants. All these problems are avoided when using recursive functions as defined in this paper. The method is illustrated by several examples taken from the area of computer aided software engineering (CASE). Nevertheless, the method is not restricted to CASE problems. Moreover, implementation and optimization techniques are given in the paper.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Literatur
S.Abiteboul, N.Bidoit: Non First Normal Form Relations: An Algebra Allowing Data Restructuring. Rapports de Recherche No 347, Institut de Recherche en Informatique et en Automatique, Rocquencourt, France, Nov. 1984.
S.Abiteboul, S.Grumbach: COL: A Logic-Based Language For Complex Objects, INRIA Rapports de Recherche No. 714, September 1987
R.Agrawal: An Extension of Relational Algebra To Express a Class of Recursive Queries, Proc. Third IEEE Conference on Data Engineering, Los Angeles, 1987, 580–590
A.V. Aho, J.D. Ullman: Universality of Data Retrieval Languages, 6th ACM Symp. on Principles of Programming Languages, San Antonio, Texas, January 1979, 110–117
F.Andersen, V.Linnemann, P.Pistor, N.Südkamp: Advanced Information Management Prototype: User Manual for the Online Interface of the Heidelberg Data Base Language (HDBL) Prototype Implementation, Release 2.0, 21 January 1988, IBM Scientific Center Heidelberg TN 86.01
Appelrath,H.J.: Von Datenbanken zu Expertensystemen, Informatik-Fachberichte 102, Springer-Verlag 1985
F.Bancilhon, D.Maier, Y.Sagiv, J.D.Ullman: Magic Sets and other strange ways to implement logic programs, Proc. ACM SIGMOD-SIGACT Symp. on Pronciples of Database Systems, Cambridge, Mass., March 1986
F. Bancilhon, R.Ramakrishnan: An Amateur’s Introduction to Recursive Query Processing Strategies, Proc. ACM SIGMOD Conf., Washington,D.C, 1986, 16–52
W.F. Clocksin, C.S. Mellish: Programming in PROLOG, Springer Verlag 1981
I.F. Cruz, A.O. Mendelzon, P.T. Wood: A Graphical Query Language Supporting Recursion, Proc. ACM SIGMOD Conf., San Francisco, 1987, 323–330
E.F.Codd: Relational Completeness of Database Sublanguages. In Database Systems, ed. R. Rustin, Courant Comp. Sc. Symposia Ser. Vol. 6, Englewood Cliffs, N.Y. Prentice Hall, 1972.
P.Dadam, K.Küspert, F.Andersen, H.Blanken, R.Erbe, J.Günauer, V.Lum, P.Pistor, G.Walch: A DBMS Prototype to Support Extended NF2 Relations: An Integrated View on Flat Tables and Hierarchies, Proc. ACM SIGMOD Conf., Washington,D.C, 1986, 356–367
G. Gardarin: Magic Functions: A Technique to Optimize Extended Datalog Recursive Programs, Proceedings of the 13th Conference on Very Large Data Bases, Brighton, 1987, 21–30
H. Gallaire, J. Minker, J.M. Nicolas: Logic and Databases: A Deductive Approach, Comp. Surveys, Vol.16, No.2, June 1984, 153–185
R.L.Haskin, R.A. Lorie: On Extending the Functions of a Relational Database System. Proc. SIGMOD 82, Orlando, June 1982, 207–212.
M. Jarke, J.Clifford, Y.Vassiliou: An Optimizing PROLOG Front-End to a Relational Query System, Proc. ACM SIGMOD Conference, Boston 1984, 296–306
Y. Ioannides, L.L. Shinkle, E. Wong: Enhancing INGRES with Deductive Power, in /Ke84/, 847–850
MJarke, V.Linnemann, J.W.Schmidt: Data Constructors: On the Integration of Rules and Relations, Proc. 11th Intern. Conf. on Very Large Data Bases, Stockholm, August 1985, 227–240
L. Kerschberg (ed.): Proc. of the First International Workshop on Expert Database Systems, Kiawah Island, South Carolina, October 1984
R.Kowalski: Logic as a Database Language, Department of Computing, Imperial College, London, 1981
W.Lamersdorf: Recursive Data Models for Non-Conventional Database Applications, Proc. First Intern. IEEE Conference on Data Engineering, Los Angeles, 1984
W.Lamersdorf, G.Müller, J.W.Schmidt: Language Support for Office Modelling. VLDB Proc, Singapore, 1984, 280–288.
V.Linnemann: Constructorset’s Database Support for Knowledge Based Systems, Proc. Second IEEE Conference on Data Engineering, Los Angeles, 1986, 244–251
V.Linnemann: Non First Normal Form Relations and Recursive Queries: An SQL-Based Approach, Proc. Third IEEE Conference on Data Engineering, Los Angeles, 1987, 591–598
V.Linnemann: On the Relationship Between Recursive Queries and Complex Objects, IBM Scientific Center Heidelberg Technical Report TR88.02.003, February 1988
V.Linnemann: Functional Recursion and Complex Objects, IBM Scientific Center Heidelberg Technical Report TR88.12.017, December 1988 (in preparation)
B.Mitschang: MAD — ein Datenmodell für den Kern eines Non-Standard-Datenbanksy-stems, Proc. GI Fachtagung ‘Datenbanksyteme in Büro, Technik und Wissenschaft’, Darmstadt 1987, Informatik Fachberichte 136, pp. 180–195
E.Neuhold, M.Stonebraker (ed.): Future Directions in DBMS Research, International Computer Science Institute Technical Report TR-88–001, May 1988
P.Pistor, F.Andersen: Principles for Designing a Generalized NF2 Data Model with an SQL-type Language Interface, 12th Intern. Conf. on Very Large Data Bases, Kyoto, Japan, Aug. 1986, 278–285
P. Pistor: The Advanced Information Management Prototype: Architecture and Language Interface Overview, 3. Journee Base Donnees Avancees, Port Camargue, France, May 1987
P.Pistor, R.Traunmüller: A Database Language for Sets, Lists, and Tables, IBM Scientific Center Heidelberg Techncal Report TR 85.10.004, Oct. 1985.
P.Pistor, R.Traunmüller: A Database Language for Sets, Lists, and Tables, Information Systems Vol. 11, No. 4, pp. 323–336
A.Rosenthal, S.Heiler, U.Dayal, F.Manola: Traversal Recursion: A Practical Approach to Supporting Recursive Applications, Proc. ACM SIGMOD Conf., Washington,D.C, 1986, 166–176
M.A. Roth, H.F.Korth, D.S.Batory: SQL/NF: A Query Language for ¬ INF Relational Databases, Deptm. Comp. Scienc. Univ. of Texas, Austin, TR-85–19, Sept. 1985.
H.-J.Schek, P.Pistor: Data Structures for an Integrated Data Base Management and Information Retrieval System, Proc. VLDB Conf. Mexico, Sept. 1982, 197–207
H.-J.Schek, M.Scholl: The Relational Model with Relation-Valued Attributes, Information Systems 1986, Vol.11, No.2, pp. 137–147
D.Shipman: The Functional Data Model and the Data Language DAPLEX, ACM Transactions on Database Systems, Vol.6, No.1, March 1981, pp. 140–173
M.Stonebraker, L.A.Rowe: The Design of Postgres, Proc. ACM SIGMOD Conf., Washington,D.C, 1986, 340–355
J.D. Ullman: Implementation of Logical Query Languages for Databases, ACM TODS 10(3), Sept. 1985, 289–321
L.Vieille: Recursive Axioms in Deductive Databases: The Query-Subquery Approach, European Computer-Industry Research Centre GmbH (ECRC) Internal Report KB-10, Sept. 1985
M.Woschko: Implementierung Rekursiver Anfragen in einem Datenbanksystem, Diplomarbeit Fachhochschule für Technik Mannheim 1988
S.Tsur, C.Zaniolo: LDL: A Logic-Based Data Language, Proc. 12th Intern Conf. on Very Large Data Bases, Kyoto, Japan, August 1986, 33–41
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Linnemann, V. (1989). Funktional rekursive Anfragen auf der Basis von geschachtelten Tabellen. In: Härder, T. (eds) Datenbanksysteme in Büro, Technik und Wissenschaft. Informatik-Fachberichte, vol 204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-74571-3_37
Download citation
DOI: https://doi.org/10.1007/978-3-642-74571-3_37
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50894-6
Online ISBN: 978-3-642-74571-3
eBook Packages: Springer Book Archive