Kü /Info 10 Skript Datenbanken SJ 2014/2015 Datenbanken Inhalt Datenbanken .............................................................................................................................. 1 Anleitung – Wie gehe ich mit einem Skript um? ....................................................... 3 Materialien ............................................................................................................................. 8 Mit oder ohne Skript weitermachen ...................................................................................... 9 Projekt Vokabeltrainer ............................................................................................................. 10 Modul 1 - Vorüberlegungen zum Projekt – erst Planen, dann loslegen .................................. 13 Modul 2 - Datenbanken ........................................................................................................... 15 Was ist eigentlich eine Datenbank? ..................................................................................... 15 Warum wird so viel Wind darum gemacht? ........................................................................ 15 SQL-Abfragen an die Datenbank .......................................................................................... 16 Modul 3 - Datenbank-Entwurf – ER-Modelle ........................................................................... 18 Modul 4 - Datenbanken – Datensätze einfügen, herausfiltern, ändern und erneut speichern mittels der Abfragesprache SQL ............................................................................................... 21 Datensätze herausfiltern aus einer Tabelle ..................................................................... 21 Datensätze neu in eine bestehende Tabelle einfügen ..................................................... 22 Datensätze aus einer bestehenden Tabelle löschen ........................................................ 22 Bestehende Datensätze ändern ....................................................................................... 22 Modul 5 Normalisierung von Datenbanken ............................................................................. 25 Erste Normalform ................................................................................................................ 25 Zusatz Zweite Normalform .................................................................................................. 26 Modul 6 - Formulare erstellen – um Daten aufzunehmen ...................................................... 30 Modul 7 - Formulardaten mit PHP verarbeiten ....................................................................... 32 PHP ....................................................................................................................................... 32 Modul 8 SQL Befehle in PHP einbauen und dadurch auf eine Datenbank zugreifen über ein Webformular ............................................................................................................................ 34 Modul 9 - Zusammenfassung Tipps zum Programmieren ....................................................... 38 Modul 10 - Datenbanken – Sicherheit der Daten im Internet ................................................. 39 A. Kück Seite 1 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Ziele 1. Begreife, wie man eine dynamische Website erzeugen kann, in der man a. Daten vom Benutzer aufnehmen kann b. Daten , die vom Benutzer gespeichert und eventuell geändert wurden, wieder anzeigen kann. 2. Begreife, wie man Daten des Benutzers dauerhaft in einer Datenbank speichern und aus ihr nach Belieben wieder abrufen (selektieren) kann. Kompetenzen, die am Ende erreicht sein müssen Fülle folgenden Fragebogen zu Beginn des Themas und am Ende einmal aus: Kompetenzen, die du nun erreicht haben solltest Ich kann eine Aufgabenstellung in eine Modellbeschreibung umformen Ich kann eine Skizze zu einer Modellvorstellung anfertigen Ich kenne grundlegende Begriffe zum Thema Datenbanken 1. Client/Server-Modell 2. Formular 3. Tabelle 4. Datensatz 5. Datenbank 6. Zusatz ER-Modelle 7. Zusatz erste und zweite Normalform einer Datenbank 8. Zusatz Primärschlüssel 9. Zusatz Attribut Ich kann Formulare in HTML oder CSS herstellen, die: 1. Daten in Formularfeldern aufnehmen können 2. Daten per POST oder GET an den Datenbankserver schicken Ich kann die aus einem Formular verschickten Daten vom Server aus dann über PHP-Code in einer Datenbank speichern Ich kann einzelne Datensätze oder auch mehrere aus einer Tabelle einer Datenbank per PHP-Code auslesen Die aus einer Datenbank-Tabelle ausgelesenen Daten kann ich in einer Webseite oder einem Formular anzeigen lassen. A. Kück + 0 - Seite 2 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Anleitung – Wie gehe ich mit einem Skript um? Im Folgenden wird genau beschrieben, wie du mit einem Skript arbeiten kannst und worauf du dabei achten musst. Du kannst dir dies zusätzlich – oder stattdessen – auch in einem Video erklären lassen: Schaue dir dazu auf www.youtube.com/alexkueck11 das Video mit dem Namen „Aufbau eines Skriptes“ an. Um dir das Thema „Datenbanken“ zu erarbeiten, kannst du grundsätzlich zwei verschiedene Wege gehen: Weg A – Du bearbeitest eigenständig die Projektaufgabe. Dazu kannst du dir aus den Materialien raussuchen, was du gebrauchen kannst oder dir auch ganz eigene erklärende Materialien suchen. Weg B – Du gehst die einzelnen Module Schritt für Schritt durch und erarbeitest dir so nach und nach die einzelnen Module (hier lernst du sozusagen Stück für Stück, wie die Projektaufgabe gelöst werden kann. Die Projektaufgabe wurde daher auch in „kleine Häppchen“ aufgeteilt und am Ende von jedem Modul wird ein Stück der Projektaufgabe gelöst). Mit beiden Wegen kannst du die geforderten Kompetenzen erwerben. Wenn du schon einiges über die funktionale Programmierung weist und gerne an etwas knobelst, kannst du Weg A wählen. Behalte dabei aber immer auch im Auge, was du am Ende der Einheit können musst. Wenn du in diesem Bereich aber noch unsicher bist und das Thema lieber Schritt für Schritt erklärt bekommen möchtest, um es zu begreifen, wähle zunächst lieber Weg B. Auch hier löst du die Projektaufgabe, aber eben Schritt für Schritt und es wird dir vorgegeben, wie der Lösungsweg aussehen kann. Wenn du einen der beiden Wege eingeschlagen hast, bedeutet das allerdings nicht, dass du darauf festgelegt bist! Natürlich kannst du vom Projekt auch wieder auf die Module umsteigen, zum Beispiel, wenn du bei einer Sache nicht weiterkommst. Ebenso kannst du auch zur Projektaufgabe wechseln, wenn du nach ein paar Modulen merkst, dass du jetzt schon gut im Thema drin bist, und versuchen möchtest, eigenständig weiter zu knobeln. Lege dir eine Mappe an, in der du alle Lösungen und (Zwischen-) Ergebnisse zu den Aufgaben bzw. dem Projektvorhaben festhältst. Wichtig: Du kannst deine Ergebnisse immer zwischendurch mit dem Lehrer abgleichen, um zu sehen, ob du auf dem richtigen Weg bist. Gerade wenn du an dem Projekt arbeitest (aber auch wenn du mit dem Skript eigenverantwortlich durch das Thema gehst), ist es wichtig, dass du festhältst, wie du vorgegangen bist. Das tust du bitte in einem Blog oder einer Mappe. Dort hältst du fest, in welche Probleme du gelaufen bist und wie du sie gelöst hast – und vor allem, was du dadurch gelernt hast. A. Kück Seite 3 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Wichtige Ergebnisse, Erkenntnisse, Merksätze oder Lösungsstrategien gehören hier ebenfalls hin. Am besten ist es, wenn du das in deinen eigenen Worten oder auch durch eine Skizze ausdrücken kannst. Selbst wenn das dann nicht ganz richtig ist, ist es besser so, als etwas Fertiges abzuschreiben. Der Lehrer kann so drauf schauen und dir helfen, wenn du etwas noch nicht vollständig verstanden hast. Problemlösestrategien stehen bei diesem Projekt im Vordergrund nicht die Inhalte! Wenn du nicht genau weißt, was du aufschreiben sollst, lasse es dir vom Lehrer erläutern. Vorgefertigte Bögen, wo du Hilfestellung zu den Inhalten bekommst, kannst du beim Lehrer abholen. Weg A – Bearbeitung der Projektaufgabe: Wie du die Projektaufgabe löst, bleibt dir und deiner Kreativität ganz allein überlassen. Du kannst selbst im Internet recherchieren und nachsehen, ob es dort Erklärungen oder Videos gibt, die dir weiterhelfen. Du kannst aber auch die in diesem Skript angegebenen Materialien weiter hinten verwenden – denn sie passen zu der Projektaufgabe. Ein Anhaltspunkt, um dich mit dem Thema auseinanderzusetzen, sind die Begriffe, die bei den zu erreichenden Kompetenzen am Anfang der Beschreibung angegeben sind. Damit könntest du z.B. anfangen. Wenn du die Begriffe verstehst und was für Ideen damit verknüpft sind, bist du meistens schon voll mit dem Thema beschäftigt. Vielleicht hast du ja auch schon für dich einen Weg gefunden, wie du an neue Projekte herangehst, dann solltest du diesen Weg hier auch gehen. Wichtig ist unbedingt, dass du im Auge behältst, was du am Ende der Einheit können musst. Die Projektaufgaben sind so formuliert, dass du am Ende alles, was gefordert ist, auch kannst. Aber es gibt ja viele Lösungswege und vielleicht kannst du am Ende das ein oder andere noch nicht so gut. Dann frage bitte nach zusätzlichen Übungsaufgaben zu dem jeweiligen Thema oder Begriff - bis du das Gefühl hast, es gut genug anwenden zu können. Weg B – Bearbeitung der Module Gehe die Module Schritt für Schritt durch. Um die in jedem Modul angegebenen Aufgaben bearbeiten zu können, musst du vorher lernen, wie das geht. Nicht der Lehrer erklärt dir das, du entscheidest, auf welchem Weg du die Informationen haben möchtest und musst sie dann selbst so für dich zusammenstellen, dass du die Aufgaben lösen kannst. In der Regel kannst du wählen zwischen einem erklärenden Text, Webseiten, auf denen du passende Informationen findest oder erklärenden Videos. Diese kannst du dir so oft ansehen, wie du es brauchst und magst. Wenn du dennoch weitere Erklärungen benötigst, notiere dir deine Fragen und wende dich damit an deinen Lehrer oder suche im Internet selbst nach weiteren erklärende Texten oder Videos. Der Lehrer ist da, um dich in deinem Lernen zu unterstützen, aber du musst aktiv werden und nachfragen, wenn etwas unklar ist. A. Kück Seite 4 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Es ist wichtig, dass du alle neuen Begriffe, die du nicht kennst, klärst und richtig verstehst. Du musst sie in eigenen Worten beschreiben oder sie in einer Skizze darstellen können. Gehe bei jedem der Kapitel wie folgt vor: 1. Zu Beginn jedes Kapitels findest du Verweise auf Materialien, die dir helfen sollen, das Thema zu verstehen, damit du später die dazugehörigen Aufgaben lösen kannst. Das können zum Beispiel sein: - erklärende Videos, - Infotexte (parallel zu den Videos), - Seiten in einem Schulbuch und - Texte in Zeitschriften oder auch - Internetseiten 2. Eventuell brauchst du trotz der Materialien eine zusätzliche Erklärung, dann frage beim Lehrer nach. Eventuell haben andere ja auch diese Frage, dann kannst du auch einen kurzen Lehrvortag dazu bekommen oder ein zusätzliches erklärendes Video. 3. Die Videos und Dateien, auf die in diesem Skript verwiesen werden, findest du a. auf dem YouTube-Kanal: youtube.com/alexkueck11 Die Videos beginnen alle mit „Datenbanken-„ 4. Falls du in den Materialien auf unbekannte Begriffe stößt, notiere diese. Das können auch einfache Worte sein. Versuche sie mithilfe der weiteren Materialien oder durch eigene Recherchen zu klären. 5. Wenn du das Thema verstanden hast und alle darin enthaltenen Fachbegriffe in deinen eigenen Worten oder mittels einer Skizze erklären kannst, gehst du weiter zu den Aufgaben: A. Kück - Die Aufgaben fordern dich auf, das Gelernte nun anzuwenden. - Gehe die Aufgabe, die im Skript angegeben sind der Reihe nach durch (die Aufgaben sind logisch aufeinander aufgebaut, daher der Reihe nach durchgehen). - Wenn du eine Aufgabe nicht bearbeiten kannst, gehe noch einmal über die Materialien oder schaue dir das erklärende Video erneut an. Vielleicht hast du einen neuen Begriff oder eine neue Idee noch nicht ganz verstanden – dann hole das nun nach. - Wenn das nichts hilft, frage bei Mitschülern oder dem Lehrer nach. Lass dir aber nicht die ganze Aufgabe lösen. Wichtig ist, dass du eigenständig an einer Lösung arbeitest – auch wenn sie am Ende vielleicht nicht ganz richtig ist. - Wenn du an deiner Lösung zweifelst, schaue in den Musterlösungen nach (falls vorhanden) oder frage den Lehrer, ob er sich deine Ergebnisse auch zwischendurch anschauen kann. Seite 5 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Falls du bei einer Aufgabe doch noch Schwierigkeiten hast, schaue dir noch einmal die erklärenden Materialien an. Wichtig ist, dass du selbst an den Lösungen arbeitest und nicht andere das mache lässt. 6. Wenn Aufgaben, die mit einem Zusatz gekennzeichnet sind, brauchst du nicht bearbeiten. Diese Aufgaben sind schwieriger und gehen über das hinaus, was du als Minimum erreichen musst, um das Skript erfolgreich abzuschließen. Für eine abschließende Note im Einser- oder Zweier-Bereich solltest du aber zumindest einige dieser Zusatzaufgaben bearbeiten. 7. Es wird zwischendurch Tests geben, diese werden rechtzeitig angegeben. Auch welche Kompetenzen in den Tests angefragt werden. Wichtig: Wichtig ist, dass du bei der Arbeit mit dem Skript selbst aktiv wirst und deinen eigenen Lernprozess überwachst: Liege ich noch gut in der Zeit? Habe ich alles verstanden/begriffen oderbrauche ich noch Hilfe oder zusätzliche Erklärungen? Wie kann ich Zusammenhänge besser verstehen/begreifen, die noch unklar sind? Wer kann mir bei der Bearbeitung der Aufgaben helfen? Du musst selbst entscheiden, wo du dir weitere Informationen/hilfen holen möchtest und von dir aus auf deinen Lehrer oder Mitschüler zugehen, um Fragen zu stellen, damit du die Themen und Begriffe besser verstehst und am Ende die geforderten Zielkompetenzen erreichst! Es wird am Ende eine Klausur geben, die du bestehst, wenn du alle Aufgaben bearbeitet und verstanden/begriffen hast und die Kompetenzen erreicht hast. A. Kück Seite 6 Kü /Info 10 A. Kück Skript Datenbanken SJ 2014/2015 Seite 7 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Materialien HTML und Formulare: PHP: Tutorial PHP und SQL: dex.php?seite=videoreihen http://de.selfhtml.org/ http://php.net/manual/de/index.php http://lukas-scheible.de/Informatik2011/in- Lösungen zum Skript: Skript Datenbanken_Vokabeltrainer_Lsg.docx Anfangsprojekt zu Formularen: formular_Vokabeln_eingeben.html und formular_verarbeiten_vokabeln.php vokabel_trainer_schueler(1).sql Beispieldatenbank Videos: Modul 2-4 und 8 Datenbanken und MySql http://perm.ly/grundlagen-datenbanken-1 darauf aufbauend: http://perm.ly/grundlagen-datenbanken-2 http://perm.ly/grundlagen-datenbanken-3 http://perm.ly/grundlagen-datenbanken-4-phpmyadmin Modul 6 Formulare erstellen PHP Lernen-Teil 3 - Formular auswerten: www.youtube.com/watch?v=S84kOojitPY Modul 7 Formulare auswerten PHP Lernen-Teil 3 - Formular auswerten: www.youtube.com/watch?v=S84kOojitPY Variablen „Variablen allgemein” (www.youtube.com/watch?v=WAPbONf7QJI) und „Variablen und Parameter“ (www.youtube.com/watch?v=H-AiZLUI6mY) „Informatik und die Welt derEimer“: http://youtu.be/rvBtG8090XU „Arrays einfach“Programmverzweigungen „Programm-Verzweigungen“: www.youtube.com/watch?v=I5O9XgnUh2M Schleifen Schleifen“ (www.youtube.com/watch?v=UlgG7bqtb6c) Lokale Serversoftware InternetXAMPP auf Youtube: http://youtu.be/xHiM5gnA1aY A. Kück Seite 8 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Mit oder ohne Skript weitermachen Vorgehen: Am Anfang des Skriptes wird dir eine Projektaufgabe gestellt. 1. du wechselst auf das Projekt in dem du nur diese Aufgabe bearbeiten musst (behalte dabei im Auge, was du am Ende können musst - siehe "Datenbanken Kompetenzen")! 2. In diesem Skript wird das Projekt Stück für Stück erarbeitet und du bekommst detaillierte Erklärungen und einen Weg, wie du vorgehen muss, vorgegeben. Es gibt dir gezielt Hilfestellung mit erklärenden Texten und Videos, um die Projektaufgabe Stück für Stück zu lösen. Wenn du unsicher bist, welchen Weg du einschlagen sollst, komme zu mir und wir klären das. Wichtig: Du kannst deine Ergebnisse immer zwischendurch mit dem Lehrer abgleichen, um zu sehen, ob du auf dem richtigen Weg bist, aber du musst in einem Blog oder einer Mappe dokumentieren, in welche Probleme du gelaufen bist und wie du sie gelöst hast – und vor allem, was du dadurch gelernt hast. Problemlösestrategien stehen bei diesem Projekt im Vordergrund nicht die Inhalte! A. Kück Seite 9 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Projekt Vokabeltrainer Häufig musst du in den Fremdsprachen Vokabeln lernen – das wollen wir nun etwas interessanter gestalten! Vor allem das nachhaltige Wiederholen ist bei Vokabeln wichtig – damit du das nicht vergisst, wollen wir uns ein kleines Trainingsprogramm dafür schreiben. Aber Vorsicht: Wer noch kann auf die Daten dann zugreifen? Wie sicher sind die Daten dort? Anschließend solltest du dir ein paar Gedanken über die Sicherheit der Daten machen. Projektaufgabe Projektbeschreibung Du wirst beauftragt einen elektronischen Vokabeltrainer zu entwickeln. Man soll die Möglichkeit haben neue Vokabeln und deren Übersetzung über eine Website „einzufüttern“ und dauerhaft zu speichern. Anschließend muss es auch die Möglichkeit geben, eine Art „Vokabeltest“ durchzuführen – über eine andere Webseite werden Vokabeln abgefragt und man muss deren Übersetzung eingeben – man bekommt dann als Rückmeldung angegeben, ob die Eingabe richtig oder falsch war. Das Projekt sollte also eine Art Auswahlmenü haben, in dem man wählen kann, ob man neue Vokabeln eingeben oder lieber einen Vokabeltest durchführen möchte. Zusätzlich kann ebenfalls über ein Formular ein ausgewählter Datensatz angezeigt und verändert werden können (wenn die Übersetzung z.B. geändert werden muss). Ein Datensatz enthält folgende Daten: 1. Vokabel 2. Ausgangssprache 3. Übersetzung 4. Ziel-Sprache (in die übersetzt wird) Aufgabe 1: Stelle einige Vorüberlegungen zu dem Projekt an. Was soll erreicht werden? Welche Beziehungen bestehen zwischen Vokabeln, Übersetzungen und der Sprache. Stelle das graphisch dar. Überlege dir, wie du die Eingabe – Verarbeitung und Ausgabe der Daten gestalten willst. Wichtig: Formuliere alles in eigenen Worten!!!! Aufgabe 2: Stelle Formulare zusammen, die die Vokabeln und die Übersetzungen aufnehmen und anschließend an einen Server verschicken können. Aufgenommen werden sollen: 1. Vokabel 2. Sprache der eingegebenen Vokabel 3. Übersetzung 4. Sprache der Übersetzung 5. Zusatz: ein Wort soll auch mehrere Übersetzungsmöglichkeiten haben können Aufgabe 3: Verarbeite die Formulardaten auf der Serverseite, indem du sie zunächst in Variablen speicherst und anschließend dauerhaft in einer Datenbank-Tabelle speicherst (zunächst über XAMPP und PHP-MyAdmin auf dem eigenen Rechner simulieren). A. Kück Seite 10 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Zusatz Aufgabe 4: Ändere deine Datenbankstruktur. Lege alle nötigen Tabellen in einer Datenbank an, um ein anständiges Datenbankmodell abzubilden - es sollte in der 2ten Normalform vorliegen. Dazu musst du die Tabelle Vokabeln teilen in Vokabeln, Übersetzungen und Sprachen. Wenn Du eine Tabelle teilst, muss es zusätzlich eine Tabelle geben, die die beiden Teile in Relation setzt (siehe ERM). Du solltest also zumindest folgende Tabellen anlegen: Vokabeln, Sprachen, Übersetzungen Und dazu die passenden Relationstabellen Vokabeln-Übersetzungen, Vokabeln-Sprachen und Übersetzungen-Sprachen Es ist aber auch möglich, alle Vokabeln und Übersetzungen einfach als Wörter anzusehen, die in einer gemeinsamen Tabelle stehen. Dazu braucht man dann aber eine Übersetzungstabelle, die die Wortpaare einander zuordnet. Man hätte dann 3 Tabellen: Vokabeln, Sprachen und Übersetzungen (hier werden die Vokabeln der verschiedenen Sprachen zueinander in Beziehung gesetzt). (die Lösung zu dem Abschlussprojekt orientiert sich an diesem Modell, da es eindeutiger ist – es sind einfach alles Worte!) Wähle jeweils einen passenden Primärschlüssel dazu. Zeichne das Projekt in einem dazu passenden ERM. Aufgabe 5: Sorge nun dafür, dass Datensätze auch aus der Datenbanktabelle ausgelesen werden können und anschließend wieder in einem Formular angezeigt werden – um die Vokabeln auch abfragen zu können. Die Vokabeln sollen dabei zufällig aus der Datenbanktabelle ausgewählt werden und dann angezeigt werden. Ein Formularfeld soll die Eingabe des Schülers (den Übersetzungsvorschlag) aufnehmen und mit der richtigen Lösung vergleichen und dann entsprechend Rückmeldung geben. Erstelle ein Video dazu, in dem du deine Überlegungen und Implementierungen dazu erläuterst. Füge dies deinem Portfolio hinzu. Zusatz: Zur Übersicht sollte es auch möglich sein, z.B. für eine Vokabel alle möglichen Übersetzungen einer Sprache anzeigen zu lassen. Aufgabe 6: Diskutiere die Vor- und Nachteile, persönliche Daten im Internet zu speichern. Wie sicher sind die Daten? Wie kann man die Sicherheit vielleicht erhöhen? Wichtig: Formuliere alles in eigenen Worten!!!! Ein Anfangsprojekt dazu findest du hier: formular_Vokabeln_eingeben.html und formular_verarbeiten_vokabeln.php vokabel_trainer_schueler(1).sql A. Kück Seite 11 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Was musst du können am Ende des Projektes: Fülle den Kompetenzbogen ganz am Anfang des Skriptes erneut aus. Wenn du meinst, etwas noch nicht gut genug zu können, lasse dir weitere Aufgaben geben. Kompetenzen, die du nun erreicht haben solltest Ich kann eine Aufgabenstellung in eine Modellbeschreibung umformen Ich kann eine Skizze zu einer Modellvorstellung anfertigen Ich kenne grundlegende Begriffe zum Thema Datenbanken 3. Client/Server-Modell 4. Formular 10. Tabelle 11. Datensatz 12. Datenbank 13. Zusatz ER-Modelle 14. Zusatz erste und zweite Normalform einer Datenbank 15. Zusatz Primärschlüssel 16. Zusatz Attribut Ich kann Formulare in HTML oder CSS herstellen, die: 3. Daten in Formularfeldern aufnehmen können 4. Daten per POST oder GET an den Datenbankserver schicken Ich kann die aus einem Formular verschickten Daten vom Server aus dann über PHP-Code in einer Datenbank speichern Ich kann einzelne Datensätze oder auch mehrere aus einer Tabelle einer Datenbank per PHP-Code auslesen Die aus einer Datenbank-Tabelle ausgelesenen Daten kann ich in einer Webseite oder einem Formular anzeigen lassen. A. Kück + 0 - Seite 12 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Skript - Vokabel-Trainer In diesem Skript soll Schritt für Schritt ein kleiner Vokabeltrainer „gebastelt“ werden. Es soll möglich ein, neue Vokabeln einzugeben – eventuell einer Sprache oder einem Thema zugeordnet – und anschließend soll man eine Abfrage starten können. Dazu wird immer eine beliebige Vokabel aus der Datenbank ausgewählt, diese wird dargestellt und man muss in einem Formularfeld eine Antwort geben können, die dann mit der richtigen Antwort verglichen wird (in der Datenbank). So könnte das Ganze aussehen: Datenbank Abfrage-Webseite Modul 1 - Vorüberlegungen zum Projekt – erst Planen, dann loslegen Bevor es losgeht mit dem Projekt, sollte man sich ein paar Gedanken machen und planen, wie das endgültige Projekt denn nun aussehen soll. Was genau ist die Aufgabe? Was soll die Anwendung tun können? In welche Schritte kann ich die Anforderungen gliedern, um das Projekt übersichtlicher zu gestalten? Wie kann ich mir die Anforderungen an das Projekt und die Zusammenhänge der Teilkomponenten möglichst anschaulich darstellen, um beim Entwurf den Überblick zu behalten? Erklärender Text: o Text zu Skript Datenbanken -Modelle Aufgabe Stelle zu dem Vokabel-Projekt ebenfalls alle nötigen Vorüberlegungen und Skizzen auf. Halte deine Beschreibungen schriftlich fest und gib sie zusammen mit der Skizze beim Lehrer ab. Wichtig: Formuliere alles in eigenen Worten!!!! Tipp: Es gibt den Ansatz: Vokabel - Übersetzung (oder auch mehrere Übersetzungen zulassen) oder man sieht beides einfach als Worte an, die später in Beziehung „übersetzt“ gebracht werden. Beide Konzepte sind hier okay. A. Kück Seite 13 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Was musst du können am Ende von Modul 1: 1. Eine Aufgabenstellung in eine Modellbeschreibung umformen können 2. Speziell den Verlauf von Eingaben-Verarbeitung-Ausgaben genau untersuchen können. 3. Eine Skizze zu einer gegebenen Aufgabenstellung anfertigen können, die die wichtigen Zusammenhänge Darstellung. A. Kück Seite 14 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 2 - Datenbanken Zunächst mal solltest du verstehen, was eine Datenbank eigentlich ist – ein großes Wort, für eine ganz natürlich, wichtige Sache in der Informatik: das Speichern von Informationen – auch dann, wenn das laufende Programm beendet wurde! Denn: eine Variable speichert Informationen nur solange das Programm läuft, zu dem sie gehört – was, wenn man die Informationen aber dauerhaft sichern möchte????? Dann braucht man eine Datenbank! Was ist eigentlich eine Datenbank? Video: o http://perm.ly/grundlagen-datenbanken-1 darauf aufbauend: o http://perm.ly/grundlagen-datenbanken-2 o http://perm.ly/grundlagen-datenbanken-3 o http://perm.ly/grundlagen-datenbanken-4-phpmyadmin Eigentlich einfach eine Datei, oder eine Ansammlung von Dateien, in denen Daten gespeichert werden. Eine Datenbank könnte also im einfachsten Fall so aussehen: Aufgabe 2.1. 1. Lege eine einfache Datenbank mit einer „Tabelle“ und 5 Datensätzen darin an- gerne in Excel. Die Struktur darfst du dir selbst aussuchen. 2. Lege nun eine Tabelle an, in der du deine eventuell ausgedachte CD Sammlung auflisten möchtest. Überlege dir, welche Spaltenüberschriften nötig sind und trage anschließend ein paar Datensätze ein (ein Datensatz ist hier eine CD mit Titel, Interpret,… alle Spaltenüberschriften sollten nun mit Werten der einen CD gefüllt werden) Warum wird so viel Wind darum gemacht? Text: Text zu Skript Datenbanken -MySqI Nun lege eine Datenbank mit der Web-Oberfläche PHPMyAdmin an Aufgabe 2.2. 1. Lege das Vokabel-Projekt mit Hilfe der PHP-My-Admin-Oberfläche in MySQL an. Lege erst einmal folgende einfache Tabellen-Struktur an: A. Kück Seite 15 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Gib jeweils schon mal mindestens 4 passende Datensätze ein. 2. Überlege dir, welche Probleme auftauchen können, wenn es mehr als eine Übersetzung gibt – wie könntest du das lösen? Bitte schriftlich festhalten und beim Lehrerabgeben. Du kannst die Spaltenüberschriften gern ändern oder weitere Tabellen anlegen. 3. Zusatz: Wenn du weitere Übung brauchst, so lege auch dein CD Projekt oder sogar folgendes Auto-Projekt als Tabellen in MySQL an. SQL-Abfragen an die Datenbank Video: http://perm.ly/grundlagen-datenbanken-2 Der zweite schwierigere Teil sind die Abfragen. Wie bekomme ich Daten aus den Tabellen wieder heraus? Am Anfang, wenn kaum Datensätze in den Tabellen sind kein Problem, aber was, wenn dort hunderte von Datensätzen enthalten sind? Wenn man dann alle Schüler mit dem Namen Müller raussuchen möchte und jeden einzelnen Datensatz durchgehen muss, ist das schon ganz mühsam. Wäre doch viel schöner, wenn ich der Datenbank sagen kann „gib mir mal alle Datensätze mit „Müller“ als Nachname aus der Tabelle „Schüler“. Und genauso geht das auch. Dazu gibt es für die Datenbank eine eigene Abfragesprache, die bestimmte Datensätze nach den Vorgaben des Benutzers wieder heraussucht (bei uns SQL – Structured Query Language). Bsp.: Zu folgender Tabelle könnte folgende Abfrage gemacht werden: SELECT Uebersetzungen FROM Uebersicht WHERE Vokabel = “bauen” Die Antwort wäre dann??? Vielleicht verstehst du das ja sogar ohne Erklärung? Kann man fast schon so verstehen, auch wenn es eine spezielle Syntax ist, so ist es doch recht intuitiv zu verstehen – das solltest du also schnell lernen können! A. Kück Seite 16 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Aufgabe 2.3. Video: http://perm.ly/grundlagen-datenbanken-1 http://perm.ly/grundlagen-datenbanken-2 a)Beschreibe in eigenen Worten, was folgende SQL-Abfragen bedeuten: 1. SELECT * FROM Uebersicht WHERE Vokabel = “Tisch” 2. INSERT INTO Uebersicht (Vokabel, Uebersetzung) VALUES („Tisch”, “table”) 3. DELETE FROM uebersicht WHERE Vokabel=”Tisch” 4. UPDATE Uebersicht SET Uebersetzung = “tablet“ WHERE Vokabel= „Tisch“ b)Bestimme zu den Tabellen, die du in Aufgabe 2.2 angelegt hast, jeweils mindestens eine Abfrage nach den Beispielen 1-4. Stelle so viele Abfragen, bis du mit der Syntax einigermaßen vertraut bist. Was musst du können am Ende von Modul 2: 1. Eine Aufgabenstellung in eine Modellbeschreibung umformen können 2. Speziell den Verlauf von Eingaben-Verarbeitung-Ausgaben genau untersuchen können. 3. Eine Skizze zu einer gegebenen Aufgabenstellung anfertigen können, die die wichtigen Zusammenhänge Darstellung. 4. Verstehen, was eine Datenbank ist und wozu man sie gebrauchen kann. 5. Den grundlegenden Aufbau einer Datenbank kennen. 6. Verstehen, wozu man eine Datenbankabfragesprache braucht – hier SQL . 7. Einfache Abfragen an eine Datenbank formulieren können. A. Kück Seite 17 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 3 - Datenbank-Entwurf – ER-Modelle Bevor man jedoch anfängt eine größere Datenbank einfach so Tabellenweise anzulegen und dann die Datensätze auf die Tabellen verteilt, macht man sich einen Plan, eine Skizze sozusagen, wie die Daten in den Tabellen zusammenhängen. Um eine professionelle Skizze zu machen, zeichnet man ein sogenanntes ER Modell. Machen wir das mal für ein kleines Schulprojekt. Erklärender Text: o Text zu Skript Datenbanken -ERM Aufgabe 3.1 1. Kläre was entity, relation und was model genau bedeutet und schreibe es in eigenen Worten auf. Gib das beim Lehrer ab. 2. Überlege dir, welche Entitäten und Relationen bei unserem Vokabel-Projekt beteiligt sind. 3. Stelle ein ERM für das Vokabel-Projekt auf und gib es ebenfalls beim Lehrer zur Durchsicht kurz ab. 4. Wenn du es bisher noch nicht getan hast, überlege dir, wie man die Sprachen im Vokabelprojekt mit einbeziehen könnte. Halte deine Überlegungen mit in der Skizze fest (im ER-Modell). 5. Erstelle ein Video dazu, in dem du deine Überlegungen und Modelle dazu erläuterst. Füge dies deinem Portfolio hinzu. 6. Zusatz: Stelle ein ERM auf, für eine Noten-Datenbank. Lehrer sollen darin ihre Noten für alle Schüler klassenweise speichern können. Also Lehrer Fritz sollte seine Noten in seinen zwei Fächern für seine Schüler der Klassen, die er unterrichtet eintragen können. Nach dieser Skizze soll nun die Datenbankstruktur erstellt werden. Schauen wir uns zunächst die konkreten Tabellen dazu an. Die Datenbank wird anschließend genau entsprechend dieser Tabellen angelegt. Jede Tabelle (eine eigene Datei in der Datenbank) entspricht einer Entität und jede Spalte der Tabelle entspricht einer Spalte in der Datenbank – also einem Teil eines Datensatzes. Verglichen mit dem ERM entspricht jedes Attribut einer Entität, einer Spalte in der Tabelle. Auch die Relationen selbst werden jeweils in einer eigenen Tabelle dargestellt – wobei die Spalten dieser Relationstabelle mindestens jeweils die beiden Attribute enthalten muss (als eigene Spalten), die die beiden Entitäts-Tabellen verknüpfen. A. Kück Seite 18 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Tabellen dazu Das ERM kann man direkt in Tabellen umsetzen. Betrachten wir dazu das Schüler-Lehrer-Klassen-Projekt, in dem Schüler (Vorname, Nachname, Geburtstag), Lehrer (Vorname, Nachname) und Klassen (Name) betrachtet werden. Es soll abgebildet werden, welche Schüler und welche Lehrer Teil einer Klasse sind. Zu dem Schüler-Lehrer-Klassen-Projekt sieht eine mögliche Tabelle folgendermaßen aus: Aber auch die Relationen zwischen den Entitäten müssen in einer Tabelle abgebildet werden, da sie ja gerade die Beziehungen zwischen ihnen festhalten sollen. Jede Entität für sich allein betrachtet ist ja langweilig, erst das Zusammenspiel zwischen den Entitäten macht das Ganze interessant. Eine solche Tabelle könnte folgendermaßen aussehen: Aufgabe 3.2. 1. Schaue dir die Tabellen zu dem gegebenen ERM genau an. Beschreibe in eigenen Worten, wie genau man ein ERM systematisch in eine Tabellenstruktur umsetzt. 2. Jeder Datensatz muss identifiziert werden. Überlege dir, ob es sinnvoll ist, das über den Nachnamen zu tun oder ob man das auch durch etwas anderes ersetzen könnte. 3. Wende das auf das gesamte Klassen-Projekt an und stelle alle nötigen Tabellen zu dem Projekt mit den Klassen auf. Tue dies zunächst der Einfachheit halber in Excel. 4. Gib deinen Entwurf beim Lehrer ab, bevor du weitermachst. 5. Wende das Gelernte nun auf das Vokabel-Projekt an und halte das ebenfalls schriftlich fest. 6. Beschreibe, was neu ist bei dem Vokabel-Projekt und wie sich das auf die Tabellenstruktur auswirkt. A. Kück Seite 19 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Was musst du können am Ende von Modul 3: 1. Eine Aufgabenstellung in eine Modellbeschreibung umformen können 2. Speziell den Verlauf von Eingaben-Verarbeitung-Ausgaben genau untersuchen können. 3. Eine Skizze zu einer gegebenen Aufgabenstellung anfertigen können, die die wichtigen Zusammenhänge Darstellung. 4. Verstehen, was eine Datenbank ist und wozu man sie gebrauchen kann. 5. Den grundlegenden Aufbau einer Datenbank kennen. 6. Verstehen, wozu man eine Datenbankabfragesprache braucht – hier SQL . 7. Einfache Abfragen an eine Datenbank formulieren können. 8. Wissen, wie man eine Datenbank in einer Tabelle (zunächst unter Excel z.B.) abbilden kann. 9. Wissen, dass ein Attribut eines Datensatzes einer Spalte einer Tabelle entspricht. 10. Wissen, was ein ERM ist. Auch folgende Begriffe müssen verstanden sein: a. Entität b. Attribut c. Relation 11. Einfache SQL-Abfragen generieren können und diese in PHP einbinden können zum : a. Herausfiltern b. Einfügen c. Löschen d. Ändern von Datensätzen. A. Kück Seite 20 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 4 - Datenbanken – Datensätze einfügen, herausfiltern, ändern und erneut speichern mittels der Abfragesprache SQL Video: o http://perm.ly/grundlagen-datenbanken-1 darauf aufbauend: o http://perm.ly/grundlagen-datenbanken-2 o http://perm.ly/grundlagen-datenbanken-3 o “PHP Lernen-Teil 10 - Datenbanken erstellen und benutzen I“: http://www.youtube.com/watch?v=aaS8djf_Xg0 o „PHP Lernen-Teil 11 - Datenbanken erstellen und benutzen II“: http://www.youtube.com/watch?v=S27nvBFDvNk Du hast dich in Aufgabe 2.3. schon einmal kurz mit der Abfragesprache SQL auseinandergesetzt. Das tun wir hier nun etwas genauer. Eine bestehende Datenbankstruktur sollte es im Wesentlichen zulassen, dass man Datensätze herausfiltern kann, neue Datensätze eintragen kann, Datensätze wieder löschen kann oder auch bestehende Datensätze ändern kann. Wie das mit der Abfragesprache SQL geht, wollen wir uns genau anschauen. In PHPMyAdmin in der Menüleiste oben „SQL“ auswählen, dann werden schon verschiedene SQL-Abfragen angeboten. Wähle zunächst „SELECT“ Folgendes Projekt sei dir gegeben: vokabel_trainer_schueler … oder du verwendest eine eigene Tabellenstruktur, auf die du die folgenden Abfragen generieren kannst. Datensätze herausfiltern aus einer Tabelle Der grundlegende Befehl lautet: SELECT. Aus einer bestimmten Tabelle soll ein oder auch mehrere Attribute (oder alle eines Datensatzes (wird dann mit *gekennzeichnet, anstatt die Attribute einzeln mit Kommata getrennt aufzuführen) herausgefiltert werden und zwar nur dort, wo ein oder mehrere Bedingungen erfüllt sind (WHERE…). Das heißt in SQL: SELECT Vokabel, Uebersetzung FROM uebersicht WHERE Vokabel =`Tisch‘ Aufgabe 4.1. 1. Generiere zum Vokabel-Projekt 3 passende SELECT Abfragen und jeweils passend dazu, welche Datensätze daraufhin herausgefiltert würden. 2. Zusatz Generiere zu den CD- Tabellen 3 passende SELECT Abfragen und jeweils passend dazu, welche Datensätze daraufhin herausgefiltert würden. 3. Zusatz Generiere zu den Auto-Tabellen 3 passende SELECT Abfragen und jeweils passend dazu, welche Datensätze daraufhin herausgefiltert würden. A. Kück Seite 21 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Datensätze neu in eine bestehende Tabelle einfügen Der grundlegende Befehl lautet: INSERT. In eine bestimmte Tabelle soll ein neuer Datensatz eingefügt werden (bzw. nur bestimmte Attribute des neuen Datensatzes werden mit konkreten Werten belegt. Das heißt in SQL: INSERT INTO uebersicht (Vokabel, Uebersetzung) VALUES („Tisch“, “table“) Aufgabe 4.2. 1. Generiere zum Vokabel-Projekt 3 passende INSERT Abfragen und jeweils passend dazu, welche Datensätze daraufhin erzeugt würden. 2. Zusatz Generiere zu den CD- Tabellen 3 passende INSERT Abfragen und jeweils passend dazu, welche Datensätze daraufhin erzeugt würden. 3. Zusatz Generiere zu den Auto-Tabellen 3 passende INSERT Abfragen und jeweils passend dazu, welche Datensätze daraufhin erzeugt würden. Datensätze aus einer bestehenden Tabelle löschen Der grundlegende Befehl lautet: DELETE. Aus einer bestimmten Tabelle sollen Datensätze gelöscht werden. Und zwar alle die, auf die eine Bedingung zutrifft (WHERE…) Das heißt in SQL: DELETE FROM uebersicht WHERE Vokabel = "Tisch" Aufgabe 4.3. 1. Generiere zum Vokabel-Projekt 3 passende DELETE Abfragen und jeweils passend dazu, welche Datensätze daraufhin gelöscht würden. 2. Zusatz Generiere zu den CD- Tabellen 3 passende DELETE Abfragen und jeweils passend dazu, welche Datensätze daraufhin gelöscht würden. 3. Zusatz Generiere zu den Auto-Tabellen 3 passende DELETE Abfragen und jeweils passend dazu, welche Datensätze daraufhin gelöscht würden. Bestehende Datensätze ändern Der grundlegende Befehl lautet: UPDATE. In einer bestimmten Tabelle sollen Datensätze geändert werden. Und zwar alle die, auf die eine Bedingung zutrifft (WHERE…), das was geändert werden soll, steht unter SET. Das heißt in SQL: UPDATE uebersicht SET Uebersetzung = "tables" WHERE Vokabel = „Tisch" Aufgabe 4.4. 1. Generiere zum Vokabel-Projekt 3 passende UPDATE Abfragen und jeweils passend dazu, welche Datensätze daraufhin geändert würden und in welchem Umfang. 2. Zusatz Generiere zu den CD- Tabellen 3 passende UPDATE Abfragen und jeweils passend dazu, welche Datensätze daraufhin geändert würden und in welchem Umfang. 3. Zusatz Generiere zu den Auto-Tabellen 3 passende UPDATE Abfragen und jeweils passend dazu, welche Datensätze daraufhin geändert würden und in welchem Umfang. A. Kück Seite 22 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Zusatz INNER JOIN Manchmal muss man Abfragen an die Datenbank über mehrere Tabellen hinweg stellen. Dazu gibt es das Grundelement: JOIN. Auf Grund der Normalisierung von Tabellen werden diese oft auf mehrere aufgeteilt. Daher befinden sich die zugehörigen Daten dann in verschiedenen Tabellen. Mittels JOIN werden die Datensätze sozusagen in einer virtuellen Tabelle wieder zusammengefügt – wenn die Ausgangs-Tabellen wenigstens ein Attribut (Datenfeld) gemeinsam haben. Aus mehreren Tabellen sollen Datensätze herausgefiltert werden, die Abfrage wird bezogen auf bestimmte Attribute dieser Tabellen, welche in Beziehung zueinander stehen müssen getan. INNER JOIN liefert sozusagen die Schnittmenge aus beiden Grundmengen der beiden (oder auch mehrere) verbundenen Tabellen. Das heißt in SQL: Angenommen es gibt in dem Vokabel-Projekt die Tabellen (ein Datensatz wurde in verschiedene Tabellen aufgeteilt, um die 2te NF zu erfüllen): …und man möchte nun alle englischen Übersetzungen von Vokabel „Junge“ haben, dann muss man die Daten aus der Tabelle Vokabel, Sprachen und Uebersetzung wieder zusammensetzen: SELECT Uebersetzung_id FROM uebersetzung INNER JOIN uebersicht ON uebersicht.ID = uebersetzung.Vokabel_id WHERE uebersicht.Vokabel = „Junge“ Die Anweisung liefert aber nur die ids, der Übersetzten Worte, um daraus wieder echte Worte zu machen, muss folgende Anweisung angewendet werden: SELECT Vokabel FROM uebersicht WHERE uebersicht.id = Uebersetzung_id Zusatz: Es gibt auch noch LEFTJOIN, RIGHTJOIN und FULLJOIN. Informiere dich, was das für einen Unterschied in der Verknüpfung ausmacht und formuliere das in eigenen Worten schriftlich. Gib ebenfalls Beispiele dazu an. A. Kück Seite 23 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Zusatz Aufgabe 4.5. 1. Generiere zum Vokabel-Projekt 3 passende JOIN Abfragen und jeweils passend dazu, welche Datensätze daraufhin herausgefiltert würden und in welchem Umfang. 2. Generiere zu den CD- Tabellen 3 passende JOIN Abfragen und jeweils passend dazu, welche Datensätze daraufhin herausgefiltert würden und in welchem Umfang. 3. Generiere zu den Auto-Tabellen 3 passende JOIN Abfragen und jeweils passend dazu, welche Datensätze daraufhin herausgefiltert würden und in welchem Umfang. Zusatz Aufgabe 4.6. 1. In dem MySql-Vokabel-Projekt hast du bereits 4 Datensätze eingegeben. Generiere nun in SQL folgende Abfragen und beobachte, was sich bei den Datensätzen verändert: a) Filtere einen einzelnen Datensatz aus einer Tabelle heraus. b) Filtere so, dass mehrere Datensätze auf die gegebene Bedingung passen (aus einer Tabelle). c) Füge über SQL einen neuen Datensatz in eine Tabelle ein. d) Ändere einen einzelnen Datensatz in mindestens zwei Attributen in einer Tabelle. e) Lösche einen einzelnen Datensatz aus einer der Tabellen. Was musst du können am Ende von Modul 4: 1. Eine Aufgabenstellung in eine Modellbeschreibung umformen können 2. Speziell den Verlauf von Eingaben-Verarbeitung-Ausgaben genau untersuchen können. 3. Eine Skizze zu einer gegebenen Aufgabenstellung anfertigen können, die die wichtigen Zusammenhänge Darstellung. 4. Verstehen, was eine Datenbank ist und wozu man sie gebrauchen kann. 5. Den grundlegenden Aufbau einer Datenbank kennen. 6. Verstehen, wozu man eine Datenbankabfragesprache braucht – hier SQL . 7. Einfache Abfragen an eine Datenbank formulieren können. 8. Wissen, wie man eine Datenbank in einer Tabelle (zunächst unter Excel z.B.) abbilden kann. 9. Wissen, dass ein Attribut eines Datensatzes einer Spalte einer Tabelle entspricht. 10. Wissen, was ein ERM ist. Auch folgende Begriffe müssen verstanden sein: a. Entität b. Attribut c. Relation 11. Beliebige SQL-Abfragen generieren können und diese in PHP einbinden können zum : a. Herausfiltern b. Einfügen c. Löschen d. Ändern von Datensätzen. A. Kück Seite 24 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 5 Normalisierung von Datenbanken Video: o „Datenbank Normalisierung“: http://www.youtube.com/watch?v=ktZW7BzqvE Bisher hast du die Tabellen einfach irgendwie zusammengestellt mit den Daten, die du für sinnvoll gehalten hast. Nun geht es darum, deinen Entwurf besser zu strukturieren, so dass du später einfach Veränderungen bzw. Erweiterungen vornehmen kannst und das Suchen, Einfügen, Löschen und Ändern in den Datensätzen auch funktioniert. Erste Normalform Erklärender Text: Text zu Skript Datenbanken -Normalisierungen (Teil 1) Bei der ersten Normalform geht es zunächst darum, die Datensätze alle eindeutig zu unterscheiden – z.B. über eine fortlaufende Nummer. Das ist nötig, da z.B. Namen und Nachnamen ja auch mal identisch sein können, man aber trotzdem zwei verschiedene reale Personen damit darstellen möchte – ich muss die zu den Personen gehörenden Datensätze also unterscheiden können, z.B. mit einer eindeutigen Nummer – diese nenne ich dann Primärschlüssel. Aufgabe 5.1. 1. Bringe folgende Tabellen in die erste Normalform 2. Erläutere in eigenen Worten, warum die Tabellen so vorteilhafter sind. Aufgabe 5.2. 1. Schaue auch im Internet nochmal genau nach, was ein Primärschlüssel ist und was eine ID ist und beschreibe das anschließend schriftlich in eigenen Worten. A. Kück Seite 25 Kü /Info 10 Skript Datenbanken SJ 2014/2015 2. Gib drei Beispiele von Tabellen an und benenne dazu jeweils einen sinnvollen Primärschlüssel (wähle dabei mindestens einen Primärschlüssel, der aus zwei oder mehr Attributen besteht). Zusatz Zweite Normalform Erklärender Text: Text zu Skript Datenbanken -Normalisierungen (Teil 2) Man versucht die Datensätze weiter zu strukturieren, so dass spätere Änderungen in der Struktur der Datenbank möglichst einfach bleiben. Um diese zweite Normalform zu verstehen, löse zunächst die folgende Aufgabe: Zusatz-Aufgabe 5.3. Gegeben sei folgende Tabelle. Der Primärschlüssel besteht aus zwei Spalten: ID und LiedNummer: 1. Überlege dir, ob der Primärschlüssel so korrekt gewählt wurde. 2. Angenommen der Titel der Chris Brown CD wurde falsch eingegeben und muss geändert werden auf „This is up now!“ Was hast du zu tun? Warum ist das zu aufwendig (gerade, wenn du dir vorstellst, dass in der Tabelle 100 Titel oder mehr eingetragen sind) und wie könnte man das ändern (d.h. wie kann man die Tabellenstruktur ändern, damit die Änderungen bei solchen Dingen übersichtlicher werden)? 3. Was könnte es bedeuten, wenn man sagt, dass „Titel-CD“ funktional nur abhängt von der ID (wenn dich das Wort funktional stört, lass es einfach weg: was bedeutet die Abhängigkeit?)? Wie könnte man daher die Tabelle sinnvoll in zwei oder auch mehr Teile aufteilen, so dass jeder Primärschlüssel nur genau einmal auftaucht (was wichtig für die Konsistenz der Daten ist)? Was würde sich dadurch ändern? Welche Vorteile/Nachteile entstehen dadurch? Was könnte man tun, um die beiden Tabellen inhaltlich wieder zu verknüpfen? Tipp: welche Entitäten stecken in der einen Tabelle? Zeichne zur Hilfestellung ein ERM hierzu! 4. Betrachte folgendes Tabellensystem. Was ist anders als vorher? Benenne Vor- und Nachteile. A. Kück Seite 26 Kü /Info 10 Skript Datenbanken SJ 2014/2015 5. Was bedeutet es nun, wenn gesagt wird, dass „Titel-CD“ von der ID funktional abhängig ist? 6. Wie könnte man die erste Tabelle nochmal sinnvoll unterteilen und warum? Schaue dir dazu auch folgende Ergänzung der Tabelle mit zusätzlichen Datensätzen an: Wenn du das neue Tabellensystem aufstellst, denke bitte auch daran, dass du jedes Mal, wenn du eine Tabelle auf zwei unterteilst, anschließend dazu auch eine Verknüpfungstabelle aufstellen musst, damit man weiß, wie die Teile zusammenhängen (dies entspricht jeweils einer „Relationstabelle im ERM“. Sieh dir dazu auch die 3 Tabellen an, die entstanden sind, als die CD-Tabelle auf zwei aufgeteilt wurde. 7. Zeichne ein ERM zu der nun entstandenen Tabellenstruktur. Beachte, dass jede Entität einer Tabelle entspricht und auch jede Relation! Zusatz-Aufgabe 5.4. 1. Erkläre in eigenen Worten und mit einem eigenen Beispiel (bzw. einem Gegenbeispiel), was die zweite Normalform ist. Gehe dabei speziell auf den Begriff „funktionale Abhängigkeit“ ein und erläutere diesen ausführlich anhand eines Beispiels. 2. Bringe folgende Tabellen in die zweite Normalform. Lege dazu auch einen sinnvollen Primärschlüssel fest, bzw. füge dazu zusätzliche Spalten ein: A. Kück Seite 27 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Tipp: Es sollten in den neu entstehenden Tabellen alle Attribute natürlich atomar sein und jeder Primärschlüssel darf nur einmal vorkommen. Am einfachsten ist es für alles eine ID als Primärschlüssel einzuführen. Zur Übung ist es aber sinnvoll mal zu überlegen, ob es bei der ein oder anderen Tabelle auch eine andere Möglichkeit gibt. Probiere gern auch mal zwei oder mehr Attribute als Primärschlüssel aus. 3. Zeichne zu dem jeweils neuen Tabellensystem in der zweiten Normalform ein passendes ERM. 4. Überprüfe, ob unser Vokabel-Projekt in der 2ten Normalform vorliegt. Wenn nicht bringe es in die zweite Normalform und zeichne ein passendes ERM dazu. 5. Erstelle ein Video dazu, in dem du deine Überlegungen und Modelle dazu erläuterst. Füge dies deinem Portfolio hinzu. 6. Zusatz: Es gibt wie gesagt noch 3 weitere Normalformen. Schaue dir an, welche das sind und wie sich das auf die Tabellen auswirkt. Gute Erklärungen hierzu: http://www.sql-und-xml.de/sql-tutorial/datenbank-grundbegriffe.html Was musst du können am Ende von Modul 5: 1. Eine Aufgabenstellung in eine Modellbeschreibung umformen können 2. Speziell den Verlauf von Eingaben-Verarbeitung-Ausgaben genau untersuchen können. 3. Eine Skizze zu einer gegebenen Aufgabenstellung anfertigen können, die die wichtigen Zusammenhänge Darstellung. 4. Verstehen, was eine Datenbank ist und wozu man sie gebrauchen kann. 5. Den grundlegenden Aufbau einer Datenbank kennen. 6. Verstehen, wozu man eine Datenbankabfragesprache braucht – hier SQL . 7. Einfache Abfragen an eine Datenbank formulieren können. 8. Wissen, wie man eine Datenbank in einer Tabelle (zunächst unter Excel z.B.) abbilden kann. 9. Wissen, dass ein Attribut eines Datensatzes einer Spalte einer Tabelle entspricht. 10. Wissen, was ein ERM ist. Auch folgende Begriffe müssen verstanden sein: a. Entität b. Attribut A. Kück Seite 28 Kü /Info 10 Skript Datenbanken SJ 2014/2015 c. Relation 11. Beliebige SQL-Abfragen generieren können und diese in PHP einbinden können zum : a. Herausfiltern b. Einfügen c. Löschen d. Ändern von Datensätzen. 12. Wissen, was die erste Normalform ist und warum man eine Datenbank dahingehend umformt. 13. Wissen, was ein Primärschlüssel ist und wie man ihn bei Datenbanken sinnvoll einsetzt und warum er verwendet wird. A. Kück Seite 29 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 6 - Formulare erstellen – um Daten aufzunehmen Videos: o Formular auswerten: www.youtube.com/watch?v=S84kOojitPY Bis jetzt hast du gelernt, wie man eine Datenbank mit PHPMyAdmin erstellt und dort auch Datensätze eingibt, löscht, ändert, heraussucht. Das jedes Mal per Hand zu tun ist allerdings zu aufwendig. So richtig effektiv wird eine Datenbank, wenn man auf die Daten von überall zugreifen kann – z.B. über das Internet. Das geht im Prinzip über eine Website, die die SQL-Anfrage an die Datenbank schickt und die Antwort der Datenbank dann in einer weiteren Website darstellt. Einfaches Beispiel: „google.de“ Ein wenig hast du bzgl. Websiteerstellung ja schon gelernt. Nun gilt es, dies ein wenig zu erweitern. Ein paar neue Tags die zu deiner Sammlung hinzukommen, um Formulare darstellen zu können. Wichtig ist auch, dass du verstehst, was mit den Daten passiert, die in ein Formular eingegeben wurden, nachdem der „Button“ gedrückt wurde. Wie du in der folgenden Aufgabe sehen wirst, gibt es zu Beginn des Formulars eine Angabe, an welche Datei die Daten anschließend geschickt werden sollen. Diese Datei befindet sich aber auf dem Server, wo auch die Website herkommt und in der Regel nicht auf deinem Rechner, wo die Seite angezeigt wird – es sei denn du probierst es mit einer Website und einem Formular, die auf deinem eigenen Rechner gespeichert sind – zu Testzwecken also. Aufgabe 6.1 1. Schaue dir die Website formular_taschenrechner.html genau an und schreibe alle Tags raus, die etwas mit Formularen zu tun haben (oder auch die, die du nicht kennst). Mindestens aber: <form action="formular_verarbeiten.php" method="post">"; <input type="text" name="zahl1" value="" size = 10> <input type="submit" name = "button" /> 2. Stelle Überlegungen an, was die Tags für eine Bedeutung haben und füge das deinen Notizen hinzu. Wenn du Probleme hast, schaue dir das Video, welches oben angegeben ist, dazu an, schaue bei „SelfHTML“ nach oder Frage Mitschüler oder deinen Lehrer. Wichtig ist, dass du die Bedeutung genau verstehst. Wenn du unsicher bist, gib deine Ausarbeitungen beim Lehrer zur Durchsicht ab. Wichtig: Formuliere alles in eigenen Worten!!!! 3. Beschreibe speziell den Unterschied zwischen POST und GET. Gib Vor- und Nachteile dazu an. 4. Fertige eine Skizze dazu an, welchen Weg die Daten nehmen, die von einem Benutzer eingegeben wurden, nachdem der „Button“ gedrückt wurde. A. Kück Seite 30 Kü /Info 10 Skript Datenbanken SJ 2014/2015 5. Lege nun ein eigenes Formular an, um alle nötigen Daten für das Vokabel-Projekt aufnehmen zu können. Schaue dir dazu die Projektbeschreibung an, um zu sehen, welche Daten ein Datensatz enthalten muss. 6. Zusatz: Gestalte das Formular so, dass es hübsch und übersichtlich anzusehen ist. Was musst du können am Ende von Modul 6: 1. Ein Formular zusammenstellen können, um Daten aus einer Website aufnehmen zu können. 2. Den Unterschied zwischen POST und GET begriffen haben. 3. Begriffen haben, welchen Weg die Daten nehmen, die in ein Formular vom Benutzer eingegeben werden. A. Kück Seite 31 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 7 - Formulardaten mit PHP verarbeiten Video: o PHP Lernen-Teil 3 - Formular auswerten: www.youtube.com/watch?v=S84kOojitPY Nachdem die Daten aus dem Formular nun an eine neue Datei (formular_verarbeiten_vokabeln.php) geschickt wurden, müssen sie verarbeitet werden. Wie du an der Endung schon erkennst, handelt es sich nicht mehr nur um eine HTML Seite, hier kommt nun PHP ins Spiel. PHP Um Formulare auswerten zu können, musst du ein paar wichtige, grundlegende Datenstrukturen in PHP kennen. Hier findest du dazu ein paar Informationen, die dir diese Dinge näher bringen sollen: Videos: o PHP Lernen-Teil 1 - Einführung-Informatik2011.mp4 o „Variablen allgemein”: www.youtube.com/watch?v=WAPbONf7QJI o „Variablen und Parameter“: www.youtube.com/watch?v=H-AiZLUI6mY o „Informatik und die Welt der Eimer: “http://youtu.be/rvBtG8090XU Erklärender Text: o Text zu Skript Datenbanken -Einschub PHP Weitere Datenstrukturen in PHP Videos: o www.youtube.de/alexkueck11 „Arrays einfach“ o „Schleifen“: www.youtube.com/watch?v=UlgG7bqtb6c o „Programm-Verzweigungen“: www.youtube.com/watch?v=I5O9XgnUh2M o #9 - GET und POST Variablen in PHP - PHP Tutorial Deutsch Ge.mp4 o PHP-Tutorial_ GET- und POST-Variablen.mp4 o PHP Lernen-Teil 8 - GET Variante.mp4 Später kommen wir noch dazu, wie man Daten in eine Datenbank schreibt, bzw. aus ihr herausliest (selektiert) Aufgabe 7.1. 1. Ändere im Formular formular_Vokabeln_eingeben.html das Attribut „POST“ auf das Attribut „GET“ und beobachte die Statusleiste des Browsers, nachdem du den Button gedrückt hast. 2. Schaue dir die Datei formular_verarbeiten_vokabeln.php genau an. Halte zu jedem neuen Symbol genau fest, was es bedeutet – in eigenen Worten!!! Beispiel: <?php A. Kück Seite 32 Kü /Info 10 Skript Datenbanken SJ 2014/2015 ?> $vokabel echo …Vokabel: " . $vokabel . " </td> Wenn du es dir nicht selbst erschließen kannst, schaue dir das Video an, schaue im Internet nach (http://php.net/manual/de/index.php ist eine gute Seite), frage Mitschüler oder den Lehrer. 3. Erweitere die Datei formular_verarbeiten_vokabeln.php so, dass alle Formulardaten des vorhergehenden Formulars in entsprechenden Variablen übernommen werden und anschließend zu Kontrolle nochmal auf dem Bildschirm angezeigt werden. 4. Schreibe eine eigene php-Seite, in der du die Formulardaten aus dem Taschenrechner übernimmst (formular_taschenrechner.html), das passende Ergebnis berechnest und anschließend die Eingaben und das Ergebnis auf einer Website ausgibst. 5. Zusatz: Man kann in Formular-Feldern auch unsinnige Daten oder sogar zerstörerische Daten eingeben. Daher ist es sinnvoll, die Daten genauer zu untersuchen, bevor man sie in die Datenbank schreibt. Informiere dich, welche Möglichkeiten es gibt, Formulare sicherer zu gestalten und probiere ein paar einfache Möglichkeiten mal aus. Was musst du können am Ende von Mmodul 7: 1. Ein Formular zusammenstellen können, um Daten aus einer Website aufnehmen zu können. 2. Den Unterschied zwischen POST und GET begriffen haben. 3. Begriffen haben, welchen Weg die Daten nehmen, die in ein Formular vom Benutzer eingegeben werden. 4. Verstehen, wie die Daten aus einem Formular verarbeitet werden. 5. Einfach PHP Befehle verstehen und anwenden können a. $_POST – Variablen b. Code PHP und HTML mixen können c. PHP Code in Webseiten ausgeben („echo“) d. Array-Variablen kennen und verstehen, wie man sie bildet. 6. Daten, die von einem Formular geschickt wurden aufnehmen können, etwas damit tun können und sie anschließend erneut in einer Website ausgeben können. A. Kück Seite 33 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 8 SQL Befehle in PHP einbauen und dadurch auf eine Datenbank zugreifen über ein Webformular Bevor man über PHP mit einer MYSQL Datenbank kommunizieren kann, muss man den Zugriff zu ihr eröffnen (weil es ja wie gesagt auch gleichzeitige Zugriffe geben könnte, muss man sich sozusagen bei der Datenbank zum Schreiben in die Datenbank oder zum Lesen von Daten aus der Datenbank anmelden). In dem Anfangsprojekt wird das an einer Stelle bereits gemacht. Versuche doch nun mal, ob du es jetzt schon verstehen kannst, was dort passiert: Aufgabe 8.1. Video: http://perm.ly/grundlagen-datenbanken-1 darauf aufbauend: http://perm.ly/grundlagen-datenbanken-2 http://perm.ly/grundlagen-datenbanken-3) 1. Schaue dir in dem neuen Formular formular_verarbeiten_vokabeln.php den unteren Teil an und versuche alle neuen PHP Befehle zu interpretieren. Beschreibe in eigenen Worten, was in jeder Zeile des unteren Teils passiert. 2. Zusatz: Anstatt die Daten der DB direkt in die oberste Zeile einzutragen, arbeitet man gern mit Variablen – spart Zeit, wenn mal was geändert werden muss: //Pfad und Name des Servers, der die DB verwaltet, bei uns localhost auf dem eigenen Rechner $db_host = "localhost"; //Name desjenigen, der sich einloggt - muss bei der DB als okay registriert sein - aus //Sicherheitsgründen hier als "root" einloggen, um alle Zugriffe auf die DB zu haben $db_login = "root”; //Passwort desjenigen, der sich einloggt - muss bei der DB als okay registriert sein – aus //Sicherheitsgründen $db_password = "banane01"; //ein Server kann verschiedenen DB-Projekte verwalten, jedes Projekt hat einen eigenen // Namen und ein eigenes Verzeichnis $db_database = "vokabel_trainer"; Ändere die Zeile in dem Formular formular_verarbeiten_vokabeln.php entsprechend ab, so dass du nun mit den Variablen arbeiten kannst. 3. Die DB Anfrage zum Herausfiltern von Daten sieht folgendermaßen aus: Siehe: Datenbankzugriffe.php Abschnitt „Daten herausfiltern“. Beschreibe in eigenen Worten, was jede einzelne Zeile genau macht. Bei Fragen, melde dich beim Lehrer. 4. Die DB Anfrage zum Ändern von Daten sieht folgendermaßen aus: Siehe: Datenbankzugriffe.php Abschnitt „Daten ändern“. Beschreibe in eigenen Worten, was jede einzelne Zeile genau macht. Bei Fragen, melde dich beim Lehrer. 5. Die DB Anfrage zum Löschen von Daten sieht folgendermaßen aus: Siehe: Datenbankzugriffe.php Abschnitt „Daten löschen“. Beschreibe in eigenen Worten, was jede einzelne Zeile genau macht. Bei Fragen, melde dich beim Lehrer. A. Kück Seite 34 Kü /Info 10 Skript Datenbanken SJ 2014/2015 In der Datei formular_verarbeiten_vokabeln.php werden neue Daten entsprechend der Eingaben aus dem Formular in die Datenbank eingetragen. Das waren aber noch nicht viele, bisher wurde nur in eine Tabelle eingetragen. Du hattest das Formular aber schon erweitert, so dass es mehr Informationen aufnehmen kann. Diese sollen nun in den richtigen Tabellen, die du in der MySQL Datenbank angelegt hast auch gespeichert werden. Aufgabe 8.2. Erweitere die Datei formular_verarbeiten_vokabeln.php so, dass alle Daten aus dem erweiterten Eingabe-Formular in der Datenbank in der jeweils richtigen Tabelle korrekt gespeichert werden. In der einfachsten Form besteht dein Projekt ja nur aus einer Tabelle „Uebersicht“ und zu jeder Vokabel wird dort eine Übersetzung abgespeichert. Erstelle ein Video dazu, in dem du deine Überlegungen und Implementierungen dazu erläuterst. Füge dies deinem Portfolio hinzu. Tipp, wenn du mit Tabellen in der ersten Normalform arbeitest: Zuerst die Vokabeln (auch die Übersetzungen werden einfach als Vokabeln behandelt) in der Tabelle uebersicht speichern. Dann kann man sich über einen SELECT die ids der gerade eingefügten Datensätze holen, um dann in der Tabelle uebersetzung die passenden Relationen einzutragen. Nun wollen wir das anders herum machen. Man gibt über ein Formular eine Vokabel ein und bekommt, wenn die Vokabel in der Datenbank vorhanden ist, das Vokabel-Übersetzungspaar, welches in der Tabelle Uebersicht gespeichert wurde, ausgegeben. Wenn du bisher mit den Zusatzaufgaben gearbeitet hast, solltest du im Formular folgende Abfrage zulassen: Nun wollen wir das anders herum machen. Es soll zufällig eine Vokabel aus der Tabelle uebersetzungen ausgewählt werden. Diese wird dann in einem Formular angezeigt. Dazu soll der Benutzer in ein Formular die Übersetzung eingeben können. Daraufhin soll die Eingabe des Benutzers mit dem richtigen Eintrag in der Tabelle uebersetzung abgeglichen werden und in einer neuen HTML Seite soll eine entsprechende Rückmeldung gegeben werden. Aufgabe 8.3. 1. Lege ein Formular „vokabel_auswaehlen.html“ an, in dem man eine Vokabel eintragen kann. Lege dann eine neue Datei „formular_abfragen_vokabeln.php“ an, die zu der eingegebenen Vokabel aus der Tabelle Uebersicht die passende Übersetzung auswählt. Anschließend sollen beide als Ergebnis im Browser ausgegeben werden. Folgende Probleme tauchen auf: a) Eine Vokabel hat mehrere Übersetzungen b) Eine Vokabel kann mit der gleichen Übersetzung beliebig oft eingegeben werden. Versuche beides zu lösen…. 2. Zusatz: So wie in 1. Ist das noch nicht wirklich ein Vokabeltest. Lege daher eine neue Datei „formular_abfragen_vokabeln.php“ an, die zufällig eine Vokabel aus der Tabelle uebersetzungen auswählt und diese in der Tabelle auf der Seite anzeigt. A. Kück Seite 35 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Zusätzlich soll es ein Formularfeld zur Eingabe der passenden Übersetzung geben. Die Eingabe wird dann in einer weiteren Seite „formular_auswerten_vokabeln.php“ mit der Übersetzung , die aus der Tabelle herausgesucht wurde, verglichen und eine entsprechend Meldung wird als Antwort in einem weiteren Formular ausgegeben. Tipps: 1. Zufallszahlen mit PHP einfach über die Methode mt_rand(0,100); bestimmen, z.B. $zufall =mt_rand(50,100); wählt eine Zufallszahl zw. 50 und 100 und weist sie der Variablen $zufall zu. Zuvor muss der Zufallsgenerator gestartet werden, damit er nicht immer wieder die gleichen Werte liefert: mt_srand ((double) microtime*1000000); 2. Um zu bestimmen, wie viele Datensätze in einer Tabelle (hier Tabelle uebersicht) sind, verwende folgende Befehle: $ergebnis = $mysqli->query("SELECT id FROM uebersicht"); $anzahl_ds = mysqli_num_rows($ergebnis); Aber die ids sind nicht immer von 0 bis $anzahl_ds durchnummeriert, daher die zufällige id bestimmen über: $i = 0; while($zeile = $ergebnis->fetch_object() AND $i < $zufall){ $id = $zeile->id; $i++; } Falls du ein wenig mehr Hilfestellung brauchst, hier ein paar Formulare zum Anfang: formular_abfragen_vokabeln.php formular_auswerten_vokabeln.php Zusatz: Es können auch mehrere richtige Übersetzungen zugelassen werden. Überlege dir, wie du sicherstellen kannst, dass mit allen möglichen Übersetzungen abgeglichen wurde. Man könnte auch noch die Sprachen einbeziehen oder bestimmte Kategorien einfügen zu den Vokabeln und dann nur bestimmte Kategorien abprüfen. Man könnte auch ein zusätzliches Attribut „falsch“ einfügen, welches solange auf false bleibt, bis die Vokabel korrekt wieder gegeben wurde – oder einen Zähler, der falsche Antworten zählt und je größer der Zähler oder wenn das Attribut auf false ist, nur dann wird es bei der Abfrage weiterhin angezeigt. So kann man den Vokabeltrainer noch weiter verbessern. Vielleicht fallen dir selbst ja auch noch Verbesserungen ein – die du dann auch umsetzen solltest. Jetzt kann man also neue Daten in die Tabellen einfügen und auch Daten aus den Tabellen herausfiltern. Fehlt noch das Ändern von Datensätzen und das Löschen von Datensätzen. Aufgabe 8.4. Zusatz: Lege weitere Formulare an, um Datensätze zu ändern oder zu löschen, die Eingaben sollen dann natürlich auch auf die Datenbank einwirken und die Ergebnisse der Änderung sollen anschließend in einer Tabelle dargestellt werden. A. Kück Seite 36 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Es wäre auch schön, eine gemeinsame Menüstruktur zu haben, so dass man wählen kann, ob man Datensätze eingeben, ändern oder löschen möchte oder ob man den VokabelTrainer starten will. Was musst du können am Ende von Modul 8: 1. Ein Formular zusammenstellen können, um Daten aus einer Website aufnehmen zu können. 2. Den Unterschied zwischen POST und GET begriffen haben. 3. Begriffen haben, welchen Weg die Daten nehmen, die in ein Formular vom Benutzer eingegeben werden. 4. Verstehen, wie die Daten aus einem Formular verarbeitet werden. 5. Einfach PHP Befehle verstehen und anwenden können a. $_POST – Variablen b. Code PHP und HTML mixen können c. PHP Code in Webseiten ausgeben („echo“) d. Array-Variablen kennen und verstehen, wie man sie bildet. 6. Daten, die von einem Formular geschickt wurden aufnehmen können, etwas damit tun können und sie anschließend erneut in einer Website ausgeben können. 7. Wissen, was eine Datenbank eigentlich ist. 8. MySql und PHP-MyAdmin als Datenbank bzw. Oberfläche zur Datenbankverwaltung verwenden können. 9. Formulare zum Filtern, Einfügen, Ändern und Löschen erzeugen können, die Abfragen entsprechend an die Datenbank weiterleiten können und die Änderungen anschließend in einem HTML Formular anzeigen können. A. Kück Seite 37 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 9 - Zusammenfassung Tipps zum Programmieren Regel 1 Nicht einfach dumm drauf los „coden“ Mache dir immer erst ein paar Gedanken und Skizzen, was dein Programm tun und können soll und bringe die einzelnen Teile in Beziehung. Bei Datenbanken stelle unbedingt zuerst ein ERM auf. Regel 2 Kommentiere deinen Code Programmcode muss kommentiert sein. Es kann immer mal sein, dass du ihn später erweitern willst oder jemand anders das tun möchte, dann sollte man nicht endlos Zeit damit verbringen müssen, deinen Code zu verstehen und warum welche Zähler was tut etc. Regel 3 Vergib sinnvolle Namen Ähnlich wie das Kommentieren macht das deinen Code wesentlich lesbarer und leichter verständlich. Regel 4 Lernen durch Nachvollziehen und Verstehen Du musst das Rad nicht immer wieder neu erfinden – es ist völlig okay, sich Teile aus anderen Programmen zu kopieren – aber eben nur Teile und auch nur dann, wenn du verstanden hast, was du da kopierst und es sinnvoll und mit Verstehen in deinen Code einbauen kannst. Regel 5 Rückversichern und Testen Bevor du ein Programm fertig stellst, musst du es unbedingt testen – und rechen immer mit einem dummen User, der unmögliche Eingaben macht. Es gibt sogar Entwurfsmodelle, bei denen man zu jedem kleinen Code-Stück sofort einen Test entwickelt und den Code dagegen testet. Regel 6 Weiter lernen Hier im Skript ist nur ein Anfang gegeben, es gibt eine Menge mehr zu PHP, SQL und Datenbanken allgemein zu lernen und man kann tolle Projekte damit machen. Probiere es doch einfach mal aus – traue dich auch mal allein an neue Sachen ran. Aufgabe 8.1. Schaue dein Projekt durch und vergleiche, ob du alle wesentlichen Regeln beachtet hast. Wenn nicht, passe dein Programm entsprechend an. A. Kück Seite 38 Kü /Info 10 Skript Datenbanken SJ 2014/2015 Modul 10 - Datenbanken – Sicherheit der Daten im Internet Aufgabe 9.1. Diskutiere die Vor- und Nachteile, persönliche Daten im Internet zu speichern. Wie sicher sind die Daten? Wie kann man die Sicherheit vielleicht erhöhen? Wie werden die Daten an die Datenbank übertragen? Kann man Daten, die an die Datenbank übertragen werden verschlüsseln? Wichtig: Formuliere alles in eigenen Worten!!!! A. Kück Seite 39