463 lines
20 KiB
Plaintext
463 lines
20 KiB
Plaintext
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
#+--------------------------------------------------------------------------+#
|
|
#| |#
|
|
#| +----------------------------------------------------------------------+ |#
|
|
#| | | |#
|
|
#| | ||||||| | | ||||| |||||| |||||| | |#
|
|
#| | | || | | | | | | | | |#
|
|
#| | | | | | | | | | | | |#
|
|
#| | | | | | | ||| | | |||||| | |#
|
|
#| | | | | | | | | | | | | |#
|
|
#| | | | || | | | | | | | |#
|
|
#| | ||||||| | | ||||| |||||| |||||| | |#
|
|
#| | ||||||| | |#
|
|
#| | | |#
|
|
#| +----------------------------------------------------------------------+ |#
|
|
#| |#
|
|
#| |#
|
|
#| 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'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|