Willkommen!
In diesem Dokument werden im Verlauf des Jahres diverse Materialien und Aufgaben zusammengestellt, die zum Slebstlernen und Lernen in der Schule geeignet sind.
Zunächst besprechen wir ein wenig Organisatorisches.
Hier geht es um Markdown, HTML und CSS.
Der erste Abschnitt von https://de.wikipedia.org/wiki/Datenbank#Funktionen_eines_DBMS stellt eine Übersicht und Verlinkungen auf weiterführende Artikel dar.
Nach einer Sichtung von 10 Minuten teilen wir diesen Komplex in ca. 6 Kurzvorträge auf, die als Einzelarbeit zu halten sind. Medium ist, wie immer, CampusSlides.
Die (kreative) Anforderung ist: Es dürfen keine Sichpunkte, sondern nur Bilder oder Grafiken (die dann Worte beinhalten dürfen) verwendet werden.
Für das Speichern und Sichern der Vorträge gibt es eine Abgabe im Lernraum.
Have a lot of fun!
Wir haben folgende Fachinhalte erarbeitet:
Person(_vorname_, _nachname_, _geburtsdatum_, mail, kuerzel, Klasse, Kursjahrgang)
Raum(_haus_, _etage_, _nr_, zweck, paltzzahl, Fach.bezeichnung)
Fach(_bezeichnung_, stufen)
Kurs(_jahrgang_von_, _bezeichnung_, istKlasse, Fach.bezeichnung, Raum.haus, Raum.etage, Raum.nr)
Unterrichtet(Person.vorname, Person.nachname, Person.geburtsdatum, Kurs.bezeichnung, Kurs.jahrgang_von)
Nimmt_Teil(-||-) #siehe Unterrichtet -,-
Viele der hier genannten Schritte werden im Lernraum mit Abgaben der Arbeitsergebnisse kombiniert.
Beispiel:
CREATE TABLE nutzer(
id INT PRIMARY KEY AUTO_INCREMENT,
nutzername VARCHAR(100) NOT NULL,
passwort VARCHAR(255) NOT NULL,
datum DATE,
email VARCHAR(255) NOT NULL,
beschreibung TEXT,
bild BLOB,
link VARCHAR(255)
)
TODO Beispiel...
SELECT * FROM table01;
SELECT (attr01,attr02,attr03) FROM table01;
SELECT (attr01,attr02,attr03) FROM table01
WHERE
attr01 = 1
AND
attr02 > 100;
ACHTUNG: Im Unterricht behandeln wir den JOIN nur implizit und überlassen dem DBS das Verknüpfen der Tabellen. In der Theorie wird hier zwischen vielen JOINs (left, right, outer, inner, usw.) unterschieden, die im Kern als Kreuzprodukt verarbeitet werden.
table01
id | value | foreign_key |
---|---|---|
1 | a | 2 |
2 | b | 2 |
3 | c | 1 |
table02
id | value |
---|---|
1 | foo |
2 | bar |
SELECT * FROM table01, table02
WHERE
foreign_key = table02.id
Erstellen Sie für Ihre Beispieldatenbank für jeden der hier dargestellen SELECT-Typen eine Beispielanfrage. Erstellen Sie eine (Slides-) Präsentation, die sowohl Ihre Anfrage, als auch das Ergebnis der Datenbank darstellt. Gehen Sie in der Präsentation auf überraschende Erscheinungen und/oder Probleme ein.
Nettes Tool zum Umwandeln von Tabellen in MD-Code: https://tabletomarkdown.com/
Ein noch netteres Tool: https://tableconvert.com/
ab 19.6. stehen Termine zur Verfügung in der hier stehenden Reihenfolge ist entscheidend
Zwei Vorträge pro Doppelstunde oder ein Vortrag pro Einzelstunde
https://www.berlin.de/sen/bildung/schule/pruefungen-und-abschluesse/abitur/handreichung_5pk.pdf
Wir benutzen prepared Statements, damit uns nicht folgendes Problem begegnet:
Dahinter steckt eine Angriffsmethode Namens "SQL-Injection", zu der es natürlich einen Wikipedia-Artikel gibt.
Generell ist das Dokument TODO!!!! sehr empfehlenswert, wenn es um die Erstellung sicherer Webseiten oder Webservices geht. Hier werden einige Sicherheitslücken anschaulich erläutert.
Erstellen und testen Sie eine PHP-Datei, die ähnlich wie das Beispiel eine beliebige Anfrage auf Ihrer Beispieldatenbank ausführt. Laden Sie die PHP-Datei im Lernraum hoch.
Vollziehen Sie den Code (und das dynamische Erstellen) nach und passen Sie den Code an Ihr eigenes Beispiel an. Letztlich sollen Speichervorgänge abhängig von Formulardaten sein.
Entwickeln Sie ein Formular, das erlaubt, schon existierende Daten zu verändern, zu löschen und natürlich neue Daten zu erstellen.
Hier ein Beispiel für ein mögliches Frontend:
Have a lot of fun!