Einführung in Datenbanken: Grundlagen & Konzepte

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 8,05 KB

Einführung in Datenbanken: Grundlagen & Konzepte

Definitionen

Datenbank: Eine Sammlung von zusammenhängenden Daten, die gemeinsam verwaltet werden können.

Entity-Relationship-Modell: Ein theoretischer Ansatz zur Modellierung von Daten einer Datenbank mithilfe von Diagrammen.

Entity: Ein Element der Wirklichkeit, das durch zugeordnete Daten repräsentiert wird.

Entities werden in der Regel durch Namen identifiziert, zum Beispiel: Kunden, Artikel, Zimmer, Studenten usw.

Beziehung: Eine Beziehung, die, wie der Name schon sagt, mindestens zwei Entities zueinander in Beziehung setzt. Damit eine Beziehung existiert, müssen die verbundenen Entities vorhanden sein.

Beziehungen werden oft durch Verben identifiziert: Reservierungen (Zimmer für Gäste), Kauf (von Produkten durch Kunden), ein Schüler besucht Kurse (die Beziehung wäre 'besucht'), etc.

Tabelle: Entities und Beziehungen werden auf einem Computer durch Tabellen modelliert. Attribute von Entities und Beziehungen werden auf Computern durch 'Felder' oder 'Spalten' modelliert. Die Daten jeder Entity oder Beziehung werden in der Tabelle in einer Zeile oder einem Datensatz gespeichert. Eine Tabelle kann viele Datensätze oder Zeilen enthalten, wobei die Grenze üblicherweise die Kapazität der Festplatte des Computers ist. Zur Unterscheidung jedes Datensatzes von den anderen wird ein Primärschlüssel definiert.

Primärschlüssel

Der Primärschlüssel einer Tabelle ist ein Feld oder eine Kombination von Feldern, das/die jeden Datensatz oder jede Zeile in der Tabelle eindeutig identifiziert. Das heißt, jeder Datensatz in der Tabelle hat einen anderen Wert in dem Feld oder den Feldern, die den Schlüssel bilden. Zum Beispiel, Personen haben jeweils eine andere ID-Nummer und diese sollte sich nicht wiederholen. Ein weiteres Beispiel für einen Primärschlüssel ist die Matrikelnummer auf dem Studentenausweis. Es kann mehrere Studenten mit demselben Namen geben, aber nicht mit derselben Matrikelnummer oder derselben ID. Beispiele für ungeeignete Schlüssel sind: Name + Nachname (kann bei verschiedenen Personen wiederholt werden), Artikelnummer (CódigoArtículo) in einer Verkaufstabelle (da derselbe Artikel mehrmals verkauft werden kann), Verkaufsdatum (selbst mit Stunden, Minuten und Sekunden, da mehrere Verkäufe gleichzeitig stattfinden können).

Typischerweise haben alle Tabellen einen Primärschlüssel, der es uns ermöglicht, einzelne Datensätze anhand ihrer Daten zu identifizieren, abzurufen, zu modifizieren oder zu löschen.

Fremdschlüssel

Ist ein Feld oder eine Kombination von Feldern, das/die in einer Tabelle definiert ist und der Primärschlüssel in einer anderen Tabelle ist. Aus diesem Grund verwenden wir das Wort 'extern' oder 'fremd'.

Datenbank-Normalisierung

Die Normalisierung wird oft bis zur zweiten oder dritten Normalform durchgeführt. Höhere Normalformen erfordern einen intensiveren Datenaustausch zwischen Tabellen, was zu komplexeren Abfragen führen kann.

Umsetzung von ER-Beziehungen in Datenbanken

Beziehungen basieren auf der Anzahl der beteiligten Entities: 1 zu 1 (1:1), 1 zu viele (1:n) oder viele zu viele (n:m).

1:1- und 1:n-Beziehungen werden modelliert, indem der Primärschlüssel einer Entity als Fremdschlüssel in der zweiten Entity verwendet wird. Beispiel: Ein Hotelkunde (Primärschlüssel: Kunden-ID) kann mehrere Reservierungen zu verschiedenen Zeitpunkten vorgenommen haben. Wenn wir die Kunden-ID als Fremdschlüssel zur Reservierungstabelle hinzufügen, setzen wir diese 1:n-Beziehung zwischen Kunde und Reservierungen um.

