Datenbanken ... ein Schnelldurchlauf.

Slides:



Advertisements
Ähnliche Präsentationen
Einführung "Datenbanksysteme"
Advertisements

ER-Datenmodell und Abfragen in SQL
Datenbankdesign mit ACCESS.
Datenbanken Einführung.
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Wieso gibt es diese Unterrichtseinheit?
MySQL.
Kapitel 3: Das Relationenmodell
Datenbanken I (0,*) Produkt 3 Karczewski Datenbanken I.
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
MySQL Der Einstieg.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Übung Datenbanksysteme SQL-Anfragen (2)
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Seminar: Verteilte Datenbanken
Einführung Dateisystem <-> Datenbanksystem
Was ist eine Datenbank? ermöglicht die Eingabe von Daten
Datenmodellierung - Aufbau einer Datenbank -
Fachbereich Mathematik/Informatik Universität Osnabrück
Einführung MySQL mit PHP
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Netzwerke Peer-to-Peer-Netz Client-Server Alleinstehende Server
SQL-Tutorium Ernst Rodlmayr.
... und alles was dazugehört
Wir bauen uns eine Webapplikation!
Gegenstand EDV Thema: Informative Webseiten
Datenbanken?.
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Datenbank.
Informationssysteme / Datenbankabfragen
Einführung in Datenbanken
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
Datenbanken und Datenmodellierung
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
CGI (Common Gateway Interface)
Allgemeines zu Datenbanken
(D.h. „Hallo MausFans!“ auf Japanisch).
Replikation und Synchronisation
Datenbanksysteme für hörer anderer Fachrichtungen
DI (FH) DI Roland J. Graf MSc (GIS) U N I V E R S I T Ä T S L E H R G A N G Geographical Information Science & Systems UNIGIS.
Freiwillige Feuerwehr der Stadt Perg
Vorlesung #10 Physische Datenorganisation
verstehen planen bearbeiten
Trust and context using the RDF- Source related Storage System (RDF‑S3) and easy RQL (eRQL) Karsten Tolle und Fabian Wleklinski.
MS Office Access 2007 UM für INI. Sie haben viele Daten? Entscheiden Sie sich für Access. Access verarbeitet Daten, und zwar alle Arten von Daten: Kundenkontakte,
Structured Query Language
HEX-code für die Farbe weiß: #FFFFFF Änderung von Inhalt & Darstellung Inhalt & Darstellung HTML Javascript CSS.
->Prinzip ->Systeme ->Peer – to – Peer
Einführung Dateisystem <-> Datenbanksystem
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
Datenbanken im Web 1.
Datenbank System (DBS) - Warum?
Was ist eine Datenbank „MS Access“
Wordpress 4.0 oder: Wie man ein CMS benutzt und administriert.
SQL Basics Schulung –
Anforderungen an ein Datenbanksystem
SQL Join.
oder: Wie man ein CMS benutzt und administriert.
Einführung "Datenbanksysteme"
Von Wietlisbach, Lenzin und Winter
Datenbanksystem Von Anna und Robin.
Präsentation von Darleen und Michèle
Von Wietlisbach, Lenzin und Winter
Administrieren und Arbeiten mit Datenbanken und SQL
(Structured Query Language)
 Präsentation transkript:

Datenbanken ... ein Schnelldurchlauf

Aspekte des Themas Datenbanken Auswertung Suchen Ändern Löschen Verknüpfen Erweitern Sortieren Datenbank-sprache SQL Datenmaterial Web-Programmierung HTML+CSS+PHP modellieren Nutzung Objekt Attribute ER-Modell 1 n Daten-bank system Datenmodellierung Physikal. Speichern Anforderungen tabellarisch strukturieren Vermeidung von Redundanzen und Anomalien Datenschutz (Sichten) Mehrbenutzer- betrieb Zugangs- berechtigung Konsistenz (logisch korrekt) implementieren Tabelle Tabelle Zeilen Spalten Zeilen Spalten (Objekte) (Attribute) Relationale DB optimieren und normalisieren

Thema Datenbanken Wie funktionieren Datenbanken? Was genau sind Datenbanken, bzw. DBS? Wozu braucht man Datenbanken? Wie benutzt man Datenbanken? Wie entwirft man Datenbanken? Wie vermeidet man Probleme mit Datenbanken?

