Primärdaten
Mit den bereits beschriebenen Satzangaben werden die durchgeführten Primärdatenänderungen attributweise ausgegeben.
Beispiel
In dem folgenden Beispiel sind einige gängige Datentypen verwendet.
(Die Titelzeile wurde zur besseren Übersichtlichkeit wiederholt.)
USER IDENTIFICATION TA ID STMT ACTION SPC TAB REC NR D016ZE09TSN=3Q2QDSQL 0000000B 00000004 INSERT 2 13 00000001 BAN: 0001 SAN: AAA POS#: FCT: N VAL: 1 F1404040404040404040 0002 AAB 0 A C1404040404040404040 0003 AAC 0 B 0042404040404040404040404040404040404040 0004 AAD 0 1 6 . 3 01630F 0005 AAE 0 1 6 . 3 F0F1F6F3F0 0006 AAF 0 2 0 0 6 000007D6 0007 AAG 0 2 0 0 6 07D6 0008 AAH 0 9 . 8 E 7 475D75C8 0009 AAJ 0 9 . 8 E 7 475D75C800000000 000A AAK 0 9 . 8 E 7 475D75C800000000 9001 0 D 0 U S E R C4F0E4E2C5D9404040404040404040404040 D016ZE09TSN=3Q2QDSQL 0000000C 00000007 UPDATE 2 13 00000001 BAN: 0001 SAN: AAA POS#: FCT: - VAL: 1 F1404040404040404040 000C AAM 0 1 0 : 4 4 : 3 4 . 3 7 0 000A002C00220172 D016ZE09TSN=3Q2QDSQL 0000000D 00000009 DELETE 2 13 00000001 BAN: 0001 SAN: AAA POS#: FCT: - VAL: 1 F1404040404040404040
Erklärung
Überschrift | Inhalt |
BAN | Binärer Attributname (Die Zuordnung zwischen binärem Attributnamen und |
SAN | Symbolischer Attributname |
POS# | Ausprägungsnummer (nur versorgt bei multiplen Feldern) |
FCT | Die ausgeführte Tätigkeit mit folgenden Attributen (dabei wird der Hexa-String -: (nur Primärschlüssel): Keine Änderung (dient zur Identifikation des Satzes) |
VAL | Neuer Attributwert (lesbar/Hexa-Darstellung) |
Darstellung von Primärdaten
Die Ausgabe der einzelnen Werte einer protokollierten Primärdatenänderung erfolgt sowohl in abdruckbarer als auch in hexadezimaler Form, z.B. (Datentyp CHARACTER (VARYING)):
|
|
|
Nicht abdruckbare Daten erscheinen als Leerzeichen und in ihrer hexadezimalen Darstellung..
Abdruckbare Daten der Datentypen NATIONAL CHARACTER (VARYING) werden mit dem CCS EDF041 in das CHARACTER-Format konvertiert und ausgegeben. Nicht konvertierbare Daten erscheinen als Leerzeichen. Die hexadezimale Ausgabe in der Folgezeile entspricht der Unicode-Codierungsform UTF-16, z.B.:
|
|
|
Sekundärdaten
Sekundärdatenänderungen werden nicht ausgegeben!
Transaktionsgrenzen
Bei Transaktionsgrenzen werden alle angefallenen Änderungen des betreffenden Benutzers abgeschlossen oder zurückgesetzt. Intern wird der Transaktionsausgang in zwei Schritten protokolliert: Erscheint die identische Transaktions-ID (TA_ID), so gilt die Transaktion als abgeschlossen, erscheint sie nicht, so gilt sie grundsätzlich als zurückgesetzt. Diese Information wird im SEDI70-Protokoll transparent dargestellt, damit bei Dateiwechsel zwischen beiden Einzelschritten trotzdem eine Aussage getroffen werden kann.
Beispiel
D016ZE09TSN=3Q2QDSQL ========> PREPARE TO COMMIT (TA ID: 00000000D) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000005, TIME: <date> <time> LOC) D016ZE09TSN=3Q2QDSQL ========> ROLLBACK WORK (TA ID: 00000000D)
Abbruch einer Anweisung
Beim Abbruch einer Anweisung werden alle Änderungen mit der betreffenden AnweisungsIdentifikation zurückgesetzt (wegen SQL-State, INTR CANCEL).
Beispiele
Für Abbruch:
D016ZE09TSN=3Q2QDSQL 0000000E =====> CANCEL STATEMENT
Für normales Ende einer Anweisung (nur bei Option NOTAS):
D016ZE09TSN=3Q2QDSQL 0000010B =====> END OF STATEMENT
DDL-Anweisungen
Die Protokollierung erfolgt über eine interne Darstellung. Es wird jedoch versucht, diese Daten SQL-ähnlich aufzubereiten.
Die Anweisung ALTER SPACE taucht immer bei einer Änderung der Metadaten des Space auf. Sie dient zum Anpassen des Space-Zeitstempels. Der Space-Zeitstempel dient zur Prüfung der Konsistenz mit den Metadaten im Catalog-Space.
Beispiele für DDL-Anweisungen, die sich auf dem User-Space auswirken
a) CREATE TABLE
D016ZE09TSN=3Q2QDSQL 00000002 ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 00000002 CREATE TABLE (TABLE ID = 13) USING SPACE SPACE1 (SPACE ID = 2) D016ZE09TSN=3Q2QDSQL 00000002 ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time> D016ZE09TSN=3Q2QDSQL 00000002 ALTER TABLE (TABLE ID = 13, SPACE ID = 2) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN PKEY ( BAN = 0001, SAN = AAA ) CHARACTER(10) PRIMARY KEY D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN CHAR01 ( BAN = 0002, SAN = AAB ) CHARACTER(10) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN NCHAR13 ( BAN = 0003, SAN = AAC ) NATIONAL CHAR(10) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN DECI02 ( BAN = 0004, SAN = AAD ) DECIMAL(5,2) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN NUMI03 ( BAN = 0005, SAN = AAE ) NUMERIC(5,2) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN INT04 ( BAN = 0006, SAN = AAF ) INTEGER(31) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN SMALL05 ( BAN = 0007, SAN = AAG ) SMALLINT(15) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN REAL07 ( BAN = 0008, SAN = AAH ) REAL(21) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN DOUBLE08 ( BAN = 0009, SAN = AAJ ) DOUBLE PRECISION(53) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN FLOAT09 ( BAN = 000A, SAN = AAK ) FLOAT(50) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN DATE10 ( BAN = 000B, SAN = AAL ) DATE D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN TIME11 ( BAN = 000C, SAN = AAM ) TIME D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN TIME12 ( BAN = 000D, SAN = AAN ) TIMESTAMP D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN VARCHAR06 ( BAN = 9001 ) CHARACTER VARYING(300) D016ZE09TSN=3Q2QDSQL 00000002 ADD COLUMN NVARCHAR14 ( BAN = 9002 ) NATIONAL CHAR VARYING(300) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000005)
b) ALTER TABLE ADD COLUMN
D016ZE09TSN=3Q2QDSQL 0000000D ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 0000000D ALTER TABLE (TABLE ID = 13, SPACE ID = 2) D016ZE09TSN=3Q2QDSQL 0000000D ADD COLUMN NCHAR10 ( BAN = 000E, SAN = AAP ) NATIONAL CHAR(10) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 00000000F)
c) ALTER TABLE ALTER COLUMN
D016ZE09TSN=3Q2QDSQL 0000000F ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 0000000F ALTER TABLE (TABLE ID = 13, SPACE ID = 2) D016ZE09TSN=3Q2QDSQL 0000000F ALTER COLUMN ( BAN = 0006, SAN = AAF ) NATIONAL CHAR(20) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000010)
d) ALTER TABLE DROP COLUMN
D016ZE09TSN=3Q2QDSQL 00000011 ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 00000011 ALTER TABLE (TABLE ID = 13, SPACE ID = 2) D016ZE09TSN=3Q2QDSQL 00000011 DROP COLUMN ( BAN = 0006, SAN = AAF ) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000014)
e) DROP TABLE
D016ZE09TSN=3Q2QDSQL 00000012 ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0001, SAN = AAA ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0002, SAN = AAB ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0003, SAN = AAC ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0004, SAN = AAD ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0005, SAN = AAE ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0006, SAN = AAF ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0007, SAN = AAG ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0008, SAN = AAH ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 0009, SAN = AAJ ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 000A, SAN = AAK ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 000B, SAN = AAL ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 000C, SAN = AAM ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 000D, SAN = AAN ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 9001 ) D016ZE09TSN=3Q2QDSQL 00000012 DROP COLUMN ( BAN = 9002 ) D016ZE09TSN=3Q2QDSQL 00000012 DROP TABLE ( TABLE-ID = 13 ) USING SPACE SPACE1 ( SPACE-ID = 2 ) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000011)
f) Mögliche Datentypen bei ADD COLUMN
D016ZE09TSN=3Q2QDSQL 00000013 ADD COLUMN CHAR011 ( BAN = 0006, SAN = AAF ) CHARACTER(10) D016ZE09TSN=3Q2QDSQL 00000014 ADD COLUMN NCHAR113 ( BAN = 000F, SAN = AAQ ) NATIONAL CHAR(10) D016ZE09TSN=3Q2QDSQL 00000015 ADD COLUMN DECI102 ( BAN = 0010, SAN = AAR ) DECIMAL(5,2) D016ZE09TSN=3Q2QDSQL 00000016 ADD COLUMN NUMI103 ( BAN = 0011, SAN = AAS ) NUMERIC(5,2) D016ZE09TSN=3Q2QDSQL 00000017 ADD COLUMN INT104 ( BAN = 0012, SAN = AAT ) INTEGER(31) D016ZE09TSN=3Q2QDSQL 00000018 ADD COLUMN SMALL105 ( BAN = 0013, SAN = AAU ) SMALLINT(15) D016ZE09TSN=3Q2QDSQL 00000019 ADD COLUMN REAL107 ( BAN = 0014, SAN = AAV ) REAL(21) D016ZE09TSN=3Q2QDSQL 0000001B ADD COLUMN FLOAT109 ( BAN = 0015, SAN = AAW ) FLOAT(50) D016ZE09TSN=3Q2QDSQL 0000001C ADD COLUMN DATE110 ( BAN = 0016, SAN = AAX ) DATE D016ZE09TSN=3Q2QDSQL 0000001D ADD COLUMN TIME111 ( BAN = 0017, SAN = AAY ) TIME D016ZE09TSN=3Q2QDSQL 0000001E ADD COLUMN TIME112 ( BAN = 0018, SAN = AAZ ) TIMESTAMP D016ZE09TSN=3Q2QDSQL 0000001F ADD COLUMN VARCHAR106 ( BAN = 9003 ) CHARACTER VARYING(300) D016ZE09TSN=3Q2QDSQL 00000020 ADD COLUMN NVARCHAR114 ( BAN = 9004 ) NATIONAL CHAR VARYING(300)
SSL-Anweisungen
Die Protokollierung erfolgt über eine interne Darstellung. Es wird jedoch versucht, diese Daten SQL-ähnlich aufzubereiten.
Beispiel
a) CREATE SPACE
D016ZE09TSN=3Q2QDSQL 00000027 CREATE SPACE SPACE25 (SPACE ID = 6) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000016)
b) DROP SPACE
D016ZE09TSN=3Q2QDSQL 00000029 DROP SPACE SPACE25 (SPACE ID = 6) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 00000001A)
c) CREATE INDEX
D016ZE09TSN=3Q2QDSQL 00000023 ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 00000023 CREATE INDEX (INDEX ID = 35) ON TABLE (TABLE ID = 13, SPACE ID = 2) USING SPACE SPACE1 (SPACE ID = 2) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000013)
d) DROP INDEX
D016ZE09TSN=3Q2QDSQL 00000025 ALTER SPACE (SPACE ID = 2, TIMESTAMP= <date> <time>) D016ZE09TSN=3Q2QDSQL 00000025 DROP INDEX (INDEX ID = 34) ON TABLE (TABLE ID = 13, SPACE ID = 2) USING SPACE SPACE1 (SPACE ID = 2) D016ZE09TSN=3Q2QDSQL ========> COMMIT WORK (TA ID: 000000014)