










##############################################################################
#+--------------------------------------------------------------------------+#
#|                                                                          |#
#| +----------------------------------------------------------------------+ |#
#| |                                                                      | |#
#| |    |||||||    |     |     |||||                ||||||     ||||||     | |#
#| |       |       ||    |    |     |               |     |    |     |    | |#
#| |       |       | |   |    |                     |     |    |     |    | |#
#| |       |       |  |  |    |  |||                |     |    ||||||     | |#
#| |       |       |   | |    |     |               |     |    |     |    | |#
#| |       |       |    ||    |     |               |     |    |     |    | |#
#| |    |||||||    |     |     |||||                ||||||     ||||||     | |#
#| |                                     |||||||                          | |#
#| |                                                                      | |#
#| +----------------------------------------------------------------------+ |#
#|                                                                          |#
#|                                                                          |#
#|                   A relational database managment system                 |#
#|                                                                          |#
#|                                                                          |#
#|                               VERSION 6.3                                |#
#|                                                                          |#
#|                               RELEASE  4                                 |#
#|                                                                          |#
#+--------------------------------------------------------------------------+#
##############################################################################





          KONTAKTPARTNER:

          Akademie der Wissenschaften der DDR
          Zentralinstitut fuer Kybernetik und Informationsprozesse
          Koll. Wenzlaff
          Abteilung RS
          Kurstrasse 33
          PSF 1298
          BERLIN
          1086














##############################################################################
#+--------------------------------------------------------------------------+#
#|               U E B E R P R U E F E N   V O N   F I L E S                |#
#+--------------------------------------------------------------------------+#
##############################################################################

	Folgende files sind auf ihren mode zu pruefen:
		   /dev/null				-rw-rw-rw-
		   /etc/passwd				-rw-r--r--
		   /etc/group				-rw-r--r--
nicht PSU, XENIX   /lib/libc.a bzw. /usr/lib/libc.a	-rw-r--r--
nicht PSU, XENIX   /lib/libm.a bzw. /usr/lib/libm.a	-rw-r--r--
nur PSU		   /SYS/lib/libc.a bzw. /USR/lib/libc.a	-rw-r--r--
nur PSU		   /SYS/lib/libm.a bzw. /USR/lib/libm.a	-rw-r--r--
nur XENIX286	   /lib/Slibc.a				-rw-r--r--
nur XENIX286	   /lib/Slibcfp.a			-rw-r--r--
nur XENIX286	   /lib/Slibm.a				-rw-r--r--
nur XENIX286	   /lib/Slibx.a				-rw-r--r--
nur XENIX286	   /lib/Scrt0.o				-rw-r--r--
nur XENIX286	   /lib/Sseg.o				-rw-r--r--
nur XENIX386	   /lib/386/Slibc.a			-rw-r--r--
nur XENIX386	   /lib/386/Slibcfp.a			-rw-r--r--
nur XENIX386	   /lib/386/Slibm.a			-rw-r--r--
nur XENIX386	   /lib/386/Slibx.a			-rw-r--r--
nur XENIX386	   /lib/386/Scrt0.o			-rw-r--r--
nur XENIX386	   /lib/386/Sseg.o			-rw-r--r--
nur P8000, VENIX   /lib/crt0.o				-rw-r--r--
nicht P8000	   /usr/include/setjmp.h		-rw-r--r--
nur P8000	   /usr/include/setret.h		-rw-r--r--
		   /usr/include/sgtty.h			-rw-r--r--
		   /usr/include/signal.h		-rw-r--r--
		   /usr/include/stdio.h			-rw-r--r--
nur LOCKING	   /usr/include/sys/dir.h		-rw-r--r--
nur P8000-LOCKING  /usr/include/sys/mmu.h		-rw-r--r--
nur LOCKING	   /usr/include/sys/param.h		-rw-r--r--
nur LOCKING	   /usr/include/sys/proc.h		-rw-r--r--
nur P8000-LOCKING  /usr/include/sys/s.out.h		-rw-r--r--
		   /usr/include/sys/stat.h		-rw-r--r--
nur P8000-LOCKING  /usr/include/sys/state.h		-rw-r--r--
		   /usr/include/sys/timeb.h		-rw-r--r--
		   /usr/include/sys/types.h		-rw-r--r--
