Date post: | 06-Apr-2015 |
Category: |
Documents |
Upload: | gottlob-dorfman |
View: | 118 times |
Download: | 1 times |
Datenbanken
... ein Schnelldurchlauf
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
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 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
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
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
FundstückeFarbe
Finder Art
FundortNummer
Funddatum
ER-Diagramm
Attribute, EigenschaftenTabellennameSchlüsselattribut
, Hauptschlüssel
Zeile, Datensatz, Entität Eigenschaftswerte
Tabelle, Entitätsmenge
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
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?
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
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
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}
http://dev.mysql.com/doc/refman/5.5/en/select.html
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:
• 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
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
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
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.
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… … …
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!)
Datenbank (DB)
Schnittstelle: Structured Query Language (SQL)
Datenbanksystem (DBS)
Anwendungen
Datenbank Management System
(DBMS)
Die Fundbüro Analogie
Fundstücke
Schnittstelle???
Fundbüro
Kunden
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)
Mehrbenutzersysteme(z.B. in Unternehmen, Lager & Verkauf)
Verteilte DBS(z.B. Banken mit Filialen)
Multidatenbanksysteme(z.B. Buchungssysteme)
Client-Server DBS(z.B. Internetseiten)
... „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
Java (Programmierer)
Bytecode (JVM)
Maschinencode (CPU)
Anwendung
Betriebssystem
Hardware
Anwendungsebene (Sichten)
logische Ebene (Tabellen)
physikalische Ebene (Bits)
Schnittstelle
Schnittstelle
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 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
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?• Wikipedia?• Ryanair?• Ihre Bank?• Ein Chat?• Ein Blog?• Ihr E-mail Client?
• iTunes?
• iPhoto?• Picasa? • Flickr?• Google?• Windows?
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* 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
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
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<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>
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
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
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 aufwww.seiteA.ch www.youtube.com
www.elfyourself.com
www.gymkirchenfeld.ch www.gymkirchenfeld.ch/dokumente.htmwww.gymkirchenfeld.ch/personen.htm...
... ...
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
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