21
Institut für Mathematik, Univer sitä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 1 Einführung in Datenbankmodellierung und SQL

Embed Size (px)

Citation preview

Page 1: 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

1

Einführung in Datenbankmodellierung und SQL

Page 2: 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.

Page 3: 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

3

Datenbankmodellierung

• Analyse der Datenstruktur

• Erstellung eines Speicherungskonzeptes nach verschiedenen Gesichtspunkten (Platz, Geschwindigkeit, Sicherheit)

• Darstellung mittels UML (Klassen-diagramm) oder ERD (Entity Relationship Diagram)

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

9

Und so schaut‘s aus...

-Rechnungsnummer-Datum-Kunde

Rechnung

-Rechnungsnummer-Artikelnummer-Anzahl

Artikelposition

-Artikelnummer-Artikelname-Preis

Artikel

Page 10: 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

10

Anmerkungen• Modellierung nach unterschiedlichen

Gesichtspunkten anhand des Gesamtpreises

– Redundanzvermeidung: Bei jeder Ausgabe bzw. Anzeige errechnen

– Geschwindigkeit: Im Rechnungskopf speichern.

Page 11: 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

11

SQL

• DDL (Data Definition Language)– CREATE

– ALTER

– DROP

• DML (Data Modelling Language)– SELECT

– INSERT

– UPDATE

– DELETE

Page 12: 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

12

Praktisches Arbeiten

• Datenbank „mySQL“

• SQL GUI „myCC“

• Dokumentation f. SQL

• Beide Produkte sind Open Source (= gratis)

• Download von „www.mysql.com“

Page 13: 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

13

SELECT

SELECT * FROM rechnung

WHERE rechnungsnummer > 2

AND kunde LIKE „Eastwood%“

Page 14: 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

14

SELECT (schon wieder)

SELECT * FROM rechnung

WHERE rechnungsnummer IN (2,3,4)

SELECT * FROM rechnung

WHERE rechnungsnummer

BETWEEN 2 AND 4

Page 15: 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

15

SELECT

SELECT *, artikelName

FROM artikelposition a, artikel b

WHERE a.artikelNummer = b.artikelNummer

AND rechnungsNummer = 1

ORDER BY artikelName DESC

Page 16: 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

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

Page 17: 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

17

INSERT

INSERT INTO rechnung

SET rechnungsNummer = 1,

datum = "2003/05/01",

kunde = „Stallone S.";

Page 18: 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

18

UPDATE

UPDATE rechnung

SET kunde = „Stallone S.“

WHERE rechnungsNummer = 4

Page 19: 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

19

DELETE

DELETE FROM rechnung

WHERE rechnungsNummer = 4

Page 20: 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

20

Links

http://www.mysql.com

http://ffm.junetz.de/members/reeg/

http://www.geocities.com/SiliconValley/Vista/2207/sql1.html

Page 21: 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

21

Und aus....

Danke für die Aufmerksamkeit....