Table Of Content3
Berlin
Heidelberg
New York
Barcelona
Hongkong
London
Mailand
Paris
Tokio
Xpert.pres
Die Reihe s des Springer-Verlags
vermittelt Professionals in den Bereichen
Betriebs- und Informationssysteme, Software
Engineering und Programmiersprachen aktuell
und kompetent relevantes Fachwissen über
Technologien und Produkte zur Entwicklung
und Anwendung moderner Informations-
technologien.
Bernhard Kilger
QMF
für Einsteiger
unter MVS/TSO
Mit 241 Abbildungen
123
(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)
Einleitung................................................................................................................1
1 Allgemeines zu Datenbanken........................................................................5
1.1 Datenbanken und Dateien.........................................................................5
1.2 Das hierarchische Datenbankmodell.........................................................6
1.3 Der relationale Ansatz...............................................................................8
1.4 Die mengentheoretische Betrachtung.....................................................11
1.4.1 Der Datenbanksatz als Mengenbegriff..........................................11
1.4.2 Mengenoperationen........................................................................12
1.4.3 Die Ergebnismenge........................................................................13
1.4.4 Die fünf „W“s der Datenbankrecherche........................................14
1.5 Zum Datenbankdesign............................................................................15
1.6 Die Normalformen..................................................................................16
1.6.1 Die 1. Normalform.........................................................................17
1.6.2 Die 2. Normalform.........................................................................19
1.6.3 Die 3. Normalform.........................................................................21
1.7 Schlüssel und Indizes..............................................................................23
1.7.1 Schnelle Lokalisierung per Binärsuche.........................................23
1.7.2 Sequentielle Verarbeitung per Schlüssel.......................................24
1.7.3 Fremdschlüssel...............................................................................25
1.8 Feldtypen in relationalen Datenbanken...................................................27
1.9 Die Krankenversicherung FANTASIA.....................................................28
1.9.1 Tabelle VERTRAG........................................................................29
1.9.2 Tabelle PERSON...........................................................................30
1.9.3 Tabelle TARIF...............................................................................30
1.9.4 Tabelle SCHADEN........................................................................31
1.9.5 Tabelle AGENTUR.......................................................................31
1.10Zusammenfassung..................................................................................32
2 Einstieg und erste Schritte in QMF............................................................33
2.1 Die Systemumgebung.............................................................................33
2.2 Das „National Language Feature” (NLF)...............................................35
2.3 Das Eingangsbild....................................................................................36
2.4 Datenbanksystem und Owner.................................................................37
2.5 Generelles zur Steuerung........................................................................37
2.6 Das QMF-Profil......................................................................................38
2.7 Aufbau der QMF-Befehle.......................................................................40
VI Inhalt
2.8 Befehlswiederholung...............................................................................42
2.9 Hilfestellungen.........................................................................................42
2.9.1 Der Befehl HELP (oder F1)............................................................43
2.9.2 HELP mit Message-Nummer.........................................................45
2.9.3 Befehle mit abschließendem Fragezeichen....................................45
2.10Verbindung zum Betriebssystem............................................................46
2.10.1 Der Befehl TSO............................................................................47
2.10.2 Der Befehl ISPF............................................................................47
2.11Verbindung zu anderen Rechnern..........................................................48
2.12Zusammenfassung..................................................................................48
3 Ein Sprung ins kalte Wasser........................................................................49
3.1 Das Beispiel.............................................................................................49
3.2 Einstellung des Profils.............................................................................50
3.3 Erstellung und Ausführung der Abfrage..................................................50
3.3.1 Vorbereitung der Abfrage...............................................................50
3.3.2 Bearbeitung der Abfrage.................................................................52
3.3.3 Speichern der Abfrage....................................................................54
3.3.4 Ausführung der Abfrage.................................................................54
3.4 Layoutbearbeitung mit FORMS..............................................................57
3.4.1 Spaltenlayout..................................................................................57
3.4.2 Hinzufügen weiterer Spalten..........................................................58
3.1.3 Rechenausdruck mit FORM.CALC................................................60
3.1.4 Gruppenwechsel.............................................................................61
3.1.5 Seiten- und Schluß-Layout.............................................................62
3.5 Anzeige des Reports.................................................................................63
3.6 Abspeichern des Ergebnisses...................................................................65
3.7 Drucken des Ergebnisses.........................................................................66
3.8 Alles in einer Prozedur.............................................................................67
3.9 Ein Blick in die TSO-Umgebung.............................................................68
3.10Zusammenfassung..................................................................................69
4 Menügesteuerte Abfrage..............................................................................71
4.1 Aufgabenstellung.....................................................................................71
4.2 Bearbeitung der Abfrage..........................................................................72
4.2.1 Der Befehl RESET QUERY...........................................................72
4.2.2 Der Befehl SPECIFY......................................................................73
4.2.3 Auswahl der Tabelle.......................................................................73
4.2.4 Auswahl der Felder (Projektion)....................................................75
4.2.5 Einschränkende Bedingungen (Selektion)......................................77
4.2.6 Sortierung........................................................................................82
4.2.7 Schalter „Duplicate Rows“.............................................................83
4.3 Erstellung des Reports.............................................................................84
4.3.1 Der Befehl RUN QUERY..............................................................84
4.3.2 Der Wartebildschirm......................................................................85
4.3.3 Blättern im Report..........................................................................86
Inhalt VII
4.4 NachträglicheÄnderungen......................................................................87
4.4.1 Das Sortierproblem........................................................................87
4.4.2 Der Befehl SHOW QUERY..........................................................88
4.4.3 Editierbefehle.................................................................................89
4.5 Umwandeln in SQL.................................................................................91
4.5.1 Der Befehl SHOW SQL................................................................91
4.5.2 Der Befehl CONVERT..................................................................92
4.6 Query by Example...................................................................................94
4.7 Zusammenfassung...................................................................................99
5 SQL..............................................................................................................101
5.1 Allgemeines zu SQL.............................................................................102
5.1.1 Zur Historie..................................................................................102
5.1.2 SQL-Zugang unter DB2...............................................................103
5.2 SQL-Abfragen unter QMF....................................................................104
5.2.1 Einstellung des Profils.................................................................104
5.2.2 Das SQL-Editierfenster................................................................105
5.2.3 Grundformat der SQL-Anweisung..............................................106
5.2.4 Nutzung des ISPF-Editors...........................................................107
5.2.5 Ausführung und Weiterbearbeitung der Abfrage........................107
5.3 Die SQL-Grundbausteine......................................................................108
5.3.1 Syntax des „Sub-Selects“.............................................................108
5.3.2 Die Feldliste in SELECT.............................................................109
5.3.3 Die Tabellenliste..........................................................................110
5.3.4 Die Minimalform SELECT – FROM..........................................112
5.3.5 Die WHERE-Klausel (Grundform).............................................113
5.3.6 BETWEEN, IN, LIKE, IS NULL................................................117
5.3.7 Gruppierung mit GROUP BY......................................................120
5.3.8 Aggregatfunktionen.....................................................................121
5.3.9 Gruppierung mit HAVING-Klausel............................................124
5.3.10 Einzelselektion versus Gruppierung..........................................125
5.4 Das „Full Select“...................................................................................126
5.4.1 UNIONs.......................................................................................127
5.4.2 Sortierung mit ORDER BY.........................................................130
5.5 Ausdrücke und Funktionen...................................................................132
5.5.1 Ausdrücke....................................................................................132
5.5.2 Konstanten...................................................................................133
5.5.3 Systemvariablen...........................................................................134
5.5.4 Stringverkettung...........................................................................134
5.5.5 Arithmetische Operationen..........................................................135
5.5.6 Datums- und Zeit-Arithmetik......................................................136
5.5.7 Stringfunktionen..........................................................................137
5.5.8 Arithmetische Funktionen............................................................138
5.5.9 Datums- und Zeit-Funktionen......................................................139
5.5.10 Typkonvertierungsfunktionen....................................................140
5.5.11 Der Pseudowert NULL..............................................................141
VIII Inhalt
5.6 Geschachtelte Abfragen.........................................................................142
5.6.1 Sub-Selects in der WHERE-Klausel............................................142
5.6.2 Sub-Selects in der FROM-Klausel...............................................146
5.7 Das CASE-Konstrukt.............................................................................148
5.8 Joins.......................................................................................................152
5.8.1 Grundprinzip.................................................................................152
5.8.2 Inner Joins.....................................................................................153
5.8.3 Outer Joins....................................................................................156
5.8.4 Joins über Fremdschlüsselbeziehung............................................159
5.8.5 Der Rekursive Join (Auto-Join)....................................................160
5.9 Views.....................................................................................................162
5.9.1 Definition......................................................................................162
5.9.2 Die SQL-Anweisung CREATE VIEW........................................162
5.9.3 Sub-Select versus View................................................................164
5.10Rückblick auf den Schnellkurs in Kap. 3.............................................165
6 FORMS........................................................................................................169
6.1 Allgemeines zu FORMS........................................................................169
6.1.1 Die Rolle des Formatsystems.......................................................169
6.1.2 Überblicküber die FORMS-Komponenten..................................170
6.1.3 Symbolische Variablen in FORMS..............................................172
6.1.4 Das Standardformat......................................................................173
6.2 FORM.MAIN: Alles auf einen Blick.....................................................174
6.3 FORM.COLUMNS: Spalteneigenschaften............................................175
6.3.1 Überblick......................................................................................175
6.3.2 COLUMN HEADING: Überschriften..........................................176
6.3.3 USAGE: Spaltenverwendung.......................................................176
6.3.4 INDENT: Spaltenabstände...........................................................178
6.3.5 WIDTH: Spaltenbreite..................................................................179
6.3.6 EDIT: Spaltenformate...................................................................179
6.3.7 SEQ: Änderung der Spaltenreihenfolge.......................................182
6.3.8 Anwendung auf das Leitbeispiel..................................................182
6.4 FORM.BREAK: Gruppenwechsel.........................................................183
6.4.1 Allgemeines zu Gruppenwechseln...............................................183
6.4.2 Die Spaltenverwendung BREAK in F.COLUMNS.....................186
6.4.3 Gestaltung des Gruppenwechsels mit Menü F.BREAK...............188
6.4.4 Unterdrückung der Überschriftswerte im Datenblock..................191
6.5 Hinzufügen weiterer Reportspalten.......................................................193
6.6 FORM.CALC: Definition von Funktionen............................................196
6.7 FORM.PAGE: Seitengestaltung............................................................200
6.8 FORM.FINAL: Schlußgestaltung..........................................................203
6.9 FORM.DETAIL: Überschrift und Datenblock......................................205
6.10FORM.CONDITIONS: Bedingtes Layout...........................................209
6.11FORM.OPTIONS: Diverse Einstellungen............................................214
Inhalt IX
6.12Spezielle Techniken.............................................................................217
6.12.1 Nachträgliche Gruppierung........................................................217
6.12.2 Spaltenverwendung ACROSS...................................................218
6.12.3 Der Befehl CHECK....................................................................219
6.12.4 Der Befehl LAYOUT.................................................................220
6.13Zur Programmiersprache REXX in FORMS.......................................221
6.14Zusammenfassung................................................................................222
7 Variablen und Prozeduren........................................................................223
7.1 Substitutionsvariablen...........................................................................223
7.2 Globale Variablen.................................................................................226
7.2.1 Allgemeine Regeln.......................................................................226
7.2.2 Globale Systemvariablen.............................................................228
7.2.3 Profil-Variablen...........................................................................229
7.2.4 Der Befehl SHOW GLOBALS....................................................230
7.3 QMF-Prozeduren...................................................................................232
7.3.1 Allgemeines zum Umgang mit Prozeduren.................................232
7.3.2 Lineare Prozeduren......................................................................233
7.3.3 Variablen an Abfragen weiterreichen..........................................236
7.3.4 Logische Prozeduren....................................................................237
7.4 Der Geltungsbereich von Variablen......................................................242
7.5 QMF im Batch-Betrieb.........................................................................244
7.6 Zusammenfassung.................................................................................250
8 QMF-Objekte.............................................................................................251
8.1 Übersicht...............................................................................................251
8.2 Flüchtige und permanente Objekte.......................................................253
8.2.1 Objekte im Hauptspeicher...........................................................253
8.2.2 Datenbankobjekte........................................................................254
8.2.3 Das Objekt Report........................................................................256
8.3 Objektzugriffsbefehle............................................................................257
8.3.1 Objekte löschen mit ERASE........................................................257
8.3.2 Objekte zurücksetzen mit RESET...............................................258
8.3.3 Abfragen und Prozeduren starten mit RUN.................................258
8.3.4 Objekte speichern mit SAVE.......................................................258
8.3.5 Objekte zur Anzeige bringen mit DISPLAY...............................260
8.3.6 Hauptspeicherobjekte anzeigen mit SHOW................................261
8.3.7 AbschließendeÜbersicht.............................................................262
8.4 Der Ablageservice.................................................................................263
8.4.1 Der Befehl LIST..........................................................................263
8.4.2 Aktionen im LIST-Menü.............................................................265
8.4.3 Funktionstasten............................................................................265
8.5 Änderungen an Tabellen mit EDIT TABLE.........................................267
8.5.1 Allgemeines zum Befehl EDIT TABLE......................................268
8.5.2 Neue Tabellenzeilen hinzufügen.................................................268
8.5.3 Änderungen an Tabellenzeilen....................................................269
X Inhalt
8.6 Datenbankänderungen per SQL.............................................................272
8.6.1 Die Anweisung CREATE TABLE...............................................272
8.6.2 Die SQL-Anweisung INSERT.....................................................274
8.6.3 Die SQL-Anweisung UPDATE....................................................276
8.6.4 Die SQL-Anweisung DELETE....................................................277
8.6.5 Die SQL-Anweisung COMMENT ON........................................278
8.6.6 Die SQL-Anweisung DROP.........................................................279
8.7 Von Owner zu Owner............................................................................279
8.7.1 Der Zugriff auf andere Owner......................................................279
8.7.2 QMF-Objekte zur Verfügung stellen............................................280
8.7.3 Die SQL-Anweisung GRANT......................................................280
8.8 Zusammenfassung..................................................................................281
9 Zur TSO-Umgebung...................................................................................283
9.1 Der Ready-Modus und ISPF..................................................................283
9.2 Exkurs über TSO-Dateien......................................................................286
9.2.1 Namensregeln...............................................................................286
9.2.2 Bedeutung der Endung.................................................................287
9.2.3 Sequentielle Dateien.....................................................................288
9.2.4 Fixe und variable Records............................................................288
9.2.5 Geblockte Dateien........................................................................289
9.2.6 Druckervorschubzeichen..............................................................290
9.2.7 Partitioned Datasets......................................................................291
9.2.8 Platzreservierung für Dateien.......................................................292
9.2.9 Die Dateieigenschaften im Überblick...........................................294
9.3 Exportieren und Importieren von QMF-Objekten.................................295
9.3.1 Der Befehl Export.........................................................................295
9.3.2 Der Befehl Import.........................................................................298
9.4 Grundoperationen...................................................................................300
9.4.1 Dateien ansehen (BROWSE)........................................................300
9.4.2 Dateien bearbeiten (EDIT)...........................................................302
9.4.3 ISPF 3: Utilities............................................................................305
9.4.4 Neue Dateien anlegen mit ISPF 3.2..............................................306
9.4.5 Dateien kopieren mit ISPF 3.3......................................................308
9.4.6 Der Listservice für Dateien...........................................................309
9.4.7 Memberverwaltung.......................................................................311
9.4.8 PDS komprimieren.......................................................................311
9.5 Drucken in QMF....................................................................................312
9.5.1 Der Befehl PRINT........................................................................312
9.5.2 Das TSO-Kommando ALLOCATE.............................................314
9.5.3 Drucken in eine Datei...................................................................316
9.5.4 Eine Druckprozedur......................................................................317
9.5.5 Der Befehl DPRE.........................................................................317
9.6 Zusammenfassung..................................................................................318