Wie speichert eine DB Daten Mechanischer Vorgänger Hüte Nummer: 1445-4556 Nummer: 1445-4556 Nummer: 1445-4556 Nummer: 1445-4556 Gegenstand: Schlüssel Gegenstand: Schlüssel Nummer: 1445-4556 Bücher Gegenstand: Schlüssel Nummer: 1445-4556 Nummer: 1445-4556 Gegenstand: Schlüssel Farbe: - Farbe: - Gegenstand: Schlüssel Nummer: 1445-4556 Schirme Farbe: - Gegenstand: Schlüssel Nummer: 1445-4556 Gegenstand: Schlüssel Nummer: 1445-4556 Farbe: - Funddatum: 12.09.2000 Gegenstand: Schlüssel Funddatum: 12.09.2000 Farbe: - Nummer: 1445-4556 Funddatum: 12.09.2000 Farbe: - Gegenstand: Schlüssel Nummer: 14556 Farbe: - Gegenstand: Schlüssel Funddatum: 12.09.2000 Fundort: Bahnhof Funddatum: 12.09.2000 Farbe: - Gegenstand: Schlüssel Fundort: Bahnhof Fundort: Bahnhof Funddatum: 12.09.2000 Farbe: - Art: Schlüssel Funddatum: 12.09.2000 Farbe: - Fundort: Bahnhof Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof Funddatum: 12.09.2000 Finder: Hegi Roger Finder: Hegi Roger Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof Funddatum: 12.09.2000 Farbe: - Farbe: - Fundort: Bahnhof Funddatum: 12.09.2000 Finder: Hegi Roger Finder: Hegi Roger Brandweg 12 Seeweg 12 Seeweg 12 Brandweg 12 Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof Funddatum: 12.09.2000 Brandweg 12 Seeweg 12 Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof Funddatum: 12.09.2000 Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof Seeweg 12 Brandweg 12 9876 Zuchwil Brandweg 12 Seeweg 12 Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof 9876 Zuchwil 9876 Zuchwil Seeweg 12 Brandweg 12 Finder: Hegi Roger Finder: Hegi Roger Fundort: Bahnhof Brandweg 12 Seeweg 12 Finder: Hegi Roger Finder: Hegi Roger 9876 Zuchwil 9876 Zuchwil Seeweg 12 Brandweg 12 Finder: Hegi Roger Finder: Hegi Roger 9876 Zuchwil Seeweg 12 Brandweg 12 Finder: Hegi Roger Finder: Hegi Roger 9876 Zuchwil Brandweg 12 Seeweg 12 9876 Zuchwil Seeweg 12 Brandweg 12 9876 Zuchwil Brandweg 12 Brandweg 12 9876 Zuchwil 9876 Zuchwil 9876 Zuchwil

Grosse, digitaleTabellen Eigentlich wie in Excel Nur besser – eine einheitliche Abfragesprache liefert mir genau die Daten, die ich brauche Fundstücke Anzahl Art Farbe Funddatum Fundort Finder 1 Schirm Blau 08.13.2000 Bus Nr.12 Roger Stalder 9876 Neuhausen 4 Schlüssel - 09.12.2000 Bahnhof Hegi Roger Brandweg 12 9876 Zuchwil 2 Schrim & Schal bunt 21.05.2009 Hauptbahnhof Hegi Roger Brandweg 12a/7 9876 Zuckwil

Wie speichert eine DB Daten Nummer: 14555 Art: Schlüssel Nummer: 14556 Name: Kunz Vorname: Andy Adresse: Waldweg 12 9876 Zuchwil Tel.: 145’78’99 Geb.: 15.September 1974 Farbe: - Art: Schlüssel Funddatum: 12.09.2000 Farbe: - Fundort: Bahnhof Funddatum: 12.09.2000 Finder: Hegi Roger Fundort: Bahnhof Brandweg 12 Finder: Hegi Roger 9876 Zuchwil Brandweg 12 9876 Zuchwil

Elemente einer Tabelle Tabelle, Entitätsmenge Zeile, Datensatz, Entität Eigenschaftswerte ~ Domain Attribute, Eigenschaften Schlüsselattribut, Hauptschlüssel Tabellenname Fundstücke Nummer Art Farbe Funddatum Fundort Finder 14555 Schirm Blau 08.13.2000 Bus Nr.12 Stalder Roger Wichleren 8779 Neuhausen 14556 Schlüssel - 09.12.2000 Bahnhof Hegi Roger Brandweg 12 9876 Zuchwil 14557  ...

