Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren...

84
Datenbanken ... und alles was dazugehört

Transcript of Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren...

Page 1: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbanken

... und alles was dazugehört

Page 2: Datenbanken... und alles was dazugehört. 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

Page 3: Datenbanken... und alles was dazugehört. 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... und alles was dazugehört. 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 5: Datenbanken... und alles was dazugehört. 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 6: Datenbanken... und alles was dazugehört. 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 gespeichert sind ist

unerheblich, da sie sowieso nur über die Schnittstelle (= mit dem Verwalter reden) 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 7: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

7

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 8: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

8

– 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 9: Datenbanken... und alles was dazugehört. 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 10: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

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

Datenbank (DB)

Datenbank (DB)

Schnittstelle: Structured Query Language (SQL)

Datenbanksystem (DBS) Datenbanksystem (DBS)

Anwendungen

Datenbank Management System

(DBMS)

Datenbank Management System

(DBMS)

Page 11: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Die Fundbüro Analogie

FundstückeFundstücke

Schnittstelle???

Fundbüro Fundbüro

Kunden

VerwalterVerwalter

Page 12: Datenbanken... und alles was dazugehört. 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 13: Datenbanken... und alles was dazugehört. 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 14: Datenbanken... und alles was dazugehört. 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, ...)

Page 15: Datenbanken... und alles was dazugehört. 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-ServerWWW-Server

BrowserBrowser

Datenbank ServerDatenbank 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

statische Webseitendynamische Webseiten

Page 16: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

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

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

Meine Lösung

WWW-ServerWWW-Server

BrowserBrowser

Datenbank ServerDatenbank Server

ServerClient

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

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

BrowserBrowser

BrowserBrowser

WWW-ServerWWW-Server

WWW-ServerWWW-Server

ServerClient

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

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

statische Webseitendynamische Webseiten

HTML-Dateien, PHP mySQL

Page 17: Datenbanken... und alles was dazugehört. 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>

dde

dde

dde

ddedde

dde

Page 18: Datenbanken... und alles was dazugehört. 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>

dde

dde

dde

ddedde

dde

http://www.mywebsite.ch/process.php?item=##&quantity=##" http://www.mywebsite.ch/process.php?item=##&quantity=##"

Page 19: Datenbanken... und alles was dazugehört. 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 20: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbank ServerDatenbank Server

die Datenbank ist speziell darauf ausgerichtet Daten zu speichern und zu verwalten

die Datenbank ist speziell darauf ausgerichtet Daten zu speichern und zu verwalten

Wo wohnen die Daten?

WWW-ServerWWW-Server

BrowserBrowser

ServerClient

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

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

BrowserBrowser

BrowserBrowser

WWW-ServerWWW-Server

WWW-ServerWWW-Server

ServerClient

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

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

statische Webseitendynamische Webseiten

Dateien, PHP mySQL

DBDB

DBSDBS

DBMSDBMS

Darstellung: statisch Verarbeitung: dynamisch Bereitstellung: persistent

Page 21: Datenbanken... und alles was dazugehört. 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 22: Datenbanken... und alles was dazugehört. 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 23: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.
Page 24: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.
Page 25: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wieder ein Schichtenmodell

SchnittstelleSchnittstelle

SchnittstelleSchnittstelle

Page 26: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wozu braucht man eigentlich Datenbanken?

• Suchen Sie ein Beispiel (z.B. eine Website, eine Organisation, eine Anwendung, etc.), von dem Sie wissen (oder glauben), dass eine Datenbank benutzt wird.

• Notieren Sie ihre Vermutungen darüber, warum hier eine Datenbank eingesetzt wird

Page 27: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wozu Datenbanken?

• Arbeitsblätter:– Schichten– Anforderungen

• Zusammenfassung:– Vorteile von DBS?– Nachteile von DBS?

Page 28: Datenbanken... und alles was dazugehört. 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

Page 29: Datenbanken... und alles was dazugehört. 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 30: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wer benutzt ein DBS?und warum (nicht)?

Page 31: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

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ückeFundstücke

Fundbüro Fundbüro

Kunden

VerwalterVerwalter

Page 32: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wie speichert eine Datenbank Daten?

Page 33: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wie speichert eine DB DatenMechanischer VorgängerMechanischer 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 34: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wie speichert eine DB Daten

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Name: Kunz

Vorname: Andy

Adresse: Waldweg 12

9876 Zuchwil

