Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m290_guko:learningunits:lu07:theorie:a_crud [2025/09/23 22:33] gkochmodul:m290_guko:learningunits:lu07:theorie:a_crud [2025/09/28 13:54] (aktuell) gkoch
Zeile 1: Zeile 1:
 ====== LU07a – CRUD: Die Basics der Datenverwaltung ====== ====== LU07a – CRUD: Die Basics der Datenverwaltung ======
  
-**CRUD** steht für **Create, Read, Update, Delete** – die vier grundlegenden Operationenmit denen jede Anwendung Daten **anlegtliest, ändert, löscht**.   +**CRUD** ist ein Akronym für **Create, Read, Update, Delete**.   
-CRUD ist überall: in Web-Apps, REST-APIs, Admin-Backends, Mobile Apps – und natürlich in SQL.+Diese vier Operationen sind die **Grundbausteine für den Umgang mit Daten** – egal ob in einer Datenbankeiner App oder einem Webservice.  
  
-{{:modul:m290:learningunits:lu02:theorie:crud.png?300|}}+Stellen Sie sich CRUD wie einen Werkzeugkasten vor, mit dem Sie immer wieder die gleichen Tätigkeiten machen  
 +  * **Create** – etwas Neues __hinzufügen__   
 +  * **Read** – vorhandene Daten __abrufen__   
 +  * **Update** – bestehende Daten __ändern__   
 +  * **Delete** – Daten __löschen__  
  
