From 873460c34b93783178f358736f68431052e74ade Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Fri, 16 Jun 1989 13:57:42 +0000 Subject: [PATCH] ING_DB --- WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_aa | 2160 +++++++++++++++++ WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ab | 2160 +++++++++++++++++ WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ac | 2160 +++++++++++++++++ WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ad | 2160 +++++++++++++++++ WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ae | 2160 +++++++++++++++++ WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_af | 792 ++++++ WEGA/contrib/ingres/dbs/ing_doc/teil1/inhalt1 | 216 ++ 7 files changed, 11808 insertions(+) create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_aa create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ab create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ac create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ad create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_ae create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_af create mode 100644 WEGA/contrib/ingres/dbs/ing_doc/teil1/inhalt1 diff --git a/WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_aa b/WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_aa new file mode 100644 index 0000000..e9ca5bc --- /dev/null +++ b/WEGA/contrib/ingres/dbs/ing_doc/teil1/doc1_aa @@ -0,0 +1,2160 @@ + + + + + + + ############################################################## + ############################################################## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ### # # ##### ###### ###### ## + ## # ## # # # # # # # ## + ## # # # # # # # # # ## + ## # # # # # #### # # ###### ## + ## # # # # # # # # # # ## + ## # # ## # # # # # # ## + ## ### # # ##### ####### ###### ###### ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ##### ##### # ##### ## + ## # # # # # # # ## + ## # # # # ## + ## ###### ##### # ##### ## + ## # # ### # # # ## + ## # # ### # # # # # ## + ## ##### ### ##### # ##### ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ## ## + ############################################################## + ############################################################## + + + + + + + + + + + + + + + + Juni 16, 1989 + + + + + + - 2 - + + + + + + AAAAnnnnwwwweeeennnnddddeeeerrrrhhhhaaaannnnddddbbbbuuuucccchhhh zzzzuuuu IIIINNNNGGGG____DDDDBBBB 6666....3333////3333 ffffuuuu""""rrrr UUUUNNNNIIIIXXXX + ----SSSSyyyysssstttteeeemmmmeeee + + + + + + + _J_o"_r_g _W_e_n_z_l_a_f_f + _R_o_l_f _M_o_r_g_e_n_s_t_e_r_n + + Zentralinstitut fu"r Kybernetik + und Informationsprozesse der + Akademie der Wissenschaften + Kurstrasse 30 - 34 + Berlin + 1080 + + + VEB Kombinat EVK + - ODV - + Jagdweg 1 + Olbernhau + 9332 + + + _R_E_F_E_R_A_T + + + Das vorliegende Anwenderhandbuch soll als Unter- + lage fu"r den lernenden und als Nachschlagewerk fu"r + den erfahrenen Anwender dienen. Es dokumentiert + die Version 6.3 Release 3. Es werden + Grundkenntnisse zu UNIX - kompatiblen Betriebs- + systemen vorausgesetzt. Das interaktive rela- + tionale Datenbanksystem ING_DB 6.3/3 la"sst sich + auf verschiedenen Ebenen nutzen. Vorgestellt wer- + den Mo"glichkeiten fu"r Recherchen, zeit- und + speicherplatzoptimale Dateistrukturen, Ablage von + Kommandofolgen in Dateien, Einordnung von ING_DB + -Kommandos (EQUEL und AMX) in C-Programme, Nutzung + von Shell-Kommandos, Zugriffs- und Sicherungsmass- + nahmen. Mit der Beschreibung und Untersetzung + durch Beispiele zum AMX-Compiler, zum Report- und + zum Eingabe- Generator wird das Handbuch + vervollsta"ndigt. ING_DB 6.3/3 ist so konzipiert, + dass seine Nutzung auch bei geringem Fachwissen + durchaus sinnvoll ist. Die Gefahr von Datenver- + lusten wird im Zusammenhang mit einem ausgefeilten + Datenschutz- und -sicherungsmechanismus a"usserst + gering gehalten. + + + + UNIX ist ein Warenzeichen der AT&T Bell Labora- + torien. + + + + + Juni 16, 1989 + + + + + + - 3 - + + + AAAAnnnnwwwweeeennnnddddeeeerrrrhhhhaaaannnnddddbbbbuuuucccchhhh TTTTeeeeiiiillll IIII + + + + + + + + + + + + + 0000.... VVVVoooorrrrbbbbeeeemmmmeeeerrrrkkkkuuuunnnngggg + + Das Handbuch gliedert sich in 3 Teile. Im Teil 1 wird das + Referenz-Manual vorgestellt und einige grundsa"tzliche + Ausfu"hrungen zu den ING_DB 6.3/3-Komponenten Monitor- und + Makroprozessor gegeben, die fu"r das Versta"ndnis und die + Anwendung der Anfragesprache (Query Language = QUEL) von + Bedeutung sind. Im Teil 2 werden die im Referenz-Manual + beschriebenen Bestandteile ausfu"hrlicher dokumentiert und + zusa"tzliche Informationen bereitgestellt, um Zusammenha"nge + zwischen einzelnen Komponenten deutlicher zu gestalten. Es + sei darauf verwiesen, dass die im Anwenderhandbuch verwen- + deten Datenbanken als Demonstrationsbeispiele in der Ver- + triebsversion mit ausgeliefert werden. Nach dem U"berfliegen + von Teil 1 wird dem lernenden Anwender unbedingt das Studium + des 1. Kapitels im Teil 2 empfohlen, um gewisse + Zusammenha"nge zu erkennen. Die vertiefenden und + erweiternden Ausfu"hrungen mit Demonstrationsbeispielen im + Teil 3 sind in erster Linie fu"r Programmierer gedacht. + + Es wurde versucht, das Studium der Dokumentation fu"r den + Lernenden zu erleichtern, indem die U"berschriften nach fol- + genden Kriterien gekennzeichnet wurden: + + * Abschnitt entha"lt allgemein interessierende Informa- + tionen, die fu"r einen U"berblick unerla"sslich sind + + ** Abschnitt entha"lt Informationen fu"r anspruchsvolle + Anwender (bspw. Datenbankadministrator), die u"ber + Grundkenntnisse zur Programmierung und umfassendere + Kenntnisse zum Betriebssystem bzw. zur Shell verfu"gen. + + *** Abschnitt entha"lt Informationen fu"r Programmierer, den + ING_DB -Systemadministrator. + + ING_DB 6.3/3 beruht auf dem Modell der klassischen Rela- + tionentheorie die im Anwenderhandbuch jedoch nicht + ausgefu"hrt wird. + + Es gelten folgende Begriffsanalogien: + + + ---------------------------- + Relation | Tupel | Doma"ne + Tabelle | Zeile | Spalte + Datei | Satz | Feld + ---------------------------- + + + + ING_DB 6.3/3 Juni 16, 1989 + + + + + + Referenz_Manual - 4 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + _1. RRRReeeeffffeeeerrrreeeennnnzzzz----MMMMaaaannnnuuuuaaaallll **** + + + + + + + + + + + + Das ING_DB 6.3/3 Referenz-Manual ist in 5 Kapitel unter- + teilt: + + QUEL beschreibt die Nutzung des interaktiven Systems nach + Start von qqqquuuueeeellll (unix), also die Statements der + Anfragesprache QUEL und den interaktiven Terminal- + Monitor mit seinem Makro-Prozessor. + + UNIX beschreibt die ING_DB -Programme, die durch eine + interaktive Shell direkt als UNIX -Kommandos ausfu"hrbar + sind, darunter auch das Kommando qqqquuuueeeellll (unix) selbst. + + REPORT beschreibt die Sprache zur Generierung von Druck- + listen und wird aufgrund des Umfangs als eigensta"ndiges + Kapitel behandelt. + + FILES beschreibt die aus Anwendungssicht wichtigen Files von + ING_DB . + + ERROR entha"lt eine Auflistung der nach Anwenderfehlbedie- + nungen mo"glichen Fehlermeldungen mit deren + Erla"uterungen. + + Die Abschnitte in den Kapiteln dieses Handbuchs sind mit + + KAPITEL (unten rechts) + und + + ABSCHNITT (oben rechts) + gekennzeichnet, um ein schnelles Auffinden zu ermo"glichen. + + Fu"r die Kapitel QUEL, UNIX und REPORT wird zu Beginn + jeweils eine Einfu"hrung gegeben, um die Einordnung der Kom- + mandos zu erleichtern. Diese Einfu"hrung ist wie ein Absch- + nitt gekennzeichnet, aber nicht so gegliedert. + + Nachfolgend die allgemeine Gliederung im Sinne des Manuals: + + + + + + + + + + + + + + + ING_DB 6.3/3 Juni 16, 1989 + + + + + + Referenz_Manual - 5 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + NNNNAAAAMMMMEEEE + + Name - Kurzbezeichnung des Inhalts + + SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS + + Hier wird die Syntax des Kommandos/Statements angege- + ben. + + Als Metasymbole werden verwendet: + + + | Alternative + [..] wahlweise kein- oder einmal + {..} wahlweise kein- oder mehrmals + <..> manchmal zur Hervorhebung einer + syntaktischen Variablen + + + + Alle anderen Sonderzeichen und fettgedruckten + Bezeichner sind terminale Symbole (mu"ssen so und nicht + anders geschrieben werden). Kleingeschriebene, nicht + fettgedruckte Wo"rter stehen fu"r syntaktische Variable, + deren Belegung im folgenden Abschnitt BESCHREIBUNG + erla"utert wird. + + Die Mehrzahl der syntaktischen Variablen wird im Ab- + schnitt qqqquuuueeeellll eingefu"hrt. Insbesondere: + + <<<>>> Name der aufliegenden Datenbank + <<<>>> Name einer Relation, Tabelle + <<<>>> Name einer Doma"ne einer Relation + + + BBBBEEEESSSSCCCCHHHHRRRREEEEIIIIBBBBUUUUNNNNGGGG + + Hier wird die Syntax erga"nzt und eine semantische + Beschreibung gegeben. + + NNNNAAAACCCCHHHHRRRRIIIICCCCHHHHTTTTEEEENNNN + + Hier werden die Nachrichten erla"utert, die nicht im + Kapitel ERROR zu finden sind, oder die eine besondere + Bedeutung haben. + + Nachrichten, die Folgen technischer Fehler sind und + i.d.R. zu einem Systemabbruch fu"hren, werden in dieser + Dokumentation nicht behandelt. + + BBBBEEEEIIIISSSSPPPPIIIIEEEELLLL[[[[EEEE]]]] + + Hier werden Beispiele angegeben, die den Rahmen dieses + Nachschlagewerkes nicht sprengen. + + Viele Beispiele beziehen sich auf eine Personal- + Relation, die pro Mitarbeiter einen Satz mit den Spal- + ten. + + + + + + ING_DB 6.3/3 Juni 16, 1989 + + + + + + Referenz_Manual - 6 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + + + + Relation: personal + --------- + Besitzer: ing_db + Tupellaenge: 30 + Verfallsdatum: Tue Apr 26 19:56:39 1988 + Tupelanzahl: 25 + Speicherstruktur: HEAP + Relationentyp: Nutzerrelation + + Domaenname Typ Laenge Schluessel + ------------------------------------------- + num i 2 + name c 20 + gehalt i 2 + leiter i 2 + gebdat i 2 + einstdat i 2 + ------------------------------------------- + + + hat. + + SSSSIIIIEEEEHHHHEEEE AAAAUUUUCCCCHHHH + + Hier werden andere Abschnitte aufgeza"hlt, auf die Bezug + genommen wurde. + + HHHHIIIILLLLFFFFEEEENNNN + + Hier werden gewisse Besonderheiten, insbesondere der + Implementation beschrieben. + + Um mit ING_DB arbeiten zu ko"nnen, muss jeder Nutzer + durch den ING_DB -Administrator in das usersfile + eingetragen werden (s. uuuusssseeeerrrrssss (files)). + + Zur Einfu"hrung in dieses Handbuch beginne man mit den + Abschnitten AAAAnnnnffffrrrraaaaggggeeeesssspppprrrraaaacccchhhheeee , DDDDaaaatttteeeennnnbbbbaaaannnnkkkk----UUUUnnnniiiixxxx----KKKKoooommmmmmmmaaaannnnddddoooossss + und DDDDeeeerrrr iiiinnnntttteeeerrrraaaakkkkttttiiiivvvveeee TTTTeeeerrrrmmmmiiiinnnnaaaallll----MMMMoooonnnniiiittttoooorrrr + + + + + + + + + + + + + + + + + + + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 7 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + _1._1. AAAAnnnnffffrrrraaaaggggeeeesssspppprrrraaaacccchhhheeee **** + + + + + + + + + + + + + _1._1._1. BBBBeeeesssscccchhhhrrrreeeeiiiibbbbuuuunnnngggg zzzzuuuurrrr AAAAnnnnffffrrrraaaaggggeeeesssspppprrrraaaacccchhhheeee QQQQuuuueeeellll vvvvoooonnnn IIIINNNNGGGG____DDDDBBBB + 6666....3333////3333 **** + + Der folgende Abschnitt ist eine Beschreibung der + grundsa"tzlichen Syntax von QUEL. Die einzelnen Statements + werden in gesonderten Abschnitten behandelt, hier nur die + Klassen syntaktischer Variablen, aus denen die QUEL- + Statements aufgebaut sind. + + _1._1._1._1. KKKKoooommmmmmmmeeeennnnttttaaaarrrreeee **** + + Ein Kommentar ist eine beliebige Zeichenfolge, eingebunden + links durch "/*" und rechts durch "*/": + + /* Das ist ein Kommentar */ + + _1._1._1._2. NNNNaaaammmmeeeennnn **** + + Namen in QUEL sind Folgen von maximal 12 alphanumerischen + Zeichen (Buchstaben oder Ziffern), beginnend mit einem + Buchstaben. Das Unterstreichungszeichen ("_", ) + gilt als Buchstabe. Alle grossen Buchstaben - mit Ausnahme + solcher in Zeichenketten - werden stillschweigend, automa- + tisch in die ihnen entsprechenden kleinen Buchstaben + umgewandelt. + + _1._1._1._3. SSSScccchhhhlllluuuu""""sssssssseeeellllwwwwoooorrrrtttteeee **** + + Die folgenden Bezeichner sind als Schlu"sselworte reserviert + und du"rfen nicht anderweitig verwendet werden: + + + + + + + + + + + + + + + + + + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 8 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + + abs all and + any append ascii + at atan avg + avgu by concat + copy cos count + countu create dba + define delete destroy + distribute exp float4 + float8 from help + in index integrity + int1 int2 int4 + into is log + max min mod + modify not of + on onto or + permit print range + replace retrieve save + sin sqrt sum + sumu to unique + until usercode view + where + + + _1._1._1._4. KKKKoooonnnnssssttttaaaannnntttteeeennnn **** + + Entsprechend den drei, in QUEL verfu"gbaren Datentypen, gibt + es drei Typen von Konstanten. + + _1._1._1._4._1. ZZZZeeeeiiiicccchhhheeeennnnkkkkeeeetttttttteeeennnn----KKKKoooonnnnssssttttaaaannnntttteeeennnn ((((SSSSttttrrrriiiinnnnggggssss)))) **** + + Zeichenketten in QUEL sind Folgen von maximal 255 ASCII- + Zeichen, eingebunden in die (doppelten !) Anfu"hrungsstriche + ( " " ). Grosse Buchstaben innerhalb von Zeichenketten + bleiben, so wie sie sind, erhalten. Bei Verwendung des + Begrenzers " innerhalb von Zeichenketten ( als deren Bes- + tandteil ), muss diesem ein ( "\" ) + vorangestellt werden. Das muss auch fu"r selbst + erfolgen. (s. auch Abschnitt "Pattern matching ..") + + Innerhalb von Zeichenketten du"rfen nur druckbare Zeichen + verwendet werden. Nicht druckbare Zeichen + (control_character) werden in Leerzeichen konver- + tiert. + + _1._1._1._4._2. GGGGaaaannnnzzzzzzzzaaaahhhhlllliiiiggggeeee KKKKoooonnnnssssttttaaaannnntttteeeennnn ((((IIIInnnntttteeeeggggeeeerrrr)))) **** + + Ganzzahlige Konstanten liegen im Wertebereich von + -2 147 483 648 bis +2 147 483 647. Ganzzahlige Konstanten + ausserhalb dieses Wertebereiches werden in eine Gleitkomma- + Darstellung umgewandelt. Wenn die ganzzahlige Konstante + kleiner als 32 768 und gro"sser als -32 769 ist, wird sie als + eine 2-Byte-Integer dargestellt, anderenfalls wird sie in + eine 4-Byte-Integer konvertiert. + + _1._1._1._4._3. GGGGlllleeeeiiiittttkkkkoooommmmmmmmaaaa---- ((((ffffllllooooaaaattttiiiinnnngggg____ppppooooiiiinnnntttt)))) KKKKoooonnnnssssttttaaaannnntttteeeennnn **** + + Gleitkomma-Konstanten werden mit einem ganzen Teil, dem De- + zimalpunkt(!), einem gebrochenen Teil (zusammen als Mantisse + bezeichnet) und einem Exponenten formuliert. Genauer gesagt + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 9 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + werden sie in folgendem Format geschrieben: + + {} [.] [eE [+-] {}] + + Im obigen speziellen Fall steht fu"r eine beliebige + Ziffer. Ein Exponent ohne Mantisse erha"lt die Mantisse 1 + zugeordnet. Innerhalb einer Gleitkomma-Konstanten du"rfen + keine weiteren Zeichen eingebettet werden. Gleitkomma- + Konstanten werden in doppelter Genauigkeit mit einem Wer- + tebereich von anna"hernd -10**38 bis +10**38 und einer + Genauigkeit von 17 Dezimalziffern dargestellt. + + _1._1._1._5. KKKKoooonnnnssssttttaaaannnntttteeee OOOOppppeeeerrrraaaattttoooorrrreeeennnn + + Die konstanten Operatoren sind Operatoren, die Konstanten + liefern. ddddbbbbaaaa liefert den Datenbankadministrator der verwen- + deten Datenbanken und uuuusssseeeerrrrccccooooddddeeee den gerade aktiven Nutzer. + + <<<>>> + <<<>>> + + Sie liefern in der Ersetzung den String fu"r den bzw. + den . + + _1._1._1._6. AAAAttttttttrrrriiiibbbbuuuutttteeee <<<>>> **** + + Ein Attribut ist ein Konstrukt der Form: + + . + + <<<>>> identifiziert eine bestimmte Relation. Man + kann den Bezeichner <<<>>> auffassen, als stu"nde + er fu"r die Zeilen bzw. Tupel dieser Relation. Eine Variable + wird einer Relation durch Verwendung des rrrraaaannnnggggeeee---- Statements + zugeordnet. <<<>>> ist der Name einer der Spalten der + Relation, u"ber der die Variable definiert ist. Damit + bezeichnet das Konstrukt ein Attribut, das einen Wert aus + der Doma"ne repra"sentiert. + + _1._1._1._7. AAAArrrriiiitttthhhhmmmmeeeettttiiiisssscccchhhheeee OOOOppppeeeerrrraaaattttoooorrrreeeennnn **** + + Arithmetische Operatoren haben Ausdru"cke von numerischem + Format als Operanden. Einstellige Operatoren gruppieren von + rechts nach links; zweistellige Operatoren gruppieren von + links nach rechts. Die Operatoren - in der Reihenfolge + absteigende Bindungssta"rke - sind: + + +,- (einstellig) plus, minus + ** Potenzierung + *,/ Multiplikation, Division + +,- (zweistellig) Addition, Subtraktion + + + In weiter abfallender Bindungssta"rke schliessen sich hieran + die weiter hinten aufgefu"hrten Operatoren: + + + + + Klammern ( ) sind fu"r eine spezielle Festlegung der Bindung + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 10 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + der Operatoren einzusetzen. Bei ganzzahligen Operationen + wird der arithmetische U"berlauf und die Division durch Null + nicht gepru"ft. Bei Gleitkomma-Operationen wird U"berlauf, + Unterlauf und Division durch Null nur gepru"ft, wenn die + entsprechende Hardware existiert und aktiv ist. + + _1._1._1._8. AAAAuuuussssddddrrrruuuu""""cccckkkkeeee <<<>>> **** + + Ein Ausdruck ist entweder/oder ein(e): + + Konstante + Attribut + Funktionaler Ausdruck + Aggregat oder Aggregat-Funktion + Kombination von numerischen Ausdru"cken und + arithmetischen Operatoren + + + Innerhalb dieses Handbuchs wird ein beliebiger Ausdruck als + <<<>>> bezeichnet. + + _1._1._1._9. FFFFoooorrrrmmmmaaaatttteeee <<<>>> **** + + Jeder <<<>>> hat ein Format , das durch einen + Buchstaben (cccc,,,, iiii oder ffff,,,, fu"r Zeichenfolgen (character), + ganze Zahlen (integer) oder Gleitkomma-Daten(float) ) und + eine Ziffer, die die Anzahl der zur Speicherung no"tigen + Bytes anzeigt, bezeichnet wird. Die unterstu"tzten Formate + sind folgend aufgeza"hlt, der Wertebereich der numerischen + Formate ist in Klammern angegeben. + + c1 - c255 Zeichenketten von 1-255 Bytes La"nge + i1 1-Byte Integer (-128 bis +127) + i2 2-Byte Integer (-32768 bis +32767) + i4 4-Byte Integer (-2 147 483 448 bis + +2 147 483 647) + f4 4-Byte floating (-10**38 bis +10**38, + 7 Dezimalen Genauigkeit) + f8 8-Byte floating (-10**38 bis +10**38, + 17 Dezimalen Genauigkeit) + + + Eine Variable von numerischem Format kann einer jeden + anderen numerischen Formats zugewiesen werden, sie wird + dabei konvertiert. + + _1._1._1._1_0. FFFFoooorrrrmmmmaaaatttt KKKKoooonnnnvvvveeeerrrrttttiiiieeeerrrruuuunnnngggg **** + + Bei Operationen u"ber zwei numerische Doma"nen von unter- + schiedlichem Format fu"hrt ING_DB automatisch die notwendi- + gen Konvertierungen durch. + + Bei Operationen zwischen einem ganzzahligen Operanden und + einem Gleitkomma Operanden wird der ganzzahlige vor der + Operation in Gleitkomma umgewandelt. Bei Operationen + zwischen zwei ganzzahligen Operanden unterschiedlicher La"nge + wird der ku"rzere auf die La"nge des la"ngeren konvertiert. + Bei Operationen zwischen zwei Gleitkomma Operanden unter- + schiedlicher Genauigkeit wird der la"ngere in die Genauigkeit + des ku"rzeren konvertiert. + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 11 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + Die folgende Tabelle gibt alle mo"glichen Kombinationen an: + + i1 i2 i4 f4 f8 + + i1 - i1 i2 i4 f4 f8 + i2 - i2 i2 i4 f4 f8 + i4 - i4 i4 i4 f4 f8 + f4 - f4 f4 f4 f4 f4 + f8 - f8 f8 f8 f4 f8 + + + ING_DB unterstu"tzt die folgenden Konvertierungsoperatoren, + die man an Stelle der o.g. automatischen Standardaktionen + einsetzen kann: + + int1() Resultat hat Format i1 + int2() Resultat hat Format i2 + int4() Resultat hat Format i4 + float4() Resultat hat Format f4 + float8() Resultat hat Format f8 + + + Die Konvertierungsoperatoren konvertieren ihr Argument + also in das von ihnen bezeichnete Format. <<<>>> + kann irgendwelche Zeichen enthalten. Wenn ein Zeichen nicht + konvertiert werden kann, wird ein Fehler angezeigt und die + Berechnung abgebrochen - das kann nur eintreten, wenn die + Syntax fu"r den zu konvertierenden <<<>>> nicht eingehalten + wurde. + + U"berlauf wird bei Konvertierungen nicht gepru"ft. + + _1._1._1._1_1. ZZZZiiiieeeelllllllliiiisssstttteeee <<<>>> **** + + Eine <<<>>> ist eine geklammerte Liste von einem oder + mehreren Elementen, die untereinander durch Kommata getrennt + werden. Jedes ihrer Elemente muss eines der folgend + aufgeza"hlten sein: + + a) iiiissss + + ist hier der Name einer Doma"ne, die erzeugt + werden soll (oder die, im Falle von update-Statements, + bereits existiert). Das Gleichheitszeichen ( "=" ) ist + gleichbedeutend mit iiiissss.... In dem Falle, wo kein + einfaches Attribut ist, muss diese Form benutzt werden, + um den Ausdruck einem namentlich angegebenem Resultat + zuzuordnen. + + b) + + Im Falle eines rrrreeeettttrrrriiiieeeevvvveeee----Statements wird als Ergeb- + nisspalte die angenommen, die den gleichen Namen, wie + der dabei angegebene hat. Im Falle von + update-Statements (aaaappppppppeeeennnndddd,,,, rrrreeeeppppllllaaaacccceeee), muss die zu + vera"ndernde Relation eine Doma"ne mit genau dem + bezeichneten Namen aufweisen. + + Innerhalb einer kann das Schlu"sselwort aaaallllllll + dazu benutzt werden, alle Doma"nen zu bezeichnen. Zum + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 12 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + Beispiel + + range of p is personal + retrieve (p.all) where p.gehalt > 1000 + + sucht alle Tupel der Relation personal, die die Bedingung + : gehalt > 1000 erfu"llen. aaaallllllll kann in der + von rrrreeeettttrrrriiiieeeevvvveeee---- oder aaaappppppppeeeennnndddd---- Statements benutzt + werden. Die Doma"nen werden in ihrer erzeugten Reihenfolge + eingesetzt, d.h. in der, in der sie mit dem ccccrrrreeeeaaaatttteeee---- State- + ment erzeugt wurden. + + _1._1._1._1_2. VVVVeeeerrrrgggglllleeeeiiiicccchhhhssssooooppppeeeerrrraaaattttoooorrrreeeennnn <<<>>> + uuuunnnndddd KKKKllllaaaauuuusssseeeellllnnnn <<<>>> **** + + Es gibt Vergleichsoperatoren , die + beliebige Ausdru"cke als Operanden haben: + + < (kleiner als) + <= (kleiner als oder gleich) + > (gro"sser als) + >= (gro"sser als oder gleich) + = (gleich mit) + != (ungleich zu) + + + Diese Operatoren sind alle von gleicher Bindungssta"rke. Bei + Vergleichen zwischen Zeichenketten werden alle Leerzeichen + innerhalb der Zeichenketten ignoriert. + + Eine Klausel ist ein Paar von Ausdru"cken, die durch + einen Vergleichsoperator verknu"pft sind: + + + + _1._1._1._1_3. LLLLooooggggiiiisssscccchhhheeee OOOOppppeeeerrrraaaattttoooorrrreeeennnn <<<>>> + uuuunnnndddd QQQQuuuuaaaalllliiiiffffiiiikkkkaaaattttiiiioooonnnn <<<>>> + ((((aaaauuuucccchhhh <<<>>>)))) **** + + Logische Operatoren haben Klauseln () als Operanden. + Sie gruppieren von links nach rechts. + + not (logische Negation) + and (logisches und; Konjunktion) + or (logisches inclusives oder; Disjunktion) + + + nnnnooootttt hat von den drei Operatoren die ho"chste Bindungssta"rke. + aaaannnndddd und oooorrrr haben die gleiche Bindungssta"rke. Klammern ( ) + kann man fu"r eine spezielle Bindung einsetzen. + + Eine <<<>>> besteht aus einer Anzahl von Klauseln + , die durch logische Operatoren verknu"pft sind. + Eine kann damit sein: + + <<<>>> + nnnnooootttt <<<>>> + <<<>>> oooorrrr <<<>>> + <<<>>> aaaannnndddd <<<>>> + ( <<<>>> ) + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 13 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + _1._1._1._1_4. FFFFuuuunnnnkkkkttttiiiioooonnnnaaaalllleeee AAAAuuuussssddddrrrruuuu""""cccckkkkeeee <<<>>> **** + + Ein <<<>>> ist ein Konstrukt, bestehend aus + einem Funktionsnamen, gefolgt von einem eingeklammerten + Operanden oder einer eingeklammerten Liste durch Kommata + getrennter Operanden. Funktionale Ausdru"cke ko"nnen in + beliebiger Tiefe geschachtelt werden. In der folgenden + Aufza"hlung der unterstu"tzten Funktionen repra"sentiert (nnnn ) + einen beliebigen Ausdruck von numerischem Format. Das + Resultat-Format ist rechts angezeigt. + + abs(n) - dasselbe wie n (Absolutwert) + ascii(n) - Zeichenkette (konvertiert numerisch in + Zeichen) + atan(n) - f8 (arctangens) + concat(a,b) - Zeichenkette (Verkettung) + cos(n) - f8 (cosinus) + exp(n) - f8 (n. Potenz von e) + log(n) - f8 (natu"rlicher Logarithmus) + mod(n,b) - dasselbe wie b (n modulo b, n und b + mu"ssen vom Format i1, i2 oder i4 sein + sin(n) - f8 (sinus) + sqrt(n) - f8 (Quadratwurzel) + + + _1._1._1._1_5. AAAAggggggggrrrreeeeggggaaaatttt----AAAAuuuussssddddrrrruuuu""""cccckkkkeeee **** + + Aggregat-Ausdru"cke ermo"glichen es, u"ber einer Menge von + Seiten zusammengefasste Werte zu berechnen. + + _1._1._1._1_5._1. AAAAggggggggrrrreeeeggggaaaatttt----OOOOppppeeeerrrraaaattttoooorrrreeeennnn <<<>>> **** + + Folgende Aggregat-Operatoren und ihr Resultat-Format sind + definiert. + + count - (i4) Anzahl von Vorkommen + countu - (i4) Anzahl von einmaligen (unique) Vorkommen + sum - Summierung + sumu - Summierung aller unterschiedlichen Werte + avg - (f8) Durchschnitt (average) (sum/count) + avgu - (f8) unique average (sumu/countu) + max - Maximum + min - Minimum + any - (i2) ergibt 1, sobald sich ein Tupel qualifiziert, + sonst 0 + + + _1._1._1._1_5._2. EEEEiiiinnnnffffaaaacccchhhheeee AAAAggggggggrrrreeeeggggaaaatttteeee <<<>>> **** + + <<<>>> (<<<>>> + [ wwwwhhhheeeerrrreeee <<<>>> ] ) + + Ein einfaches Aggregat erzeugt einen einzelnen skalaren + Wert. <<<>>> wird u"ber der Menge der Tupel aggregiert, + die die <<<>>> erfu"llen (oder u"ber alle Tupel im + Geltungsbereich des Ausdrucks, wenn keine + angegeben ist). Die Operatoren ssssuuuummmm und aaaavvvvgggg verlangen + <<<>>> in numerischem Format; ccccoooouuuunnnntttt,,,, aaaannnnyyyy,,,, mmmmaaaaxxxx und mmmmiiiinnnn + arbeiten sowohl auf Zeichenketten, als auch auf <<<>>> von + numerischem Format. + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 14 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + EEEEiiiinnnnffffaaaacccchhhheeee AAAAggggggggrrrreeeeggggaaaatttteeee ssssiiiinnnndddd vvvvoooollllllllssssttttaaaa""""nnnnddddiiiigggg llllooookkkkaaaallll,,,, d.h. sie werden + logisch von der u"brigen Anfrage abgetrennt, separat + berechnet und danach in der Anfrage durch ihren skalaren + Wert ersetzt. + + _1._1._1._1_5._3. DDDDaaaassss aaaannnnyyyy AAAAggggggggrrrreeeeggggaaaatttt **** + + Manchmal mo"chte man wissen, ob es Tupel gibt, die eine be- + stimmte erfu"llen. Eine Mo"glichkeit, das zu + erfahren, bietet die Benutzung des ccccoooouuuunnnntttt---- Aggregates, nach + welchem man dann pru"fen kann, ob sich Tupel qualifizieren. + Die Benutzung von aaaannnnyyyy anstelle von ccccoooouuuunnnntttt ist deshalb + effizienter, weil dabei die Berechnung abgebrochen wird, + sobald das erste sich qualifizierende Tupel gefunden wurde. + + aaaannnnyyyy gibt 1 zuru"ck, wenn sich mindestens ein Tupel quali- + fiziert und sonst 0. + + _1._1._1._1_5._4. AAAAggggggggrrrreeeeggggaaaatttt----FFFFuuuunnnnkkkkttttiiiioooonnnneeeennnn **** + + <<<>>> (<<<>>> bbbbyyyy <<<>>> + {{{{,,,, <<<>>>}}}} [ wwwwhhhheeeerrrreeee <<<>>> ] ) + + Aggregat-Funktionen sind Verallgemeinerungen der einfachen + Aggregate. Die bbbbyyyy---- Phrase gruppiert (d.h. portioniert) die + Menge der sich qualifizierenden Tupel nach den Werten der + <<<>>> (das ist ein ). Bei Angabe von mehr + als einem <<<>>>,,,, sind die durch bbbbyyyy gruppierten Werte + die Verkettung der einzelnen <<<>>>.... <<<>>> gilt + wie bei einfachen Aggregaten. Eine Aggregat-Funktion ergibt + eine Menge von Aggregaten, je eines fu"r jede Portion, in die + die Menge der sich qualifizierenden Tupel gruppiert wurde. + Das Aggregat, das wa"hrend der Berechnung der Query jeweils + benutzt wird, ist das, das der Portion zugeordnet ist, in + das das jeweils gerade behandelte Tupel fa"llt. + + Anders als bei einfachen Aggregaten sind Aggregat-Funktionen + nicht vollsta"ndig lokal. Die by-Phrase, durch welche sich + eine Aggregat-Funktion von einfachen Aggregaten unter- + scheidet, ist fu"r die Query global. Doma"nen in der by- + Phrase werden automatisch an andere Doma"nen der gleichen + Relation gebunden, sofern solche in der Query vorkommen. + + Zum Beispiel: + + /* Bilde das Durchschnittsgehalt fu"r + die Angestellten einer Abteilung */ + range of p is personal + retrieve (p.abteilung, + dgehalt=avg(p.gehalt by p.abteilung)) + + + _1._1._1._1_5._5. AAAAggggggggrrrreeeeggggaaaatttteeee uuuu""""bbbbeeeerrrr """"eeeeiiiinnnnmmmmaaaalllliiiiggggeeee""""----WWWWeeeerrrrtttteeee **** + + Ha"ufig ist es notwendig, nur u"ber die vvvveeeerrrrsssscccchhhhiiiieeeeddddeeeennnneeeennnn Werte + eines Ausdrucks zu aggregieren. Die aaaavvvvgggguuuu , ssssuuuummmmuuuu und ccccoooouuuunnnnttttuuuu + Aggregate unterdru"cken alle mehrfach auftretenden Werte, + bevor das Aggregat gebildet wird. Zum Beispiel: + + + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 15 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + count(p.abteilung) + + wu"rde ermitteln, wie oft in den, in unserem Beispiel pro + Angestellten angelegten Tupeln, das Attribut """"pppp....aaaabbbbtttteeeeiiiilllluuuunnnngggg"""" + mit Werten belegt ist. Aber + + countu(p.abteilung) + + erst wu"rde za"hlen, wieviele unterschiedliche Werte fu"r die + Doma"ne pppp....aaaabbbbtttteeeeiiiilllluuuunnnngggg existieren (wofu"r man sich wahrscheinlich + auch in diesem Beipiel interessiert). + + _1._1._1._1_6. SSSSppppeeeezzzziiiiffffiiiisssscccchhhheeee ZZZZeeeeiiiicccchhhheeeennnnkkkkeeeetttttttteeeennnn----OOOOppppeeeerrrraaaattttoooorrrreeeennnn **** + + Es werden drei speziell fu"r die Arbeit mit Zeichenketten + eingerichtete Arbeitsmo"glichkeiten unterstu"tzt: + + _1._1._1._1_6._1. MMMMuuuusssstttteeeerrrrssssuuuucccchhhheeee aaaauuuuffff ZZZZeeeeiiiicccchhhheeeennnnkkkkeeeetttttttteeeennnn + ((((""""PPPPaaaatttttttteeeerrrrnnnn mmmmaaaattttcccchhhhiiiinnnngggg"""")))) **** + + Es gibt vier Zeichen, die eine spezielle Bedeutung haben, + wenn sie innerhalb von Zeichenketten-Konstanten (strings) + einer eingesetzt werden: + + * symbolisiert eine Zeichenkette von einem oder + mehreren Zeichen. + + ? symbolisiert ein einzelnes, beliebiges Zeichen. + + [..] symbolisiert eines der, in den Klammern aufgeza"hlten + Zeichen. Von "-" bis Angaben sind erlaubt. + + Diese Zeichen kann man in beliebigen Kombinationen benutzen, + um eine Vielzahl von Tests zu formulieren. Zum Beispiel: + + where p.name = "*" - qualifiziert jeden beliebigen Namen. + + where p.name = "E*" - qualifiziert einen, mit "E" beginnen- + den, sonst beliebigen Namen. + + where p.name = "*ung" - qualifiziert alle Namen, die auf + "ung" enden. + + where p.name = "*[aeiou]*" - qualifiziert alle Namen, die + irgendwo einen kleingeschriebenen Vokal enthalten. + + where p.name = "Schul?" - qualifiziert alle 6 Zeichen langen + Namen, die mit "Schul" beginnen. + + where p.name = "[A-J]*" - qualifiziert alle Namen, die mit + A,B,..,J beginnen. + + Die spezielle Bedeutung der pattern_matching-Zeichen wird + aufgehoben, wenn man ihnen ein ( "\" ) voran- + stellt. So bezeichnet "\*" das Zeichen "*". Pattern- + matching-Zeichen in einer mu"ssen immer durch + "\" kaschiert werden. Zum Beispiel: + + titel = "\*\*\* muster \*\*\*" + + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 16 - EEEEiiiinnnnffffuuuueeeehhhhrrrruuuunnnngggg + + + ist die korrekte Art, die Kette "*** muster ***" der Doma"ne + "titel" zuzuweisen. + + _1._1._1._1_6._2. VVVVeeeerrrrkkkkeeeettttttttuuuunnnngggg **** + + Es gibt einen Verkettungs- (concatenation) Operator, mit dem + man aus zwei Zeichenketten eine bilden kann. Seine Syntax + ist + concat(feld1, feld2) + + Die La"nge der neuen Zeichenkette ist die Summe der La"ngen + der beiden Quellketten. In feld1 hinten stehende Leerzeichen + werden unterdru"ckt, feld2 wird angekettet und die Ergeb- + niskette wird hinten mit Leerzeichen aufgefu"llt. Ver- + kettungen ko"nnen beliebig in andere Verkettungen + geschachtelt werden. Zum Beipiel: + + name = concat(concat(x.nachname, ","), x.vorname) + + verkettet den Nachnamen mit einem Komma und kettet daran den + Vornamen. + + _1._1._1._1_6._3. aaaasssscccciiiiiiii ---- nnnnuuuummmmeeeerrrriiiisssscccchhhh zzzzuuuu + ZZZZeeeeiiiicccchhhheeeennnnkkkkeeeetttttttteeeennnn wwwwaaaannnnddddeeeellllnnnn **** + + Die aaaasssscccciiiiiiii Funktion kann benutzt werden, um ein numerisches + Feld in eine Zeichenketten-Darstellung zu u"berfu"hren - das + kann nu"tzlich sein, wenn die Aufgabe steht, ein numerisches + Feld mit einem Zeichenkettenfeld zu vergleichen. Zum + Beipiel: + retrieve ( ... ) + where x.chardomname = ascii(x.numdomname) + + aaaasssscccciiiiiiii kann auf einen Zeichenketten-Wert angewandt werden; + das Ergebnis ist die ungea"nderte Zeichenkette. Das Konver- + tierungsformat wird durch das Druckformat (printing_format, + s. quel(unix)) bestimmt. + + SSSSIIIIEEEEHHHHEEEE AAAAUUUUCCCCHHHH + + append(quel), delete(quel), range(quel), replace(quel), + retrieve(quel), quel(unix) + + HHHHIIIILLLLFFFFEEEENNNN + + Die maximale Anzahl von Variablen, die in einer Anfrage + benutzt werden kann, ist 10. + + Numerischer U"berlauf, Unterlauf und Division durch Null + werden nicht entdeckt. + + Bei der Konvertierung numerischer Formate wird ein + U"berlauf nicht entdeckt. + + + + + + + + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 17 - MMMMoooonnnniiiittttoooorrrr + + + _1._1._2. DDDDeeeerrrr iiiinnnntttteeeerrrraaaakkkkttttiiiivvvveeee TTTTeeeerrrrmmmmiiiinnnnaaaallll----MMMMoooonnnniiiittttoooorrrr **** + + + _1._1._2._1. IIIInnnnhhhhaaaalllltttt uuuunnnndddd LLLLeeeeiiiissssttttuuuunnnngggg **** + + Der interaktive Terminal-Monitor ist der front-end-Prozess + von ING_DB . Er ermo"glicht es, eine Anfrage zu formulieren + und sie zu erga"nzen, bevor sie ING_DB u"bergeben wird. Zur + Ausfu"hrung von A"nderungen an der Anfrage im """"MMMMoooonnnniiiittttoooorrrr----PPPPuuuuffffffffeeeerrrr"""" + kann ein UNIX - Text-Editor nach eigener Wahl benutzt wer- + den. + + + _1._1._2._2. NNNNaaaacccchhhhrrrriiiicccchhhhtttteeeennnn uuuunnnndddd PPPPrrrroooommmmpppptttt----MMMMeeeelllldddduuuunnnnggggeeeennnn **** + + Der Terminal-Monitor gibt eine Reihe von Meldungen ab, um + den Nutzer u"ber den Status des Monitors und des + Monitor-Puffers zu informieren. + + Nach Anmeldung des Nutzers wird eine login-Nachricht aus- + gegeben, die die Versionsnummer von ING_DB und die + login-Zeit anzeigt. Ihr folgt die Ausgabe des dayfile, das + Informationen fu"r alle Nutzer entha"lt. + + Sobald ING_DB eingabebereit ist, wird die Meldung + + ING-db> + * + + ausgegeben. Sie zeigt an, dass der Monitor-Puffer leer ist. + Die Meldung + + ING-db: + * + + zeigt an, dass der Monitor-Puffer noch Informationen + entha"lt. Nach einem \go-Kommando wird der Monitor-Puffer + automatisch gelo"scht (autoclear-Funktion), sobald nachfol- + gend eine weitere Anfrage eingegeben wird, nicht aber, wenn + danach zuerst ein Kommando folgt, das sich auf den + Monitor-Puffer bezieht. Solche Kommandos sind \append, + \edit, \print, \list, \eval und \go. Wenn man z.B. eingibt: + help parts + \go + print parts + entha"lt der Monitor-Puffer + print parts + Wenn man dagegen eingibt + help parts + \go + \print + print parts + entha"lt der Monitor-Puffer + help parts + print parts + Am Anfang jeder Eingabe-Zeile wird der 2. Prompt von ING_DB + , in der Regel ein Stern ("*"), ausgegeben, sobald der Moni- + tor auf eine Eingabe des Nutzers wartet. + + + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 18 - MMMMoooonnnniiiittttoooorrrr + + + _1._1._2._3. KKKKoooommmmmmmmaaaannnnddddoooossss **** + + Es gibt eine Anzahl von Kommandos, die vom Nutzer eingesetzt + werden ko"nnen, um mit dem Monitor-Puffer zu arbeiten oder + die Nutzer-Umgebung einzurichten. Kommandos beginnen mit + dem Kommandokennzeichen, in der Regel mit einem + ("\"). Monitor-Kommandos werden unverzu"glich ausgefu"hrt. + + Einige Kommandos haben einen Parameter. Dieser besteht aus + den signifikanten Zeichen nach dem Kommando bis zum + Zeilenende. Hinter solchen Kommandos kann kein anderes Kom- + mando auf der gleichen Zeile folgen. Kommandos ohne Parame- + ter ko"nnen auf einer Zeile gepackt werden; zum Beispiel + \date\go\date + gibt die Zeit vor und nach der Ausfu"hrung der im + Monitor-Puffer enthaltenen Query aus. + + LLLLiiiisssstttteeee ddddeeeerrrr KKKKoooommmmmmmmaaaannnnddddoooossss + + \m + \monitor [parm] + + Kommandokennzeichen einstellen + Der Parameter ist das Kennzeichen. Wenn er fehlt, wird + der Standard eingesetzt. + + \r + \reset + + Lo"schen der Anfrage. Der formulierte Inhalt des + Monitor-Puffers ist unwiederbringlich verloren. + + \H + \HELP [parm] + + Es wird eine la"ngere Dokumentation als Hilfe angezeigt. + Die Paramter sind mit denen von manr(unix) identisch. + + \p + \print + + Druck der anliegenden Query. Der Inhalt des + Monitor-Puffers wird auf dem Nutzer-Terminal ausgege- + ben. + + \l + \list + + Druck der anliegenden Query in der Form, wie sie nach + ihrer Transformation durch den Makro-Prozessor aus- + sieht. Einige Nebeneffekte bei der Arbeit des + Makro-Prozessors, wie die Definition von Makros werden + dabei mit ausgefu"hrt. + + \v + \eval + + Makro-Bearbeitung des Monitor-Puffers. Das Kommando + dient der Definition von Makros. Der Monitor-Puffer + wird anschliessend gelo"scht. + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 19 - MMMMoooonnnniiiittttoooorrrr + + + \e + \ed + \edit [parm] + \editor + + Ruf eines frei wa"hlbaren UNIX -Text-Editors zum Edi- + tieren des Monitor-Puffers (s. auch ED, EM, VI, RAND im + UNIX Programmer's Manual). Nach Beendigung der Edi- + torarbeit kehrt man automatisch in den Monitor zuru"ck. + Der Monitorpuffer erha"lt jetzt den editierten Stand. + Wenn dem \e-Monitor-Kommando ein Parameter gegeben + wird, wird nicht der Monitor-Puffer sondern das, durch + den Parameter bezeichnete File zum editierenden File. + Wenn der Editor mit dem Monitor-Puffer + gestartet wird, muss zu dessen A"nderung natu"rlich ein + w-Editor-Kommando gegeben werden, ehe man dem + Editor ein anderes File zuordnet. Wenn der Makro + "{editor}" definiert ist, wird dieser Makro als ein + Pfadname fu"r einen speziellen Editor genommen, anderen- + falls wird der installationsabha"ngige Systemeditor + benutzt. + + \g + \go + + Ausfu"hrung der anliegenden Query. Der Inhalt des + Monitor-Puffers wird von der Auflo"sung der Makros + {begintrap} und {endtrap} umgeben, durch den + Makro-Prozessor transformiert und ING_DB u"bermittelt + und ausgefu"hrt. Bei Ausfu"hrung der tupelorientierten + Statements rrrreeeettttrrrriiiieeeevvvveeee , aaaappppppppeeeennnndddd , rrrreeeeppppllllaaaacccceeee und ddddeeeelllleeeetttteeee wird + der Makro {tuplecount} mit der Anzahl der bearbeiteten + Tupel definiert (sonst und im Fehlerfall als -1). Vor + Ru"ckkehr in den Eingabemodus ruft der Monitor den Makro + {continuetrap}. + + \a + \append + + Anfu"gen an den Monitor-Puffer. Das Kommando \a + u"berschreibt nach Ausfu"hrung einer Query die + auto_clear-Funktion und garantiert, dass der + Monitor-Puffer nicht gelo"scht wird. + + \d + \time + \date + + Ausgabe der aktuellen Tageszeit, + Ausgabe des Datums + + \s + \sh + \shell [parm] + + Ruf einer UNIX -Shell. Nach Beendigung der Shell kehrt + man automatisch in den Monitor zuru"ck. Wenn das Kom- + mando einen Parameter hat, wird die Shell nicht als + interaktive Shell gestartet, sondern das mit dem Para- + meter bezeichnete Programm (File) gerufen, dem als + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 20 - MMMMoooonnnniiiittttoooorrrr + + + Parameter die Stellungsparameter ($1 usw.) u"ber den + Monitor-Puffer zuga"nglich sind. Wenn der Makro + "{shell}" definiert ist, wird dessen Wert als Pfadname + eines Programms benutzt, das mit o.g. Parametern + gerufen wird, andernfalls wird ein + installationsabha"ngiger Kommandointerpreter gerufen. + Liegt bei Ru"ckkehr ein Code != 0 vor, ruft der Monitor + den Makro {exectrap} auf. + + \q + \quit + + Sitzungsende fu"r ING_DB . + + \cd + \chdir [parm] + + Vera"nderung des current directory, auf das durch den + Parameter bezeichnete directory. + + \i + \include + \read parm + + Das bezeichnete File wird zur Eingabe fu"r den Monitor. + werden in diesem File so behandelt, wie die + vom Terminal gegebenen. + + \w + \write parm + + Der Inhalt des Monitor-Puffers wird auf das, durch den + Parameter bezeichnete File geschrieben. + + \b + \branch parm + + Verzweigung innerhalb eines \include File, siehe den + folgenden Abschnitt u"ber Spru"nge. + + \k + \mark parm + + Setzt eine Marke fu"r ein \branch. + (Parameter ist Labelname) + + \h + \help [parm] + + Ausgabe des Inhaltsverzeichnisses der Referenz-Hilfen; + mit anschliessendem Titel wird eine Kurzinformation zum + Kommando gegeben. + + \ + + Das Zeichen gelangt in den Monitor-Puffer, + irgendeine spezielle Bedeutung des fu"r das + folgende Zeichen wird ignoriert - das erlaubt, das + Zeichen "\" auch als ein normales Zeichen einzugeben + (siehe auch QQQQUUUUEEEELLLL - Zeichenketten). Es ist wichtig, zu + + + + ING_DB 6.3/3 Juni 16, 1989 QQQQUUUUEEEELLLL + + + + + + Referenz_Manual - 21 - MMMMoooonnnniiiittttoooorrrr + + + vermerken, dass der Makro-Prozessor die + wegblendet, die zum Kaschieren von Begrenzern + eingesetzt werden. Im allgemeinen formuliert man also + zwei hintereinander, wenn man eines an den + Parser senden will (Das ist insgesamt aber so kom- + pliziert, dass man am besten die Verwendung von + u"berhaupt vermeidet.). + + _1._1._2._4. MMMMaaaakkkkrrrroooossss ******** + + Eine genaue Beschreibung der Makros findet man im Abschnitt + MMMMaaaakkkkrrrroooossss.... + + _1._1._2._5. SSSSpppprrrriiiinnnnggggeeeennnn ******** + + Die \branch- und \mark-Kommandos erlauben es, innerhalb + eines \include File zu springen (analog zu "goto