P8000/WEGA/contrib/ingres/dbs/READ_ME

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'.