Relationsschema Tabelle, Entitätsmenge Zeile, Datensatz, Entität Eigenschaftswerte Tabellenname Attribute, Eigenschaften Schlüsselattribut, Hauptschlüssel Fundstücke{Nummer, Art, Farbe, Funddatum, Fundort, Finder}

ER-Diagramm Tabelle, Entitätsmenge Nummer Fundort Fundstücke Farbe Zeile, Datensatz, Entität Eigenschaftswerte Schlüsselattribut, Hauptschlüssel Tabellenname Attribute, Eigenschaften Fundstücke Farbe Finder Art Fundort Nummer Funddatum

Definition einer Tabelle Tabelle, Entitätsmenge Zeile, Datensatz, Entität Eigenschaftswerte Attribute, Eigenschaften Schlüsselattribut, Hauptschlüssel Tabellenname Fundstücke Attribut Beispiel Typ? Schlüssel? Obligatorisch? Extras? Nummer: 14556 Art: Schlüssel Farbe: - Funddatum: 12.09.2007 Fundort: Bahnhof Finder: Hegi Rütli Brandweg 12 9876 Zuchwil

Übungsaufgabe Buch Attribut Beispiel Typ? Schlüssel? Obligatorisch? Extras? Sie wollen mithilfe eines DBS eine Anwendung zur Bibliotheksverwaltung erstellen. Definieren Sie eine Tabelle, in die alle wichtigen Eigenschaften der Bücher eingetragen werden können. Implementieren sie diese Tabelle in phpMyAdmin und tragen sie mindestens 5 Datensätze ein

Probleme mit Tabellen Welche (potentiellen) Probleme sehen Sie mit der untenstehende Tabelle? Fundstücke Anzahl Art Farbe Funddatum Fundort Finder 1 Schirm Blau 08.13.2000 Bus Nr.12 Roger Stalder 9876 Neuhausen 4 Schlüssel - 09.12.2000 Bahnhof Hegi Roger Brandweg 12 9876 Zuchwil 2 Schrim & Schal bunt 21.05.2009 Hauptbahnhof Hegi Roger Brandweg 12a/7 9876 Zuckwil

Schon besser Aber was machen wir mit der Redundanz? Fundstücke ID Anzahl Art Farbe Funddatum Fundort Vorname Nachname Adresse 17 1 Schirm Blau 08.13.2000 Bus Nr.12 Roger Stalder 9876 Neuhausen 18 4 Schlüssel - 09.12.2000 Bahnhof Hegi Brandweg 12 9876 Zuchwil 19 Schrim bunt 21.05.2009 Hauptbahnhof Brandweg 12a/7 9876 Zuckwil 20 Schal braun Aber was machen wir mit der Redundanz?

Einschränkungen der Eigenschaftswerte Fundstücke Attribut Beispiel Typ? Schlüssel? Obligatorisch? Extras? Nummer: 14556 int ja auto incr. Art: Schlüssel char nein Farbe: - Funddatum: 12.09.2007 date auto? Fundort: Bahnhof Finder: Hegi Rütli Brandweg 12 9876 Zuchwil Warum ist das wichtig? technisch: Speicherplatz reservieren, etc. logisch: Fehler vermeiden

Redundanz vermeiden Eine sauber designte Datenbank enthält keine Redundanzen. Die Idee ist es, einen Ausschnitt der Realität abzubilden (modellieren), und da gibt es dieselbe Information ja auch nicht mehrfach. Gründe für das Vermeiden von Redundanz: Speicherplatz sparen Vermeidung von Anomalien Es ist gerade die Grundidee von Relationalen Datenbanken, genau die richtige Art von Information durch die (z.B. mySQL-) Abfrage zusammenzusuchen  Viele Tabellen, relationale Datenbanken

Relationale Datenbanken Fundstücke{ID, Anzahl, Art, Farbe, Funddatum, Fundort, ↑FinderID} Fundstücke ID Anzahl Art Farbe Funddatum Fundort FinderID 17 1 Schirm Blau 08.13.2000 Bus Nr.12 12 18 4 Schlüssel - 09.12.2000 Bahnhof 7 19 Schrim bunt 21.05.2009 Hauptbahnhof 20 Schal braun Fremdschlüssel, verweist auf den Hauptschlüssel einer anderen Tabelle Finder ID Vorname Nachname Strasse Hausnummer Zusatz PLZ Ort 12 Roger Stalder 9876 Neuhausen 7 Hegi Brandweg a/7 Zuchwil Finder{ID, Vorname, Nachname, Strasse, Hausnummer, Zusatz, PLZ, Ort}