nur LOCKING	   /usr/include/sys/user.h		-rw-r--r--
		   /tmp					-rwxrwxrwx

	Folgende  Kommandos  sind  auf ihre  Ausfuehrbarkeit  durch
	ing_db zu pruefen:
	   /bin/sh,  /lib/cpp,  ar
	   as		nur CM1420 CM4 CM52_11 I100 I102 I105 K1630
			und PDP34 PDP70
	   cc,  chmod,  cp,  echo,  ed,  grep
	   ld		nur P8000 VENIX XENIX
	   ln,  make,  mkdir,  mknod,  mv
	   ranlib	nur A7150 EC1834 ESER_VMX K1820 K1840 PDP70
			und PSU VENIX XENIX
	   rm,  rmdir
	   scc		nur P8000
	   sed,  tar,  touch

nur VMX		Bitte entfernen Sie  `modf.o' aus `/lib/libm.a' und
	stellen den Modul nach  `/lib/libc.a' und kontrollieren Sie
	das Vorhandensein des Moduls `ecvt.o' in `/lib/libc.a'.

nur XENIX	Eventuell ist der  Modul  `doprnt.o'  sowohl in der
	Bibliothek `/lib/Slibcfp.a' als auch in `/lib/Slibc.a' vor-
	handen, bitte entfernen Sie ihn aus `/lib/Slibcfp.a'.

##############################################################################
#+--------------------------------------------------------------------------+#
#|                                                                          |#
#|       E  I  N  T  R  A  G  E  N     V  O  N     N  U  T  Z  E  R  N      |#
#|                                                                          |#
#+--------------------------------------------------------------------------+#
##############################################################################

          Durch die  Systeminstallation wird das  Nutzerverzeichnis
          `.../sys/etc/users' automatisch eingerichtet.
          Bei der Anpassung sind folgende Punkte zu beachten:

          1)  Durch die  Systeminstallation  wurden alle im   UNIX-
              Nutzerverzeichnis  `/etc/passwd'  stehenden Nutzer in
              das  ING_DB  6.3/4   Nutzerverzeichnis   uebernommen.

          2)  Alle nicht erwuenschten Nutzer sind zu streichen.
              Die  UNIX superuser sind unbedingt aus dem Nutzerver-
              zeichnis zu entfernen !

          3)  Bei den verbleibenden  Nutzer koennen  Modifikationen
              vorgenommen  werden.  Die folgende  Zeile illustriert
              einen Eintrag:
                  reserved:am:24:15:000000:::/tmp/.quel::
              Der Wert  `am' ist der  ING_DB 6.3/4  Nutzerkode,  er
              muss zwei Bytes lang und  eineindeutig sein,  er kann
              eigenen  Vorstellungen  entsprechen geaendert werden.
              Der Wert  `000000' gibt die ING_DB 6.3/4 Berechtigung
              des Nutzers  `reserved' an.  Die Berechtigung kann in
              `000001' geaendert werden,  um dem Nutzer die Erlaub-
              nis  zum  Erzeugen  von  Datenbanken  zu  geben.  Der
              Nutzer  `ing_db' muss die Berechtigung  `177777' ein-
              getragen haben, um seine Systemfunktionen ausueben zu
              koennen.
              Der  Wert  `/tmp/.quel'  stellt  den  Prototyp  eines
              nutzerspezifischen ING_DB 6.3/4 startup-file dar.
              Fuere alle weiter Fragen siehe USERS(FILES).

          4)  Die neuen ING_DB 6.3/4  Nutzer sollten auf die Aende-
              rung ihres profile hingewiesen werden,  damit sie die
              Datenbankkommandos aufrufen koennen:
              - fuer die  `sh' das file  `.profile'  nach folgendem
                Muster:
                  PATH=:/z/ing_db/bin:/bin:/usr/bin:
                  export PATH
              - fuer  die  `csh' das file  `.cshrc'  nach folgendem
                Muster:
                  set path=(. /z/ing_db/bin /bin /usr/bin)
                  setenv PATH ":/z/ing_db/bin:/bin:/usr/bin:"


          Soll zu einem spaeteren Zeitpunkt ein neuer Nutzer in das
          das  Nutzerverzeichnis  aufgenommen  werden,  so kann das
          kann das folgendermassen erfolgen:
                  make adduser USER=login_name
          Es werden zuerst alle verwendeten  Nutzerkodes ausgegeben
          und  anschliessend der  Eintrag fuer den  Nutzer  `login'
          zur  Korrektur angeboten.  Nach  Beendigung der Korrektur
          wird der neue  Nutzer automatisch in das  Nutzerverzeich-
          nis eingefuegt.






##############################################################################
#+--------------------------------------------------------------------------+#
#|                                                                          |#
#|                 V  E  R  A  E  N  D  E  R  U  N  G  E  N                 |#
#|                                                                          |#
#|                    i  m     R  e  l  e  a  s  e     4                    |#
#|                                                                          |#
#+--------------------------------------------------------------------------+#
##############################################################################

   Anlegen von gemounteten Datenbanken
          Eine gemountete  Datenbank ist eine  Datenbank,  die sich
          auf einem seperaten Datentraeger befindet, d.h. genau ei-
          ne Datenbank auf einem Datentraeger.
          Gemountete  Datenbanken koennen von allen Nutzern erzeugt
          werden.
          Das Anlegen wird anhand eines Beispiels dokumentiert:
          1) creatdb mount_db
          2) destroydb -m mount_db
              HINWEIS: Jetzt vom  UNIX-superuser einen Datentraeger
                       in  `.../data/base/mount_db' mounten lassen.
          3) creatdb -m [weiter Flags moeglich] mount_db
          In der  Zukunft muss immer darauf  geachtet werden,  dass
          wenn die  Datenbank  mount_db  angesprochen  werden soll,
          auch der Datentraeger gemountet ist !

   Anlegen von entfernten Datenbanken
          Entfernte Datenbanken sind Datenbanken,  die nicht in dem
          vorgesehen  Systempfad  `.../data/base'  angelegt  werden
          sollen.  Das kann sinnvoll sein, wenn z.B. mehrere Daten-
          banken auf einem  seperaten  Datentraeger angelegt werden
          sollen.
          Entfernte Datenbanken koennen nur vom Systemadministrator
          `ing_db' im Auftrag von Nutzern angelegt werden.
          Das Anlegen wird anhand eines Beispiels dokumentiert:
          Der Nutzer  `ausserhalb'  moechte die Datenbank  `jwd' in
          dem  directory  `/irgendwo/janz'  anlegen.  Er  teilt dem
          Systemadministrator `ing_db' mit, dass die Datenbank pri-
          vat und mit QRYMOD-Unterstuetzung erzeugt werden soll.
          1) login: ing_db
             passwd: <wird nicht verraten>
          2) cd data/base
          3) creatdb -uausserhal -c +q jwd
              HINWEIS: In `/irgendwo/janz' koennte ein Datentraeger
                       gemountet werden.
          4) mkdir /irgendwo/janz/weit
             chmod 700 /irgendwo/janz/weit
              HINWEIS: weit ist ein beliebiger Name.
                       In `/irgendwo/janz/weit'  koennte ein Daten-
                       traeger gemountet werden.
          5) mkdir /irgendwo/janz/weit/weg
             chmod 777 /irgendwo/janz/weit/weg
              HINWEIS: weg ist ein beliebiger Name.
                       In  `/irgendwo/janz/weit/weg'  einen  Daten-
                       traeger zu  mounten ist nicht  sinnvoll,  da
                       sie dann als mountbare  Datenbank im  System
                       haette angelegt werden koennen.
          6) mv jwd/* /irgendwo/janz/weit/weg
          7) rmdir jwd
          8) echo /irgendwo/janz/weit/weg > jwd
             chmod 600 jwd
          Nach dem die  Datenbank  entfernt angelegt ist,  kann mit
          ihr wie mit  normalen  Datenbanken  gearbeit werden.  Das
          Kommando DESTROYDB(UNIX) traegt entfernt angelegte Daten-
          banken korrekt aus.  Durch diese Form der Anlage wird der
          volle Schutz fuer entfernte Datenbanken garantiert !
   COPYDB
          COPYDB(UNIX) funktioniert jetzt korrekt.

   COPYR
          Der file-Name muss kein voller Pfadname mehr sein.

   CREATDB
          Es gibt jetzt die Moeglichkeit, die Seitengroesse der Da-
          tenbank an das  Betriebssystem  anzupassen.  Unterstuetzt
          werden  Seitengroessen von 512 und 1024 Bytes.  Durch die
          Angabe des Flags `-1' werden  512'er und durch die Angabe
          des Flags `-2' werden 1024'er Datenbanken erzeugt.
          Standard sind 1024'er Datenbanken.
          Beide  Formen koennen  parallel in einem  System angelegt
          werden, ING_DB 6.3/4 verwaltet diesen Unterschied intern.
          512'er koennen nicht in 1024'er  Datenbanken  konvertiert
          werden,  dazu muessen sie  logisch  auskopiert und wieder
          einkopiert werden (siehe COPYDB(UNIX)).

  INDEXR
          INDEXR(UNIX) kennt folgende neuen Flags:
             -fillfactor:zahl
             -minpages:zahl
             -maxpages:zahl
             -nspeicher_struktur
             -tidp
          Die Flags entsprechen den Angaben
             FILLFACTOR = zahl
             MINPAGES = zahl
             MAXPAGES = zahl
          in der WHERE-Klausel von MODIFY(QUEL) bzw.
             -nspeicher_struktur
          von ING_DB(UNIX).  Die Angabe von `-tidp' dient dazu, den
          Indexschluessel eindeutig zu machen.  Diese Angabe sollte
          aber vermieden werden, da der AMX-Compiler falsche Daten-
          zugriffe generiert, ein Problem das zukuenftig abgestellt
          werden wird.

   ING_DB
          Das  Kommando  ING_DB(UNIX)  heisst jetzt  QUEL und kennt
          folgende neuen Flags:
             -Ipfadname
          zur Angabe eine  \include-files fuer den Terminalmonitor.
          Es wird nur das file abgearbeitet, die Eingabe bleibt vom
          Terminal.
             -lzeichen
          zur Angabe eines Zeiches fuer die Umrahmung der Tabellen,
          bisher immer `-'.
   MANR
          Neues shell-Kommando zur Auslistung der online-Dokumenta-
          tion (analog \HELP-Kommando des Terminalmonitors).

  MODIFYR
          MODIFYR(UNIX) kennt folgende neuen Flags:
             -fillfactor:zahl
             -minpages:zahl
             -maxpages:zahl
          Die Flags entsprechen den Angaben
             FILLFACTOR = zahl
             MINPAGES = zahl
             MAXPAGES = zahl
          in der WHERE-Klausel von MODIFY(QUEL).

   REFR
          Neues shell-Kommando zur Auslistung der online-Dokumenta-
          tion (analog \help-Kommando des Terminalmonitors).
   -u:xx
          Das alter-ego-Flag in dieser Form ist ersatzlos aus allen
          Kommandos gestrichen, es gibt nur noch die Form
             -ulogin_name

   Demonstrationen
          Die Kommandos `demo_dt' und `demo_eng' zur Erstellung der
          Demonstrationsdatenbank  heissen  jetzt   `quel_dt'  bzw.
          `quel_eng'.
          Es gibt zusaetzlich die  Kommandos `tut_dt' und `tut_eng'
          zum automatischen Ablauf der  Anfragen,  die in der Doku-
          mentation  `Anwendung der QUEL' beschrieben sind.  Zu den
          Kommandos muss eine Datenbankname angegeben werden.
          Alle Demonstrationen sind in dem directory `.../demo' zu-
          sammangefasst, sie koennen mit den Kommandos
             cd demo;make
          installiert werden. Sollen nur die deutschen Demonstrati-
          onen installiert werden, kann dies durch
             cd demo;make dt
          erreicht werden, entsprechend die englischen durch
             cd demo;make eng

   Datenbankcompiler AMX
          AMX-Programme  laufen jetzt im  current  directory,  d.h.
          file-Namen muessen nicht laenger als volle  Pfadnamen an-
          gegeben werden.
          Der AMX-Compiler hat den C-Compiler als  Untermenge inte-
          griert,  d.h. die Benutzung von  AMX(UNIX) entspricht der
          Benutzung von cc(1).
          Der  AMX-Compiler  kennt gegenueber dem  C-Compiler keine
          neuen Flags, alle Flags sind also Flags von cc(1).
          Bei der Erzeugung von  Datenbankprogrammen muss immer der
          AMX-Compiler anstelle des  C-Compilers  verwendet werden.
          Fuer das Linken eines  Programmes muss das Flag `-o name'
          zur  Angabe des  Programmnamens  spezifiziert werden,  um
          das automatische  Laden  der  Laufzeitbibliothek des AMX-
          Compilers anzuweisen.  Die  Laufzeitbibliothek muss unter
          dem Namen `.../lib/libamx.a'  bereitgestellt werden, darf
          also  nach  der  Generierung nicht nach  `/usr/lib'  bzw.
          `/lib' bewegt werden.
          Beispiele:
          1) Erzeuge Objektmodul aus einer AMX-Quelle
                amx -c -O neuheit.x
          2) Erzeuge Programm aus einem Objektmodul
                amx -o neuheit neuheit.o
          3) Erzeuge Programm aus einer AMX-Quelle
                amx -O -o neuheit neuheit.x
          4) Erzeuge Programm aus einer AMX- und einer C-Quelle
                amx -O -o neuheit neuheit.x zusatz.c
          5) Erzeuge Objektmodule aus einer AMX- und einer C-Quelle
                amx -c -O neuheit.x zusatz.c
             oder
                amx -c -O neuheit.x;cc -c -O zusatz.c
          6) Erzeuge Programm aus Objektmodulen
                amx -o neuheit neuheit.o zusatz.o
          Natuerlich koennen auch  Bibliotheken verarbeitet werden,
          bzw. `neuheit.o' kann in eine Bibliothek gestellt werden.
          Auf jeden Fall muss mit dem AMX-Compiler gelinkt werden !

          Neben dem AMX-Statement
             ## ing_db [flags] db_name
          gibt es jetzt
             ## shared [flags] db_name
          wobei `ing_db' die Datenbank exklusiv (also alleinig) und
          `shared' die Datenbank parallel verwendbar eroeffnet.

          Das neue AMX-Statement
             ## tuplelength rel_name c_var_name
          stellt in der  numerischen  C-Variablen  `c_var_name' die
          Tupellaenge der Relation `rel_name' bereit.
          Es gibt die Moeglichkeit Transaktionen  (TA) zu formulie-
          ren,  die nutzerbezogene Datenbankkonsistenzen realisier-
          ren. Eine TA wird durch
             ## use ([+]rel_name {, [+]rel_name})
          eingeleitet und durch
             ## commit
          beendet.  Das Zeichen `+' gibt an,  dass die Relation ge-
          aendert werden soll (REPLACE, DELETE oder APPEND).  Fehlt
          diese Angabe,  wird von der Relation gelesen  (RETRIEVE).
          Folgende Regeln sollten bei der Formulierung von TA's be-
          achtet werden:
          1) Immer `shared' verwenden, wenn nicht ausdruecklich die
             alleinige Verwendung der Datenbank beabsichtigt ist.
          2) Immer TA's formulieren, wenn Recherchen ueber mehr als
             eine Relation gehen sollen.
          3) Alle Aenderungen in TA's einkleiden.
          4) Wenn eine  TA laeuft,  kann keine weiter  TA  begonnen
             werden.
          5) Innerhalb einer Recherche (RETRIEVE) kann keine TA be-
             gonnen werden,  die   Recherche muss in die  TA einge-
             schlossen werden.
          6) Innerhalb einer TA kann keine Recherche oder Aenderung
             fuer eine Relation,  die nicht Bestandteil der TA ist,
             gestartet werden.  Die Relation muss in die  TA einge-
             schlossen werden.

          ON-LINE DOKUMENTATION:
              Unter dem interaktiven  ING_DB 6.3/4  Terminalmonitor
              gibt es eine neue Form der on-line Hilfe.
              Mit dem Kommando  `\HELP name' kann eine Hilfe zu dem
              Komplex `name' angefordert werden.
              Das Kommando  `\HELP' liefert eine Liste der verfueg-
              baren Hilfen.
              Mit dem Kommando  `\help name' kann eine Kurzhilfe zu
              dem Komplex `name' angefordert werden.
              Das Kommando  `\help' liefert eine Liste der verfueg-
              baren Kurzhilfen.
              Die  Kommandos lassen sich  `\H name' bzw.  `\h name'
              abkuerzen.
              Die on-line  Hilfe kann jetzt auch unter der shell in
              Anspruch genommen werden (siehe MANR und REFR).

          DOKUMENTATION:
          Die aufbereitete  Dokumentation befindet sich im cat-dir-
          ectory, jedes file beinhaltet 20  Druckseiten, jede Seite
          umfasst 66 Zeilen.   Die  Dokumentation ist in drei Teile
          untergleidert  (doc1.*,  doc2.* und doc3.*),  hinzu kommt
          der online-Manual- (man.*) und der -Refernzteil (ref*).
          Die nroff-Quellen stehen im dem directory `doc'.













