datenbanken... ein schnelldurchlauf. aspekte des themas datenbanken datenmaterial modellieren...
TRANSCRIPT
![Page 1: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/1.jpg)
Datenbanken
... ein Schnelldurchlauf
![Page 2: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/15.jpg)
• 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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/26.jpg)
„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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/27.jpg)
... „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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/31.jpg)
Wozu braucht man Datenbanken?
Vorteile Nachteile
![Page 32: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/49.jpg)
![Page 50: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/50.jpg)
![Page 51: Datenbanken... ein Schnelldurchlauf. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/52.jpg)
... 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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8349795902118d80f8/html5/thumbnails/53.jpg)
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