http://dev.mysql.com/doc/refman/5.5/en/select.html

SQL-Abfragen mit mehreren Tabellen c 1 2 3 4 5 6 S d e 3 7 5 8 6 9 R x S a b R.c S.d e 1 2 3 7 5 8 6 9 4 Schreibweise in mySQL: SELECT * FROM R,S WHERE R.c=S.d AND e < 8 mySQL in Kürze: R x S ist ein Karthesisches Produkt zusammen mit einer Selektion wird ein Verbund (Join) daraus sonst gibt es nur noch die Projektion (z.B. SELECT a,e) Achtung, identische Datensätze werden nur einmal zurückgegeben!!!!! zusätzliche Selektionen können mit AND angefügt werden

SQL-Abfragen mit mehreren Tabellen SELECT * FROM R JOIN S ON R.c=S.d R a b c 1 2 3 4 5 6 S d e 3 7 5 8 6 9 R x S a b R.c S.d e 1 2 3 7 4 5 6 9 R x S a b R.c S.d e 1 2 3 7 null 5 8 4 6 9 SELECT * FROM R RIGHT JOIN S ON R.c=S.d mySQL in Kürze: mehr hierzu, Arbeitsblatt erstellen z.B. mySQL Befehle vorgeben und entziffern lassen mySQL Befehle erstelle um bestimmte Zeilen eines Karthesischen Produkts auszugeben... ein JOIN kann auch direkt erzeugt werden JOIN ... ON ... vermeidet das Erstellen der grossen (Verbund-)Tabelle die Alternativen RIGHT JOIN und LEFT JOIN ergeben auch dann eine Zeile, wenn das ON-Attribut auf der anderen Seite leer (NULL) ist

Thema Datenbanken Wie funktionieren Datenbanken? Was genau sind Datenbanken, bzw. DBS? Wozu braucht man Datenbanken? Wie benutzt man Datenbanken? Wie entwirft man Datenbanken? Wie vermeidet man Probleme mit Datenbanken?

Datenbanken verstehen ist nicht einfach, weil Sie eine all-inclusive Lösung für verschiedene Probleme mit der Datenverwaltung sind Sie für sehr verschiedenen Zwecke benutzt werden können, auf verschiedene Arten Sie mit so vielen anderen Dingen zusammenhängen, besonders bei online Gebrauch

Definition Ein Datenbanksystem (DBS) ist eine Zusammenfassung von strukturierten Daten (Datenbank, DB), die von einer speziellen Software (Data Base Management System, DBMS) verwaltet und über eine definierte Schnittstelle vielen Nutzern oder Anwendungen gleichzeitig und kontrolliert zur Verfügung gestellt werden.

Die „strukturierten Daten“ ... stellt man sich am besten als Regale oder Tabellen vor In welcher Form die Daten tatsächlich (physikalisch) gespeichert sind, ist unerheblich, da sie sowieso nur über die Schnittstelle zugänglich sind Land LNR Name Einwohner Hauptstadt Kontinent DK Dänemark 5.16 Kopenhagen Europa D Deutschland 81.34 Berlin Europa IND Indien 761.00 Delhi Asien RWA Rwanda 6.30 Kigali Afrika … … … … …

Schnittstelle SQL SQL = Structured Query Language. Bezeichnet eine Sprache zur Kommunikation mit Datenbanken. Ist international genormt und wird von vielen DBS verstanden. Wird im Folgenden zur Formulierung von Abfragen eingesetzt. Syntax einer (einfachen) SQL-Abfrage: SELECT [Spalten] FROM [Tabelle] WHERE [Bedingung] ORDER BY [Attribute]; Die WHERE- und die ORDER BY-Klausel sind optional. Tabelle anzeigen  SQL wird schon ausgegeben.