Tel.: 145’78’99

Geb.: 15.September 1974

Brandweg 12

Nummer: 14555

Art: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Brandweg 12

Nummer: 14556

Art: Schlüssel

Farbe: -

Funddatum: 12.09.2000

Fundort: Bahnhof

9876 Zuchwil

Finder: Hegi Roger

Page 35: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Elemente einer Tabelle

Fundstücke

Nummer Art Farbe Funddatum Fundort Finder14555 Schirm Blau 08.13.2000 Bus Nr.12 Stalder Roger

Wichleren8779 Neuhausen

14556 Schlüssel - 09.12.2000 Bahnhof Hegi RogerBrandweg 129876 Zuchwil

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

Zeile, Datensatz, EntitätZeile, Datensatz, Entität

Attribute, EigenschaftenAttribute, Eigenschaften TabellennameTabellennameSchlüsselattribut, HauptschlüsselSchlüsselattribut, Hauptschlüssel

Eigenschaftswerte~ DomainEigenschaftswerte~ Domain

Tabelle, EntitätsmengeTabelle, Entitätsmenge

Page 36: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Relationsschema

Fundstücke{Nummer, Art, Farbe, Funddatum,Fundort, Finder}

Attribute, EigenschaftenAttribute, Eigenschaften TabellennameTabellennameSchlüsselattribut, HauptschlüsselSchlüsselattribut, Hauptschlüssel

Zeile, Datensatz, EntitätZeile, Datensatz, Entität EigenschaftswerteEigenschaftswerte Tabelle, EntitätsmengeTabelle, Entitätsmenge

Page 37: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Fundstücke

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

Nummer: 14556

Art: Schlüssel

Farbe: -

Funddatum: 12.09.2007

Fundort: Bahnhof

Finder: Hegi RütliBrandweg 129876 Zuchwil

Definition einer TabelleZeile, Datensatz, EntitätZeile, Datensatz, Entität

Attribute, EigenschaftenAttribute, Eigenschaften TabellennameTabellennameSchlüsselattribut, HauptschlüsselSchlüsselattribut, Hauptschlüssel

EigenschaftswerteEigenschaftswerte Tabelle, EntitätsmengeTabelle, Entitätsmenge

Page 38: Datenbanken... und alles was dazugehört. 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 39: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Übungsaufgabe

• Sie wollen mithilfe eines DBS eine Anwendung zur Bibliotheksverwaltung erstellen. Definieren Sie eine Tabelle, in die alle wichtigen Eigenschaften der Bücher eingetragen werden können.

• Implementieren sie diese Tabelle in phpMyAdmin und tragen sie mindestens 5 Datensätze ein

Buch

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

Page 40: Datenbanken... und alles was dazugehört. 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 Finder1 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 41: Datenbanken... und alles was dazugehört. 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 42: Datenbanken... und alles was dazugehört. 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

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 43: Datenbanken... und alles was dazugehört. 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 44: Datenbanken... und alles was dazugehört. 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=R.s

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=R.s

SQL-Abfragen mit mehreren Tabellen

Page 45: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

• Land und Kontinent werden in zwei getrennten Tabellen gespeichert und über eine Beziehung miteinander verknüpft.

• Zur Verknüpfung dient ein Kürzel des Kontinents, das als Fremdschlüssel in Land gespeichert wird.

KNR Name

EU EuropaAS AsienAF Afrika

Kontinent

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

LNR Name … KNR

DK Dänemark … EUD Deutschland … EUIND Indien … ASRWA Rwanda … AF

Land

Schlüsselattribut aus Kontinent

Page 46: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

LNR Name Einwohner Hauptstadt Kontinent

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

Land

• Jeder Datensatz wird durch einen Schlüssel (Primärschlüssel) eindeutig identifiziert. Der Schlüssel– kann aus mehreren Attributen zusammengesetzt sein– ist minimal, d.h. es kann kein Attribut weggelassen werden– wird meist durch Unterstreichung gekennzeichnet.

• Um zusammengesetzte Primärschlüssel zu vermeiden wird oft ein zusätzliches, eindeutiges Schlüsselattribut hinzugefügt, z.B. eine Landeskennung oder ID

Schlüsselattribut

Page 47: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

• Zwischen den Tabellen bestehen Beziehungen (Relationen)– z.B. Kontinent eines Landes

