Informatik - Modellierung von Datenbanken

Aus RSG-Wiki
Wechseln zu: Navigation, Suche

Welche Informationen benötigen bestimmte Personengruppen (z.B. Abteilungsleitung, Kunden, Kassierer(in) … aus der Datenbank „Einkauf“?

Welche Einkäufe wurden am 18.03.2006 getätigt?
Welche Waren wurden überhaupt gekauft?
Wie hoch ist der Preis jedes einzelnen gekauften Artikels?
Welche Kosmetikartikel gibt es?

In welcher Form sollen die Antworten ausgegeben werden?


Weiter.gif Man hat eine Tabelle mit vielen eingetragenen Werten.
Weiter.gif Man hat eine Fragen.
Weiter.gif Man will eine Antwort.

Dies erfolgt mit Hilfe von Datenbanken, indem man für eine Tabelle eine Abfrage startet und die Antwort als Ergebnistabelle erhält.

Tabelle


Frage

Ergebnistabelle


Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:

Db-erstellen einer tabelle4.jpg

Eine Selektion bedeutet eine Auswahl von Datensätzen (Zeilen) in der Datentabelle mit bestimmten Eigenschaften (z.B. Sparte = ’Lebensmittel’)

Selektion

Bei dieser Selektion interessen welche Lebensmittel eingekauft wurden. Es werden also alle Datensätze in der bei Sparte "Lebensmittel" steht ausgegeben.

Eine Projektion wählt bestimmte Spalten in der Datentabelle aus (z. B. Kunde und Warenbezeichnung)

Projektion

Bei dieser Projektion werden nur die Spalten Kunde und Warenbezeichnung ausgegeben, wenn einen interessiert was welcher Kunde gekauft hat.


Eine Abfragefuntkion besteht aus drei Teilen und ist immer gleich aufgebaut.

Abfrage


Nuvola apps kig.png   Merke

Eine Abfrage startet immer mit SELECT. Dahinter stehen die Spalten, die einen interessieren (Projektion). Danach kommt WHERE mit der Tabelle in der man nachschaut. Und zum Schluss WHERE mit den Bedingungen, die man wissen will (Selektion).


1. Beispiel:
SELECT *
FROM einkauf
WHERE Geschäft = ‘Imagi‘

In OpenOfficeBase schreibt man dies in einer Zeile

SELECT * FROM einkauf WHERE Geschäft = ‘Imagi‘
.

Beachte dabei:
Nach SELECT bedeutet *, dass alle Spalten, also ein vollständiger Datensatz ausgegeben wird. Man kann hier auch nur einzelne Spalten, die einen interessieren schreiben.
Nach WHERE steht die Tabelle einkauf, die wir erzeugt hatten und in der alle unsere Datensätze stehen.
Geschäft = 'Imagi' nach WHERE ist die Bedingung, dass nur Einkäufe im Geschäft 'Imagi' ausgegeben werden sollen. Dabei ist der Geschäftsname in einfache Anführungszeichen (OpenOffice! Das kann in anderen SQL-Systemen anders sein) zu schreiben.


In OpenOffice Base startet man eine Abfrage, indem man in der linken Spalte Abfragen auswählt und dann in der Mitte Abfrage in SQL-Ansicht erstellen ... anklicken.
Abfrage in OO
Dann öffnet sich ein neues Fenster in das man die Abfrage schreibt.


2. Beispiel:
In das gerade geöffnete Fenster schreibt man: SELECT Warenbezeichnung, Preis FROM einkauf WHERE Preis > 5
Abfrage
Um die Abfrage zu starten tippe auf die F5-Taste oder klicke auf der Seite oben bei den Icons auf "Abfrage aisführen (F5)".
Du erhältst dann dieses Bild:

Abfragetabelle

In dieser Abfrage erkennt man schön den Unterschied von Selektion und Projektion.

Abfrage

Nach SELECT stehen die Spalten der Projektion (Es werden die Spalten Warenbezeichnung und Preis ausgewählt) und nach WHERE steht die Selektion, die Bedingung zur Auswahl der Datensätze (Es interessieren nur die Datensätze mit Preis über 5€).

Man kann in diesem Beispiel die Abfrage so ändern, dass man noch in der Selektion ORDER BY Preis ASC hinzufügt.

Abfrage

In der Ergebnistabelle werden die Datensätze nun nach aufsteigendem Preis ausgegeben.
Schreibt man ORDER BY Preis DESC, dann werden die Datensätze sortiert nach absteigendem Preis ausgegeben.

Abfrage
Nuvola apps kig.png   Merke

Mit dem Zusatz ORDER BY Preis oder ORDER BY Preis ASC wird die Ergebnistabelle nach der genannten Spalte aufsteigend geordnet. Der Zusatz ORDER BY Preis DESC ordnet in absteigender Reihenfolge.


Bleistift 35fach.jpg   Aufgabe 1

Ändere die Abfrage so ab, dass in der Selektion (hinter WHERE) folgendes steht
a) Warenbezeichnung = ’Kinokarte’
b) NOT(Sparte = ’Unterhaltung‘)
c)(Kaufdatum = ‘2007-08-26‘) AND (Zahlungsart<> ’bar’)
d)(Sparte = ’Kleider’) OR (Sparte = ’Sport’)


