Präsentation herunterladen
Veröffentlicht von:Kirsa Wendlandt Geändert vor über 10 Jahren
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) Problem: Wie viel Platz soll für das Feld Artikelpositionen reserviert werden? 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 Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
6
Normalform Zuordnung der Artikelpositionen mittels eines „zusammengesetzten Primärschlüssels“ herstellen Primärschlüssel: Eindeutige Identifikation eines Datensatzes 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. Zur Erläuterung: Artikelnummer in Tabelle eingefügt. 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) Es gibt insgesamt 5 Normalformen, 2 reichen für heute... Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
9
Und so schaut‘s aus... 1 Rechnung hat 1-n Artikelpositionen 1 Artikelposition entspricht genau einem 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. Siehe vorige Folie... Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
11
SQL DDL (Data Definition Language) DML (Data Modelling Language)
CREATE ALTER DROP DML (Data Modelling Language) SELECT INSERT UPDATE DELETE DDL: Auf Tabellen-, Index- bzw. Datenbankebene create.sql: Datenbankscript. Skripte ermöglichen automatisches Erstellen und Initalisieren von Datenbanken bzw. Tabellen DML: Auf Recordebene 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 „ Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
13
SELECT SELECT * FROM rechnung WHERE rechnungsnummer > 2
AND kunde LIKE „Eastwood%“ Grundstruktur: Befehl: SELECT, INSERT, UPDATE, DELETE Feldselektion: „*“ oder Aufzählung Klauseln: WHERE mit Operatoren (=, <, >, <=, >=, LIKE, BETWEEN, IN) Verknüpfung der Klauseln mit AND oder OR. Klammernsetzung möglich. Hinweis zur Formatierung: Zeilenumbruch bei Klauseln fördert die Lesbarkeit des Statements 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) 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 Details zum sog. JOIN (Selektion mehrerer Tabellen) Selektiert alle Felder von artikelposition und das Feld artikelName von artikel Vergibt Alias-Namen für die Tabellen (a, b) => Kurzschreibweise bei nachfolgenden Klauseln „WHERE a.rechnungsNummer...“ Eigentliche Verknüpfung der beiden Tabellen. Kreuzprodukt als Ergebnis, wenn diese Verknüpfung nicht angegeben wird. Absteigende Sortierung nach artikelName. 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 Zählt Datensätze Sucht den größten Rechnungsbetrag von rechnung WHERE-Klausen können wie gewohnt verwendet werden. 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."; Liefert Fehlermeldung, wenn Primärschlüssel („primary key“) bereits vorhanden ist! Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
18
UPDATE UPDATE rechnung SET kunde = „Stallone S.“
WHERE rechnungsNummer = 4 Aufpassen auf WHERE-Klausel. Vorher mit SELECT-Statement ausprobieren, ob der richtige Datensatz „getroffen“ wird. Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
19
DELETE DELETE FROM rechnung WHERE rechnungsNummer = 4
Aufpassen auf WHERE-Klausel. Vorher mit SELECT-Statement ausprobieren, ob der richtige Datensatz „getroffen“ wird. Hier noch wichtiger als bei UPDATE-Statement, da hier der Datensatz unwiederbringlich futsch ist!!! Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
20
Links http://www.mysql.com http://ffm.junetz.de/members/reeg/
Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
21
Danke für die Aufmerksamkeit....
Und aus.... Danke für die Aufmerksamkeit.... Institut für Mathematik, Universität Wien, Strudlhofgasse 4, A-1090 Wien
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.