• Die Verknüpfung erfolgt grundsätzlich dadurch, – dass ein Fremdschlüssel der einen Tabelle – auf den zugehörigen Primärschlüssel der anderen Tabelle zeigt.

• Vorteile:Daten werden jeweils nur in einer Tabelle gespeichert.Datenänderungen sind leichter durchzuführen.Strukturänderungen (z.B. das Hinzufügen der Kontinentfläche) lassen sich meist mit

geringem Aufwand realisieren.Die Struktur lässt flexiblere Abfragen zu.

PKey DataPKey Data FKey

Master Detail

Page 48: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

SQL – einfache Joins

• Müssen in SQL Daten aus mehreren Tabellen entnommen werden, so werden sog. „Joins“ gebildet.– Die Abarbeitung eines Joins in mehreren Schritten kann an

folgendem Beispiel veranschaulicht werden:• Es sollen alle Länder mit ihren Kontinenten ausgegeben werden,

die mehr als 10 Mio. Einwohner haben.

LNR Name Einwohner KNR

DK Dänemark 5.16 EUD Deutschland 81.34 EUIND Indien 761.00 ASRWA Rwanda 6.30 AF

Land

KNR Name

EU EuropaAS AsienAF Afrika

Kontinent

Page 49: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

1. Cross-Join („jede Zeile mit jeder“)– SELECT * FROM Land, Kontinent

LNR Name Einwohner KNR KNR Name

DK Dänemark 5.16 EU EU EuropaDK Dänemark 5.16 EU AS AsienDK Dänemark 5.16 EU AF AfrikaD Deutschland 81.34 EU EU EuropaD Deutschland 81.34 EU AS AsienD Deutschland 81.34 EU AF AfrikaIND Indien 761.00 AS EU EuropaIND Indien 761.00 AS AS AsienIND Indien 761.00 AS AF Afrika… … … … …

LNR Name Einwohner KNR

DK Dänemark 5.16 EUD Deutschland 81.34 EUIND Indien 761.00 ASRWA Rwanda 6.30 AF

Land KNR Name

EU EuropaAS AsienAF Afrika

Kon

tinen

t

Page 50: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

WHERE Land.KNR= Kontinent.KNR

LNR Name Einwohner KNR KNR Name

DK Dänemark 5.16 EU EU EuropaDK Dänemark 5.16 EU AS AsienDK Dänemark 5.16 EU AF AfrikaD Deutschland 81.34 EU EU EuropaD Deutschland 81.34 EU AS AsienD Deutschland 81.34 EU AF AfrikaIND Indien 761.00 AS EU EuropaIND Indien 761.00 AS AS AsienIND Indien 761.00 AS AF Afrika… … … … …

2. Einschränken auf „passende“ Datensätze.– Es dürfen nur die Zeilen genommen werden, für die die „Land

“ und die „Kontinent“ Tabelle Daten des gleichen Kontinents enthalten.

– Dies wird durch die sog. „Join-Bedingung“ erreicht.– SELECT *

FROM Land, Kontinent

Page 51: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

AND Land.Einwohner > 10

2. Einschränken auf „passende“ Datensätze (2).– Es sollen nur Länder mit > 10 Mio. Einwohner gezeigt werden.– Momentan würde auch „Dänemark“ ausgegeben werden.

Also muss eine weitere Bedingung erfüllt sein:– SELECT *

FROM Land, Kontinent WHERE Land.KNR = Kontinent.KNR

LNR Name Einwohner KNR KNR Name

DK Dänemark 5.16 EU EU EuropaDK Dänemark 5.16 EU AS AsienDK Dänemark 5.16 EU AF AfrikaD Deutschland 81.34 EU EU EuropaD Deutschland 81.34 EU AS AsienD Deutschland 81.34 EU AF AfrikaIND Indien 761.00 AS EU EuropaIND Indien 761.00 AS AS AsienIND Indien 761.00 AS AF Afrika… … … … …

Page 52: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

3. Einschränken auf gesuchte Spalten.– Nur bestimmte Spalten werden ausgegeben.– SELECT Land.Name, Land.Einwohner, Kontinent.Name FROM Land,Kontinent WHERE Land.KNR = Kontinent.KNR AND Land.Einwohner > 10

Name Einwohner Name

Deutschland 81.34 EuropaIndien 761.00 Asien… … …

Alternative:...FROM Land JOIN Kontinent ON Land.KNR = Kontinent.KNR

LNR Name Einwohner KNR KNR Name