Zur Umsetzung von n:m-Beziehungen ('n' zu 'm') ist es notwendig, eine neue Zwischentabelle zu erstellen, die die Primärschlüssel der beiden beteiligten Entities enthält. Zum Beispiel die Beziehung 'Kunde kauft Artikel' in einem Supermarkt. Ein Artikel kann von vielen Kunden gekauft werden, und ein Kunde kann viele Artikel kaufen. Dies ist eine n:m-Beziehung. Zur Umsetzung wird eine Zwischentabelle benötigt. Ein typisches Beispiel hierfür ist die Aufteilung einer Bestellung in 'Bestellkopf' (CabeceraPedidos) und 'Bestellpositionen' (LineasPedido). Die Tabelle 'Bestellkopf' enthält Informationen zur gesamten Bestellung (z. B. Bestellnummer als Primärschlüssel, Datum, Gesamtbetrag, Kunden-ID als Fremdschlüssel). Die Tabelle 'Bestellpositionen' enthält die Details der gekauften Artikel für jede Bestellung. Sie enthält den Primärschlüssel des Bestellkopfs (z. B. Bestellnummer als Fremdschlüssel), den Primärschlüssel des Artikels (z. B. Artikelnummer als Fremdschlüssel) sowie zusätzliche Informationen wie Menge, Einzelpreis, Gesamtpreis der Position und Zeilennummer.

Datenbanken in Microsoft Access

Die Datentypen für Felder oder Spalten in Access sind:

  • Text
  • Zahl (Integer, mit Dezimalstellen)
  • AutoWert (nimmt Werte von 1, 2, usw.)
  • Währung
  • Datum/Uhrzeit
  • Memo (zum Speichern großer Textfelder oder binärer Objekte wie Fotos, Musik, Video usw.)

Das AutoWert-Feld

Das AutoWert-Feld nimmt automatisch ganzzahlige Werte beginnend bei 1 an. Aus diesem Grund wird es oft als Primärschlüssel in Tabellen verwendet. Wenn Sie einen Datensatz in eine Tabelle mit einem AutoWert-Feld einfügen, müssen Sie diesem Feld keinen Wert zuweisen, da die Access-Datenbank den nächsten verfügbaren Wert automatisch vergibt und intern verwaltet.

Wenn ein Feld als Fremdschlüssel auf ein AutoWert-Feld (das Primärschlüssel in einer anderen Tabelle ist) verweist, muss der Datentyp des Fremdschlüsselfeldes dem Datentyp des AutoWert-Feldes entsprechen, aber nicht selbst AutoWert sein. Zum Beispiel: Wenn 'Reservierungsnummer' in der Tabelle 'Reservierungen' ein AutoWert-Primärschlüssel ist, dann muss das Feld 'Reservierungsnummer' in der Tabelle 'Rechnungen', das als Fremdschlüssel auf 'Reservierungen' verweist, als Zahl (Integer) und nicht als AutoWert definiert werden.

Beziehungen in Access

Diese Beziehungen in Access modellieren nicht direkt die Beziehungen zwischen den Entities, sondern die Beziehungen zwischen den Feldern, insbesondere zwischen Primärschlüsseln und Fremdschlüsseln. Es werden immer Felder mit demselben Datentyp und idealerweise demselben Inhalt in verschiedenen Tabellen verknüpft. Es macht keinen Sinn, unterschiedliche Felder wie 'Artikelnummer' (CódigoArtículo) und 'Verkaufsnummer' (NúmeroVenta) zu verknüpfen. Man verknüpft immer gleiche Daten in unterschiedlichen Tabellen, z. B. 'Kunden-ID' mit 'Kunden-ID', 'Artikelnummer' mit 'Artikelnummer' usw.

Wenn wir die referentielle Integrität aktivieren, bedeutet dies, dass wir keinen Datensatz in die 'Fremdschlüssel'-Tabelle einfügen können, wenn kein entsprechender Datensatz mit diesem Primärschlüsselwert in der 'Primärschlüssel'-Tabelle (der 'Haupttabelle') existiert. Zum Beispiel: Um eine Hotelreservierung einzufügen, muss der entsprechende Kunde mit der angegebenen Kunden-ID bereits in der Tabelle 'Kunden' existieren.

Wenn Sie 'Kaskade löschen' markiert haben, bedeutet dies, dass Access automatisch alle zugehörigen Datensätze in der 'Fremdschlüssel'-Tabelle löscht, wenn Sie einen Datensatz in der 'Primärschlüssel'-Tabelle löschen. Beispiel: Wenn Sie einen Kunden aus der Tabelle 'Kunden' löschen, werden automatisch alle Reservierungen dieses Kunden in der Tabelle 'Reservierungen' gelöscht (vorausgesetzt, die Kunden-ID ist der Fremdschlüssel in 'Reservierungen'). Das Gleiche geschieht, wenn Sie 'Update-Kaskade' markieren: Änderungen am Primärschlüsselwert in der 'Primärschlüssel'-Tabelle werden automatisch auf die entsprechenden Fremdschlüsselwerte in der 'Fremdschlüssel'-Tabelle übertragen.

Verwandte Einträge: