Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m290_guko:learningunits:lu01:theorie:c_relational_dbs [2025/08/16 16:49] – gkoch | modul:m290_guko:learningunits:lu01:theorie:c_relational_dbs [2025/08/17 20:30] (aktuell) – gkoch | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
==== Vorteile beim Einsatz von Datenbanken ==== | ==== Vorteile beim Einsatz von Datenbanken ==== | ||
- | * Eine Datenbank ermöglicht die **dauerhafte, | + | * Eine Datenbank ermöglicht die **dauerhafte, |
- | * Der Einsatz von Datenbanken **verhindert Redundanzen** (mehrfache Speicherung gleicher Informationen) und Inkonsistenzen (Probleme bei der Aktualisierung | + | * Der Einsatz von Datenbanken **verhindert Redundanzen** ((Ohne Datenbank kommt es schnell zu mehrfachen Datensätzen, |
* DBMS bieten eine Vielzahl von **Datenanalyse-Methoden** zur Auswertung von Informationen. Die SQL-Skriptsprache stellt Funktionen zur Berechnung, Aggregation und Sortierung der Daten zur Verfügung. | * DBMS bieten eine Vielzahl von **Datenanalyse-Methoden** zur Auswertung von Informationen. Die SQL-Skriptsprache stellt Funktionen zur Berechnung, Aggregation und Sortierung der Daten zur Verfügung. | ||
* Datenbankmanagementsysteme (DBMS) sind **abfrageoptimiert** und können Daten in einem Bruchteil der Zeit auslesen, die andere Dateiformate (z.B. Excel, CSV) benötigen. | * Datenbankmanagementsysteme (DBMS) sind **abfrageoptimiert** und können Daten in einem Bruchteil der Zeit auslesen, die andere Dateiformate (z.B. Excel, CSV) benötigen. | ||
===== Relationale Datenbanken (Relational Databases) ===== | ===== Relationale Datenbanken (Relational Databases) ===== | ||
- | Relationale Datenbanksysteme (RDBMS, *Relational Database Management Systems*) | + | Relationale Datenbanksysteme (RDBMS, *Relational Database Management Systems*) |
- | Ein zentrales Konzept relationaler | + | Relationale |
+ | - Eine **Zeile** (Tupel) steht für einen vollständigen Datensatz, zum Beispiel einen Kunden oder eine Bestellung. | ||
+ | - Eine **Spalte** (Attribut) beschreibt eine bestimmte Eigenschaft dieses Datensatzes, | ||
+ | - Ein einzelner Eintrag in einer Zelle ist ein **Attributwert** (attribute value). | ||
- | Die erste Zeile einer Tabelle gibt die Struktur der Tabelle an und definiert die Anzahl und die Benennung der Spalten. Die Verknüpfungen zwischen den Tabellen ermöglichen es, Beziehungen zwischen den gespeicherten Entitäten (entities) zu modellieren und so Datenredundanzen zu vermeiden. So können beispielsweise mehrere Tabellen miteinander in Beziehung gesetzt werden, um komplexe Datenstrukturen abzubilden und die Datenkonsistenz zu gewährleisten. | + | {{: |
- | Stellen Sie sich eine Tabelle, die Kundendaten speichert vor. Jede Zeile der Tabelle | + | Beispiel einer Kundentabelle mit verknüpfter Bestelltabelle: |
+ | - Jede **Zeile** repräsentiert einen Kunden. | ||
+ | - Die **Spalten** enthalten Merkmale | ||
- | | + | In der zweiten Tabelle |
- | * Spalte = Attribut (attribute): | + | |
- | {{: | + | ==== Was bedeutet „Relation“? ==== |
+ | Der Begriff **Relation** stammt aus der Mathematik und ist die Grundlage relationaler Datenbanken. Eine Relation ist nichts anderes als eine Tabelle mit Daten einer bestimmten Art (z.B. Kunden, Bestellungen). Der Name „relational“ ergibt sich daraus, dass Tabellen miteinander in **Beziehung** (relation) gesetzt werden können. | ||
- | ==== Was bedeutet Relation? ==== | + | ==== Wie sind Tabellen miteinander verbunden? ==== |
+ | Tabellen können über **Schlüssel** verknüpft werden: | ||
+ | - Ein **Primärschlüssel** (primary key) identifiziert jede Zeile in einer Tabelle eindeutig. | ||
+ | - Ein **Fremdschlüssel** (foreign key) verweist auf den Primärschlüssel einer anderen Tabelle. | ||
- | Der Begriff Relation ist der mathematische Ursprung | + | Beispiel: |
+ | - In der **Kundentabelle** gibt es für jeden Kunden eine eindeutige **Kundennummer | ||
+ | - In der **Bestellungstabelle** wird dieselbe Kundennummer als **Fremdschlüssel | ||
+ | So lässt sich jede Bestellung eindeutig einem Kunden zuordnen. | ||
- | === Wie sind Tabellen miteinander verbunden? === | ||
- | |||
- | Ein wichtiger Bestandteil relationaler Datenbanken ist, dass Tabellen miteinander verknüpft werden können. Diese Verknüpfung erfolgt über Primär- und Fremdschlüssel (primary and foreign keys). Ein Fremdschlüssel ist ein Verweis von einer Tabelle auf eine andere. Zum Beispiel: | ||
- | |||
- | * In einer Kundentabelle könnte jede Zeile eine Kundennummer enthalten. | ||
- | * In einer Bestellungstabelle könnte es eine Spalte geben, die die Kundennummer enthält. Dieser Verweis stellt eine Verbindung zwischen den beiden Tabellen her, weil wir so wissen, welcher Kunde welche Bestellung gemacht hat. | ||
Zeile 49: | Zeile 54: | ||
==== SQL ==== | ==== SQL ==== | ||
- | Relationale Datenbanken nutzen die **Structured Query Language (SQL)**, um Daten abzufragen (query), zu modifizieren (manipulate), | + | Relationale Datenbanken nutzen die **Structured Query Language (SQL)**, um Daten abzufragen (query), zu modifizieren (manipulate), |
===== Video: Relationale und NoSQL-Datenbanken ===== | ===== Video: Relationale und NoSQL-Datenbanken ===== | ||
Zeile 55: | Zeile 60: | ||
- | ===== NoSQL-Datenbanken zur Speicherung grosser Datenmengen ===== | + | ===== NoSQL-Datenbanken zur Speicherung grosser/ |
NoSQL-Datenbanken sind eine jüngere Technologie und werden vor allem verwendet, wenn Daten in einer **unstrukturierten oder wenig strukturierten Form** abgelegt werden müssen. | NoSQL-Datenbanken sind eine jüngere Technologie und werden vor allem verwendet, wenn Daten in einer **unstrukturierten oder wenig strukturierten Form** abgelegt werden müssen. | ||
NoSQL-Datenbanken wurden besonders im Zusammenhang mit dem Big Data Hype populär. Sie ermöglichen es, **grosse Datenmengen schnell zu speichern und auszuwerten**, | NoSQL-Datenbanken wurden besonders im Zusammenhang mit dem Big Data Hype populär. Sie ermöglichen es, **grosse Datenmengen schnell zu speichern und auszuwerten**, | ||
Zeile 62: | Zeile 67: | ||
+ | === Bekannte NoSQL-Datenbanksysteme === | ||
+ | * MongoDB | ||
+ | * Redis | ||
+ | * Apache Cassandra | ||
===== Vergleich von Relationalen und NoSQL-Datenbanken ===== | ===== Vergleich von Relationalen und NoSQL-Datenbanken ===== | ||
Zeile 68: | Zeile 76: | ||
* Relationale Datenbanken sind aufgrund von Integritätsprüfungen und Normalisierungen **nicht für die schnelle Speicherung grosser Datenmengen** geeignet. Für diese Aufgaben bieten **NoSQL-Datenbanken** eine bessere Lösung, da sie auf eine schnelle Verarbeitung ohne hohe Integritätsanforderungen optimiert sind. | * Relationale Datenbanken sind aufgrund von Integritätsprüfungen und Normalisierungen **nicht für die schnelle Speicherung grosser Datenmengen** geeignet. Für diese Aufgaben bieten **NoSQL-Datenbanken** eine bessere Lösung, da sie auf eine schnelle Verarbeitung ohne hohe Integritätsanforderungen optimiert sind. | ||
* Relationale Datenbanken sind nach wie vor **unverzichtbar**, | * Relationale Datenbanken sind nach wie vor **unverzichtbar**, | ||
+ | |||
===== Quellen: ===== | ===== Quellen: ===== |