Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Datenbanken DB-Anfragen mit mySQL
2
Teaser: SQL Spiel
3
Datenbank Beispiel: Highscore
Probleme: Wie speichert man viele Werte (ggf. verschiedene Datentypen)? Wie können gespeicherte Werte das Schliessen des Programms überstehen? Wie macht man eine allgemeinen highscore, für alle Spieler an allen Geräten? Man bräuchte eine Liste, etwa so: player score Max 6 Tina 8954 Otto 773 ...
4
Die Lösung der Probleme
„Liste“ in zentraler Datenbank speichern. Verwaltung der Daten ausgelagert Daten sind persistent gespeichert Alle können auf die Daten zugreifen player score Max 6 Tina 8954 Otto 773 ...
5
Wozu Datenbanken? Daten / Werte Lösung Abfrage benötigt
Wo Gespeichert? wenige Variablen Name Arbeitsspeicher (des laufenden Programms) einige Datenstrukturen (z.B. Arrays) Name[Index] viele Datenbank SQL Tabellenname, Attribute, ggf. Filter Datenbankserver (zentral, persistent, multiuser) sehr viele extrem viele Datenbank(en)
6
Fachbegriffe: (DBS = DB + DBMS)
Anwendungen Schnittstelle: Structured Query Language (SQL) Datenbanksystem (DBS) Datenbank (DB) Datenbank Management System (DBMS)
7
Die Fundbüro Analogie Kunden Fundbüro Verwalter Fundstücke
Schnittstelle??? Fundbüro Fundstücke Verwalter
8
Datenbanksysteme Vorteile Nachteile
Effiziente Verwaltung von (großen) Datenbeständen Einheitliche Schnittstelle (Anfragesprache) für den Zugriff auf alle Arten von Daten Schneller Zugriff, optimierter Speicherplatz Verwaltung und Nutzung von Daten sind entkoppelt Dauerhafte (persistente) Speicherung von Daten Daten existieren ausserhalb der Anwendungen Zentrale Verwaltung von Daten Erlaubt den (gleichzeitigen) Zugriff auf dieselben Daten durch mehrere Benutzer oder Anwendungen kann unterschiedliche Zugriffsrechten regeln Ermöglicht zentrale Backup-Strategien nur noch indirekter Zugriff auf Daten zusätzliche Abstraktionsebene zusätzlicher Aufwand (Datenbankserver bereitstellen, extra Anfragesprache lernen)
9
Wer benutzt ein DBS? und warum (nicht)?
Amazon? iTunes? Wikipedia? iPhoto? Ryanair? Picasa? Ihre Bank? Flickr? Ein Chat? Google? Ein Blog? Windows? Ihr Client?
10
Was für Daten werden in einem DBS verwaltet?
Was ist überhaupt ein Datum? Welche Datenformate werden unterstützt? In welcher Form existieren die Daten in der Datenbank? Fundstücke Fundbüro Kunden Verwalter
11
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.
12
Die Grundidee: Daten per Abfrage
Anwender, Anwendungen Antwort (Tabelle) Abfrage (SQL) ID String Zahl Datum 1 xxx 324 3 LoL 17 Datenbanksystem (DBS)
13
Datenbanksysteme benutzen
Anwender, Anwendungen Antwort (Tabelle) Abfrage (SQL) ID String Zahl Datum 1 xxx 324 3 LoL 17 Die Verantwortung für die Verwaltung der (ggf. enormen Mengen von) Daten wird an das DBS ausgelagert. Als Nutzer muss man eigentlich nur wissen, wie man per SQL genau die Daten erfragt, die man gerade benötigt. Datenbanksystem (DBS)
14
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 (Abfragesprache SQL) zugänglich sind Land LNR Name Einwohner Hauptstadt Kontinent DK Dänemark 5.16 Kopenhagen Europa D Deutschland Berlin Europa IND Indien Delhi Asien RWA Rwanda Kigali Afrika … … … … …
15
Die imaginativen Tabellen
eine Tabelle enthält eine Ansammlung gleichartiger „Dinge“ Der Tabellenname sagt, um welche „Dinge“ es geht – hier Länder eine Zeile entspricht einem dieser Dinge Das nennt man Datensatz, z.B. enthält die dritte Zeile die Werte für Indien eine Spalte entspricht einer Eigenschaft (auch Attribut genannt) Die Überschrift benennt die Eigenschaft, z.B. die Anzahl Einwohner in Spalte 3 Tabellen- name Land Eigen- schaften LNR Name Einwohner Hauptstadt Kontinent DK Dänemark 5.16 Kopenhagen Europa D Deutschland Berlin Europa IND Indien Delhi Asien RWA Rwanda Kigali Afrika … … … … … Daten- Sätze (mit Werten)
16
Knapper Land {LNR, Name, Einwohner, Hauptstadt, Kontinent}
Um eine SQL-Abfrage zu formulieren, muss man wissen, welche Tabelle(n) gespeichert sind – die Werte braucht es dazu nicht. Land {LNR, Name, Einwohner, Hauptstadt, Kontinent} Tabellen- name Eigenschaften Land LNR Name Einwohner Hauptstadt Kontinent Tabellen- name Eigen- schaften
17
Schnittstelle SQL SELECT [Attribute] FROM [Tabelle] WHERE [Bedingung];
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 [Attribute] FROM [Tabelle] WHERE [Bedingung]; Die WHERE-Klausel ist optional, aber oft wichtig (= Filter) Es gibt noch einige weitere optionale Klauseln, z.B. zum Ordnen oder Zusammenfassen der Antwort-Tabelle Tabelle anzeigen SQL wird schon ausgegeben.
18
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 Berlin Europa IND Indien Delhi Asien RWA Rwanda Kigali Afrika … … … … … Diese Tabelle stellen wir uns vor, eigentlich müssen wir aber gar nicht wissen, wie die Daten intern strukturiert sind Ergebnistabelle Name Einwohner Kontinent Deutschland Europa Indien Asien … … … Diese Tabelle bekommen wir als Antwort geschickt, sie enthält den zur Anfrage passenden Teil des Datenbestands
19
SQL-Abfrage Üben Link zu SQL-Tutorial folgen
Kapitel 1 & 2 machen (Lektion & Übung, probenrelevant)
20
WEB2.0
21
Statische Webseiten: Internet <!DOCTYPE ... > <html>
index.html auf WWW-Server: <!DOCTYPE ... > <html> <head> <title>NKSA|FSD</title> </head> <body> ... </body> </html>
22
Web2.0 Nur in Dokumenten blättern genügt nicht mehr. Neu wird das Dokument erst dann generiert, wenn ein Benutzer es anfordert. Das HTML enthält also dynamische Bereiche, deren Inhalt erst beim Aufruf der Seite generiert wird interaktive Webseiten. Die Inhalte der dynamischen Bereiche werden meist aus einer Datenbank herausgesucht. So kann der Inhalt des resultierenden HTMLs auch an Benutzereingaben oder –rechte angepasst werden. So kann ein Benutzer auch zum Inhalt der Seite beitragen. So kann man mit fast beliebigen Datenmengen einheitlich umgehen.
23
Dynamische Webseiten:
Internet index.php auf WWW-Server: <!DOCTYPE ... > <html> <head> <title>NKSA</title> </head> <body> <?php ... ?> </body> </html> z. B. Inhalte aus der Datenbank holen & einbauen
24
1. Die Cloud verstehen 2. am Beispiel von
25
EVA ... ist das wohl grundlegendste Prinzip der Informationsverarbeitung ... führt zu Modularität und damit Flexibilität (EVA-Module erlauben Verkettung und/oder Verschachtelung) Eingabe Verarbeitung Ausgabe Daten Befehle/ Programm
26
Programme E V A gespeicherte Daten/Dateien gespeicherte Daten/Dateien Verarbeitung Programm Benutzerober-fläche (GUI) E V A E V A Benutzer-eingaben (klicken, tippen,...) Ausgaben für Benutzer (Bildschirm, Audio,...) Gespeicherte Daten müssen verwaltet werden (Ordnung, Rechte) Benutzeroberflächen müssen zum Gerät passen Beides wird vom Betriebssystem umgesetzt, vom Programm nur gesteuert
27
(Application- & Data-) Server
WEB2.0-Seiten E V A (Application- & Data-) Server gespeicherte Daten/Dateien gespeicherte Daten/Dateien Verarbeitung Programm Benutzerober-fläche (GUI) E V A E V A Benutzer-eingaben (klicken, tippen,...) Ausgaben für Benutzer (Bildschirm, Audio,...) Client (Browser) Daten werden in online-Datenbank gespeichert Benutzeroberflächen müssen in HTML passen Beides wird vom Server umgesetzt, im Browser nur angezeigt
28
Web Apps -> Cloud Internet
Verar-beitung Internet Benutzer-eingaben Daten/ Dateien Ausgaben für Benutzer Daten/ Dateien Im Extremfall ist nur die Benutzeroberfläche lokal (im Browser, temporär), alles andere (Daten & Verarbeitung) geschieht auf dem Server (online). Cloud Computing
29
Definition Cloud Unter Cloud Computing (deutsch etwa Rechnen in der Wolke) versteht man das Speichern von Daten in einem entfernten Rechenzentrum, aber auch die Ausführung von Programmen, die nicht auf dem lokalen Rechner installiert sind, sondern eben nur in der (metaphorischen) Wolke. Der Zugang zu Daten (zumeist in einer Datenbank) und Diensten (Programmen, Oberflächen) wird durch Benutzerkonten und daran geknüpfte Rechte geregelt. Dadurch wird auch die Zusammenarbeit verschiedener Nutzer ermöglicht.
30
klassisch (vor der Cloud)
online Alles lokal, Dateien können auf einer statischen Webseite geparkt werden klassisch (vor der Cloud) Programm Datei(en) Daten Verar-beitung Daten lokal
31
Dateien werden online bearbeitet, aber lokal gespeichert
Verar-beitung Cloud 1 Programm Datei(en) Daten Daten lokal
32
Dateien werden lokal bearbeitet, aber online gespeichert
Daten Dateien werden lokal bearbeitet, aber online gespeichert Daten sync Cloud 2 Programm Datei(en) Verar-beitung lokal
33
online Daten Verar-beitung Daten Prezi player Cloud 3 Programm Datei(en) Dateien werden online bearbeitet und online gespeichert. Ggf. kann man eine lokale Kopie machen. lokal
34
Vor- & Nachteile + keine Installation nötig + immer aktuell
online + Datenzugriff von verschiede-nen Endgeräten aus + Zugriffsrechte für andere Benutzer einstellbar (teilen) +/- Experten sorgen für Backup & Sicherheit externe Kontrolle über Daten Daten müssen durch die Leitung + keine Installation nötig + immer aktuell + braucht keine lokale Rechenleistung + unabhängig vom BS + Daten nur temporär online braucht Internetzugang andere Technik als lokale Prgr. keine automatische Sicherung kein „öffnen mit“ von Festplatte Vor- & Nachteile Programm Datei(en) + schnellere Verarbeitung + grösserer Funktionsumfang + bessere Integration mit der lokalen Datenverwaltung + Daten bleiben immer lokal Benutzer muss installieren & updaten abhängig vom Betriebssystem -> verschiedene Versionen + Kontrolle über Daten + Mehr Speicherplatz + Schnellerer Zugriff +/- Eigenverantwortung für Backup & Sicherheit nur für einen Benutzer auf genau diesem Gerät zugänglich keine Versions-History lokal
35
Weitere Beispiele Welche Cloud-Werkzeuge benutzt ihr?
online Weitere Beispiele Programm Datei(en) Welche Cloud-Werkzeuge benutzt ihr? Welchem Modell entsprechen sie? Warum diese Modell (Vorteile)? lokal
36
Die Toyota-Cloud: „Nichts ist unmöglich!“
37
Portal online Web-Oberflächen für alles Daten teilbar Programm
Datei(en) Download lokale Programme (optional) Ein Login für alles. Synchronisation von Dateien (optional) Benutzbar mit (fast) allen Geräten lokal
38
Office Suite Dateiverwaltung, online
DB ( teilbar), Darstellung wie Explorer Online-Versionen der Office Programme (reduzierter Funktionsumfang) Office Suite Programm Datei(en) Lokale Programme (alle Geräte) herunterladbar Synchronisation von Dateien online/offline lokal
39
Mail ++ online Mail-Server
(inkl. Kontakte und Kalender) Webmail: Oberflächen für Mails, Kontakte & Kalender Mail ++ Programm Datei(en) Lokaler Mail-Client (Outlook, inkl. Kontakte & Kalender, herunterladbar) IMAP Kontakte Kalender POP3 SMTP lokal
40
Benutzung online Programm Datei(en) lokal
Weiterleiten? Webmail? Lokaler Client? Outlook? Welche Dateien hochladen? Teilen? (z.B. FS oder Klasse) Web-Versionen nutzen? Reicht der Funktionsumfang? Benutzung Programm Datei(en) Login. Braucht es mind. für Mails. OneDrive mit lokaler Festplatte synchronisieren? Welche Programme auf welchen Geräten lokal nutzen? lokal
41
Auf einen Blick: Browser WWW-Server Zeitachse statische Webseiten
dynamische Webseiten WWW-Server JavaScript Datenbank Server WWW-Server Browser weiss, wie man WWW-Server findet, versteht HTML & CSS (und JavaScript), 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 (= Persistenz) speichern, kümmert sich um die Verwaltung der Daten HTML-Dateien (CSS, JavaScript) Client Server PHP mySQL Client Server
42
Suchen & Finden im Internet
... und was das mit Datenbanken zu tun hat
43
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.18 Sekunden?
44
Bots, Spiders, Crawlers, ... ... sind Programme, die im Internet surfen indem sie sich an Links entlanghangeln Google sammelt Informationen zu allen so gefundenen Seiten... ... und trägt sie in eine riesige Datenbank ein
45
DBS befüllen, z.B.: ID Wort Position in h1 ... 24536 und 3, 12, 27
TRUE 97811 Zuege 56 FALSE 97812 Züge NULL 97813 Zug 23, 185 ID Seite Links auf PageRank Codescore ... 3234 0.467 0.843 3235 0.3942 0.5432
46
Die wichtigste Tabelle:
Eine Zeile für JEDE (öffentliche) Seite im Netz ( ID) Eine Spalte für JEDES Wort im Netz Datenbankabfrage: SELECT ID FROM Riesentabelle WHERE Aarau = true (AND ...) Riesentabelle ID Aar Aare Aarau ... Zyste 3235 FALSE TRUE 3236
47
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, Codequalität, etc. Am wichtigsten sind Links „Wichtigkeit“ der Seite
50
Das Herz von Google PageRank: Rekursive Link-Gewichtung
sozusagen ein popularity contest
51
Ordnen der Treffer = Score
Neben dem PageRank fliessen noch zahlreiche weitere Aspekte in den Score ein, z.B. kommen die gesuchten Worte auf der Seite oft vor? stehen die gesuchten Worte in Überschriften o.ä.? stehen die gesuchten Worte nah beieinander? ist die Seite sauber programmiert? persönliche Informationen des Suchenden!! ... Die genaue Zusammensetzung des Score ist natürlich Googles Geschäftsgeheimnis Die Formel wird ständig angepasst, auch um Verzerrungen durch SEO entgegenzuwirken
52
Personalisierung von Suchergebnissen
Seit 2005 fliessen zunehmend auch persönliche Informa-tionen in die Ordnung der Suchergebnisse ein, z.B.: aktueller Standort des Users Gerät und Browser, mit dem gesucht wird frühere Suchen, ggf. auch Surfverhalten bekannte Interessen des Users (z.B. aus anderen Google-Diensten wie Gmail oder Google+) Interessen des sozialen Umfelds des Users (s. oben) ... wenn zwei dasselbe suchen, bekommen sie unterschiedliche Ergebnisse
53
... und das war schon alles? eigentlich ja Interessante Fakten:
Google hat 2014 über 89 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
54
Google Expertise: Wörter aus der Suche ausschließen
Beispiel: jaguar geschwindigkeit -auto Nach genau passenden Treffern suchen Beispiel: "größtes gebäude" Nach Platzhaltern oder unbekannten Wörtern suchen Beispiel: "größtes * der welt" Suchen kombinieren Beispiel: marathon OR rennen Auf bestimmter Website suchen Beispiel: site:youtube.com oder site:.gov Informationen zu einer Website erhalten Beispiel: "info:nksa.ch" Suche in sozialen Netzwerken: ... Mehr Tipps:
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.