3 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