IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

68
IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-Basics WS 08/09

Transcript of IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Page 1: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

IT-Zertifikat der Phil.Fak

Kurs 2: Allgemeine Technologien II

Patrick Sahle XML-Basics WS 08/09

Page 2: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Organisatorisches

• Zeiten und Pausen

• IT-Zertifikat

• Teilnehmer

• WLan läuft? XAMPP läuft?

• Literatur?

• Kursprojekt, Kursziel

• Didaktische Mantras• Skills not Knowledge

• Konzepte, nicht Syntax

• Hilfe zur Selbsthilfe (Finden Sie die Lösungen selbst!)

• CPs und Arbeitsaufwand; Noten

• "Klappe zu" heißt Klappe zu!

• Fragen?

Page 3: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Kursinhalte

• Netzwerke• Internet-Grundtechnologien• ein Schritt zurück: HTML/CSS

• Programmieren am Beispiel: PHP• Online-Datenbanken: MySQL

Page 4: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Beispielprojekt• "Pimp my Book"

• http://www.injoest.ac.at/projekte/laufend/mittelalterliche_judenurkunden/• http://www.injoest.ac.at/upload/Regesten_Text(1).pdf• http://www.injoest.ac.at/upload/Regesten_Anhang(1).pdf• Worum geht es hier? Was ist das? Wie funktioniert das?

• Zielstellungen• Verwandeln Sie ein digitalisiertes Buch in eine interaktive Online-

Anwendung auf der Basis von PHP und MySQL

• Lösungsbeispiele mit anderen Technologien (X)• http://itzert.phil-fak.uni-koeln.de/Kurs4/Coutura/regesten.html• http://itzert.phil-fak.uni-koeln.de/Kurs4/Sahle/• http://itzert.phil-fak.uni-koeln.de/Kurs4/Quiring/regesten.html

