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 23:11] gkochmodul:m290_guko:learningunits:lu07:theorie:a_crud [2025/09/28 13:54] (aktuell) gkoch
Zeile 5: Zeile 5:
  
 Stellen Sie sich CRUD wie einen Werkzeugkasten vor, mit dem Sie immer wieder die gleichen Tätigkeiten machen:   Stellen Sie sich CRUD wie einen Werkzeugkasten vor, mit dem Sie immer wieder die gleichen Tätigkeiten machen:  
-  * **Create** – etwas Neues hinzufügen   +  * **Create** – etwas Neues __hinzufügen__   
-  * **Read** – vorhandene Daten abrufen   +  * **Read** – vorhandene Daten __abrufen__   
-  * **Update** – bestehende Daten ändern   +  * **Update** – bestehende Daten __ändern__   
-  * **Delete** – Daten löschen  +  * **Delete** – Daten __löschen__  
  
-{{:modul:m290:learningunits:lu02:theorie:crud.png?400|}}+{{:modul:m290_guko:learningunits:lu07:theorie:crud.png?direct&800|}} 
 +//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).//
  
 ===== CRUD in der Praxis ===== ===== CRUD in der Praxis =====
Zeile 21: Zeile 22:
   * **Update** → Sie ändern den Text oder fügen ein Bild hinzu → die Daten in der Datenbank werden angepasst.     * **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.     * **Delete** → Sie löschen den Post → der Eintrag wird aus der Datenbank entfernt.  
 +
 +In der Praxis stossen Sie als Mediamatiker:in auf CRUD vor allem in zwei Situationen:  
 +
 +==== 1. In SQL-Skripten ==== 
 +Ein SQL-Skript ist eine einfache **Textdatei mit SQL-Befehlen** (Dateiendung //.sql//).  
 +Damit lassen sich Datenbanken **präzise, wiederholbar und nachvollziehbar** verändern.  
 +
 +Typische Fälle:  
 +  * WordPress: Daten **migrieren**((SQL-Skripte, die eine Datenbank-Struktur oder -Inhalte anpassen, z. B. beim Umzug auf ein neues Hosting.)),  
 +  * Daten **importieren/exportieren** (z. B. Produktlisten in einem Webshop),  
 +  * **Wartungsarbeiten**((Geplante Arbeiten an einer Datenbank, z. B. alte Daten löschen oder neue hinzufügen)).  
 +
 +Beispiel: Statt 100 Produkte von Hand ins Backend einzutragen, fügt ein Skript alle Daten in Sekunden korrekt ein – inklusive richtiger Datentypen.  
 +
 +==== 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 ===== ===== CRUD und SQL =====
Zeile 32: Zeile 50:
 | **Update**  | <code sql>UPDATE ... SET ... WHERE ...;</code> | | **Update**  | <code sql>UPDATE ... SET ... WHERE ...;</code> |
 | **Delete**  | <code sql>DELETE FROM ... WHERE ...;</code> | | **Delete**  | <code sql>DELETE FROM ... WHERE ...;</code> |
- 
-===== CRUD in der Praxis ===== 
- 
-CRUD/DML-Befehle werden in der Praxis auf **zwei Wegen** ausgeführt:   
- 
-  * **Als SQL-Skript**: Ein Skript ist eine einfache **Textdatei mit SQL-Befehlen** (Dateiendung //.sql//). Sie können das Skript speichern, teilen, mehrfach ausführen → das Ergebnis ist immer gleich. Beispiel: 100 neue Produkte (Sneaker) in einer Datenbank einfügen – ein Skript erledigt das in Sekunden.   
- 
-  * **Über die Backend-Logik**: Moderne Apps (z. B. ein Social-Media-Dienst oder ein Webshop) schicken Befehle vom Frontend ins Backend. Dort werden die passenden SQL-Operationen ausgeführt. → Beispiel: Beim Klicken auf "Post erstellen" sendet die App einen **REST-Call**((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.)) 
- an den Server, der wiederum ein **INSERT** in die Datenbank macht.   
- 
-Sie werden CRUD sowohl in SQL-Skripten (z. B. für Migrationen((SQL-Skripte, die eine Datenbank-Struktur verändern, z. B. eine neue Tabelle hinzufügen oder eine Spalte umbennen. Sie dienen dazu, Änderungen an einer Datenbank kontrolliert und nachvollziehbar einzuspielen.)) 
-, Seeds((SQL-Skripte, die Test- oder Beispieldaten in eine Datenbank einfügen. So lässt sich eine neue Datenbank schnell „befüllen“, z. B. mit 100 Beispiel-Filmen.)) 
- oder Wartungsarbeiten) als auch indirekt über Backend-Logik (REST((Ein Architekturstil für Webanwendungen. Er nutzt einfache HTTP-Befehle (GET, POST, PUT, DELETE), um Daten zwischen Frontend (z. B. Website/App) und Backend (Server/DB) auszutauschen.)) 
-, 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.)) 
-) antreffen. Der Vorteil von SQL-Skripten liegt darin, dass sie nachvollziehbar sind: Sie lassen sich speichern, mehrfach ausführen und es genau dokumentiert, welche Befehle ausgeführt werden. Gleichzeitig sind sie effizient und sauber, da grosse Datenmengen damit schnell und mit den richtigen Datentypen eingefügt werden können – im Gegensatz zu fehleranfälligeren Importen über grafische Oberflächen. 
- 
  
 ===== 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 57: 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 65: 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 72: 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.1758661865.txt.gz
  • Zuletzt geändert: 2025/09/23 23:11
  • von gkoch