Begleitmaterial zum Unterricht M104 «Transaktionen»

Tabellen mit SQL-Abfragen

1. Theorie zu Transaktionen erarbeiten

Lernziele:

  • Sie können in OpenOffice Base einfache Abfragen erstellen
  • Sie verstehen einfache SQL-Statements
  • Sie können die Abfragen im SQL-Editor von OpenOfficeBase bearbeiten

Hinweis: SQL gehört eigentlich nicht in dieses Modul, sondern in das Folgemodul M141 - Datenbanksystem in Betrieb nehmen. Um aber in M104 eine Datenbank testen zu können, sind Abfragen nötig, die wiederum auf SQL-Statements basieren. Auch bei gewissen Formularen bzw. Unterformularen (z.B. bei n-m Relationen) sind rudimentäre SQL-Kenntnisse von Vorteil.

Erarbeiten sie die Theorie zu folgenden Themen:

  • Einfache SQL-Abfragen mit dem «select»-Befehl
  • Abfragen in OpenOfficeBase analysieren, erstellen und modifizieren

und erstellen sie eine kurze Zusammenfassung. (Sie finden z.B. auf dieser Webseite die entsprechenden Fachbeiträge)

2. Aufgaben zu Transaktionen

Hinweis zu den folgenden Aufgaben: Dokumentieren sie ihre Arbeiten und stellen sie diese mit den entsprechenden Datenbanken dem Dozenten elektronisch zur Verfügung.

2.1 Einfache SQL-Abfragen vergleichen

In der hier herunterladbaren Datenbank AutobesitzerAbfrage.odb sind einige Tabellenabfragen für sie vorbereitet. Untersuchen sie die beiden Abfragen A_Person_1 und A_Person_2. Was für Unterschiede können sie entdecken?

2.2 Eigene SQL-Abfrage erstellen

Aufgrund der Erfahrung aus dem vorangegangenen Auftrag versuchen sie nun in derselben Datenbank «AutobesitzerAbfrage.odb» …

  • eine alphabetisch sortierte Abfrage aller Automarken zu erstellen
  • alle Personen anzuzeigen, die den Vornamen «Hans» haben (Tipp: where-Klausel)

2.3 SQL-Abfrage mit verknüpften Tabellen

Unter Join versteht man das Verknüpfen von Tabellen. Analysieren sie nun in der Datenbank aus dem ersten Auftrag «AutobesitzerAbfrage.odb» die Abfrage A_Person_3 mit der Abfrage A_Person_4. Worin liegen die Unterschiede?

2.4 SQL-Abfrage mit Join verstehen

Was sie nun im vorangegangenen Auftrag «SQL-Abfrage mit verknüpften Tabellen» gesehen haben, ist die Erstellung eines Kreuzprodukts (Mathematischer Begriff für «Jeder mit jedem») von zwei Tabellen – einmal gefilter und einmal nicht. Stellen sie sich nun vor, jede Tabelle hätte 10’000 Einträge. Wieviele Kombination müssten da vom Datenbanksystem errechnet werden? Sehen sie da allenfalls Probleme bei der HW? Wenn ja, welche?

2.5 SQL-Abfrage mit Join erstellen

Sie sollen nun in der Tabelle aus dem ersten Auftrag «AutobesitzerAbfrage.odb» eine Abfrage erstellen, in der sie herausfinden, welche Autos die Personen mit dem Namen «Frei» fahren. (Tipp: Subquery’s)

2.6 SQL-Finale

Laden sie die hier verfügbare Datenbank Autosammler.odb herunter und erstellen sie eine Abfrage/Liste aller Personen und deren Automarken. (Vorsicht: Nun können die Leute mehrere Autos besitzen)