Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Eilert Wollenburg Geändert vor über 10 Jahren
1
Brauchen Datenbanken eine Struktur?
Wichtige Daten, die vor 20 Jahren noch auf Papier standen, wurden 10 Jahre später in Excel-Tabellen gespeichert. Und weil sich da ganz schön viel ansammelte, wurden daraus einige Jahre später Datenbanken. Aber was macht eine Sammlung von Tabellen zu einer Datenbank? Die Verknüpfungen zwischen diesen Tabellen! Es ist heute nicht mehr schwer, an ein wirklich leistungsfähiges Datenbanksystem zu kommen. Aber bevor dies sinnvoll eingesetzt werden kann sollte man jedoch zunächst mal einiges an Zeit und Mühe in die Planung und das Datenbank-Design investieren. Sicher, man kann auch einfach mal so loslegen und sich dann irgendwie "durchwursteln". Dass man damit Zeit und Energie spart ist allerdings ein weit verbreiteter Irrtum. Warum Datenbanken ordentlich geplant sein wollen, möchte ich im Folgenden an einem Beispiel zeigen. Lektorat Dirk Nielsen
2
Betrachten wir zur Illustration also die Datenhaltung eines Online-Buchhändlers. Nehmen wir auch schon mal an, dass dieser Buchhändler nicht mehr so naiv ist, alles in eine einzige Tabelle schreiben zu wollen. Schließlich hat er sich einige Gedanken gemacht und präsentiert stolz drei Tabellen mit folgender Struktur. Lektorat Dirk Nielsen
3
Lektorat Dirk Nielsen
4
Ist dieser Ansatz überzeugend
Ist dieser Ansatz überzeugend? Höchstens auf den ersten Blick, auf Dauer kann das nicht funktionieren. Um nur auf einige Probleme hinzuweisen: Bei jeder Bestellung eines bestimmten Kunden müssen alle seine Kundendaten (Name, Ort, ...) erneut gespeichert werden! Bei jeder Bestellung muss man in der gesamten Tabelle Bestellung nachsehen, ob der Kunde bereits erfasst ist und welche "KdNr" er hat. Wer kontrolliert, ob die "ISBN" der Tabelle Bestellung auch in Buch enthalten ist? Kann es zu einer "BestNr" nur eine "ISBN" geben? Sicherlich möchten wir dem Kunden ermöglichen, gleichzeitig zwei verschiedene Bücher zu bestellen, dafür soll er jedoch nur eine Rechnung erhalten. Was ist dann aber das identifizierende Merkmal (der "Primärschlüssel") in der Tabelle Bestellung? Lektorat Dirk Nielsen
5
Angenommen, ein Verlag ändert seinen Namen und der Eintrag in Tabelle Bestellung wird aktualisiert. Wenn dies in der Büchertabelle nicht ebenso angepasst wird, können einzelne Bücher nicht mehr zugeordnet werden! Kundendaten können erst dann gespeichert werden wenn auch eine Bestellung vorliegt. Schickt ein Kunde nach seiner ersten Bestellung das Buch zurück und wird deshalb der Datensatz dieser Bestellung gelöscht, sind damit auch die Kundendaten verloren. Bei einem Tippfehler im Kundennamen erscheinen zwei scheinbar unterschiedliche Kunden mit derselben Kundennummer. Muss der Rechnungsbetrag wirklich gespeichert werden? Schließlich kann man ihn aus den übrigen Daten berechnen. Und was ist, wenn sich die Buchpreise ändern? Will ich wirklich zu einer konkreten PLZ jedesmal den Ortsnamen neu speichern? Dies betrifft sowohl die Daten der Verlage als auch der Kunden. Lektorat Dirk Nielsen
6
Diese Auflistung ließe sich leicht noch erweitern
Diese Auflistung ließe sich leicht noch erweitern. Wenn man solche Mängel erst beheben will wenn die Datenbank bereits implementiert ist, hat man nicht nur viel Ärger. Man investiert in eine solche Reparatur wesentlich mehr Zeit als in eine solide Planungsphase! Lektorat Dirk Nielsen
7
Planungsphase: Lektorat Dirk Nielsen
8
Logisches Lösungsmodell:
Lektorat Dirk Nielsen
9
FAZIT Lektorat Dirk Nielsen
10
DAS "IEV" MODELL Lektorat Dirk Nielsen Sütő Gergely
11
Dies sind jeweils Individuen
MITARBEITER Managerin Sylvia Blume Wächter 9.600 € Hans Müller 2.500 € Sekretärin Direktor Anita Bach Volker Klein 3.800 € € Dies sind jeweils Individuen Lektorat Dirk Nielsen
12
INDIVIDUEN EIGENSCHAFT VERBINDUNG
Objekte des Wirtschaftssystems, die mit Daten beschrieben werden. Alle Faktoren des Wirtschaftssystems (Sachen, Menschen, Ereignisse, Erscheinungen) Objekt EIGENSCHAFT Die Daten, mit denen die Individuen beschrieben werden VERBINDUNG Verbindungen zwischen den Daten Lektorat Dirk Nielsen
13
INDIVIDUUM Individuumtyp MITARBEITER Vorkommen des Individuums
Managerin Sylvia Blume Wächter 9.600 € Hans Müller Individuumtyp 2.500 € Sekretärin Direktor Vorkommen des Individuums Anita Bach Volker Klein 3.800 € € MITARBEITER Lektorat Dirk Nielsen
14
EIGENSCHAFT Lektorat Dirk Nielsen Vorkommen einer Eigenschaft (Wert)
Eigenschafts typ Managerin NAME DES MITARBEITERS Wächter Sylvia Blume Hans Müller 9.600 € Volker Klein 2.500 € Anita Bach Sekretärin Direktor 3.800 € € EIGENSCHAFT Lektorat Dirk Nielsen
15
Vorkommen der Verbindung
ORGANISATION Betrieb X Zentrale Hamburg 32 22 Kiel Vorkommen der Verbindung Verbindungstyp MITARBEITER 22 32 22 22 22 Lektorat Dirk Nielsen
16
im Computer gespeichert sind miteinander in Verbindung stehen
DATENBANK System der Daten, die im Computer gespeichert sind miteinander in Verbindung stehen enthält auch die Datenstrukturbeschreibung und die Datenverwaltungsprozeduren Lektorat Dirk Nielsen
17
Beispiel - Relation MITARBEITER <Identifizierungsnummer, Name, Vorname, Personalausweisnummer, Geschlecht, Sozialversicherungsnummer, Führerscheinnummer, ggf. Geburtsname, Gehalt, Adresse, Betriebscode, Betriebsname, Kinder, Kindername(n), Sprachcode, Sprache(n), Sprachprüfungsdatum, etc.> Lektorat Dirk Nielsen Sütő Gergely
18
Innere Rolle der Eigenschaften
Identifizierungsfeld: in seiner Spalte kommt jeder Wert nur einmal vor Beschreibungsfeld: in seiner Spalte kann ein Wert mehrmals vorkommen Sütő Gergely
19
Wie soll ein guter Identifizierer sein?
Kriterien: stark charakteristisch stabil feste Länge möglichst kurz benutzt möglichst wenig Zeichen Lektorat Dirk Nielsen Sütő Gergely
20
Identifizierer-Alternativen
Innerer Identifizierer: nur innerhalb des Systems bekannt Aussenidentifizierer: ausserhalb des Systems wird bestimmt Primärschlüssel Lektorat Dirk Nielsen Sütő Gergely
21
Funktionale Abhängigkeit
da bestimmt eindeutig df d.h. df da da df ? Paul Klein Lektorat Dirk Nielsen Sütő Gergely
22
Gegenseitige Abhängigkeit
da bestimmt eindeutig dj und umgekehrt auch, d.h. da dj da dj Lektorat Dirk Nielsen Sütő Gergely
23
Funktionale Unabhängigkeit
da bestimmt dn nicht und dn bestimmt da nicht, d.h. dn da da dn EN Lektorat Dirk Nielsen Sütő Gergely
24
Einzeln, darf nicht gleich sein!
Umgekehrte Abhängigkeit dr bestimmt da, umgekehrt aber nicht, d.h. dr da da dr Einzeln, darf nicht gleich sein! Lektorat Dirk Nielsen Sütő Gergely
25
Unbestimmte Relation Normalisieren
Aus Werten einiger Felder müssen mehrere zu einer Zeile zugeordnet werden, deswegen lässt sich die Relation nicht auf eine zweidimensionale Tabelle abbilden. Was ist das Problem? Normalisieren Lektorat Dirk Nielsen Sütő Gergely
26
Verbindungsgrad Mögliche Werte: ein zu eins (1:1) ein zu mehr (1:n)
Die Verbindung zwischen den Relationen bedeutet die Zuordnung der Zeilen zu den einzelnen Relationen. Der Verbindungsgrad zeigt an, wie viele Zeilen einer Relation zu einer beliebigen Zeile einer anderen Relation verbunden sein können oder sind. Mögliche Werte: ein zu eins (1:1) ein zu mehr (1:n) mehr zu mehr (m:n) Lektorat Dirk Nielsen Sütő Gergely
27
1:1 Verbindung Lektorat Dirk Nielsen Sütő Gergely
28
1:n Verbindung Lektorat Dirk Nielsen Sütő Gergely
29
m:n Verbindung Lektorat Dirk Nielsen Sütő Gergely
30
Datenstruktur Organisation Führers. FNr Mitarbeiter Betr.code
IdNr Betr.code Betr.name Mitarbeiter Sprache IdNr PANr Name Betr.code Sc Sprache Kinder Sprachkenntnis Kind_SVNr IdNr Kindname Sprachcode IdNr Sprachprüfung Lektorat Dirk Nielsen Sütő Gergely
31
Begriffsentsprechungen
reelles System IEV Modell relationelles Modell Datenbank Individuum- Typ Relation Tabelle Individuum- Vorkommen Tupel Rekord (Zeile) Name Eigenschaft- Typ Feld Feld Paul Klein Eigenschaft- Vorkommen Element (Feld)Wert Verbindungs- Typ Verbindung Verbindungs- Beschreibung Verbindungs- Vorkommen Menge der Zeilen Verbundene Rekords Lektorat Dirk Nielsen Sütő Gergely
32
Konstruktion der SGM Lektorat Dirk Nielsen Sütő Gergely
33
Bezeichnungen der SGM Identifizierer Teilidentifizierer
Funktionale Abhängigkeit Gegenseitige Abhängigkeit Standardwert Kriterium Schwach charakteristische Eigenschaft Untermatrix Berufung Mnemonic Lektorat Dirk Nielsen Sütő Gergely
34
Charakteristik der SGM
Reihe: Individuum Spalte: Eigenschaft Zelle: Zusammenhang In eine Spalte kommt immer nur ein Identifizierer. Identifizierer kann sein: einfach: ein Stern zusammengesetzt: zwei oder mehr Kreise In einer Spalte darf gleichzeitig kein Identifizierer (Stern) und Teilidentifizierer (Kreis) stehen! Lektorat Dirk Nielsen Sütő Gergely
35
BEDINGTE ABHÄNGIGKEIT STARKE LOGISCHE REDUNDANZ
Lösung BEDINGTE ABHÄNGIGKEIT Bezeichnungen: Identifizierer Teilidentifizierer Funktionale Abhängigk. Gegenseitige Abhängigk. Kriterium Schwach charakteristisch STARKE LOGISCHE REDUNDANZ Lektorat Dirk Nielsen Sütő Gergely
36
Elementare Daten Kleinste Daten mit selbständiger Bedeutung und selbständigen Namen, die nicht weiter zerlegt werden können, sind der Datensatz oder Datenfeld Elementare Daten sind nach ihrem Typ: (ganze und reelle) Zahlen Charakter Logische Werte Zeiger Aufgezählte Werte Lektorat Dirk Nielsen
37
Elementare Datentypen
Ganze Zahlen: die Menge der ganzen Zahlen Reelle Zahlen: rationelle Zahlen in Binärzahlensystem Logische Werte: Wahr oder Falsch Charakter: Werte aus der ASCII -Zeichencodetabelle Lektorat Dirk Nielsen
38
Elementare Datentypen
Zeiger: (pointer) Datentyp, der nicht Daten beinhaltet, sondern ihre Adresse im (Haupt-) Speicher Aufgezählter Typ: Datentyp, der durch Aufzählung seiner mögliche Werte angegeben wird. Die möglichen Werte (Konstanten) sind beliebige Datentypen. Lektorat Dirk Nielsen
39
Elementare Datenstrukturen
Sequenz / Feld / Block: (array) Folge von Daten, deren Anzahl bestimmt ist und jedes Element durch einen Index (Nummer) erreichbar ist Tupel: (record) Sammlung von verschiedenen Daten(typen), die irgendwie zusammenhängen Datei: (file) Datenbestand, geordnete Menge irgendwie zusammenhängender Informationen Lektorat Dirk Nielsen
40
Abstrakte Datenstrukturen
Ihr Ziel ist die Abbildung reeller Datenstrukturen auf eine logische Struktur, die unter gegebenen Umständen und gegebenen Mitteln physisch zu verwirklichen ist In der Praxis unterschieden sich die logischen und die physischen Datenstrukturen voneinander Der physische Datenbestand ist die Menge der gespeicherten Daten, die eigene Namen hat Lektorat Dirk Nielsen
41
Abstrakte Datenstrukturen
Verlauf der Abbildung: logischer Datensatz physische Datenfeld logischer Tupel physischer Tupel in der logischen Datenstruktur gespeicherte Daten physische Datenbestand Strukturierung physischer Bestände: seriell direkt zufällig indiziert sequenziell Lektorat Dirk Nielsen
42
Abstrakte Datenstrukturen
Block: Folge von Daten, deren Anzahl bestimmt ist und jedes Element durch einen Index (Nummer) erreichbar ist Charakterkette: unbestimmte (veränderbare) Anzahl von Charakteren Stapel: (stack) Datenstruktur, wo eine Operation nur mit dem letzten Element durchgeführt werden kann und ein neues Element nur nach dem letzten Element eingefügt werden kann (LIFO) Lektorat Dirk Nielsen
43
Stapel Elemente können reingetan und rausgenommen werden
Nur das letzte Element ist erreichbar Leerheit ist abfragbar Unterteil Oberteil Lektorat Dirk Nielsen
44
Abstrakte Datenstrukturen
Schlange: (queue) Reihenfolge von Daten, bei der an einem Ende Daten angefügt und am anderen Ende weggenommen werden können (FIFO) Liste: Datenstruktur, die sagt, welches Element - logisch gesehen - dem anderen folgt. Tupel: zusammengesetzte Datenstruktur, die aus Feldern besteht, die eigenen Namen haben und durch diesen Namen erreichbar sind Lektorat Dirk Nielsen
45
Schlange Elemente können reingetan und rausgenommen werden
Nur das erste Element ist erreichbar Leerheit ist abfragbar Ende Anfang Lektorat Dirk Nielsen
46
Liste Elemente können reingetan und rausgenommen werden
Über die Zeigerkette ist jedes beliebiges Element erreichbar Leerheit ist abfragbar Lektorat Dirk Nielsen
47
Tupel (record) Innerhalb eines Tupels ist jedes Feld erreichbar – sonst kann nur der Tupel erreicht werden Die elementaren Datentypen der Felder und ihre Eingangsformate sind veränderbar Abfrage der Leerheit ist sinnlos Grösse ist nur indirekt veränderbar, falls die Grösse der Felder geändert wird Lektorat Dirk Nielsen
48
Tupel Lektorat Dirk Nielsen
49
Datei Nach dem Öffnen ist in ihr jedes beliebige Element erreichbar – physisch ist sie aber nur als cluster lesbar In der Datei gespeicherte Menge kann aus Kombination von beliebigen elementaren Datentypen bestehen Die Abfrage der Leerheit ist sinnlos Die Grösse ist von den gespeicherten Daten abhängig Lektorat Dirk Nielsen
50
Sequentielle Datei Besteht aus gleichen Datentypen
Nimmt auf dem Hintergrundspeicher Platz Maximale Grösse ist vom freien Speicherplatz abhängig Ihre Elemente sind nur nach der Aufschreib-Reihenfolge erreichbar Lektorat Dirk Nielsen
51
Indizierte Datei Besteht aus gleichen Datentypen
Nimmt auf dem Hintergrundspeicher Platz Maximale Grösse ist vom freien Speicherplatz abhängig Ihre Elemente sind beliebig erreichbar Lektorat Dirk Nielsen
52
Tupel-Datei Besteht aus verschiedenen Datentypen
Name und Typ der Elemente (Felder) müssen angegeben werden Die Tupel-Elemente sind auch einzeln erreichbar Ein Tupel ist eine Einheit, aus der Block, Stapel, Schlange oder Liste gebaut werden können Lektorat Dirk Nielsen
53
Datei Wie kann eine Datei erstellt werden?
Mit dem entsprechenden Programm Durch den entsprechenden Algorithmus Lektorat Dirk Nielsen
54
Zusammengesetzte Datenstrukturen
Aus abstrakten Datenstrukturen vom gleichen Typ können zusammengesetzte Datenbestände aufgebaut werden: hierarchische Strukturen (Bäume) relationelle Strukturen (Tabellen) Netzstrukturen (Graphen, Netzwerke) Lektorat Dirk Nielsen
55
Operationen für zusammen-gesetzten Datenstrukturen
Benutzen eines Elements: erstes, letztes, nächstes, beliebiges Einfügen eines neuen Elements: am Anfang, am Ende, an einer beliebigen Stelle Entfernen eines Elements: erstes, letztes, beliebiges Prüfung der Existenz (leer oder doppelt?) Lektorat Dirk Nielsen
56
Verkettete Stapel, Schlange, Liste
Für im Block gespeicherten Daten müssen festgelegte Speicherplätze reserviert werden, die entweder zu klein oder zu groß sein können In der verketteten Datenstruktur werden die Daten einzeln gespeichert und dadurch wird nur genau soviel Speicherplatz benutzt, wie nötig ist Lektorat Dirk Nielsen
57
SQL Structured Query Language
Die relationelle Datenbankverwaltungssprache Lektorat Dirk Nielsen Sütő Gergely
58
Die Charakteristik der SQL
Normalisiert, transportierbar (zwischen Systemen und Computern) Selbstständige Sprache, aber sie kann in andere Programmiersprachen eingefügt werden Lektorat Dirk Nielsen
59
Allgemeine Datentypen
SMALLINT kurze ganze Zahl (2 byte) < x < INTEGER ganze Zahl (4 byte) < x < DECIMAL(e,t) festpünktliche Zahl FLOAT schwebepünktliche Zahl CHAR(n) Charakterkette (Text) n 255 byte DATE Datum LOGICAL Logik (ja/nein) MONEY Währung SERIAL AutoWert VARCHAR(n) langer Text n>255 Lektorat Dirk Nielsen
60
Datenbankstrukturbehandlung I.
Datenbank erstellen: CREATE DATABASE Datenbankname; Datenbank öffnen: {START} DATABASE Datenbankname; Datenbank schliessen: CLOSE DATABASE; Datenbank löschen: DROP DATABASE Datenbankname; Lektorat Dirk Nielsen
61
Datenbankstrukturbehandlung II. (Tabellen)
Neue Tabelle erstellen: CREATE TABLE Tabellenname (Spalte1{, Spalte2, …}); Neue Spalte einfügen: ALTER TABLE Tabellenname ADD (Spalte1{, Spalte2, …}); Tabelle löschen: DROP TABLE Tabellenname; Lektorat Dirk Nielsen Spaltei SpaltennameiDatentypi{NOT NULL}
62
Dateninstandhaltung (Diese Operationen beziehen sich auf die Reihen!)
Einfügen: INSERT INTO Tabellenname {(Spaltenliste)} VALUES(Konstant|NULL); Ändern: UPDATE Tabellenname SET Spaltenname=Ausdruck|NULL {WHERE Bedingung}; Löschen: DELETE FROM Tabellenname {WHERE Bedingung}; Lektorat Dirk Nielsen
63
Abfrage (die SELECT Anweisung)
Auswählen von in der Anweisung definierten Kriterien aus einer oder mehreren Tabellen Lektorat Dirk Nielsen
64
Abfrage Syntax SELECT {ALL|DISTINCTROW} *| Ausdruckliste
FROM Tabellenliste {WHERE Bedingung} {GROUP BY Spaltenliste} {HAVING Gruppen_Bedingung} {ORDER BY Schlüssel_Ausdruck}; Lektorat Dirk Nielsen
65
Abfrage weitere Komponente
Tabellen Verknüpfen (JOIN) Starke Verbindung: INNER JOIN…ON „Lockere” Verbindung LEFT|RIGHT JOIN Vereinigen (UNION) Lektorat Dirk Nielsen
66
Datenschutz Zugriffsrechte übergeben: GRANT Liste der Rechte {ON Tabellenname} TO PUBLIC|Benutzerliste {WITH GRANT OPTION}; Datenbankrechte: CONNECT RESOURCE DBA Zugriffsrechte aufheben: REVOKE Liste der Rechte {ON Tabellenname} TO PUBLIC|Benutzerliste; Lektorat Dirk Nielsen
67
Anfangen einer Transaktion: BEGIN WORK;
Gültigmachen einer Transaktion: COMMIT WORK; Ungültigmachen einer Transaktion: ROLLBACK WORK; Wiederherstellen einer Datenbank: ROLLFORWARD DATABASE; Lektorat Dirk Nielsen
68
BEISPIELAUFGABEN 0-3 SELECT * FROM WAREN;
1. Listen wir die Tabelle WAREN auf SELECT * FROM WAREN; 2. Listen wir Name, Code und Preis aus der Tabelle WAREN SELECT NAME, CODE, PREIS FROM WAREN; Ergänzen wir die letzte Aufgabe so, daß wir nur die Waren auslisten, die mehr als 100 € kosten SELECT NAME, CODE, PREIS FROM WAREN WHERE PREIS>100; Lektorat Dirk Nielsen 0-3
69
BEISPIELAUFGABEN 3. Setzen wir die letzte Aufgabe so fort, daß wir die Waren nach Namen geordnet auslisten SELECT NAME, CODE, PREIS FROM WAREN WHERE PREIS>100 ORDER BY NAME; 4. In der nächsten Aufgabe listen wir die Waren so auf, daß neben dem Code auch Bezeichnung, Geschäftscode, Steuerschlüssel und Preis der Ware erscheint. Dazu müssen wir die Tabellen WAREN und BESTAND verknüpfen! Lektorat Dirk Nielsen 0-3
70
ON WAREN.CODE = BESTAND.CODE
VERKNÜPFUNG IN SQL WAREN 1. WAREN Tabelle 2. verknüpft mit der Tabelle BESTAND BESTAND 3. in den Zeilen, wo die Codes in den beiden Tabellen über- einstimmen INNER JOIN BESTAND WAREN ON WAREN.CODE = BESTAND.CODE Lektorat Dirk Nielsen 9
71
BEISPIELAUFGABEN Die vollständige SQL Anweisung der 4. Aufgabe: SELECT WAREN.CODE,NAME,GCODE,MWST,PREIS FROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE; Lektorat Dirk Nielsen 4-5
72
BEISPIELAUFGABEN 5. Ergänzen wir die letzte Aufgabe so, daß wir auch den Bestandswert berechnen und die Liste mit der Kopfzeile „Wert des Bestandes” versehen SELECT WAREN.CODE,NAME,GCODE,MWST, PREIS,BSTD, PREIS*BSTD AS [Wert des Bestandes] FROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE; Den Text „Wert des Bestandes” müssen wir in [ ] schreiben, da er Leerzeichen enthält! Lektorat Dirk Nielsen 4-5
73
BEISPIELAUFGABEN 6. Ergänzen wir die letzte Aufgabe damit, daß wir anstelle des Geschäftscodes die Adresse des Geschäfts anzeigen! Zur Lösung der Aufgabe müssen wir zur letzten Stuktur die Tabelle GESCHÄFT verknüpfen so, daß die Tabelle BESTAND mehrmals vorkommt, d.h. wir bilden eine Netzstruktur in SQL. Lektorat Dirk Nielsen 9
74
NETZSTRUKTUR IN SQL GESCHÄFT WAREN BESTAND INNER JOIN BESTAND (WAREN
GESCHÄFT INNER JOIN ON WAREN.CODE = BESTAND.CODE) Lektorat Dirk Nielsen ON GESCHÄFT.GCODE = BESTAND.GCODE 9
75
BEISPIELAUFGABEN 9 SELECT WAREN.CODE, NAME AS [Name der Ware],
Die vollständige Lösung der Aufgabe 6. in SQL: SELECT WAREN.CODE, NAME AS [Name der Ware], GADR AS [Adresse des Geschäfts], PREIS*BSTD AS [Wert des Bestandes] FROM GESCHÄFT INNER JOIN (WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE) ON GESCHÄFT.GCODE = BESTAND.GCODE; Lektorat Dirk Nielsen 9
76
BEISPIELAUFGABEN 7. Summieren wir die Bestandswerte der Waren SELECT WAREN.CODE, First(NAME) AS Bezeichnung, Sum(PREIS*BSTD) AS Bestandswert FROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE GROUP BY WAREN.CODE; Lektorat Dirk Nielsen 6
77
BEISPIELAUFGABEN 8. Ergänzen wir die letzte Aufgabe so, daß wir nur die Daten anzeigen, wo der Bestandswert über € liegt! SELECT WAREN.CODE, First(WAREN.NAME) AS [First:NAME], Sum([PREIS]*[BSTD]) AS Bestandswert FROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE GROUP BY BESTAND.CODE HAVING (((Sum([PREIS]*[BSTD]))>2000)); Lektorat Dirk Nielsen 7
78
BEISPIELAUFGABEN Aus der letzten Lösung können wir einiges entfernen: SELECT WAREN.CODE, First(NAME) AS Bezeichnung, Sum(PREIS*BSTD) AS Bestandswert FROM WAREN INNER JOIN BESTAND ON WAREN.CODE = BESTAND.CODE GROUP BY WAREN.CODE HAVING Sum(PREIS*BSTD)>2000; Lektorat Dirk Nielsen 7
79
ENDE Lektorat Dirk Nielsen
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.