Datenbankzugriff - Ein erstes Beispiel SELECT Name, Einwohner, Kontinent FROM Land WHERE Einwohner > 10 Länder mit über 10 Mio. Einwohner Land LNR Name Einwohner Hauptstadt Kontinent DK Dänemark 5.16 Kopenhagen Europa D Deutschland 81.34 Berlin Europa IND Indien 761.00 Delhi Asien RWA Rwanda 6.30 Kigali Afrika … … … … … Ergebnistabelle Name Einwohner Kontinent Deutschland 81.34 Europa Indien 761.00 Asien … … …

Definition Ein Datenbanksystem (DBS) ist eine Zusammenfassung von strukturierten Daten (Datenbank, DB), die von einer speziellen Software (Data Base Management System, DBMS) verwaltet und über eine definierte Schnittstelle vielen Nutzern oder Anwendungen gleichzeitig und kontrolliert zur Verfügung gestellt werden.

Die „Verwaltung“ der Daten (DB + DBMS!) Anwendungen Schnittstelle: Structured Query Language (SQL) Datenbanksystem (DBS) Datenbank (DB) Datenbank Management System (DBMS)

Die Fundbüro Analogie Kunden Fundbüro Verwalter Fundstücke Schnittstelle??? Fundbüro Fundstücke Verwalter

Definition Ein Datenbanksystem (DBS) ist eine Zusammenfassung von strukturierten Daten (Datenbank, DB), die von einer speziellen Software (Data Base Management System, DBMS) verwaltet und über eine definierte Schnittstelle vielen Nutzern oder Anwendungen gleichzeitig und kontrolliert zur Verfügung gestellt werden.

„viele Nutzer und Anwendungen“ Einzelbenutzersysteme (z.B. Access) Verteilte DBS (z.B. Banken mit Filialen) Mehrbenutzersysteme (z.B. in Unternehmen, Lager & Verkauf) Client-Server DBS (z.B. Internetseiten) Multidatenbanksysteme (z.B. Buchungssysteme)

... „kontrolliert zur Verfügung gestellt“ Datenabstraktion (Data Abstraction) • Die Sichten (view level): In den Sichten werden Teilmengen der Daten dargestellt. Die Sichten sind auf die Bedürfnisse/Rechte der Benutzer zugeschnitten • Die logische/konzeptionelle Ebene (conceptual level): Auf dieser Ebene wird mittels eines Datenbankschemas festgelegt, welche Daten abgespeichert sind. • Die physische Ebene (physical level): Auf dieser Ebene ist beschrieben, wie die Daten auf dem Sekundärspeicher abgelegt sind.

Wieder ein Schichtenmodell Anwendungsebene (Sichten) logische Ebene (Tabellen) physikalische Ebene (Bits) Schnittstelle Schnittstelle Anwendung Betriebssystem Hardware Java (Programmierer) Bytecode (JVM) Maschinencode (CPU)

Definition Ein Datenbanksystem (DBS) ist eine Zusammenfassung von strukturierten Daten (Datenbank, DB), die von einer speziellen Software (Data Base Management System, DBMS) verwaltet und über eine definierte Schnittstelle vielen Nutzern oder Anwendungen gleichzeitig und kontrolliert zur Verfügung gestellt werden.

Anwendungen/Anwender Die Grundidee Mal wieder ein Schichtenmodell, d.h: (unabhängige) Schicht für die Verwaltung der Daten Allgemeingültige Lösung, geht für jede Art von Daten und auch für grosse Mengen Einheitliche Abfragesprache Persistente Speicherung Details müssen die nächste Schicht nicht kümmern Anwendungen/Anwender Schnittstelle SQL DBMS<->DB

Wozu braucht man Datenbanken? Vorteile Nachteile

Vorteile von Datenbanksystemen Redundanz und Inkonsistenz vermeiden durch die zentrale Datenverwaltung Dauerhafte Speicherung von großen Datenbeständen Effiziente Verwaltung von großen Datenbeständen (Speicherplatz, Zugriffsgeschwindigkeit) Einheitliche Schnittstelle (Anfragesprache) für den Zugriff auf Daten Unterschiedliche Daten können leicht verknüpft und extrahiert werden Mehrere Benutzer oder Anwendungen können gleichzeitig mit Daten arbeiten Integritätsverletzungen werden intern geregelt bzw. vermieden Verschiedenen Benutzern/Anwendungen können verschiedene Zugriffsrechte zugeordnet werden Physische Datenunabhängigkeit, Anwendungen von Modifikationen an der physischen Speicherstruktur nicht betroffen Logische Datenunabhängigkeit, Änderungen an der logischen Datenstruktur beeinflussen Anwendungen nicht Ermöglicht zentrale Strategien gegen Soft- und Hardwareausfälle (Backup)

Nachteile von Datenbanksystemen nur noch indirekter Zugriff auf Daten zusätzliche Abstraktionsebene zusätzlicher Aufwand (Datenbankserver bereitstellen, extra Anfragesprache lernen) zu grosse Datenbanken sind unpraktisch und unübersichtlich wenn es doch Probleme gibt, dann aber richtig

Wer benutzt ein DBS? und warum (nicht)? Amazon? iTunes? Wikipedia? iPhoto? Ryanair? Picasa? Ihre Bank? Flickr? Ein Chat? Google? Ein Blog? Windows? Ihr E-mail Client?

... und warum man dafür Datenbanken benötigt Web 2.0 ... und warum man dafür Datenbanken benötigt

Exkurs: Datenbanken im Internet Das Internet wird interaktiver: WEB 2.0 Inhalte (z.B. Text, Bilder, Daten,...) einer Seite werden separat gespeichert, als Datensätze in einem DBS, und erst beim Aufruf der Seite dynamisch (meist per PHP) in ein HTML-Gerüst eingebaut Damit kann der Inhalt einer dynamischen Webseite vom Benutzer abhängig gemacht werden (Identität, Rechte, Verhalten, ...) Damit kann auch der Benutzer Inhalte beitragen (Kommentare, Chats,...)

Benutzen Sie diese Elemente Benutzen Sie diese Elemente* um mithilfe eines Schaubilds zu erklären, wie ein Gästebuch (online) funktioniert * es müssen nicht alle Elemente benutzt werden, manche werden mehrfach gebraucht Zeitachse HTML Anfrage Browser statische Webseiten PHP Verarbeitung dynamische Webseiten WWW-Server mySQL Auswertung CSS Server Darstellung Datenbank Server POST/GET Client Parameterübergabe Formulare Codeübergabe

Web2.0 auf einen Blick: Browser WWW-Server Zeitachse statische Webseiten Browser dynamische Webseiten WWW-Server Datenbank Server DB DBS DBMS WWW-Server Browser weiss, wie man WWW-Server findet, versteht HTML (+ Formulare) & CSS, kümmert sich um die Darstellung, kann Parameter übergeben (POST/GET) weiss, wie man mit Datenbank Server spricht, kann Parameter auswerten und PHP verarbeiten, gibt HTML-Code an Browser weiter kann mySQL Anfragen beantworten und Daten dauerhaft speichern, kümmert sich um die Verwaltung der Daten Dateien, HTML Client Server PHP mySQL Client Server

Forms (HTML) <html><body> <form> <select> <option>Paint</option> <option>Brushes</option> <option>Erasers</option> </select> Quantity: <input type="text" /> <input type="submit" /> </form> </body></html>

HTML  PHP http://www.mywebsite.ch/process.php?item=##&quantity=##" <html><body> <form action="process.php" method="get"> <select name="item"> <option>Paint</option> <option>Brushes</option> <option>Erasers</option> </select> Quantity: <input name="quantity" type="text" /> <input type="submit" /> </form> </body></html> http://www.mywebsite.ch/process.php?item=##&quantity=##"

PHP SQL  HTML <html><body> <?php $quantity = $_GET['quantity']; $item = $_GET['item']; $result = mysql_query("SELECT price FROM goods WHERE item=$item") $price = ... echo "You ordered ". $quantity . " " . $item . ".<br />"; echo "Total price: ". $quantity*$price.<br />"; ?> </body></html>

Wo wohnen die Daten? Zeitachse Browser WWW-Server statische Webseiten dynamische Webseiten WWW-Server Datenbank Server DB DBS DBMS WWW-Server Browser HTML kann Daten enthalten, alle vom Browser dargestellten Daten müssen letztendlich in HTML eingebunden sein PHP kann Daten enthalten PHP kann auch Daten lokal lesen oder speichern, z.B. CSV, XML Datenbanken sind speziell darauf ausgerichtet, Daten zu speichern und zu verwalten Darstellung: statisch Verarbeitung: dynamisch Bereitstellung: persistent Dateien, HTML Client Server PHP mySQL Client Server

