53
Datenbanken ... ein Schnelldurchlauf

Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Embed Size (px)

Citation preview

Page 1: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Datenbanken

... ein Schnelldurchlauf

Page 2: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Aspekte des Themas Datenbanken

Datenmaterial

modellieren

tabellarisch strukturieren

Tabelle Tabelle

Zeilen Spalten Zeilen Spalten(Objekte) (Attribute)

Relationale DBimplementieren

Anforderungen

Nutzung

AuswertungSuchen

ÄndernLöschen

Verknüpfen

Erweitern

Sortieren

Datenbank-sprache SQLWeb-Programmierung

HTML+CSS+PHP

Daten-bank system

Physikal.Speichern

Objekt Objekt

Attribute Attribute

ER-Modell1 n

optimieren und normalisieren

Vermeidungvon Redundanzen

und Anomalien

Konsistenz(logisch korrekt)

Datenschutz(Sichten)

Zugangs-berechtigung

Mehrbenutzer-betrieb

Datenmodellierung

Page 3: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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?

Page 4: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Wie speichert eine DB DatenMechanischer Vorgänger

Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12

Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12

Hüte

Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12

Bücher

Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12

Schirme

Finder: Hegi Roger

Brandweg 12

Nummer: 1445-4556

Gegenstand: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Seeweg 12Finder: Hegi Roger

Brandweg 12

Nummer: 14556

Art: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Brandweg 12

Page 5: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Grosse, digitaleTabellen

• Eigentlich wie in Excel• Nur besser – eine einheitliche Abfragesprache liefert

mir genau die Daten, die ich braucheFundstü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 RogerBrandweg 129876 Zuchwil

2 Schrim & Schal

bunt 21.05.2009 Hauptbahnhof Hegi RogerBrandweg 12a/79876 Zuckwil

Page 6: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Elemente einer Tabelle

Fundstücke

Nummer Art Farbe Funddatum Fundort Finder

14555 Schirm Blau 08.13.2000 Bus Nr.12 Stalder RogerWichleren8779 Neuhausen

14556 Schlüssel - 09.12.2000 Bahnhof Hegi RogerBrandweg 129876 Zuchwil

14557  ...  ...  ...  ...  ...

Zeile, Datensatz, Entität

Attribute, Eigenschaften TabellennameSchlüsselattribut, Hauptschlüssel

Eigenschaftswerte~ Domain

Tabelle, Entitätsmenge

Page 7: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

FundstückeFarbe

Finder Art

FundortNummer

Funddatum

ER-Diagramm

Attribute, EigenschaftenTabellennameSchlüsselattribut

, Hauptschlüssel

Zeile, Datensatz, Entität Eigenschaftswerte

Tabelle, Entitätsmenge

Page 8: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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 RogerBrandweg 129876 Zuchwil

2 Schrim & Schal

bunt 21.05.2009 Hauptbahnhof Hegi RogerBrandweg 12a/79876 Zuckwil

Page 9: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Schon besser

FundstückeID Anzahl Art Farbe Funddatum Fundort Vornam

eNachname Adresse

17 1 Schirm Blau 08.13.2000 Bus Nr.12 Roger Stalder 9876 Neuhausen

18 4 Schlüssel - 09.12.2000 Bahnhof Hegi Roger Brandweg 129876 Zuchwil

19 1 Schrim bunt 21.05.2009 Hauptbahnhof Hegi Roger Brandweg 12a/79876 Zuckwil

20 1 Schal braun 21.05.2009 Hauptbahnhof Hegi Roger Brandweg 12a/79876 Zuckwil

• Aber was machen wir mit der Redundanz?

Page 10: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Einschränkungen der Eigenschaftswerte

• Warum ist das wichtig?– technisch: Speicherplatz reservieren, etc.– logisch: Fehler vermeiden

Fundstücke

Attribut Beispiel Typ? Schlüssel? Obligatorisch? Extras?

Nummer: 14556 int ja ja auto incr.

Art: Schlüssel char nein ja

Farbe: - char nein nein

Funddatum: 12.09.2007 date nein nein auto?

Fundort: Bahnhof char nein nein