Bleistift 35fach.jpg   Aufgabe 2

Stelle Fragen, die durch die Ergebnistabellen der Aufgabe 1 beantwortet werden.

a) Was kostet eine Kinokarte?
b) Welche Waren außer "Unterhaltung" wurden zu welchem Preis gekauft.
c) Welche Waren mit Preis wurden am 26. August 2007 gekauft und bar bezahlt.

d) Was kosteten die Einkäufe aus den Bereichen Kleider oder Sport.


Macht man diese Abfrage: SELECT Warenbezeichnung FROM einkauf ORDER BY Warenbezeichnung ASC;
dann erhält man eine Ausgabetabelle mit vielen Einträgen wie Banane, Backwaren, ...
Um nun diese vielen gleichen Einträge in der Ergebnistabelle zu vermeiden schreibt man nach SELECT DISTINCT.
Mit der Abfrage SELECT DISTINCT Warenbezeichnung FROM einkauf ORDER BY Warenbezeichnung ASC; werden in der Ergebnistabelle Banane, Backwaren, ... nur einmal aufgeführt.

Nuvola apps kig.png   Merke

Redundante Anzeigen vermeiden:
SELECT DISTINCT … unterbindet gleiche Zeilen in der Ergebnistabelle!


Bleistift 35fach.jpg   Aufgabe 3

Erstelle eine Abfrage und überprüfe mit der Ergebnistabelle, ob deine Abfrage die richtige Antwort liefert.

  1. Liste die Bezeichnungen aller gekauften Waren mit ihren Preisen auf.
  2. Liste alle Kosmetikartikelbezeichnungen auf.
  3. Gib eine Liste aller Waren in alphabetischer Reihenfolge aus.
  4. Liste die Daten aller Einkäufe vom 18.3.2006 auf.
  5. Welche Produkte hat Nicole Gütling eingekauft?
  6. Welche Lebensmittel wurden vor dem 1.1.2007 gekauft?
  7. Welche Waren, die billiger als 20 € waren, wurden nicht bar bezahlt?
  8. Liste alle Waren auf, die in der Zeit vom 13.9.07 bis 20.9.07 gekauft und bar bezahlt wurden.
  9. Welches Produkt war am teuersten?
  10. Welche Waren wurden bei „Brutto Nürnberg“ gekauft? Liste sie in alphabetischer Reihenfolge auf.
  11. Welche Kunden haben am 5.9.2007 bei „Brutto Nürnberg“ gekauft?
  12. Martina Groß und Oliver Gross wohnen im gleichen Haus. Liste alle Waren auf, die sie gekauft haben.
  13. Liste alle Waren jeweils mit dem zugehörigen Preis und Geschäft auf, die von männlichen Kunden für mehr als 20 € gekauft wurden.
    Die Liste soll nach den Preisen sortiert sein. Lebensmittel sollen ausgeschlossen werden.
  14. Wer hat am meisten Geld ausgegeben?

Schaue nicht gleich die Lösungen an, sondern probiere es zuerst selbst. Betrachte deine Ergebnistabelle und überlege, ob diese die gestellte Frage beantwortet.
Beachte bei der Selektion wird ein Text in der Bedingung in einfachen Anführungszeichen (über der rechten Hochstelltaste ist als hochgestellt ')geschrieben .

Abfragen-Lösungen


Bleistift 35fach.jpg   Aufgabe 4

Suche im Verzeichnis der Stadtbücherei Rothenburg https://rothenburg.internetopac.de/index.asp nach Bücher über Athen.
Welche Angaben werden im Suchergebnis angezeigt?
Was ist hier anders als bei einer Abfrage in SQL?
Suche nach Büchern von unserem künftigen Oberbürgermeister Markus Naser.

Bötig, Klaus:
Athen / Klaus Bötig - 3., aktua...
(DuMont direkt) - 2015
Bötig, Klaus:
Athen : Reisen mit Insider-Tipps - 2015
Brinke, Margit ; Kränzle, Peter:
Athen : [Reise-Know-how : City-Trip]
(City-Trip ; 12) - 2018
Deutsche Redewendungen und was dahintersteckt : Ursprung und Bedeutung von über 700 Sprichwörtern - 2013
Dudde, Lasse:
Santorin / Lasse Dudde
(Merian live!) - 2019
Griechenland, Athen & Festland / Marc Dubin...
(Vis-à-vis) - 2015
Hashimi, Nadia:
Wenn die Nacht am hellsten ist : Roman - 2017
Holler, Renée:
Im Visier der Schmugglerbande / Renée Holler
(Tatort Erde) - 2009
Jaeckel, E. Katja:
MERIAN live! Reiseführer Athen - 2018
Kanaris, Leo:
Die Toten von Athen : ein Fall für Detektiv Zafiris : Kriminalroman - 2018

Es wird der Autor, der Titel des Buches, eventuell (???) und das Erscheinungsjahr angezeigt.

Man gibt nur in ein Feld einen Begriff ein.

In der Stadtbücherei gibt es keine Bücher von Markus Naser.

Doch wenn du in der Universitätsbibliothek der Universität Würuburg https://katalog.bibliothek.uni-wuerzburg.de/TouchPoint/start.do?View=sunrise&Language=de bei Autor Markus Naser eingibst, findest du zwei Bücher von ihm.