Einführung in SQL: Tabellenstruktur der Beispieldatenbank
Aus Wikibooks
Hier wird erläutert, wie Sie mit der Beispieldatenbank arbeiten können.
Inhaltsverzeichnis |
[Bearbeiten] Was ist ein Skript?
Unter einem
Skript versteht man in der EDV eine Liste von Befehlen, die durch einen einzelnen Befehl aufgerufen und automatisch nacheinander ausgeführt werden. Diese Befehle sind meist in einer Datei zusammengefasst und werden dadurch ausgeführt, dass die betreffende Datei aufgerufen wird.
Bei SQL sind solche Dateien unter Windows üblicherweise mit der Endung ".sql" gespeichert.
Solche Skripte stehen sowohl zum Anlegen der Beispieldatenbank als auch für nachträgliche Änderungen zur Verfügung.
[Bearbeiten] Beispieldatenbank anlegen
Die Beispieldatenbank kann auf zwei Arten angelegt werden.
| Achtung Die Datenbankstruktur wurde überarbeitet; alle Beispiele und Skripte wurden inzwischen angepasst. Sie müssen aber – siehe die folgenden Status-Hinweise – noch ausführlich geprüft werden. Zwischenstand am 15.12.2009; sobald alles erledigt ist, wird dieser Vermerk wieder entfernt. |
[Bearbeiten] Skript ausführen
Dazu werden die erforderlichen Befehle in einem Skript gespeichert. Nachdem Sie sich beim DBMS angemeldet und die Datenbank (noch ohne Inhalt) erzeugt haben, führen Sie das Skript aus und erhalten dadurch die fertige Beispieldatenbank.
Die einzelnen Schritte werden auf den folgenden Seiten genau beschrieben:
| Status: vollständig angepasst und geprüft | ||
| Status: Skript vollständig erstellt, Create Database fehlt, noch nicht getestet | ||
| Status: vollständig angepasst, noch nicht geprüft | ||
| Status: Skript vollständig erstellt, Create Database fehlt, noch nicht getestet | ||
| Status: Skript vollständig erstellt, noch nicht geprüft |
Hinweis: Datumsangaben werden in den Skripts durch '2009-12-14' nach ISO 8601 angegeben. Dieses Format sollte jedes DBMS in jeder Sprache richtig verarbeiten können.
[Bearbeiten] Datenbank extrahieren
Dazu stellen wir eine "fertige" Version der Beispieldatenbank in komprimierter Form zur Verfügung. Die betreffende komprimierte Datei ist aus dem Internet herunterzuladen und zu extrahieren. Dadurch erhalten Sie direkt die fertige Beispieldatenbank.
Die einzelnen Schritte werden auf den folgenden Seiten genau beschrieben:
[Bearbeiten] Nachträgliche Änderungen
Hier gibt es Skripte für nachträgliche Änderungen, die in Änderung der Datenbankstruktur umgesetzt werden:
- Spalten zum Hinzufügen und Ändern einzelner Spalten
- Constraints zum Anlegen von UNIQUE KEYs und CHECK-Constraints
- Indizes zum Anlegen weiterer Schlüssel
- ForeignKeys zum Anlegen der Fremdschlüssel
- Anpassung für die Änderung der Daten nach den vorstehenden Änderungen
Hier gibt es Skripte, die zum Erzeugen von Testdaten benutzt werden:
- Testdaten zum Anlegen "vieler" weiterer Daten
| Achtung! Diese Änderungen dürfen erst an den entsprechenden Stellen in Änderung der Datenbankstruktur bzw. Testdaten erzeugen ausgeführt werden; vorher fehlt die notwendige Sachkenntnis. Außerdem muss – wie dort erläutert – die Reihenfolge der Änderungen beachtet werden. |
[Bearbeiten] Die einzelnen Tabellen
Es folgen die Definitionen der einzelnen Tabellen; dabei ist in Klammern jeweils der Tabellen-Alias genannt. In farbiger Schrift stehen Spalten, die durch die nachträglichen Änderungen eingefügt werden.
[Bearbeiten] Versicherungsvertrag (vv)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Vertragsnummer | varchar(20) | Pflicht | eindeutig |
| Abschlussdatum | date | Pflicht | |
| Art | char(2) | Pflicht | nur 'HP' oder 'TK' oder 'VK' möglich |
| Mitarbeiter_ID | integer | Pflicht | Verweis auf Tabelle Mitarbeiter |
| Fahrzeug_ID | integer | Pflicht | Verweis auf Tabelle Fahrzeug |
| Versicherungsnehmer_ID | integer | Pflicht | Verweis auf Tabelle Versicherungsnehmer |
| Basispraemie | number | Pflicht | größer als 0 |
| Praemiensatz | integer | Pflicht | größer als 0 |
| Praemienaenderung | date | optional |
[Bearbeiten] Zuordnung_SF_FZ (zu)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Schadensfall_ID | integer | Pflicht | Verweis auf die Tabelle Schadensfall |
| Fahrzeug_ID | integer | Pflicht | Verweis auf ein einzelnes beteiligtes Fahrzeug |
| Schadenshoehe | number | optional | anteiliger Schaden dieses Fahrzeugs |
| Schuldanteil | integer | Pflicht | größer/gleich 0 |
[Bearbeiten] Schadensfall (sf)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Datum | date | Pflicht | |
| Ort | varchar(200) | Pflicht | genaue Angabe einschl. Straße und Umgebung |
| Beschreibung | varchar(1000) | Pflicht | genaue Angabe der Umstände |
| Schadenshoehe | number | optional | Angabe, soweit möglich |
| Verletzte | char(1) | Pflicht | nur 'J' oder 'N' möglich |
| Mitarbeiter_ID | integer | Pflicht | Verweis auf den Sachbearbeiter in der Tabelle Mitarbeiter |
[Bearbeiten] Versicherungsnehmer (vn)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Name | varchar(30) | Pflicht | |
| Vorname | varchar(30) | optional | bei natürlicher Person Pflicht |
| Geburtsdatum | date | optional | bei natürlicher Person Pflicht |
| Fuehrerschein | date | optional | bei natürlicher Person Pflicht |
| Ort | varchar(30) | Pflicht | |
| PLZ | char(5) | Pflicht | |
| Strasse | varchar(30) | Pflicht | |
| Hausnummer | varchar(10) | Pflicht | |
| Eigener_Kunde | char(1) | Pflicht | nur 'J' oder 'N' möglich |
| Versicherungsgesellschaft_ID | integer | optional | Verweis auf Tabelle Versicherungsgesellschaft, nur bei Fremdkunden |
| Geschlecht | char(1) | optional | nur 'W' oder 'M' oder NULL möglich |
[Bearbeiten] Fahrzeug (fz)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Kennzeichen | varchar(10) | Pflicht | eindeutig |
| Farbe | varchar(30) | optional | |
| Fahrzeugtyp_ID | integer | Pflicht | Verweis auf Tabelle Fahrzeugtyp |
[Bearbeiten] Dienstwagen (dw)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Kennzeichen | varchar(10) | Pflicht | eindeutig |
| Farbe | varchar(30) | optional | |
| Fahrzeugtyp_ID | integer | Pflicht | Verweis auf Tabelle Fahrzeugtyp |
| Mitarbeiter_ID | integer | optional | ggf. Verweis auf Tabelle Mitarbeiter |
[Bearbeiten] Mitarbeiter (mi)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Personalnummer | varchar(10) | Pflicht | eindeutig |
| Name | varchar(30) | Pflicht | |
| Vorname | varchar(30) | Pflicht | |
| Geburtsdatum | date | Pflicht | |
| Telefon | varchar(30) | optional | |
| Mobil | varchar(30) | optional | |
| varchar(50) | optional | ||
| Raum | varchar(10) | optional | |
| Ist_Leiter | char(1) | Pflicht | nur 'J' oder 'N' möglich |
| Abteilung_ID | integer | Pflicht | Verweis auf Tabelle Abteilung |
| Geschlecht | char(1) | Pflicht | nur 'W' oder 'M' möglich |
[Bearbeiten] Versicherungsgesellschaft (vg)
| Spaltenname | Datentyp | Eigenschaft |
|---|---|---|
| ID | integer | Primärschlüssel |
| Bezeichnung | varchar(30) | Pflicht |
| Ort | varchar(30) | optional |
[Bearbeiten] Fahrzeugtyp (ft)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Bezeichnung | varchar(30) | Pflicht | |
| Hersteller_ID | integer | Pflicht | Verweis auf Tabelle Fahrzeughersteller |
[Bearbeiten] Abteilung (ab)
| Spaltenname | Datentyp | Eigenschaft | Erläuterung |
|---|---|---|---|
| ID | integer | Primärschlüssel | |
| Kuerzel | varchar(10) | Pflicht | Datentyp auf CHAR(4) ändern |
| Bezeichnung | varchar(30) | Pflicht | |
| Ort | varchar(30) | optional |
[Bearbeiten] Fahrzeughersteller (fh)
| Spaltenname | Datentyp | Eigenschaft |
|---|---|---|
| ID | integer | Primärschlüssel |
| Name | varchar(30) | Pflicht |
| Land | varchar(30) | optional |