Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien 1 Einführung in...
-
Upload
kirsa-wendlandt -
Category
Documents
-
view
113 -
download
7
Transcript of Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien 1 Einführung in...
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
1
Einführung in Datenbankmodellierung und SQL
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
2
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
3
Datenbankmodellierung
• Analyse der Datenstruktur
• Erstellung eines Speicherungskonzeptes nach verschiedenen Gesichtspunkten (Platz, Geschwindigkeit, Sicherheit)
• Darstellung mittels UML (Klassen-diagramm) oder ERD (Entity Relationship Diagram)
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
4
Beispiel: Abbildung eines Rechnungsbeleges
Attribute eines Rechnungsbeleges– Rechnungsnummer– Rechnungsdatum– Kunde– Artikelpositionen (Artikelnummer, Anzahl)
Rechnungs- nummer
Datum Kunde Artikelpositionen
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
5
1. Normalform
• Ein Attribut darf maximal einen Wert haben
• Problem: Eindeutige Zuordnung der Artikel zu der Rechnung ist nicht möglich
Rechnungs- nummer
Datum Kunde
1 1.5.2003 Eastwood C. 2 2.5.2003 Wayne J.
Artikelposition Anzahl Colt 2 Winchester 3 Whiskey 5 Winchester 10
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
6
1. Normalform• Zuordnung der Artikelpositionen mittels
eines „zusammengesetzten Primärschlüssels“ herstellen
• Primärschlüssel: Eindeutige Identifikation eines Datensatzes
Rechnungs- nummer
Datum Kunde
1 1.5.2003 Eastwood C. 2 2.5.2003 Wayne J.
Rechnungs- nummer
Artikelposition Anzahl
1 Colt 2 1 Winchester 3 1 Whiskey 5 2 Winchester 10
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
7
2. Normalform• Erfüllung der 1. Normalform und
Abhängigkeit jedes Attributes vom gesamten Primärschlüssel.
• Artikelname ist nicht abhängig von Rechnungsnummer UND Artikelnummer, sondern NUR von Artikelnummer.
Rechnungs- nummer
Artikel-nummer
Artikelname Anzahl
1 4711 Colt 2 1 4712 Winchester 3 1 4713 Whiskey 5 2 4712 Winchester 10
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
8
2. Normalform
• Auflösung der „teilweisen“ Relation durch Einführung einer weiteren Tabelle. (= Artikel)
Rechnungs- nummer
Artikel-nummer
Anzahl
1 4711 2 1 4712 3 1 4713 5 2 4712 10
Artikel-nummer
Artikelname Preis
4711 Colt 100,00 4712 Winchester 250,00 4713 Whiskey 5,00
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
9
Und so schaut‘s aus...
-Rechnungsnummer-Datum-Kunde
Rechnung
-Rechnungsnummer-Artikelnummer-Anzahl
Artikelposition
-Artikelnummer-Artikelname-Preis
Artikel
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
10
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
11
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
12
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
13
SELECT
SELECT * FROM rechnung
WHERE rechnungsnummer > 2
AND kunde LIKE „Eastwood%“
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
14
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
15
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
16
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
17
INSERT
INSERT INTO rechnung
SET rechnungsNummer = 1,
datum = "2003/05/01",
kunde = „Stallone S.";
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
18
UPDATE
UPDATE rechnung
SET kunde = „Stallone S.“
WHERE rechnungsNummer = 4
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
19
DELETE
DELETE FROM rechnung
WHERE rechnungsNummer = 4
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
20
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
21
Und aus....
Danke für die Aufmerksamkeit....