Finder: Hegi RütliBrandweg 129876 Zuchwil

char nein nein

Page 11: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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:1. Speicherplatz sparen2. Vermeidung von Anomalien 3. 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

Page 12: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Relationale Datenbanken

FundstückeID 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 1 Schrim bunt 21.05.2009 Hauptbahnhof 7

20 1 Schal braun 21.05.2009 Hauptbahnhof 7

FinderID Vorname Nachname Strasse Hausnummer Zusatz PLZ Ort

12 Roger Stalder 9876 Neuhausen

7 Hegi Roger Brandweg 12 a/7 9876 Zuchwil

Fremdschlüssel, verweist auf den Hauptschlüssel einer anderen Tabelle

Fundstücke{ID, Anzahl, Art, Farbe, Funddatum, Fundort, ↑FinderID}

Finder{ID, Vorname, Nachname, Strasse, Hausnummer, Zusatz, PLZ, Ort}

Page 13: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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

Page 14: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

SQL-Abfragen mit mehreren Tabellen

• 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

Ra b c

1 2 3

4 5 6

Sd e

3 7

5 8

6 9

R x Sa b R.c S.d e

1 2 3 3 7

1 2 3 5 8

1 2 3 6 9

4 5 6 3 7

4 5 6 5 8

4 5 6 6 9

Schreibweise in mySQL: SELECT * FROM R,S WHERE R.c=S.d

AND e < 8

mySQL in Kürze:

Page 15: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

• 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

Ra b c

1 2 3

4 5 6

Sd e

3 7

5 8

6 9

R x Sa b R.c S.d e

1 2 3 3 7

4 5 6 6 9

SELECT * FROM R JOIN S

ON R.c=S.d

mySQL in Kürze:

R x Sa b R.c S.d e

1 2 3 3 7

null null null 5 8

4 5 6 6 9

SELECT * FROM R RIGHT JOIN S

ON R.c=S.d

SQL-Abfragen mit mehreren Tabellen

Page 16: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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?

Page 17: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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

Page 18: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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.

Page 19: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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

LNR Name Einwohner Hauptstadt Kontinent

DK Dänemark 5.16 Kopenhagen EuropaD Deutschland 81.34 Berlin EuropaIND Indien 761.00 Delhi AsienRWA Rwanda 6.30 Kigali Afrika… … … … …

Land

Page 20: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

24

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.

Page 21: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

25

– SELECT Name, Einwohner, Kontinent FROM Land WHERE Einwohner > 10

Datenbankzugriff - Ein erstes Beispiel

Länder mit über 10 Mio. Einwohner

LNR Name Einwohner Hauptstadt Kontinent

DK Dänemark 5.16 Kopenhagen EuropaD Deutschland 81.34 Berlin EuropaIND Indien 761.00 Delhi AsienRWA Rwanda 6.30 Kigali Afrika… … … … …

Land

Ergebnistabelle

Name Einwohner Kontinent

Deutschland 81.34 EuropaIndien 761.00 Asien… … …

Page 22: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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.

Page 23: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Die „Verwaltung“ der Daten (DB + DBMS!)

Datenbank (DB)

Schnittstelle: Structured Query Language (SQL)

Datenbanksystem (DBS)

Anwendungen

Datenbank Management System

(DBMS)

Page 24: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Die Fundbüro Analogie

Fundstücke

Schnittstelle???

Fundbüro

Kunden

Verwalter

Page 25: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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.

Page 26: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

„viele Nutzer und Anwendungen“

Einzelbenutzersysteme(z.B. Access)

Mehrbenutzersysteme(z.B. in Unternehmen, Lager & Verkauf)

Verteilte DBS(z.B. Banken mit Filialen)

Multidatenbanksysteme(z.B. Buchungssysteme)

Client-Server DBS(z.B. Internetseiten)

Page 27: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

... „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.

Page 28: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Wieder ein Schichtenmodell

Java (Programmierer)

Bytecode (JVM)

Maschinencode (CPU)

Anwendung

Betriebssystem

Hardware

Anwendungsebene (Sichten)

logische Ebene (Tabellen)