D Deutschland 81.34 EU EU EuropaIND Indien 761.00 AS AS Asien… … … … …

Page 53: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

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

Page 54: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Goldene Tabellenregeln

1. Es braucht IMMER einen eindeutigen Hauptschlüssel (am besten, Sie nennen ihn immer ID)

2. Nur ein Wert pro Attribut (richtiges Format)

3. Wertemenge einschränken (z.B. mit Eingabemaske) 4. Nur ein Datensatz pro Zeile5. Redundanz vermeiden

Page 55: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbank Server (mySQL)Datenbank Server (mySQL)

XAMPP

ServerClient

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

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

BrowserBrowser

BrowserBrowser

(www-)Server(Apache)

inklusive PhP

(www-)Server(Apache)

inklusive PhP

ServerClient

Dateien, PHP mySQL

DBDB

DBSDBS

DBMSDBMS

Page 56: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Arbeitsauftrag• Wenden Sie die goldenen Regeln auf ihre

Bibliotheksverwaltung an• Erstellen Sie die daraus entstehenden Tabellen (>=2) in

phpMyAdmin und tragen Sie jeweils mindestens fünf Datensätze ein

• Benutzen Sie dann den Abfrageeditor, um per mySQL Teilmengen der Daten zu erfragen, z.B– alle Titel eines bestimmten Autors– alle Autoren, von denen nach 2000 ein Buch erschienen ist– ect...

• (schnelle) arbeiten Sie mit mindestens drei Tabellen – nehmen Sie beispielsweise an, dass es von einem Buch mehrere Exemplare geben kann

Page 57: Datenbanken... und alles was dazugehört. 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

Dat

enm

odel

lieru

ng

Dat

enm

odel

lieru

ng

Page 58: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbankentwicklung überkorrekt:

Page 59: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenmodellierung

Page 60: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

VerschiedeneNotationen fürER-Diagramme:

Page 61: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Eine Person kann nur an einem Ort geboren worden sein

Ein Ort kann für mehrere (0 – n) Personen der Geburtsort sein

Aufgabe: Erstellen sie ein

ER-Diagramm einer Schule

(s. AB_Datenmodellierung.doc)

Aufgabe: Erstellen sie ein

ER-Diagramm einer Schule

(s. AB_Datenmodellierung.doc)

Page 62: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Musterlösung Schulszenario

Page 63: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbankentwicklung überkorrekt:

Page 64: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Auflösen von n:m-Beziehungen

Flug gebucht von Kunden m

Flug Teil von Buchung

1 n getätigt von Kunde

m 1

Buchungs-datumbezahlt

Nr Datum

Name

Nr Name

NrNr Datum

Page 65: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Auflösen von n:m-Beziehungen

Flug gebucht von Kunden m

Flug Teil von Buchung

1 n getätigt von Kunde

m 1

Buchungs-datumbezahlt

Nr Datum

Name

Nr Name

NrNr Datum

Page 66: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

In Relationales Modell übersetzen:

• Flug{Fnr, Datum}• Buchung{Bnr, Fnr, Knr, Buchungsdatum, bezahlt}• Kunde{Knr, Name}

Flug Teil von Buchung

1 n getätigt von Kunde

m 1

Buchungs-datumbezahlt NameNrNr Datum

Und jetzt für das Schulszenario (genauer mit UML)Und jetzt für das Schulszenario (genauer mit UML)

Page 67: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbankentwicklung überkorrekt:

Page 68: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Redundanz vermeiden• Gründe:

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

• Das schrittweise Eliminieren von (potentieller) Redundanz nennt man „normalisieren“, meist werden dabei viele kleine Tabellen aus wenigen grossen erzeugt

Page 69: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Welche Arten von Anomalien gibt es?

Was ist eine Änderungs-Anomalie? • Falls eine Änderung der Daten vorgenommen werden muss, muss

dies an mehreren Stellen in der Relation geschehen, da sonst die Konsistenz bedroht ist.

Was ist eine Einfüge-Anomalie? • Ein neuer Datensatz kann erst eingetragen werden, wenn alle X

Informationen vorliegen. Falls Nullwerte erlaubt sind, gibt es dann Probleme falls die fehlende Info zum Schlüssel gehört.

Was ist eine Lösch-Anomalie? • Wird eine Information aus der Relation entfernt, so gehen mehr

Informationen verloren, als gewollt war. Tritt oft auf wenn in einer Relation mehr als eine Entity vertreten ist!