• Lösungsbeispiele mit PHP(MySQL• http://localhost/Boettger/HaBoettgerSQL.php

• Im Hinterkopf: Vergleich X-Technologien vs. PHP/MySQL (Vorteile, Nachteile, Zusammenspiel)

Page 5: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• Referate:• Eike Steinhoff - entfällt• Kerstin Kropmanns

Page 6: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• Ein Computernetz ist ein verteiltes System von autonomen und räumlich getrennten Computern, die durch Datenübertragungs- und Vermittlungseinrichtungen sowie Vermittlungseinrichtungen sowie Übertragungsmedien miteinander verbunden sind.

• Funktion: verteilte Informationsspeicherung, Informationsübermittlung, Informationsverarbeitung

• Kommunikation über eine Hierarchie von Protokollen• Protokoll = Menge von Regeln, die das Verhalten von Instanzen

oder Prozessen bei der Kommunikation festlegt• Verbindungs-Auf und -Abbau, Formate, Codierungen,

Fehlererkennung

Page 7: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• Netzwerktypen:• Terminal-Netz, Peer-to-Peer-Netz, Client-Server-Netz

• Klassifikation von Netzen durch Übertragungskapa-zität und räumliche Aus-dehnung

• PAN (Personal Area Network)• LAN (Local Area Network)• SAN (Storage Area Network)• MAN (Metroplitan Area Network)• WAN (Wide Area Network)• GAN (Global Area Network)

Page 8: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• OSI-Referenzmodell• Open Systems Interconnection Reference Model• … "geschichtete Kommunikationsarchitektur" …

Page 9: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• DoD-Schichtenmodell• Department of Defense - Schichtenmodell

Page 10: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• OSI-Schichten und DoD-Schichten

Page 11: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Netzwerke

• Lokale Netzwerke• HUB, Router, Switch• Server, Firewall• Zentrale Dienste, Speicherverwaltung, Nutzer-

und Rechteverwaltung, Druckerverwaltung etc.• Software: Netware (z.B. Novell Netware), Groupware

Page 12: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Internet-Grundtechnologien

• Referate: • Tibor Toth:

• Client-Server-Architektur• Alexander Recht:

• Mailprotokolle• Fabian Heerbaart:

• DNS• HTTP

Page 13: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Internet-Grundtechnologien

• DNS• Domain Name System• Auflösung eines Hostnamen zu einer IP-Adresse• Verteilter Verzeichnisdienst zur Verwaltung des Namensraums des

Internets• Hierarchische Struktur des Namensraums (Baum)

• TLD = Top Level Domain• Hierarchie der Nameserver (Software / Hardware)• Domains: Registrierungsorganisationen; IP-Adressen: Provider

• Konsole: nslookup; Browser: www.whois.net, www.denic.de• Beispiel: www.i-d-e.de (whois.net - dig) ide.uni-koeln.de

Page 14: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Internet-Grundtechnologien

• http• Hypertext Transfer Protocol• OSI-Modell: Anwendungsschicht, setzt auf Transportschicht

(TCP) bzw. Vermitlungsschicht (IP) auf • HTTP-Request und HTTP-Response• Request:

• Host + Anfrage• GET, POST plus weitere Request-Methoden

• Response:• Statuscodes• HTTP-Header und HTTP-Body

• https – sichere Kommunikation zwischen Client und Server durch zusätzliches Verschlüsselungsprotokoll zwischen den Protokollschichten http und TCP.

• Beispiel: www.ide.uni-koeln.de – Firefox Live Headers

Page 15: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Internet-Grundtechnologien

• GET und POST• Übertragung zusätzlicher Informationen bei einem http-Request• GET

• Informationen als Teil der URL• http://www.regesten.org/rgjoem/regesten.php?nummer=123• Übergabe von Paaren aus Argument und Wert

• POST• Informationen im Body-Teil des HTTP-Requests• Übergabe von Paaren aus Argument und Wert

• Beispiel: Live Header zu localhost/Kurs/For-Schleife-1.php

Page 16: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Ein Schritt zurück: HTML, CSS, Javascript

• Referat:• Philipp Wolfram

Page 17: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Ein Schritt zurück: HTML, CSS, Javascript

• Wissensstand?• Ggf. Schnellkurs

• Grundkonzepte• Aufbau einer HTML-Datei• Struktur eines HTML-Body• Wichtige Elemente• CSS-Konzepte• Javascript, DOM

• Alles, was Sie brauchen finden Sie hier:• http://de.selfhtml.org/html/index.htm• http://de.selfhtml.org/css/index.htm

Nützlich: Firebug-Plugin für Firefox

Page 18: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Übungen: HTML und CSS

• Erstellen Sie aus einem Regest eine HTML-Seite (mit assoziierter CSS-Datei)

• Erstellen Sie eine Projekt-Startseite (mit Auswahlmenüs und ggf. Eingabefeldern)

• Besprechung der Entwürfe

Page 19: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Einstieg in PHP

• Referat: • Faatin Hegazi

Page 20: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Einstieg in PHP

• Rekursives Akronym: PHP Hypertext Preprocessor• PHP als Programmiersprache für dynamische Webseiten

• Stärken: Einfachheit, Serverintegration, Datenbankanbindung• Interpretierte Sprache (PHP-Interpreter auf dem Server)• Schwache und dynamische Typisierung• Mögliche Einbindung in HTML-Code

• HTML wird serverseitig vorverarbeitet (PHP-Teile werden ausgeführt und dabei ersetzt)

• Vergleich zu Javascript und Perl• Aktuelle Version: 5.2.8

Page 21: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP schreiben: Editoren

• Grundsätzlich: PHP-Code ist Text und kann mit einem beliebigen Editor geschrieben werden

• Allgemeine Editoren• vi, emacs

• Editoren für andere Zwecke• Dreamweaver, oXygen

• Spezielle PHP-Editoren (IDEs) • Maguma Open Studio, ZEND Studio, PHPEclipse,

KDevelop, PHPEdit, NuSphere PhpED etc.

Page 22: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Grundlegendes in PHP

• Referat: • Johannes Lenz

Page 23: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Grundlegendes in PHP

• Befehle mit ; abschließen !!!• Kommentare

• // einzeilige Kommentare (auch: #)• /* … */ mehrzeilige Kommentare

• Strings in doppelten Anführungszeichen ("… hier werden Anweisungen noch ausgewertet …")

und einfachen Anführungszeichen ('… hier wird wirklich alles als String behandelt …')

• Schachtelung von Anführungszeichen

Page 24: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Grundlegendes in PHP

• Konstanten und Variablen• Datentypen (Zahlen, Strings, Booleans, Objekte)• Keine strenge Typisierung

• Variablen können typisiert werden, Typen können umgewandelt werden, PHP versucht Funktionen anzuwenden

• $variable = wert• Namenskonventionen: Keine Leerzeichen; nur Buchstaben, Zahlen

und Unterstrich; reservierte Wörter! • Gültigkeitsbereich von Variablen

• lokal (in Funktionen), global, superglobal (Systemvariablen, z.B. $_GET)

• Arrays• numerisch indizierte Arrays

• $var = array("1","2","3") auch: $array[n] = "wert"• assoziative Arrays

• $var = array("nr"=>001, "datum"=>"1323")• ein- und mehrdimensionale Arrays

Page 25: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Grundlegendes in PHP

• Operatoren• arithmetisch (+ - * / )• Inkremente/Dekremente (++ --)• logisch (AND, OR, !)• Vergleiche (>, <, <=, ==, !=)• Zuweisungen (=, viele andere)• Verkettung ( . ) ("Konkatenation")• … viele weitere

Page 26: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Grundlegendes in PHP

• Kontrollstrukturen und Schleifen• if if ( Bedingung ) { Anweisungsblock }• if-else if ( Bedingung ) { Anweisungsblock TRUE}

else { Anweisungsblock FALSE}• if-elseif-else• switch switch ( Ausdruck ) {

case Wert1: Anweisungsblock … break; case Wert2: Anweisungsblock … break; … default: Anweisungsblock … break; }

• for for (Initialisierung; Bedingung; Änderung) { Anweisungsblock } Bsp: for ($i=1; $i<10; $i++) {echo "$i";}

• while while ( Bedingung ) { Anweisungsblock } • foreach foreach (array as $wert) { Anweisungsblock }

Page 27: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP in HTML

• Referate:• Anna Job• Angela Brinck

Page 28: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP in HTML

• PHP-Code kann beliebig in einer HTML-Datei "eingestreut" werden

• PHP-Code wird bei der Ausführung durch das Ergebnis des Codes ersetzt

• PHP-Code kann durch HTML unterbrochen werden

Page 29: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP Code-Konventionen

• Keine Vorschriften, nur Empfehlungen!• Benutzen Sie sprechende Bezeichner• Trennen Sie Teil-Namen durch Unterstrich

oder großen Anfangsbuchstaben• Rücken Sie hierarchisch ein (Tabs benutzen)• Kommentieren Sie!

Page 30: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP Poor Man's Debugging

• Immer ein Semikolon am Ende?• Alle Klammern geschlossen?• Anführungszeichen geschlossen?

• … und korrekt geschachtelt?• Alle Variablen direkt anzeigen lassen

• echo "Wert: $var";• print_r($array);

Page 31: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP-Übungen

• Hallo Welt (HelloWorld.php)

• Ein Auswahlmenü• Ohne Funktionalität (For-Schleife.php)

• live-Header?!

• Mit Rückmeldung (For-Schleife-1.php)

• Mit Beibehaltung des ausgewählten Wertes (For-Schleife-2.php)

• GET statt POST (For-Schleife-3.php)

• Den submit-Button loswerden (Javascript) (For-Schleife-4.php)

• Ein Suchfeld (Suchfeld.php)

• Leeres Submit abfangen (todo)

• Ein Array benutzen• Datum der ersten zehn Regesten; Gib zu einem angefragten

Regest das Jahr zurück (todo)

Page 32: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Funktionen in PHP

• Referat: • Arne Schunack (entfällt)

Page 33: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Funktionen in PHP

• Funktionen werden aufgerufen, es wird ihnen etwas übergeben und sie liefern etwas zurück

• $variable = funktion (wert1, wert2, …)• Es gibt viele vorgefertigte Funktionen• Funktionsreferenz: http://de3.php.net/manual/de/funcref.php

• Z.B. Dateisystem (fopen, fgets)

• Z.B. Textverarbeitung, Zeichenketten (substr)

• Z.B. Variablen, Arrays (shuffle)

• Funktionen können selbst definiert werden• function meineNeueFunktion (Parameter1, Parameter2, …) {

Anweisungen;return $rückgabe

}• Einbindung externer Funktionsbibliotheken mit include

Page 34: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP-Übungen

• phpinfo ()• Datei auslesen

• Drop-Down Jahrzehnte (mit Jahrzehnte.txt; Datei_auslesen.php)• Drop-Down Jahrzehnte (mit JahreNummern.txt; Datei_auslesen-1.php)• Vollständiges Regest in Array umwandeln

• Mit explode (Explode.php, baut auf For-Schleife-4.php auf und nutzt regest1.txt)

• Mit while ein assoziatives array aufbauen (ArrayAusDatei.php)• Ausgabe verschönern; Weitere Auswertungen; Kommentare an Datei anhängen lassen

• Eine eigene Funktion schreiben• Schreiben Sie eine Funktion, die regest1.txt öffnet und den Inhalt als

assoziatives Array zurückgibt

Page 35: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

MySQL – Einstieg, Allgemeines, Konzepte

• Referat: • Timo Coutura

Page 36: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

MySQL – Einstieg, Allgemeines, Konzepte

• Zusammenfassung

Page 37: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

MySQL – Einstieg, Allgemeines, Konzepte

• Tabellentypen• http://dev.mysql.com/doc/refman/5.1/de/storage-engines.html

• Datentypen für Attribute / Eigenschaften / Spalten• http://dev.mysql.com/doc/refman/5.1/de/data-types.html• http://www.schmager.de/mysql.php• http://www.grammiweb.de/uebersichten/mysql-datentypen.shtml

• Optionen für Spalten• NULL / NOT NULL• DEFAULT• PRIMARY KEY• AUTO_INCREMENT

Page 38: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

MySQL – Einstieg, Allgemeines, Konzepte

• Beziehungen zwischen Tabellen• Konzept der Fremdschlüssel• Foreign-Key-Regeln

• Sichert die "Referenzielle Integrität" einer Datenbank• FOREIGN KEY (Fremdschlüsselspalte) REFERENCES Tabelle (Spalte)

Page 39: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHPMyAdmin – Erstes Arbeiten mit SQL

• Referat: Bethzy Karla Gianella Chiang - entfällt

Page 40: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHPMyAdmin – Erstes Arbeiten mit SQL

• Zusammenfassung wichtiger Aspekte

Page 41: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHPMyAdmin – Erstes Arbeiten mit SQL

• Übung: Wir erstellen eine erste Regestendatenbank

Page 42: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

SQL als Abfragesprache

• Referate • Roman Quiring• Pierre Dedy

Page 43: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

SQL als Abfragesprache

• Datenbank und Tabellen anlegen

• CREATE DATABASE [IF NOT EXISTS] Datenbank;• CREATE TABLE [IF NOT EXISTS] Tabelle (

(Spaltendefinitionen, …) [Tabellenoptionen])

• Spaltenname [verschiedene optionale Flags]• AUTO_INCREMENT, CHARACTER SET Zeichensatz, DEFAULT

Wert, NULL | NOT NULL, [PRIMARY] KEY, UNIQUE [KEY], etc. etc.• ALTER TABLE Tabelle Aktionsliste

• Verschiedene mögliche Aktionen, z.B.• ADD COLUMN (Spaltendefinitionen, …)• DROP COLUMN Spaltenname• RENAME TO Neuer_Tabellenname• … etliche weitere

Page 44: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

SQL als Abfragesprache

• Daten einfüllen, löschen, ändern …

• INSERT Tabelle [(Spalte, …] VALUES ({Wert, …})• (Es müssen soviele Values wie Spalten übergeben werden!)

• INSERT Tabelle SET Spalte={Wert}, …• DELETE FROM Tabelle WHERE Spalte=Wert

• (Löscht Zeilen)• UPDATE Tabelle SET Spalte=Wert WHERE Spalte=Wert

• (Ersetzt Werte)

Page 45: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

SQL als Abfragesprache• Daten abfragen

• Einfache Beispiele für SELECT• SELECT * FROM Tabelle

• (alle Daten der Tabelle anzeigen)• SELECT Spalte FROM Tabelle WHERE Spalte=Wert

• (suche einzelne Feldinhalte)• Auf Teile der Abfrage können Funktionen angewandt werden (z.B. count)• Ergebnisse sortieren

• SELECT Spalte FROM Tabelle ORDER BY Spalte• Daten können aus mehreren Tabellen kommen … ( "joins")

• SELECT * FROM Tabelle, Tabelle• SELECT * FROM Tabelle, Tabelle WHERE

Tabelle.Spalte=Tabelle.Spalte• (Tabellen werden über ein gemeinsames Feld zusammengeführt)

• … verschiedene Formen von "joins"• Selects können verschachtelt werden (Sub-SELECTs)

Page 46: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP und MySQL (Anbindung und Kommunikation)

• Referat: • Christoph Stollwerk

Page 47: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP und MySQL (Anbindung und Kommunikation)

Eigentlich ganz einfach …

<html><body>

<?php mysql_connect("","root");mysql_select_db("regesten1"); // selbst das kann man sich sparen$res = mysql_query("select * from texte");while ($zeile = mysql_fetch_array($res)) {

echo "$zeile[0] - ";echo "$zeile[Datum]<br/>";

}?>

</body></html>

SQL-Abfrage-minimal.php

Page 48: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP und MySQL (Anbindung und Kommunikation)

Im einzelnen …

• Kontakt aufnehmen: mysql_connect($server,$Benutzername,$Benutzerpasswort)

• Verbindung schließen: mysql_close($verbindung)• Permanente Verbindung: mysql_pconnect(…)

Page 49: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP und MySQL (Anbindung und Kommunikation)

Im einzelnen …

• Datenbank auswählen: mysql_select_db($datenbankname)

Page 50: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP und MySQL (Anbindung und Kommunikation)

Im einzelnen …

• Daten aus der Datenbank holen: mysql_query(" SQL-Anfrage ")

Page 51: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP und MySQL

(Anbindung und Kommunikation)

• Übungen• Kontakt aufnehmen• Etwas ausgeben

Page 52: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Datenbank-Design und Normalisierung

• Referat:• Camilla Ottnad

Page 53: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Datenbank-Design und Normalisierung

• Begriffe: Datenbank und Datenbankmanagementsystem• Datenbankentwurf

• Modell eines Teilbereichs der Realität• Vermeidung von Redundanz• Effizienz der Datenverwaltung und Datenverarbeitung

• Das relationale Datenbankmodell• Tabellen und Relationen statt …

• Hierarchien (Hierarchisches Modell)• Netzwerke (Netzwerkmodell)• Objekte (Objektorientiertes Modell)

Page 54: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Datenbank-Design und Normalisierung

• Tabellen• Jeder Zeile ein Datensatz (Entität, Tupel)• Jede Spalte eine Eigenschaft (Attribut)• Jede Zelle ein Wert

• Tabellen sind Relationen• Tabellen modellieren Objekte (Objekttypen)• Mehrere Tabellen können verbunden sein (Beziehungen)

• Primärschlüssel• Fremdschlüssel

• 1:1-Beziehung• 1:n-Beziehung• n:m-Beziehung

Page 55: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Normalisierung

•Problemlage• Redundanz • Gefahr von Anomalien durch Änderung (update-

Anomalien), Einfügen (insert-Anomalien) oder Löschen (delete-Anomalien)

•Lösung• "Normalisierung"• Zerlegung von Relationen• 5 Normalformen• … für die es viele verschiedene Formulierungen gibt

Page 56: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Normalisierung

• Erste Normalform:

Jeder Datensatz hat eine eindeutige Identifizierung (ggf. über mehrere Felder)

Jedes Datenfeld beinhaltet nur einen (atomaren, nicht zusammengesetzten) Wert

Attribute sollen sich in einem Datensatz nicht wiederholen

Page 57: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Normalisierung

• Zweite Normalform:

Wenn sich Inhalte in Spalten wiederholen, dann muss die Tabelle in Teiltabellen zerlegt werden

Die Tabellen müssen durch Fremdschlüssel miteinander verbunden werden

Page 58: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Normalisierung

• Dritte Normalform:

Spalten, die nicht in unmittelbarer Abhängigkeit zum Primärschlüssel einer Tabelle stehen, müssen eliminiert werden (in eine eigene Tabelle ausgelagert werden)

Page 59: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Normalisierung

• Vierte Normalform:

Tabellen sollen nur triviale mehrwertige Abhängigkeiten enthalten

• Fünfte Normalform:

Tabellen sollen aufgespalten werden, wenn sich die ursprünglichen Relationen wieder herstellen lassen (Tabellen sollen so weit wie möglich aufgespalten werden)

Page 60: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Datenmodellierung im ERM

• Entity-Relationship-Modell• Abstraktes Modell• Visualisierung durch ER-Diagramme• Z.B. Chen-Notation …

Entitätstyp Attribut Be-ziehung abgeleitet

• Umsetzung des Modells (vom ERM zum RDM)• Entities werden zu Tabellen• Attribute werden zu Spalten• Beziehungen werden durch Schlüssel abgebildet

Page 61: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Datenbank-Theorie?

• Vor und Nachteile relationaler Datenbanken gegenüber anderen Datenbankmodellen?

• Was sind die zu erwartenden Probleme bei der Umsetzung des Kursmaterials in eine relationale Datenbank?

Page 62: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Kursprojekt Regesten-Datenbank

• Übung: Remodellieren der Regesten-Datenbank• Probleme des ersten Entwurfs beseitigen• Hilfsmittel zur Modellierung (in phpMyAdmin, SQL

Workbench)

Page 63: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Kursprojekt Regesten-Datenbank

• Datenbank mit Inhalt füllen• Automatisationspotentiale?

Page 64: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Kursprojekt Regesten-Datenbank

• Inhalte auslesen und präsentieren• Auswahllisten herstellen• Regestpräsentation herstellen• Register generieren• Weiterführende Links einbauen• Suche über alles / Suche über bestimmte Felder

Page 65: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

Das finale Kursprojekt

• Übungen: Realisierung des Kursprojekts• Welche Seiten brauchen wir?

Page 66: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP für Fortgeschrittene:Objektorientierte Programmierung und OOP in PHP

• Referate: • Manuel Carlos Lenz• Benjamin Gelhaar

Page 67: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP für Fortgeschrittene:Sicherheitsfragen

• Referat: • Bastian Odenthal

Page 68: IT-Zertifikat der Phil.Fak Kurs 2: Allgemeine Technologien II Patrick Sahle XML-BasicsWS 08/09.

PHP für Fortgeschrittene(was wir hier nicht vertieft behandeln)

• Eigene Funktionen definieren• [Objektorientierte Programmierung]• Frameworks• PEAR (PHP Extension and Application Repository)

• XML-Verarbeitung• [Sicherheitsfragen (PHP, MySQL, Server)]