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

Datenminimierung: weniger Daten erheben

Nach dieser Lektion: Ich kann verringern, was ein System an Daten erhebt.

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

Wie viele Daten braucht ein Formular?

Datenminimierung heißt, nur die personenbezogenen Daten zu erheben, die für einen klaren Zweck nötig sind. Was Sie nicht speichern, kann nicht verloren gehen, nicht gestohlen werden und muss nicht geschützt werden.

Ein Sportverein fragt beim Anmelden zum Schwimmkurs nach dem Geburtsdatum, der Telefonnummer und einem Attest. Die Kursleitung braucht davon nur den Vornamen und die Nummer.

Am Ende dieser Lektion

Notiz

Ich kann verringern, was ein System an Daten erhebt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Datenminimierungnur so viele Daten erheben, wie der Zweck braucht
Zweckder Grund, aus dem Daten erhoben werdenKursliste
ZweckbindungDaten dürfen nur für ihren Zweck genutzt werden
Pflichtangabeeine Angabe, ohne die der Zweck nicht erfüllt werden kann
Sichteine gespeicherte Abfrage, die wie eine Tabelle mit weniger Spalten wirktVIEW

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

Der Zweck bestimmt, welche Spalten nötig sind

Fragen Sie vor jeder Spalte: Wofür brauche ich sie? Der Zweck ist der Grund der Erhebung. Eine Spalte ohne Zweck darf entfallen.

Eine Pflichtangabe braucht der Zweck wirklich. Alles andere ist freiwillig oder überflüssig. 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.

Wie viele Personen haben keine Telefonnummer?

Befehl
db "SELECT COUNT(*) AS ohne_telefon FROM shop.customers WHERE phone IS NULL"

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

Der Shop funktioniert auch ohne Telefonnummer

Der Run meldet 10. Zehn von 40 Personen haben keine Telefonnummer angegeben, und der Shop kann sie trotzdem beliefern.

Die Telefonnummer ist hier also keine Pflichtangabe. Eine Spalte, die ein Viertel der Kundschaft leer lässt, braucht der Zweck offenbar nicht.

Ein Beispiel: Zweck und nötige Spalten

ZweckNötigNicht nötig
Ein Paket verschickenName, StadtGeburtsdatum, Telefon
Die Verkäufe je Land zählenLandName, E-Mail, Telefon
Eine Bestellbestätigung sendenE-MailTelefon, Stadt
Eine Kursliste ausdruckenNummer, VornameNachname, Attest

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

Eine Sicht zeigt nur die nötigen Spalten

Die Daten sind schon gespeichert, und nicht jede Abteilung braucht alles. Eine Sicht ist eine gespeicherte Abfrage, die wie eine kleine Tabelle wirkt.

Wer nur die Sicht lesen darf, sieht nur ihre Spalten. In einem echten System bekäme die Abteilung das Recht auf die Sicht und nicht auf die Tabelle. Legen Sie eine eigene Datenbank an.

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 Sicht für den Versand anlegen

Befehl
db "CREATE OR REPLACE VIEW student_datenschutz.versand AS SELECT id, first_name, last_name, city 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 Sicht lesen

Befehl
db "SELECT * FROM student_datenschutz.versand ORDER BY id LIMIT 3"

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

Für eine Zählung genügt eine Spalte

Befehl
db "SELECT country, COUNT(*) AS personen FROM shop.customers GROUP BY country ORDER BY country"

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 Sicht lässt vier Spalten übrig

Die Tabelle customers hat acht Spalten. Die Sicht versand zeigt vier davon: Nummer, Vorname, Nachname und Stadt. E-Mail, Telefon und Beitrittsdatum sind für den Versand nicht zu sehen.

Die Zählung nach Ländern braucht keinen Namen. Sie ergibt fünf Zeilen, eine je Land.

Probieren Sie es: eine Kursliste

Code: sql
-- Die Kursleitung braucht für Yoga nur die Nummer und den Vornamen.
SELECT id, vorname FROM teilnehmende
WHERE kurs = 'Yoga'
ORDER BY id;
-- Ändern Sie die Abfrage: Die Liste für Tanzen.

Ein häufiger Fehler

Warnung

Viele glauben, mehr Daten seien sicherer, weil man sie später vielleicht braucht. Das Gegenteil gilt. Jede zusätzliche Spalte ist ein Risiko bei einer Datenpanne. Erheben Sie nur, was der heutige Zweck braucht.

Ü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.