-===== Lernziele ===== +{{:modul:m290_guko:learningunits:lu07:theorie:crud.png?direct&800|}} 
-  * Ich kann **CRUD** in eigenen Worten erklären+//Beispiel: CRUD im Social-Media-Feed – User coffee_nature sieht seine Beiträge im Feed (Read)erstellt einen neuen Post (Create), löscht einen bestehenden Beitrag (Delete) und bearbeitet einen Titel (Update).//
-  * Ich kann CRUD-Operationen zu **REST-API** und **SQL** zuordnen. +
-  * Ich verstehewarum CRUD als **Skript** (Migration/Seedoft besser ist als Klicks in der GUI.+
  
 ===== CRUD in der Praxis ===== ===== CRUD in der Praxis =====
  
-CRUD        ^ Web/REST (Beispiel Zalando-Shop)                 ^ SQL (Datenbank-Ebene)                         | +CRUD begegnet Ihnen nicht nur in der Datenbank, sondern überall in der Informatik.   
-| **Create**  | **POST** /products                               | <code sql>INSERT INTO products (name, price) VALUES ('Sneaker X', 120);</code> | +BeispielEin Social-Media-Post  
-| **Read**    | **GET** /products?category=sneaker&minPrice=50   | <code sql>SELECT * FROM products WHERE category = 'sneaker' AND price >= 50;</code>+
-| **Update**  | **PATCH** /products/42 { "price"99 }           | <code sql>UPDATE products SET price = 99 WHERE id = 42;</code>+
-| **Delete**  | **DELETE** /products/42                          | <code sql>DELETE FROM products WHERE id = 42;</code> |+
  
----+  * **Create** → Sie schreiben einen neuen Post → er wird in der Datenbank gespeichert.   
 +  * **Read** → Andere Nutzer:innen sehen Ihren Post → die App liest die Daten aus der Datenbank.   
 +  * **Update** → Sie ändern den Text oder fügen ein Bild hinzu → die Daten in der Datenbank werden angepasst.   
 +  * **Delete** → Sie löschen den Post → der Eintrag wird aus der Datenbank entfernt.  
  
-==== Warum das wichtig ist ====+In der Praxis stossen Sie als Mediamatiker:in auf CRUD vor allem in zwei Situationen:  
  
-  * **Gleiche Logik überall**   +==== 1. In SQL-Skripten ====  
-    Ob im Webshop oder direkt in der Datenbank – es geht immer um CRUD.   +Ein SQL-Skript ist eine einfache **Textdatei mit SQL-Befehlen** (Dateiendung //.sql//).   
-    Beispiel: Klick auf „nächste Seite“ → Browser macht einen **GET**-Request → in der DB läuft ein **SELECT** mit `LIMIT`/`OFFSET`.+Damit lassen sich Datenbanken **präzise, wiederholbar und nachvollziehbar** verändern 
  
-  * **Nachvollziehbar & versionierbar**   +Typische Fälle:   
-    SQL-Skripte (MigrationenSeedslassen sich in **Git speichern**. Damit ist klar: Wer hat wann welche Änderung gemacht?   +  WordPress: Daten **migrieren**((SQL-Skripte, die eine Datenbank-Struktur oder -Inhalte anpassen, z. B. beim Umzug auf ein neues Hosting.)),   
-    GUI-Klicks (z. B. CSV-Import) verschwinden spurlos – niemand weiss später mehr, wie genau die Daten eingefügt wurden.+  Daten **importieren/exportieren** (zB. Produktlisten in einem Webshop),   
 +  * **Wartungsarbeiten**((Geplante Arbeiten an einer Datenbank, z. B. alte Daten löschen oder neue hinzufügen)) 
  
-  * **Schneller & sicherer**   +Beispiel: Statt 100 Produkte von Hand ins Backend einzutragen, fügt ein Skript alle Daten in Sekunden korrekt ein – inklusive richtiger Datentypen.  
-    Ein SQL-Skript kann **tausende Datensätze** in Sekunden einfügen, mit korrekten **Datentypen** und überprüften **Constraints**.   +
-    CSV-Importe per GUI sind fehleranfällig: Texte statt Zahlen, falsche Datumsformate, doppelte Einträge.   +
-    Mit Skripten ist das Ergebnis immer gleich – egal, auf welchem Rechner oder in welcher Umgebung.+
  
 +==== 2. Über die Backend-Logik ==== 
 +Moderne Webapplikationen (WordPress, Webshops, Social Media) kommunizieren mit der Datenbank über **REST-Calls**((Ein Aufruf von einem Programm (z. B. einer Website oder App) an ein Backend. Dabei wird ein HTTP-Befehl wie GET, POST, PUT oder DELETE verwendet, um Daten von einer Datenbank abzufragen oder zu verändern.)) und **APIs**((„Application Programming Interfaces“ – Schnittstellen, über die Programme miteinander kommunizieren können. Eine REST-API verbindet z. B. eine Website mit einer Datenbank und gibt dort gespeicherte Daten zurück.)).  
 +Wenn Sie im Frontend einen Button klicken („Post erstellen“, „Sneaker in den Warenkorb“), löst das im Hintergrund eine SQL-Operation wie **INSERT**, **SELECT**, **UPDATE** oder **DELETE** aus.  
 +
 +===== CRUD und SQL =====
 +
 +In diesem Kapitel lernen Sie die sogenannten **DML-Befehle** (Data Manipulation Language).  
 +Mit DML-Befehlen setzen Sie CRUD direkt in SQL um:  
 +
 +^ CRUD | SQL-Befehl (typisch) |
 +| **Create**  | <code sql>INSERT INTO ... VALUES (...);</code> |
 +| **Read**    | <code sql>SELECT ... FROM ... WHERE ...;</code> |
 +| **Update**  | <code sql>UPDATE ... SET ... WHERE ...;</code> |
 +| **Delete**  | <code sql>DELETE FROM ... WHERE ...;</code> |
  
 ===== Beispiele (Film-DB) ===== ===== Beispiele (Film-DB) =====
   * **Create**: einen Film __hinzufügen__     * **Create**: einen Film __hinzufügen__  
-    <WRAP center box 80%><code sql>+    <WRAP center box 80% round><code sql>
 INSERT INTO imdb_top_1000 (Series_Title, Released_Year, Genre, IMDB_Rating) INSERT INTO imdb_top_1000 (Series_Title, Released_Year, Genre, IMDB_Rating)
 VALUES ('Dune', 2021, 'Action, Adventure, Sci-Fi', 8.0); VALUES ('Dune', 2021, 'Action, Adventure, Sci-Fi', 8.0);
Zeile 45: Zeile 59:
  
   * **Read**: Filme ab 2010 mit Top-Bewertung __auslesen__     * **Read**: Filme ab 2010 mit Top-Bewertung __auslesen__  
-    <WRAP center box 80%><code sql>+    <WRAP center box 80% round><code sql>
 SELECT Series_Title, Released_Year, IMDB_Rating SELECT Series_Title, Released_Year, IMDB_Rating
 FROM imdb_top_1000 FROM imdb_top_1000
Zeile 53: Zeile 67:
  
   * **Update**: Genre __aktualisieren__     * **Update**: Genre __aktualisieren__  
-    <WRAP center box 80%><code sql>+    <WRAP center box 80% round><code sql>
 UPDATE imdb_top_1000 UPDATE imdb_top_1000
 SET Genre = 'Drama, War' SET Genre = 'Drama, War'
Zeile 60: Zeile 74:
  
   * **Delete**: Tuple (Datensatz) __entfernen__    * **Delete**: Tuple (Datensatz) __entfernen__ 
-    <WRAP center box 80%><code sql>+    <WRAP center box 80% round><code sql>
 DELETE FROM imdb_top_1000 DELETE FROM imdb_top_1000
 WHERE Series_Title = 'Dummy Movie' AND Released_Year = 1900; WHERE Series_Title = 'Dummy Movie' AND Released_Year = 1900;
 </code></WRAP> </code></WRAP>
  
-===== Merksatz ===== 
-**CRUD ist das „Alphabet“ der Datenarbeit.** Egal ob API-Call oder SQL-Skript – am Ende passieren Create/Read/Update/Delete auf Tabellen. 
  
  • modul/m290_guko/learningunits/lu07/theorie/a_crud.1758659610.txt.gz
  • Zuletzt geändert: 2025/09/23 22:33
  • von gkoch