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 | 5 Stellen | 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 |
modell
| 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 | 60 - 500 | ja |
| mohubraum | Hubraum in ccm | INTEGER | 500 - 5000 | ja |
| molaenge | Länge des PKW in cm | INTEGER | 300 - 1200 | ja |
| mobreite | Breite des PKW in cm | INTEGER | 200 - 400 | 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 | < 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 | < 100000 | ja |
reparatur
| Feldname | Beschreibung | Datentyp | Wertebereich | Null |
|---|---|---|---|---|
| pkennzeichen | Polizeiliches Kennzeichen | CHAR | 11 Stellen | nein |
| wename | Name der Werkstatt | CHAR | 35 Stellen | nein |
| redatum | Datum der Reparatur | DATE | nicht in der Zukunft | ja |
| reart | Art der Reparatur | CHAR | 35 Stellen | ja |
| redauer | Dauer der Reparatur in Tagen | INTEGER | < 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, Modell 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 Modell fehlen.