Integritätsbedingungen
Wertebereichsintegrität
kunden
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| kunr | Kundennummer | SERIAL | Fortlaufende Nummer mit 1000 beginnend | nein |
| kuname | Name | CHAR | 30 Stellen | nein |
| kuvorname | Vorname | CHAR | 20 Stellen | nein |
| kustrasse | Straße | CHAR | 30 Stellen | nein |
| kuplz | Postleitzahl | CHAR | 8 Stellen, 3 Buchstaben für das Land, Rest nur Ziffern | nein |
| kuort | Ort | CHAR | 30 Stellen | nein |
| kutelefon | Telefon mit Vorwahl | CHAR | 30 Stellen | ja |
| kugebdat | Geburtsdatum | DATE | mindestens vor 18 Jahren | nein |
| kudatfschein | Datum des Führerscheinerwerbs | DATE | mindestens 18 Jahre nach dem Geburtsdatum | nein |
pkw
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| pkennzeichen | Polizeiliches Kennzeichen | CHAR | 11 Stellen | nein |
| moname | Name des Modells | CHAR | 35 Stellen | nein |
| perstzulassung | Datum der Erstzulassung | DATE | nicht älter als 10 Jahre, nicht nach der Abmeldung | ja |
| peabmeldung | Datum der Abmeldung | DATE | älter als Erstzulassung | ja |
| pschiebedach | Schiebedach vorhanden | CHAR | 1 Stelle 'j' oder 'n' | ja |
| pklima | Klimaanlage vorhanden | CHAR | 1 Stelle 'j' oder 'n' | ja |
modelle
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| moname | Name des Modells | CHAR | 35 Stellen | nein |
| hename | Name des Herstellers | CHAR | 35 Stellen | nein |
| moleistung | Leistung in KW | INTEGER | positiv 60 - 500 KW | ja |
| mohubraum | Hubraum in ccm | INTEGER | positiv 500 - 5000 ccm | ja |
| molaenge | Länge des PKW in cm | INTEGER | positiv 300 - 1200 cm | ja |
| mobreite | Breite des PKW in cm | INTEGER | positiv 200 - 400 cm | ja |
hersteller
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| hename | Name des Herstellers | CHAR | 35 Stellen | nein |
| hestrasse | Straße | CHAR | 30 Stellen | ja |
| heplz | Postleitzahl | CHAR | 5 Stellen | ja |
| heort | Ort | CHAR | 30 Stellen | ja |
| hetelefon | Telefon mit Vorwahl | CHAR | 20 Stellen | ja |
| hekontakt | Kontaktperson beim Hersteller | CHAR | 20 Stellen | ja |
werkstatt
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| wename | Name der Werkstatt | CHAR | 35 Stellen | nein |
| westrasse | Straße | CHAR | 30 Stellen | ja |
| weplz | Postleitzahl | CHAR | 5 Stellen | ja |
| weort | Ort | CHAR | 30 Stellen | ja |
| wetelefon | Telefon mit Vorwahl | CHAR | 20 Stellen | ja |
| wekontakt | Kontaktperson bei der Werkstatt | CHAR | 20 Stellen | ja |
ausleihe
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| annr | Ausleihnummer | SERIAL | Fortlaufende Nummer mit 1 beginnend | nein |
| pkennzeichen | Polizeiliches Kennzeichen | CHAR | 11 Stellen | nein |
| kunr | Kundennummer | INTEGER | > 999 | nein |
| auleiausdat | Ausleihdatum | DATE | Datum des Ausleihtags, nicht vor dem aktuellen Datum | nein |
| auanfangkm | Kilometerstand beim Ausleihen | INTEGER | positiv < 100000 | nein |
| auleirueckdat | Rückgabedatum | DATE | später als das Ausleih-datum, nicht vor dem aktuellen Datum | ja |
| auendkm | Kilometerstand bei der Rückgabe | INTEGER | positiv < 100000 | ja |
reparatur
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| pkennzeichen | Polizeiliches Kennzeichen | CHAR | 11 Stellen | nein |
| wename | Name der Werkstatt | CHAR | 35Stellen | nein |
| redatum | Datum der Reparatur | DATE | ja | |
| reart | Art der Reparatur | CHAR | 35 Stellen | ja |
| redauer | Dauer der Reparatur in Tagen | INTEGER | positiv < 100 | ja |
Der Datentyp SERIAL ist bei MySQL ein Alias für BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
Intra-relationale Integrität
Im Folgenden werden nur die Maßnahmen zur Sicherung eines eindeutigen Schlüssels dokumentiert:
| Tabellenname | Maßnahmen |
|---|---|
| kunden | Fortlaufende Kundennummern mit 1000 beginnend durch das Datenbanksystem |
| hersteller | durch einen eindeutigen Index für den Herstellernamen |
| modelle | durch einen eindeutigen Index für den Modellnamen |
| pkw | durch einen eindeutigen Index für das Kennzeichen |
| werkstatt | durch einen eindeutigen Index für den Werkstattnamen |
| ausleihe | Fortlaufende Nummerierung aller Ausleihvorgänge mit 1 beginnend durch das Datenbanksystem |
| reparatur | durch einen eindeutigen Index für die Fremdschlüssel Kennzeichen, Werkstattname und Reparaturdatum |
Die Integritätsbedingungen, die sich auf die Beziehung einzelner
Felder innerhalb einer Relation beziehen, wurden aus Gründen der besseren
Darstellungsmöglichkeiten bei der Wertebereichsintegrität dokumentiert.
Die hierfür notwendigen Maßnahmen betreffen im wesentlichen die Relationen Ausleihe und Reparatur.
Bei der Ausleihe muss sichergestellt werden, dass nur Ausleihen vorgenommen werden, bei denen alle Daten über Kunden und PKW vorliegen. Das System muss jede Ausleihe ablehnen, bei denen kein Verweis auf die Relation Kunden und PKW möglich ist. Da alle Ausleihdaten ein Jahr aktuell im System gehalten werden, dürfen Kunden und PKW nur einmal im Jahr, am Ende des Geschäftsjahres gelöscht werden.
Ähnliches gilt für die Relation Reparatur. Auch hier kann nur eine Reparatur eingegeben werden, die einen eindeutigen Verweis auf die Relation PKW und Werkstatt zulässt. Löschungen von Werkstätten sind nur am Ende des Geschäftsjahres erlaubt.
Weniger rigide sollten die Beziehungen zwischen PKW, Modelle und Hersteller gehandhabt werden. So kann es in der Praxis vorkommen, dass bereits ein PKW ausgeliehen wird, von dem noch nicht alle genauen Daten vorliegen. Deshalb soll es möglich sein, in der Relation PKW Eintragungen vorzunehmen, obwohl die entsprechenden Verweise in den Relationen Hersteller und Modelle fehlen.