WikiDer > Tabelle (Datenbank)
EIN Tabelle ist eine Entität innerhalb von a relationale Datenbank. Eine Tabelle hat einen Namen und besteht außerdem aus:
- 'Säulen'. Diese bilden die Definition der Felder. Eine solche Beschreibung lautet beispielsweise:
- Numerisch 10.2, schreibgeschützt, Pflichtfeld
- Alphanumerisch 20, lesen/schreiben, optionales Feld
- 'Reihen' oder Aufzeichnungen. Diese enthalten die Daten.
- Schlüssel oder Index. Diese dienen dazu, schnell die richtige Reihe zu finden. Oft gibt es einen Primärschlüssel und eine Reihe von Sekundärschlüsseln. Auch der Begriff Suchschlüssel wird häufig verwendet.
- Trigger-Software. Dies wird aufgerufen, wenn ein Datensatz geändert wird. Dies steht im Gegensatz zu Fernverfahren die explizit mit a . aufgerufen werden Remote-Prozeduraufruf (RPC) von Client-Software und haben somit keine Bindung an eine Tabelle.
Ein Datensatz besteht wieder aus Feldern. Jedes Feld entspricht einer Spalte, die seine Metadaten enthält. Das Daten in einer Tabelle wird oft als Array von Feldern dargestellt, deren erste Zeile die Spaltennamen enthält.
In einem guten normalisierte Datenbank a data kommt nur einmal vor. Um Daten zu verknüpfen, Beziehungen werden zwischen den Tabellen verwendet.
Beispiel
Unten ist ein Beispiel für die Tabellen Kunden und Rechnungen. In der Tabelle Kunden die Spalte CustomerID ist der Primärschlüssel. In der Tabelle Rechnungen ist Rechnungs-ID der Primärschlüssel. Dies sind gebräuchliche Namen für Schlüssel. Die Zahlen selbst haben keine Bedeutung, müssen jedoch innerhalb der Tabelle eindeutig sein.
Ein weiterer Suchschlüssel für Kunden könnte die Kombination von Spalten sein Name und Nachname. Dies muss nicht eindeutig sein. Der Primärschlüssel ist immer eindeutig.
Clients:ClientID Name Nachname---------- ---- -------1 David Copperfield2 Hans Kazan_|__________ | |Rechnungen: ↓RechnungsID KundenNr Betrag-------- ------- ------1 2 102 1 203 2 204 2 305 1 40
Die Zahlen in der Spalte Kunden.KundenID passen zu denen in Rechnungen.CustNr (Spaltennamen können unterschiedlich sein). Dies bildet eine 1-zu-n-Beziehung, bei der 1 Kunde n Rechnungen haben kann.
Beziehungen
Das relationale Datenbank (RDB) hat seinen Namen davon, dass eine Tabelle Beziehungen liegt zwischen Feldern: entweder Felder aus einer Zeile einer Tabelle oder Felder aus verschiedenen Tabellen, wenn sie durch eine Schlüsselspalte verbunden sind. In der Tabelle Rechnungen ist das Feld Kundennummer ein Unbekannter Schlüssel. Dies liegt daran, dass diese Spalte tatsächlich der Schlüssel einer anderen Tabelle ist.
Eine Tabelle beschreibt im Allgemeinen mehrere n-zu-m-Beziehungen, da eine Spalte k1 den gleichen Wert mehrmals enthalten kann, wobei jedes Mal einem anderen Wert der Spalte k2 entspricht, während gleichzeitig verschiedene Werte von k1 dem entsprechen können gleicher Wert von k2. Wenn die Spalten k1 und k2 zu zwei verschiedenen Tabellen gehören, besteht eine n-zu-m-Beziehung zwischen diesen beiden Tabellen. In der Regel erstellt man in diesem Fall jedoch eine zusätzliche Tabelle, die den Link implementiert. Eine solche Tabelle enthält dann zwei Fremdschlüssel, einen für jede der beiden Basistabellen. In diesen Basistabellen wird jeder Wert in Spalte k1 bzw. in Spalte k1 eingetragen. k2 nur einmal, während die ursprüngliche n-zu-m-Beziehung in der Matching-Tabelle zu finden ist. Mehr dazu im Artikel Datenmodell.
Index oder Schlüssel
EIN Index (oder Suchschlüssel) bietet die Möglichkeit, sehr schnell die richtige Zeile in einer Tabelle zu finden, selbst wenn Millionen von Zeilen vorhanden sind. Die dafür verwendeten Techniken ähneln den Techniken, die für assoziative Arrays verwendet werden. Diese Techniken sind Hash-Tabellen und binäre Bäume. Wird eine Zeile hinzugefügt oder aus der Tabelle entfernt oder Felder geändert, müssen die Indizes aktualisiert werden. Da Indizes manchmal in einer separaten Datei gespeichert werden, wird dies auch als Aktualisierung der Indexdatei bezeichnet.
Das obige impliziert, dass die Bearbeitung einer Zeile umso länger dauert, je mehr Indizes über einer Tabelle vorhanden sind. Die Suche ist jedoch schneller. Das Durchsuchen einer Zeile durch Spalten, für die kein Index vorhanden ist, dauert im Vergleich zu einer indizierten Suche sehr lange. Der Designer der Datenbank muss daher die Erstellung von Indizes sorgfältig auf der Grundlage der erwarteten Verwendung auswählen. Eine Tabelle, die sich nicht oft ändert, wird dazu neigen, mehr Indizes zu bilden.
Verwechseln Sie einen Index oder Schlüssel nicht mit dem Begriff "Primärschlüssel" oder "Unbekannter Schlüssel" wie oben unter "Beziehungen" besprochen!
auslösen
Erläuterung
Es ist möglich, Trigger mit den meisten relationalen Datenbanken anzuwenden. Ein solcher Trigger stellt sicher, dass in dem Moment, in dem eine Änderung in einer Tabelle auftritt (Datensatz ändern, Datensatz löschen, Datensatz hinzufügen) Skript (beispielsweise SQL) oder Computer Programm (beispielsweise Rollenspiel), die Prüfungen durchführt oder weitere Änderungen an der Datenbank vornimmt. Schlägt eine solche Prüfung fehl, kann die Änderung nicht vorgenommen werden.
Beispiele
- Bei der entfernen die zugehörigen Rechnungen müssen ebenfalls aus einem Kundendatensatz entfernt werden.
- Bei der erstellen eines Rechnungssatzes wird geprüft, ob ein zugehöriger Kunde vorhanden ist. Wenn nicht, schlägt das Erstellen eines Rechnungsdatensatzes fehl.
- Beim Ändern eines Rechnungssatzes wird geprüft, ob sich die Kundennummer nicht ändert.
- Beim Erstellen einer Rechnung wird ein Zähler in der Kundentabelle um eins erhöht.
| Datenbanken | ||||||||
|---|---|---|---|---|---|---|---|---|
Datenbankverwaltungssystem · Datenbankmodell · Datenbanknormalisierung · referenzielle Integrität · relationale Algebra · relationale Datenbank · relationales Modell
|