Lieferant {ID, LName, LAdresse, Ware, Preis}

Page 70: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Anomalien konkretTabelle: Lieferant {ID, LName, LAdresse, Ware, Preis} Redundanz: Die Adresse wird für jede Ware, die ein Lieferanten liefert, wiederholt Anomalien möglich

1. Änderungs-Anomalie (Potentielle Inkonsistenz) Als Konsequenz der Redundanz kann man die Adresse eines Lieferanten in einem Datensatz verändern, sie aber in anderen Datensätzen unberührt lassen. Auf diese Weise bekommt man zwei verschiedene Adressen für denselben Lieferanten.

2. Einfüge-Anomalien Man kann keine Adresse für einen Lieferanten haben, wenn er nicht mindestens eine Ware liefert. Es ist möglich, in die Ware- und Preiskomponente NULL-Werte für diese Lieferanten einzugeben, dann müsste dieser Datensatz aber gelöscht werden, wenn eine Ware für diesen Lieferanten eingegeben wird.

• Lösch-Anomalien Invers zu Problem 2 kann es passieren, dass man alle Waren eines Lieferanten löscht, und dadurch auch seine Adresse verliert.

Page 71: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Die Lösung:

Verteilung auf zwei Tabellen/Relationsschemata:1. Lieferant {ID, LName, LAdresse}2. Ware {ID, Ware, Preis, LID}

Mit einer vorhergehenden Stufe der Datenmodellierung (ER-Diagramm) wäre dieses Problem vermutlich gar nicht aufgetreten, da klar sein sollte, dass Lieferant und Ware zwei unterschiedliche Entitäten sind!

Page 72: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbankentwicklung überkorrekt:

Page 73: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Normalformen(s. datenbanktheorie.pdf, S.31-52)

• Erste Normalform (1NF):Alle Merkmalswerte sind atomar (keine Wiederholungsgruppen zugelassen).

• Zweite Normalform (2NF):Nichtschlüsselmerkmale sind voll vom Schlüssel abhängig.

• Dritte Normalform (3NF): Es bestehen keine transitiven Abhängigkeiten.

• Boyce-Codd Normalform (BCNF): Nur Abhängigkeiten vom Schlüssel zugelassen.

• Vierte Normalform (4NF):Keine Mehrwertabhängigkeiten.

• Fünfte Normalform (5NF): Nur triviale Verbundabhängigkeit.

Page 74: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Name AbtNr Abteilung Projekt

Müller 5 EDV II (6, MySQL, 50%), (3, DV2010, 50%)

Schulze 3 Rechenzentrum (3, DV2010, 100%)

1. Normalform Eine Relation befindet sich in der ersten Normalform, wenn an allen Kreuzungspunkten von Zeilen und Spalten nur atomare Werte auftreten. Ein Datensatz muss durch den Primärschlüssel eindeutig identifizierbar sein.

1. Normalform Eine Relation befindet sich in der ersten Normalform, wenn an allen Kreuzungspunkten von Zeilen und Spalten nur atomare Werte auftreten. Ein Datensatz muss durch den Primärschlüssel eindeutig identifizierbar sein.

PersNr Name AbtNr Abteilung

123 Müller 5 EDV II

876 Schulze 3 Rechenzentrum

PersNr ProjNr Projekt Zeit

123 6 MySQL 50%

123 3 DV2010 50%

876 3 DV2010 100%

Das Attribut Projekt ist nicht atomar, da es Mehrfachattribut ist. Mehrfachattribute werden in einer eigenen Tabelle ausgelagert. Außerdem fehlt ein Primärschlüssel. Besser:

Page 75: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

2. NormalformEine Relation befindet sich in der 2. Normalform, wenn sie sich in der ersten befindet und jedes Nicht-Schlüssel-Attribut funktional abhängig ist vom Gesamtschlüssel, nicht dagegen von Schlüsselteilen.

2. NormalformEine Relation befindet sich in der 2. Normalform, wenn sie sich in der ersten befindet und jedes Nicht-Schlüssel-Attribut funktional abhängig ist vom Gesamtschlüssel, nicht dagegen von Schlüsselteilen.

ProjNr Projekt

3 MySQL

3 DV2010

PersNr ProjNr Zeit

123 6 50%

123 3 100%

876 3 50%

Das Attribut Projekt ist funktional abhängig vom Attribut ProjNr, nicht jedoch von PersNr.Das Attribut Zeit ist dagegen von gesamten Primärschlüssel (PersNr, ProjNr) funktional abhängig.Also nochmal aufteilen:

PersNr ProjNr Projekt Zeit

123 6 MySQL 50%

123 3 DV2010 50%

876 3 DV2010 100%

Page 76: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

3. NormalformEine Relation befindet sich in der 3. Normalform, wenn sie sich in der 2. Normalform befindet und keine funktionalen Abhängigkeiten zwischen Nicht-Schlüssel-Attributen existieren. Anders ausgedrückt: Die Relation darf keine transitiven Abhängigkeiten aufweisen.

3. NormalformEine Relation befindet sich in der 3. Normalform, wenn sie sich in der 2. Normalform befindet und keine funktionalen Abhängigkeiten zwischen Nicht-Schlüssel-Attributen existieren. Anders ausgedrückt: Die Relation darf keine transitiven Abhängigkeiten aufweisen.

Das Attribut Abteilung ist nur indirekt vom Primärschlüssel PersNr abhängig. Vielmehr ist das Attribut Abteilung von der AbtNr abhängig. Also auch hier Aufspaltung in zwei Tabellen:

PersNr Name AbtNr Abteilung

123 Müller 5 EDV II

876 Schulze 3 Rechenzentrum

PersNr Name AbtNr

123 Müller 5

876 Schulze 3

AbtNr Abteilung

5 EDV II

3 Rechenzentrum

Page 77: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Zusammengefasst:

Page 78: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Goldene Tabellenregeln

1. Es braucht IMMER einen eindeutigen Hauptschlüssel (am besten, Sie nennen ihn immer ID)

2. Je Datensatz nur ein Wert pro Attribut3. Wertemenge einschränken (z.B. mit Eingabemaske, Domain) 4. Nur ein Datensatz pro Zeile5. Redundanz vermeiden

wenn Sie die ersten 4 Regeln ernst

nehmen, dann haben Sie mindestens

eine 2.NF, die fünfte Regel konsequent

befolgen ergibt dann BCNF

(oder liege ich falsch?s. datenbanktheorie.pdf, S. 31-52)

Page 79: Datenbanken... und alles was dazugehört. 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 mySQL

Web-ProgrammierungHTML+CSS+PHP

Datenbank 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

Page 80: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Datenbankentwicklung überkorrekt:

Page 81: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.
Page 82: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wie führt man eine Normalisierung durch? (Was ist zu beachten?)

• Normalisierung = Sicherstellen, dass die Tabellen keine Redundanzen enthalten (formale Definition, Algebra)

• Erste Normalform (1NF):Alle Merkmalswerte sind atomar

• Zweite Normalform (2NF):Nichtschlüsselmerkmale sind voll vom Schlüssel abhängig.

• Dritte Normalform (3NF): Es bestehen keine transitiven Abhängigkeiten.

• Boyce-Codd Normalform (BCNF): Nur direkte Abhängigkeiten vom Schlüssel zugelassen.

• Vierte Normalform (4NF):Keine Mehrwertabhängigkeiten.

• Fünfte Normalform (5NF): Nur triviale Verbundabhängigkeit.

Page 83: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wie führt man eine Normalisierung durch? (Was ist zu beachten?)

mitarbeiter

ID Name Gehaltsklasse Gehalt

1 Müller GK13a 87000

2 Meier GK11b 65000

transitive Abhängigkeit,also auf mehrer Tabellen Auflösen

• Dritte Normalform (3NF): Es bestehen keine transitiven Abhängigkeiten.

Flug gebucht von Kunden m

Nr Datum Nr Name

Die beiden wichtigsten Fälle, in denen die 3. Normalform verletzt ist:

n:m Beziehung, also auf mehrer Tabellen Auflösen

Page 84: Datenbanken... und alles was dazugehört. Aspekte des Themas Datenbanken Datenmaterial modellieren tabellarisch strukturieren Tabelle Tabelle Zeilen Spalten.

Wie fügt man Daten in eine DB an einen bestimmten Ort ein (PHP query) ?

• In der Probe wird es nur um das Auslesen (SELECT...) und Aggregieren (COUNT, MEAN, SUM...) von Daten gehen!

INSERT INTO tbl_name () VALUES();

z.B.: INSERT INTO tabelleA VALUES(1,2,‘drei‘); INSERT INTO tabelleA (col1,col3) VALUES(1,‘drei‘);