XAMPP (lokal) (www-)Server inklusive PHP Die HTML-Webseite phpMyAdmin kann lokal aufgerufen werden (über IP 127.0.0.1) und stellt ein Interface für die interaktive Datenbankabfrage zur Verfügung – kann auch benutzt werden, um SQL zu lernen XAMPP (lokal) Browser Datenbank Server (mySQL) (www-)Server (Apache) inklusive PHP DB DBS DBMS Browser Dateien, HTML Client Server PHP mySQL Client Server

NICHT beschrieben werden: Datenmodellierung Ziel: Beschreibung der Struktur großer Datenmengen (Kundendaten, Bibliotheksbestand) Beschrieben werden: - die beteiligten Objekte (Entitäten, Datensätze, ... ) - deren Eigenschaften (Attribute) - die statischen Beziehungen zwischen den Objekten (ist Teil von, ist Chef von, ..) NICHT beschrieben werden: - Abläufe, Datenflüsse oder Interaktionen, zeitliches Verhalten etc.

Datenbankentwicklung überkorrekt: Systeminformation einholen Was wird hier modelliert? Wozu wird die DB gebraucht? ER-Diagramm erstellen Was soll eine Entität im Modell sein? Wie hängen die Entitäten zusammen? Relationales Modell erstellen Attribute festlegen Haupt & Fremdschlüssel festlegen Normalisieren Redundanz vermeiden Anomalien vorbeugen Modell in Datenbank implementieren

Externes Programm (z.B. PHP) startet Abfragen wertet Ergebnisse aus stellt Ergebnisse dar Schnittstelle mit Benutzer Verschiedene Views Scriptsprache (z.B. mySQL) Informationsaustausch mit der Umgebung Software interpretiert und beantwortet Anfragen verwaltet Daten und stellt Konsistenz sicher regelt mögliche Konflikte Daten umfangreicher persistenter Datenbestand physikalische Speicherung

Suchen & Finden im Internet ... und was das mit Datenbanken zu tun hat

Wie Google funktioniert „World's digital content equivalent to stack of books stretching from Earth to Pluto 10 times“ The Guardian, May 2010 Und wie durchsucht Google jetzt diesen riesigen Datenberg in 0.xx Sekunden? Gar nicht. Durchsucht wird nicht das Internet, sondern eine Datenbank.

Bots, Spiders, Crawlers, ... ... sind Programme, die im Internet surfen indem sie sich an Links entlang hangeln Google sammelt Informationen zu allen so gefundenen Seiten... ... und trägt sie in eine riesige Datenbank ein

DBS befüllen: Wort Position ... und 3, 12, 27, 31, 78 Zuege 56 Züge Zug 23, 185 Seite Links auf www.seiteA.ch www.youtube.com www.elfyourself.com www.gymkirchenfeld.ch www.gymkirchenfeld.ch/dokumente.htm www.gymkirchenfeld.ch/personen.htm ...

Suchanfrage Finden ist einfach: Ordnen ist schwer: In welchen Dokumenten kommen die gesuchten Worte vor? Variationen einbeziehen (z.B. ue/ü, Zug/Züge, ...), Füllworte ignorieren (z.B. und, oder, ...)  einfache DB-Abfrage: SELECT ... Ordnen ist schwer: Geheime Formel berechnet Ranking Anzahl und Nähe der gesuchten Begriffe, wo auf der Seite sie stehen, Treffer/nicht-Treffer Verhältnis, etc. Am wichtigsten sind Links  „Wichtigkeit“ der Seite

Das Herz von Google PageRank: Rekursive Link-Gewichtung sozusagen ein popularity contest

... und das war schon alles? eigentlich ja Interessante Fakten zu Google: Google hat 2014 knapp 66 Mrd $ umgesetzt, ca. 90% davon mit Werbung Google bearbeitet mehr als 2 Mio Suchanfragen jede Sekunde Google hat eine Kopie aller im Internet frei verfügbarer Daten Google weiss (logischerweise) wer wann nach was gesucht hat „Google“ ist eine Fehlschreibung von Gogol, dem Namen für eine Zahl mit 100 Nullen

Google effizient einsetzen: windows –microsoft link:www.nksa.ch site:www.nksa.ch Matura define: firewire firewire filetype:pdf 5+9-(13*9)/PI 1234 in binary 12 cm in inch the answer to life, the universe and everything

http://www.wolframalpha.com/