physikalische Ebene (Bits)

Schnittstelle

Schnittstelle

Page 29: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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.

Page 30: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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 Datenund auch für grosse Mengen

• Einheitliche Abfragesprache• Persistente Speicherung• Details müssen die nächste

Schicht nicht kümmern

Schnittstelle SQL

DBMS<->DB

Anwendungen/Anwender

Page 31: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Wozu braucht man Datenbanken?

Vorteile Nachteile

Page 32: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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)

Page 33: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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

Page 34: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Wer benutzt ein DBS?und warum (nicht)?

• Amazon?• Wikipedia?• Ryanair?• Ihre Bank?• Ein Chat?• Ein Blog?• Ihr E-mail Client?

• iTunes?

• iPhoto?• Picasa? • Flickr?• Google?• Windows?

Page 35: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Web 2.0

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

Page 36: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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,...)

Page 37: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Benutzen Sie diese Elemente* um mithilfe eines Schaubilds zu erklären, wie ein Gästebuch (online) funktioniert

WWW-Server

Browser

Datenbank Server

HTML

PHP

mySQL

CSS

Anfrage

Verarbeitung

Auswertung

Darstellung Server

Client

* es müssen nicht alle Elemente benutzt werden, manche werden mehrfach gebraucht

POST/GET Parameterübergabe

CodeübergabeFormulare

Zeita

chse

statische Webseitendynamische Webseiten

Page 38: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Zeita

chse

kann mySQL Anfragen beantworten und Daten dauerhaft speichern, kümmert sich um die Verwaltung der Daten

WWW-Server

Browser

weiss, wie man WWW-Server findet, versteht HTML (+ Formulare) & CSS, kümmert sich um die Darstellung, kann Parameter übergeben (POST/GET)

Browser

Browser

WWW-Server

WWW-Server

weiss, wie man mit Datenbank Server spricht, kann Parameter auswerten und PHP verarbeiten, gibt HTML-Code an Browser weiter

statische Webseitendynamische Webseiten

Datenbank Server

DB

DBSDBMS

Web2.0 auf einen Blick:

ServerClient

ServerClient

Dateien, HTML

mySQLPHP

Page 39: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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>

Page 40: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

HTML PHP<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=##"

Page 41: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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>

Page 42: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Datenbank Server

Zeita

chse

Datenbanken sind speziell darauf ausgerichtet, Daten zu speichern und zu verwalten

Wo wohnen die Daten?

WWW-Server

Browser

ServerClient

HTML kann Daten enthalten, alle vom Browser dargestellten Daten müssen letztendlich in HTML eingebunden sein

Browser

Browser

WWW-Server

WWW-Server

ServerClient

PHP kann Daten enthaltenPHP kann auch Daten lokal lesen oder speichern, z.B. CSV, XML

statische Webseitendynamische Webseiten

Dateien, HTML

mySQL

DB

DBSDBMS

Darstellung: statisch Verarbeitung: dynamisch Bereitstellung: persistent

PHP

Page 43: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Datenbank Server (mySQL)

XAMPP (lokal)

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

Browser

Browser

(www-)Server(Apache)

inklusive PHP DB

DBSDBMS

ServerClient

ServerClient

Dateien, HTML

mySQLPHP

Page 44: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Suchen & Finden im Internet

... und was das mit Datenbanken zu tun hat

Page 45: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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.

Page 46: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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

Page 47: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

DBS befüllen:Wort Position

... ...

und 3, 12, 27, 31, 78

... ...

Zuege 56

Züge

Zug 23, 185

... ...

Seite Links aufwww.seiteA.ch www.youtube.com

www.elfyourself.com

www.gymkirchenfeld.ch www.gymkirchenfeld.ch/dokumente.htmwww.gymkirchenfeld.ch/personen.htm...

... ...

Page 48: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Suchanfrage

1. Finden ist einfach:– 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 ...

2. 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

Page 49: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten
Page 50: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten
Page 51: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

Das Herz von Google PageRank: Rekursive Link-Gewichtung

• sozusagen ein popularity contest

Page 52: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

... 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

Page 53: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten

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