Abschnittsübersicht

    • SQLite als gewähltes Datenbanksystem

      Vor der Implementierung der Tabellen des relationalen Modells in ein Datenbanksystem wird jedem Attribut ein geeigneter Datentyp zugeordnet. Zusätzliche Angaben pro Attribut ermöglichen Einschränkungen des Wertebereichs und sorgen bei der Dateneingabe für Datenintegrität.

      Datentypen

      Wir unterscheiden zwischen den Datentypen (siehe auch SQLite-Dokumentation)

      • INTEGER – vorzeichenbehaftete Ganzzahl, gespeichert in max. 8 Byte,
      • REAL – vorzeichenbehaftete Gleitkommazahl, gespeichert in 8-Byte IEEE-Notation,
      • TEXT – Zeichenkette, gespeichert als UTF-8, UTF-16 oder UTF-16LE-Wert,
      • BLOB – Datenpaket, gespeichert wie eingegeben.

      In SQLite können bei der Definition der Attribute auch Zeit-, Datums- oder boolesche Datentypen angegeben werden, diese wandelt das System intern in einen Ersatztyp um. Bei der Dateneingabe sind Schreibweisen einzuhalten.

      • DATE – Ersatztyp TEXT in der Form 'YYYY-MM-DD'
      • TIME – Ersatztyp TEXT in der Form 'HH:MM:SS'
      • DATETIME – Ersatztyp TEXT in der Form 'YYYY-MM-DD HH:MM:SS'
      • BOOLEAN – Ersatztyp INTEGER mit den Werten 0 und 1

      Wertebereichsintegrität

      Bei der Definition von Attributen sind Wertebereichseinschränkungen und Vorgabewerte möglich, beispielsweise

      • NULL/Nicht NULL: NULL-Wert ist (nicht) zulässig,
      • Eindeutigkeit (UNIQUE): Attributwert muss über alle Datensätze hinweg eindeutig sein,
      • Standard (DEFAULT): Vorgabe eines Standardattributwertes, welches überschrieben werden kann,
      • Zustandsprüfung (CHECK): Vorgabe einer Bedingung für den Wert in Analogie zur WHERE-Klausel bei SQL-Abfragen.


      Bild: Festlegung der Attributeigenschaften in SQLiteStudio

      Festlegung von Primär- und Fremdschlüsseln

      Besteht der Primärschlüssel aus genau einem Attribut, erfolgt diese Festlegung bei der Definition des Attributs durch die Option Primärer Schlüssel. Weitere Optionen (AUTOINCREMENT, Sortierung) sind möglich.


      Bild: Festlegung zusätzlicher Primärschlüsseleigenschaften in SQLiteStudio

      Liegt ein zusammengesetzter Primärschlüssel vor, so sind die einzelnen Attribute ohne die Aktivierung der Option Primärer Schlüssel festzulegen. Im Anschluss muss man unter Bedingungen die Schlüsseleigenschaft festlegen.

       
      Bild: Definition eines zusammengesetzten Primärschlüssels mittles Bedingungsdefinition in SQLiteStudio

      Die Festlegung eines Fremdschlüssels erfolgt bei der Attributdefinition. Dem Attribut wird als Verweis die fremde Tabelle (Bezeichnung Primärtabelle) mit dem Schlüsselattribut zugeordnet.


      Bild: Festlegung der Fremdschlüsseleingeschaft und Setzen des Verweises in die Fremdtabelle in SQLiteStudio

      Unter Reaktionen sollte festgelegt werden, was beim Ändern/Löschen eines Datensatzes geschieht. Es gilt dabei:

      • NO ACTION: Verweigerung aller Änderungen
      • CASCADE: Weitergabe der Änderung/Löschung an die Detailtabelle
      • RESTRICT: Verweigerung der Änderung auch in der Primärtabelle
      • SET NULL/DEFAULT: Änderung des Verweises in der Detailtabelle auf NULL/DEFAULT, falls dort NULL/DEFAULT-Werte vorhanden/gestattet sind
    • 02 Beispiel Zoo Lösung Datei
      Nicht verfügbar, außer: Sie sind in einer Gruppe
    • 02 Beispiel Zoo Datei
      Nicht verfügbar, außer: Sie sind in einer Gruppe
    • Überlegungen zu Datenintegrität

      Fassen wir unser Wissen zur Datenintegrität zusammen. Wir unterscheiden zwischen drei Arten von Datenintegrität.

      Wertebereichsintegrität – Integrität auf Datenfeldebene (siehe oben)

      Es wird geprüft, ob der eingebebene Wert aus dem Wertebereichs des Attributes stammt. Das Datenbanksystem lässt verschiedener Datentypen zu, die wiederum eingeschränkt werden können. So ist es möglich, Ober- und Untergrenzen für die Werte anzugeben oder auch Plausibilitätsprüfung vorzunehmen. 

      Datenintegrität auf Datensatzebene

      Hier geht es um die die Korrektheit des Datensatzes, damit beim Hinzufügen, Ändern oder Löschen von Datensätzen keine Anomalien auftreten. Durch Normalisierung sichert man weitgehend die Datenintegrität auf Datensatzebene.

      Referentielle Integrität – Integrität auf Beziehungsebene

      Hier geht es um die die Korrektheit der Beziehungen zwischen den Attributen in einer Relation und der Erhaltung der Eindeutigkeit des Schlüssels. Bezahlt beispielsweise ein Kunde nicht seine Telefonrechnung, wird deshalb vom Telefonnetz abgetrennt und ein anderer Kunde erhält die freigewordenen Nummer, dann darf der neue Kunde nicht die Mahnung seines Vorgängers erhalten. Sollen festgelegte Beziehungen zwischen Relationen auch bei Änderungen oder Löschungen bestehen bleiben, so muss man dafür sorgen, dass die referentielle Integrität durchgesetzt wird. Referentielle Integrität sorgt für die Korrektheit und Konsistenz der Beziehungen zwischen den Relationen. Dadurch lassen sich Fehler in der Datenbestand, sog. Anomalien, verhindern (siehe oben Normalisierung).

    • Lösungen: