Einführung in Datenbankmodellierung und SQL

Werbung
Einführung in
Datenbankmodellierung und SQL
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
1
Was ist eine Datenbank?
• Eine Datenbank ist ein elektronisches
System zum Speichern, Verwalten und
Auslesen von Daten.
– SQL-Datenbank (relationale DB)
– XML-Datenbank
– Objekt-Datenbank.
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
2
Datenbankmodellierung
• Analyse der Datenstruktur
• Erstellung eines Speicherungskonzeptes
nach verschiedenen Gesichtspunkten (Platz,
Geschwindigkeit, Sicherheit)
• Darstellung mittels UML (Klassendiagramm) oder ERD (Entity Relationship
Diagram)
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
3
Beispiel: Abbildung eines
Rechnungsbeleges
Attribute eines Rechnungsbeleges
–
–
–
–
Rechnungsnummer
Rechnungsdatum
Kunde
Artikelpositionen (Artikelnummer, Anzahl)
Rechnungs- Datum Kunde
Artikelpositionen
nummer
1
1.5.2003 Eastwood C. Colt:2, Winchester:3, Whiskey:5
2
2.5.2003 Wayne J.
Winchester:10
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
4
1. Normalform
• Ein Attribut darf maximal einen Wert haben
Rechnungs- Datum Kunde
nummer
1
1.5.2003 Eastwood C.
2
2.5.2003 Wayne J.
Artikelposition Anzahl
Colt
2
Winchester
3
Whiskey
5
Winchester
10
• Problem: Eindeutige Zuordnung der Artikel
zu der Rechnung ist nicht möglich
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
5
1. Normalform
• Zuordnung der Artikelpositionen mittels
eines „zusammengesetzten
Primärschlüssels“ herstellen
Rechnungs- Datum Kunde
nummer
1
1.5.2003 Eastwood C.
2
2.5.2003 Wayne J.
Rechnungsnummer
1
1
1
2
Artikelposition Anzahl
Colt
Winchester
Whiskey
Winchester
2
3
5
10
• Primärschlüssel: Eindeutige Identifikation
eines Datensatzes
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
6
2. Normalform
• Erfüllung der 1. Normalform und
Abhängigkeit jedes Attributes vom
gesamten Primärschlüssel.
Rechnungsnummer
1
1
1
2
Artikelnummer
4711
4712
4713
4712
Artikelname
Colt
Winchester
Whiskey
Winchester
Anzahl
2
3
5
10
• Artikelname ist nicht abhängig von
Rechnungsnummer UND Artikelnummer,
sondern NUR von Artikelnummer.
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
7
2. Normalform
• Auflösung der „teilweisen“ Relation
durch Einführung einer weiteren
Tabelle. (= Artikel)
Rechnungsnummer
1
1
1
2
Artikel- Anzahl
nummer
4711
2
4712
3
4713
5
4712
10
Artikelnummer
4711
4712
4713
Artikelname
Colt
Winchester
Whiskey
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
Preis
100,00
250,00
5,00
8
Und so schaut‘s aus...
Rechnung
Artikelposition
-Rechnungsnummer
-Datum
-Kunde
-Rechnungsnummer
-Artikelnummer
-Anzahl
Artikel
-Artikelnummer
-Artikelname
-Preis
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
9
Anmerkungen
• Modellierung nach unterschiedlichen
Gesichtspunkten anhand des Gesamtpreises
– Redundanzvermeidung: Bei jeder
Ausgabe bzw. Anzeige errechnen
– Geschwindigkeit: Im Rechnungskopf
speichern.
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
10
SQL
• DDL (Data Definition Language)
– CREATE
– ALTER
– DROP
• DML (Data Modelling Language)
–
–
–
–
SELECT
INSERT
UPDATE
DELETE
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
11
Praktisches Arbeiten
• Datenbank „mySQL“
• SQL GUI „myCC“
• Dokumentation f. SQL
• Beide Produkte sind Open Source (= gratis)
• Download von „www.mysql.com“
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
12
SELECT
SELECT * FROM rechnung
WHERE rechnungsnummer > 2
AND kunde LIKE „Eastwood%“
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
13
SELECT (schon wieder)
SELECT * FROM rechnung
WHERE rechnungsnummer IN (2,3,4)
SELECT * FROM rechnung
WHERE rechnungsnummer
BETWEEN 2 AND 4
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
14
SELECT
SELECT *, artikelName
FROM artikelposition a, artikel b
WHERE a.artikelNummer =
b.artikelNummer
AND rechnungsNummer = 1
ORDER BY artikelName DESC
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
15
Diverse SELECTS
SELECT COUNT(*) FROM rechnung
Zählt Datensätze..
SELECT MAX(summe) FROM rechnung
Sucht die größte Summe
MIN: kleinste
AVG: bildet Durchschnitt
SUM: bildet Summe
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
16
INSERT
INSERT INTO rechnung
SET rechnungsNummer
datum
kunde
= 1,
= "2003/05/01",
= „Stallone S.";
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
17
UPDATE
UPDATE rechnung
SET kunde = „Stallone S.“
WHERE rechnungsNummer = 4
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
18
DELETE
DELETE FROM rechnung
WHERE rechnungsNummer = 4
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
19
Links
http://www.mysql.com
http://ffm.junetz.de/members/reeg/
http://www.geocities.com/SiliconValley/Vista/
2207/sql1.html
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
20
Und aus....
Danke für die Aufmerksamkeit.... 
Institut für Mathematik, Universität Wien,
Strudlhofgasse 4, A-1090 Wien
21
Herunterladen