SQLite als gewähltes Datenbanksystem
Vor der Implementierung der Tabellen des relationalen Modells in einem Datenbanksystem wird jedem Attribut ein geeigneter Datentyp zugeordnet. Zusätzliche Festlegungen können den zulässigen Wertebereich einschränken und damit zur Sicherung der Datenintegrität beitragen.
Datentypen
Wir unterscheiden zwischen den Datentypen (siehe auch SQLite-Dokumentation)
- INTEGER – vorzeichenbehaftete Ganzzahl, gespeichert in maximal 8 Byte,
- REAL – vorzeichenbehaftete Gleitkommazahl, gespeichert als 8-Byte-Gleitkommewert nach IEEE 754,
- TEXT – Zeichenkette, gespeichert in einer von SQLite unterstützten Unicode-Kodierung,
- BLOB – folge von binären Daten, die unverändert gespeichert werden.
SQLite besitzt keine eigenen Speicherklassen für Datums-, Zeit- oder Wahrheitswerte. Solche Werte werden mithilfe der vorhandenen SQLite-Datentypen gespeichert. Bei der Dateneingabe sind Schreibweisen einzuhalten.
- DATE – zweckmäßig als TEXT in der Form 'YYYY-MM-DD'
- TIME – zweckmäßig als TEXT in der Form 'HH:MM:SS'
- DATETIME – zweckmäßig als TEXT in der Form 'YYYY-MM-DD HH:MM:SS'
- BOOLEAN – üblicherweise als 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: legt fest, ob ein fehlender Wert zulässig ist,
- Eindeutigkeit (UNIQUE): Attributwert muss über alle Datensätze hinweg eindeutig sein,
- Standard (DEFAULT): Vorgabe eines Standardattributwertes, der verwendet wird, wenn beim Einfügen kein anderer Wert angegeben wird,
- Zustandsprüfung (CHECK): Festlegung einer Bedingung, die ein einzutragender oder geänderter Wert erfüllen muss 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. Anschließend wird unter Bedingungen der zusammengesetzte Primärschlüssel festgelegt.
Bild: Definition eines zusammengesetzten Primärschlüssels mittels Bedingungsdefinition in SQLiteStudio
Dem Fremdschlüsselattribut wird die referenzierte Tabelle mit dem zugehörigen 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: Die Änderung bzw. Löschung wird nicht zugelassen, wenn dadurch ein ungültiger Fremdschlüsselverweis entstehen würde
- CASCADE: Änderungen des referenzierten Schlüsselwertes bzw. Löschungen werden auf die abhängigen Fremdschlüssel-Datensätze übertragen
- RESTRICT: Die Änderung oder Löschung des referenzierten Datensatzes wird verhindert, solange abhängige Datensätze vorhanden sind
- SET NULL/DEFAULT: Der Fremdschlüssel abhängiger Datensätze wird auf
NULL bzw. den definierten Standardwert gesetzt. Dies ist nur möglich, wenn diese Werte zulässig sind