     MODIFY(QL)                   DABA16                    MODIFY(QL)

     NAME
          modify - Modifizieren der Speicherungsstruktur  einer  Rela-
          tion

     UEBERSICHT
          modify relname [ to storage_structure [ on key1
                 [ : sortorder ]  { , key_n [ : sortorder ] }  ]
                 [ where [ fillfactor = n ]
                 [ , minpages = n ] [ , maxpages = n ] ] ]

     BESCHREIBUNG
          Relname wird in die spezifizierte Speicherungsstruktur modi-
          fiziert.  Nur der Relationseigentuemer darf die Relation mo-
          difizieren.

          Folgende Speicherungsstrukturen (storage_structure) sind mo-
          eglich :

               isam - index-sequentielle Speicherungsstruktur
               cisam - isam, komprimiert
               hash - Random hash Speicherungsstruktur
               chash - hash, komprimiert
               heap - schluessellos unstrukturiert
               cheap - heap, komprimiert
               heapsort - heap sortiert, doppelte Tupel entfernt
               cheapsort - heapsort, komprimiert
               truncated - heap, alle Tupel geloescht (tupellos)
               same - Reorganisation

          Die Strukturen "heapsort", "cheapsort", "truncated" und "sa-
          me"  sind nur temporaere Zustaende und im eigentlichen Sinne
          keine Speicherungsstrukturen.


          Wenn eine Relation in heapsort  oder  cheapsort  modifiziert
          werden  soll,  kann die Sortierrichtung sortorder als ascen-
          ding (aufsteigend) oder descending (absteigend) spezifiziert
          werden.


          Fillfactor spezifiziert den  prozentualen  Fuellfaktor  (von
          1-100) jeder primaeren Datenseite, die (unter idealen Bedin-
          gungen) mit Tupel gefuellt werden soll.


          Minpages spezifiziert die minimale Anzahl von  Primaerseiten
          fuer hash- oder chash-Relationen.  Maxpages ist die maximale
          Anzahl von Primaerseiten, die eine hash- oder chash-Relation
          besitzen soll.


     BEISPIEL[E]
          /* Modifizieren der Relation "personal" in eine
                  index-sequentielle Speicherungsstruktur
                  mit "name" als Schluesseldomaene/*

          modify personal to isam on name

          /* Wenn "name" die erste Domaene der Relation
                  "personal" ist, wird das gleiche
                  Resultat erreicht durch :          */

          modify personal to isam

          /* Die gleiche Modifikation aber mit einer
                 geforderten Belegung der Primaerseiten
                 von 60%                              */

          modify personal to isam on name where fillfactor = 60




          /* Modifizieren der Relation "lieferung" in eine
                  hash Speicherungsstruktur mit "num"
                  und "menge" als Schluesseldomaenen */

          modify lieferung to chash on num, menge

          /* Die gleiche Modifikation aber mit einem
                  gewuenschten Belegungsgrad der
                  Primaerseiten von 75%, einem Minimum von 7
                  und einem Maximum von 43 Primaerseiten */

          modify lieferung to chash on num, menge
                  where fillfactor = 75, minpages = 7,
                  maxpages = 43

          /* Noch einmal die gleiche Modifikation aber mit
                  einem Minimum von 16 geforderten
                  Primaerseiten */

          modify lieferung to chash on num, menge
                  where minpages = 16




          /* Modifizieren der Relation "teile" in eine
                  heap Speicherungsstruktur           */

          modify teile to heap

          /* Modifizieren der Relation "teile" in heap aber
                  sortieren der Domaene "tnum" und dem
                  Entfernen doppelter Tupel */

          modify teile to heapsort on tnum

          /* Modifizieren der Relation "personal" in
                  aufsteigender Sortierfolge nach
                  "gebdat" (Geburtsjahr) und absteigender
                  Sortierfolge nach "gehalt" sowie dem
                  Entfernen doppelter Tupel */

          modify personal to heapsort on gebdat, gehalt:descending

     SIEHE AUCH
          modifyr(mutos), sysmod(mutos)
