     CREATDB(MUTOS)               DABA16                CREATDB(MUTOS)

     NAME
          creatdb - Erstellen einer Datenbank

     UEBERSICHT
          creatdb [ -uname ] [ -e ] [ -m ] [ -/+c ]
           [ -/+q ] [ -1 | -2 | -4 | -8 ] dbname


     BESCHREIBUNG
          Creatdb erstellt eine neue DABA-Datenbank  oder  modifiziert
          den Status einer existierenden.

          Der dieses Kommando fuer das Erstellen einer neuen Datenbank
          ausfuehrende  Nutzer  wird  zum Datenbankadministrator (DBA)
          fuer diese Datenbank.  Das Modifizieren einer  existierenden
          Datenbank  ist  nur  dem DBA erlaubt.  Der DBA hat spezielle
          Befugnisse, die dem gewoehnlichen Nutzer nicht erlaubt sind.

          Dbname ist der Name der zu erstellenden  Datenbank.   Dieser
          Name muss ueber die Datenbanknamen aller DABA-Nutzer eindeu-
          tig sein.


          Das Flag -u mit  dem   unmittelbar   folgenden   Login-Namen
          name  gestattet es, sich als Nutzer mit dem Login-Namen name
          auszugeben.


          Die Flags -/+c und -/+q spezifizieren  Optionen  (Auswahlmo-
          eglichkeiten)  fuer  die  Datenbank.   Das  Flag der Form +x
          schaltet eine Option "ein" und -x die Option "aus".

          Es gibt die Moeglichkeit, die Seitengroesse der Datenbank an
          das   Betriebssystem  anzupassen.  Unterstuetzt werden  Sei-
          tengroessen von 512, 1024, 2048 und  4096  Bytes  (2048  und
          4096  Byte  nur  bei 32-Bit-Rechnern).  Durch die Angabe des
          Flags -1 wird eine Datenbank mit einer Seitengoesse von 512,
          durch  das Flags -2 mit 1024, durch -4 mit 2048 und durch -8
          mit 4096 Byte erstellt.
          Standard an einem 16-Bit-Rechner ist 1024.
          Die  Formen koennen  parallel in einem  System angelegt wer-
          den.  DABA verwaltet diesen Unterschied intern.  Datenbanken
          bestimmter Seitengroesse koennen nicht in solche  mit  einer
          anderen Seitengroesse  konvertiert werden,  dazu muessen sie
          logisch    auskopiert   und   wieder    einkopiert    werden
          (copydb(mutos)).
          Das -c Flag schaltet die sogenannte "Gleichzeitigkeitssteue-
          rung" aus (Standard : "ein").
          Das +q Flag schaltet die  sogenannte  "Anfragenmodifikation"
          ein (Standard : "ein").


          Die Gleichzeitigkeitssteuerung sollte niemals  ausgeschaltet
          werden,  es  sei denn fuer Datenbanken, die nie von mehr als
          einem Anwender genutzt  werden.   Wenn  mehrere  Nutzer  die
          Nutzer-Relationen niemals geteilt (shared) anwenden, so darf
          die Gleichzeitigkeitskontrolle dennoch niemals ausgeschaltet
          werden,  da die System-Relationen immer noch geteilt genutzt
          werden.  Wenn die Gleichzeitigkeitssteuerung  nicht  instal-
          liert  wurde,  wird  die  Gleichzeitigkeitssteuerung genauso
          reagieren, als waere sie ausgeschaltet.

          Die Anfragenmodifikation muss eingeschaltet sein,  wenn  die
          Schutz-,  die  Integritaets-  und Sichten-Subsysteme genutzt
          werden sollen.
          Das Schutz-Subsystem ueberwacht, dass die  Befugnisse  nicht
          uebertreten  werden,  das Integritaets-Subsystem die Einhal-
          tung der Integritaetsbedingungen und  das  Sichten-Subsystem
          gestattet das Definieren und Handhaben der Sichten.
          Es ist zu bemerken, dass mit eingeschalteter Anfragenmodifi-
          kation  DABA in einigen Faellen leicht verlangsamt arbeitet.
          Es ist moeglich, fuer eine existierende Datenbank die Anfra-
          genmodifikation  einzuschalten,  wenn sie ausgeschaltet war.
          Sie kann aber nicht ausgeschaltet  werden,  wenn  sie  "ein"
          war.

          In Datenbanken, fuer  die  die  Anfragenmodifikation  ausge-
          schaltet wurde, werden neue Relationen mit allen Befugnissen
          fuer alle Nutzer erstellt.  Fuer Datenbanken mit anwendbarer
          Anfragenmodifikation  werden neue Relationen standardmaessig
          ohne Zugriffsbefugnis,  ausser  fuer  den  Eigentuemer,  er-
          stellt.

          Datenbank-Optionen fuer eine existierend  Datenbank  koennen
          durch die Spezifikation des -e Flag modifiziert werden.  Die
          Datenbank wird entsprechend  den  spezifizierten  Flags  an-
          gepasst.
          Beispielsweise schaltet :

                  creatdb -e +q meine_db

          die Anfragenmodifikation fuer die Datenbank  "meine_db"  ein
          (Die Gleichzeitigkeitssteuerung bleibt entsprechend der vor-
          herigen Spezifikation erhalten).  Nur  der  Datenbankadmini-
          strator (DBA) darf das -e Flag nutzen.

          Wenn die Anfragenmodifikation  eingeschaltet  wurde,  werden
          danach  neue Relationen ohne Zugriffsbefugnis erstellt.  Die
          vorher erstellten Relationen besitzen jedoch noch die Befug-
          nis fuer jedermann.
          Die destroy Anweisung kann benutzt werden, um  die  globalen
          Befugnisse  zu  entfernen,  nachdem selektive Befugnisse mit
          der permit Anweisung spezifiziert wurden.

          Der DABA-Systemverantwortliche kann das -u  Flag  verwenden,
          um  einen anderen DBA und nicht sich selbst, anzugeben.  Das
          Flag muss unmittelbar vom Login-Namen des  zukuenftigen  DBA
          gefolgt werden.

          Das -m Flag zeigt an, dass das MUTOS-Directory, in  dem  die
          Datenbank  residieren soll, bereits existiert.  Das wird nur
          benoetigt,  wenn  das  Directory  ein  montiertes  (mounted)
          File-System  darstellt, was fuer sehr grosse Datenbanken der
          Fall  sein  kann.   Das  Directory  muss   existieren   (als
          .../data/base/dbname  ),  muss  den File-Modus 777 besitzen,
          und alle Files muessen leer sein (siehe BEISPIELE).

          Der DABA-Systemverantwortliche kann im Directory
          .../data/base ein File erstellen, das  eine  einzelne  Zeile
          als  vollstaendigen Pfadnamen der Lokalisation der Datenbank
          enthaelt.  Das wird fuer ausgelagerte  Datenbanken  genutzt.
          Das  File muss daba als Eigentuemer und einen File-Modus 600
          besitzen.  Wenn die Datenbank erstellt wird, wird sie  nicht
          im Directory
          .../data/base sondern entsprechend  dem  Pfadnamen  erzeugt.
          Wenn beispielsweise das File
          .../data/base/peterdb die Zeile

                  /mnt/peter/database

          enthaelt,  wird  die  Datenbank   "peterdb"   im   Directory
          /mnt/peter/database und nicht in
          .../data/base/peterdb erstellt.

     BEISPIEL[E]
          creatdb demo
          creatdb -upeter +q peters_db
          creatdb -e +q +c -upeter peters_db

          creatdb -upeter -c peters_db
          creatdb -e +c peters_db

          Montiertes Filesystem im DABA-DB-Pfad .../data/base

          Soll eine Datenbank z.B.  db_in_mount  auf  einem  separaten
          Filesystem,  das  im  DABA-Datenbankpfad  .../data/base  mit
          mount montiert wird, erstellt werden, ist das  Folgendes  zu
          tun.

          Der DABA-Systemverantwortliche daba  (login:  daba)  richtet
          das  Datenbank-Directory  ein  und setzt den richtigen File-
          Modus:

                  mkdir .../data/base/db_in_mount
                  chmod 777 .../data/base/db_in_mount

          Der MUTOS-Systemverantwortliche root (login: root)  montiert
          im Directory

                  .../data/base/db_in_mount           das  Filesystem,
          auf dem die Datenbank residieren soll.

          Der DBA der Datenbank fuehrt folgendes Kommando aus:

                  creatdb -m db_in_mount

          Vor jeder Benutzung der Datenbank db_in_mount ist dafuer  zu
          sorgen, dass das Filesystem montiert worden ist.

          Das Anlegen von ausgelagerten Datenbanken



          Als ausgelagerte Datenbanken werden solche  bezeichnet,  die
          nicht,  wie ueblich, im Datenbankpfad .../data/base angelegt
          werden.  Das kann sinnvoll sein, wenn z.B. mehrere Datenban-
          ken  als  ein  Komplex auf einem separaten Datentraegern an-
          gelegt werden muessen.

          Ausgelagerte Datenbanken koennen ausschliesslich  vom  DABA-
          Systemverantwortlichen  daba  im Auftrage eines anderen Nut-
          zers angelegt werden!

          Wenn    die    Datenbank    db_aus_mount    im     Directory
          /mount/peters_dbs  existieren, der Nutzer peter der DBA die-
          ser Datenbank sein wird, die  mit  Anfragenmodifikation  und
          Gleichzeitigkeitssteuerung  arbeiten  soll, ist das Folgende
          zu tun:

          Der DABA-Systemverantwortliche daba (Login: daba)  gibt  die
          folgenden Kommandos:

                  login: daba
                  passwd:

                  cd data/base
                  creatdb -upeter +c +q db_aus_mount

                  In "/mount/peters_dbs"
                  koennte ein Datentaeger
                  montiert werden.

                  mkdir /mount/peters_dbs/dbs_a

                  chmod 700 /mount/peters_dbs/dbs_a

                  Der File-Name "dbs_a"
                  ist ein beliebiger.
                  In "/mount/peters_dbs/dbs_a"
                  koennte ein Datentraeger montiert werden.

                  mkdir /mount/peters_dbs/dbs_a/db_a

                  chmod 777 /mount/peters_dbs/dbs_a/db_a

                  Der Name "db_a" ist ein beliebiger.
                  Hier eine Datentraeger zu montieren
                  ist nicht sinnvoll.

                  mv db_aus_mount/* /mount/peters_dbs/dbs_a/db_a

                  rmdir db_aus_mount

                  echo /mount/peters_dbs/dbs_a/db_a >db_aus_mount

                  chmod 600 db_aus_mount


     FILES
          .../sys/etc/dbtmplt6.3
          .../data/base/*

     SIEHE AUCH
          destroydb(mutos), permit(ql), users(files)
