Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbanken DB-Anfragen mit mySQL.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanken DB-Anfragen mit mySQL."—  Präsentation transkript:

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

48

49

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:


Herunterladen ppt "Datenbanken DB-Anfragen mit mySQL."

Ähnliche Präsentationen


Google-Anzeigen