Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Betroffenenrechte und Datenpannen

Nach dieser Lektion: Ich kann die Anfrage einer Person und eine Datenpanne richtig behandeln.

Lektion, 65 Min.11 BefehleMySQL-und-phpMyAdmin-Lab mit Beispieldatenbank eines Shops zum Üben von SQL

Was tun, wenn jemand Auskunft verlangt?

Betroffenenrechte sind die Rechte einer Person gegenüber jedem, der ihre Daten verarbeitet: Auskunft, Berichtigung und Löschung. Wer eine solche Anfrage bekommt, muss alle Daten dieser Person finden, und zwar in jeder Tabelle.

Eine Datenpanne ist der zweite Fall, in dem schnell gehandelt werden muss. Beide Fälle übt diese Lektion an einem Shop.

Am Ende dieser Lektion

Notiz

Ich kann die Anfrage einer Person und eine Datenpanne richtig behandeln.

Schlüsselwörter

BegriffWas er bedeutet
Auskunftdie Antwort, welche Daten über eine Person gespeichert sind
Berichtigungfalsche Daten einer Person korrigieren
LöschungDaten einer Person entfernen oder unkenntlich machen
Datenpanneein Vorfall, bei dem Daten verloren gehen oder in falsche Hände kommen
Meldungdie Nachricht über eine Datenpanne an die zuständige Stelle und an die Betroffenen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Auskunft sammelt Daten aus allen Tabellen

Eine Person fragt, was über sie gespeichert ist. Die Auskunft muss alles nennen, nicht nur die Zeile in der Kundentabelle. Auch Bestellungen, Bewertungen und Newsletter-Einträge gehören dazu.

Dafür verbinden Sie die Tabellen über den Schlüssel der Person. Im Lab ist das die Kundin mit der Nummer 5. Richten Sie zuerst das Terminal ein.

Das Zertifikat des Servers annehmen

Befehl
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnf

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Abkürzung für den Client

Befehl
alias db='mariadb -h db -u student -pstudent -t -e'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Stammdaten der Kundin 5

Befehl
db "SELECT id, first_name, last_name, email, phone, city, country, joined_on FROM shop.customers WHERE id = 5"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ihre Bestellungen

Befehl
db "SELECT id, ordered_at, status FROM shop.orders WHERE customer_id = 5 ORDER BY ordered_at"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ihre Bewertungen

Befehl
db "SELECT id, product_id, stars, reviewed_on FROM shop.reviews WHERE customer_id = 5 ORDER BY reviewed_on"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Bestellungen und Bewertungen in einer Liste

Befehl
db "SELECT 'Bestellung' AS quelle, id AS nummer, ordered_at AS datum FROM shop.orders WHERE customer_id = 5 UNION ALL SELECT 'Bewertung', id, reviewed_on FROM shop.reviews WHERE customer_id = 5 ORDER BY datum"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Sieben Zeilen zeigen Bestellungen und Bewertungen

Der letzte Run zeigt sieben Zeilen: fünf Bestellungen und zwei Bewertungen. Mit den Stammdaten ist das die Auskunft über diese Kundin aus diesem Shop.

UNION ALL klebt die Ergebnisse zweier Abfragen untereinander. Beide brauchen gleich viele Spalten, und die erste Abfrage benennt sie.

Eine Löschung kann auch ein Unkenntlichmachen sein

Eine Person verlangt, dass ihre Daten gelöscht werden. Manche Zeilen darf der Shop aber behalten, etwa Bestellungen für die Buchführung. Dann bleibt die Bestellung, und die Person darin wird unkenntlich.

Das üben Sie an einer Kopie der Kundentabelle. Die Daten des Labs bleiben unverändert.

Eine eigene Datenbank anlegen

Befehl
db "CREATE DATABASE IF NOT EXISTS student_datenschutz"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine alte Kopie wegwerfen

Befehl
db "DROP TABLE IF EXISTS student_datenschutz.kopie_kunden"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Kundentabelle kopieren

Befehl
db "CREATE TABLE student_datenschutz.kopie_kunden AS SELECT * FROM shop.customers"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Kundin 5 unkenntlich machen

Befehl
db "UPDATE student_datenschutz.kopie_kunden SET first_name = 'geloescht', last_name = 'geloescht', email = CONCAT('geloescht-', id, '@example.invalid'), phone = NULL, city = 'unbekannt' WHERE id = 5"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Ergebnis ansehen

Befehl
db "SELECT id, first_name, last_name, email, phone, city, country FROM student_datenschutz.kopie_kunden WHERE id = 5"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele glauben, eine Löschung sei erledigt, wenn die Zeile in der Kundentabelle verschwunden ist. Das stimmt nicht. Dieselbe Person steht auch in Bestellungen, Bewertungen, Newsletter-Listen und Sicherungen. Suchen Sie in jeder Tabelle.

Bei einer Datenpanne zählen die ersten Schritte

Ein Laptop mit Kundendaten wird gestohlen, oder eine falsche Mail geht an hundert Personen. Das ist eine Datenpanne.

Dann gilt: Schaden begrenzen, klären, welche Daten und wie viele Personen betroffen sind, und die zuständige Stelle schnell informieren. Bei hohem Risiko müssen auch die Betroffenen es erfahren.

Probieren Sie es: Bestellungen einer Person

Code: sql
-- Alle Bestellungen der Person mit der Nummer 1.
SELECT id, bestellt_am, summe_euro FROM bestellungen
WHERE kunde_id = 1
ORDER BY bestellt_am;
-- Ändern Sie die Abfrage: Alle Bewertungen derselben Person, mit produkt und bewertet_am.

Über dieses Lab und seinen Quellcode: MySQL-und-phpMyAdmin-Lab mit Beispieldatenbank eines Shops zum Üben von SQL

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.