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:lu03:theorie:a_einleitung [2025/08/31 15:11] – gkoch | modul:m290_guko:learningunits:lu03:theorie:a_einleitung [2025/08/31 22:33] (aktuell) – gkoch | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LU04a - Relationale Datenbanksysteme ====== | ====== LU04a - Relationale Datenbanksysteme ====== | ||
- | |||
- | ==== Lernziele ==== | ||
- | * Ich kann erklären, was eine relationale Datenbank ist und warum sie in fast allen Webanwendungen genutzt wird. | ||
- | * Ich kenne die wichtigsten Bausteine einer relationalen Datenbank (Tabellen, Datensätze, | ||
- | |||
==== Grundidee ==== | ==== Grundidee ==== | ||
Eine **relationale Datenbank (RDB)** ist eine Methode, Daten in Tabellen zu speichern und zu organisieren. | Eine **relationale Datenbank (RDB)** ist eine Methode, Daten in Tabellen zu speichern und zu organisieren. | ||
Die Tabellen sind **miteinander verknüpft** – daher „relational“. | Die Tabellen sind **miteinander verknüpft** – daher „relational“. | ||
- | <WRAP center 100% box> | + | |
- | {{: | + | |
- | </ | + | |
Beispiel: | Beispiel: | ||
- | * Eine Tabelle **Kunden** mit ID (Primärschlüssel), | + | * Eine Tabelle **Kunden** mit ID (Primärschlüssel |
- | * Eine Tabelle **Bestellungen** mit Bestellnummer (id), Produkt welches bestellt wurde und einer Spalte " | + | Beispiel: In einer Filmtabelle könnte die ISAN-Nummer (International Standard Audiovisual Number, ähnlich wie ISBN bei Büchern) als Primärschlüssel dienen – sie identifiziert jeden Film weltweit eindeutig, auch wenn mehrere Filme denselben Titel haben.))), Name und Email-Adresse. |
+ | * Eine Tabelle **Bestellungen** mit Bestellnummer (id), Produkt welches bestellt wurde und einer Spalte " | ||
* Über die Verbindung im Fremdschlüssel können wir herausfinden, | * Über die Verbindung im Fremdschlüssel können wir herausfinden, | ||
+ | |||
+ | {{ : | ||
==== Zentrale Begriffe ==== | ==== Zentrale Begriffe ==== | ||
- | * **Entität** – ein „Ding“ oder „Objekt“ der realen Welt, das gespeichert wird (z. B. ein Film, ein Kunde, ein Pokémon). | + | * **Entität** – ein „Ding“ oder „Objekt“ der realen Welt, das gespeichert wird (z. B. ein Film, ein Kunde, ein Pokémon, eine Bestellung). |
- | * **Tabelle** – eine Sammlung von Daten über eine Entität (z. B. alle Filme). | + | * **Tabelle** – eine Sammlung von Daten über eine Entität (z. B. alle Filme, alle Kunden, alle Bestellungen). |
- | * **Datensatz (Record, Tupel)** – eine Zeile in der Tabelle (z. B. der Film „The Godfather“). | + | * **Datensatz (Record, Tupel)** – eine Zeile in der Tabelle (z. B. der Film „The Godfather“, Kundin Hanna). |
- | * **Attribut (Feld, Spalte)** – eine Eigenschaft der Entität (z. B. Filmtitel, Erscheinungsjahr). | + | * **Attribut (Feld, Spalte)** – eine Eigenschaft der Entität (z. B. Filmtitel, Erscheinungsjahr, Name der Kundin, Email-Adresse der Kundin). |
- | * **Primärschlüssel (PK)** – eindeutiger Wert, der einen Datensatz identifiziert (z. B. Film-ID). | + | * **Primärschlüssel (PK)** – eindeutiger Wert, der einen Datensatz identifiziert (z. B. Film-ID, ID der Kundin, ID der Bestellung / Bestellnummer). |
* **Fremdschlüssel (FK)** – verweist auf den Primärschlüssel einer anderen Tabelle → stellt die Beziehung her. | * **Fremdschlüssel (FK)** – verweist auf den Primärschlüssel einer anderen Tabelle → stellt die Beziehung her. | ||
- | ---- | + | <WRAP center tip round 80%> |
+ | [[https:// | ||
+ | </ | ||
+ | |||
+ | {{: | ||
==== Struktur und Integrität ==== | ==== Struktur und Integrität ==== | ||
Zeile 33: | Zeile 33: | ||
* **Referentielle Integrität** – Fremdschlüssel müssen auf existierende Primärschlüssel verweisen. | * **Referentielle Integrität** – Fremdschlüssel müssen auf existierende Primärschlüssel verweisen. | ||
* **Domain Integrity** – Werte müssen zum definierten Datentyp passen (z. B. eine Zahl darf kein Text sein). | * **Domain Integrity** – Werte müssen zum definierten Datentyp passen (z. B. eine Zahl darf kein Text sein). | ||
- | + | ||
- | + | ||
- | ==== Operatoren in relationalen DBs ==== | + | |
- | Ein Datenbankmodell beschreibt nicht nur die Struktur, sondern auch die erlaubten **Operationen**. | + | |
- | In SQL gibt es drei Hauptgruppen: | + | |
- | + | ||
- | * **DDL (Data Definition Language)** → Tabellen und Strukturen anlegen | + | |
- | Beispiel: <code sql> | + | |
- | * **DML (Data Manipulation Language)** → Daten einfügen, ändern, löschen | + | |
- | Beispiel: <code sql> | + | |
- | * **DQL (Data Query Language)** → Daten abfragen | + | |
- | Beispiel: <code sql> | + | |