Modulnummer

104

Letzte Aktualisierung
17. Okt. 2019
Vorgaben
ICT-Modulidentifikation
ICT-LBV 104-2 Parts ½:½:1 gem. Ansage
Modulbezeichnung

Datenmodell implementieren

Fachliteratur
Datenbanken
Abfragen / Formulare
DB-Formulare
Voraussetzungen
Modul 100

Inhalt

1. Einführung
1.1 Ein Tabellen-Negativbeispiel
1.2 Datenbank-Grundlagen
1.3 Die Datenbank-SW "OpenOffice-Base"
1.4 "OpenOffice-Base" installieren

2. Relationen
2.1 Studium der Theorie zu ERD
2.2 Relationen einer vorgegebenen DB ermitteln
2.3 Einfache Rechnungsverwaltung analysieren
2.4 Referentielle Integrität erfahren
2.5 Den Unique Constraint anwenden
2.6 PC-Komponenten in einer DB verwalten
2.7 Einfache Rechnungsverwaltungs-DB
2.8 Einen Velohandel mit einer DB verwalten

3. Die Normalformen 1 bis 3
3.1 Studium der Theorie zu Normalisierung
3.2 Tabelle "Versandhandel" verbessern
3.3 Autohandel
3.4 Reisebüro
3.5 Schulbibliothek

4. Abfragen und SQL-Basics
4.1 Abfrage1 in Bsp1.odb analysieren
4.2 Abfrage2 in Bsp1.odb analysieren
4.3 Abfrage3 in Bsp1.odb analysieren
4.4 Abfragen4+5+6 in Bsp1.odb analysieren
4.5 Abfrage7 in Bsp1.odb analysieren
4.6 Eigene Abfrage in Bsp1.odb erstellen
4.7 Hinweis zu 4.1 bis 4.6
4.8 Abfrage1 in Bsp2.odb analysieren
4.9 Abfrage2 in Bsp2.odb analysieren
4.10 Abfrage3 in Bsp2.odb analysieren
4.11 Abfrage4 in Bsp2.odb analysieren
4.12 Abfrage5 in Bsp2.odb analysieren
4.13 Eigene Abfragen in einer Hitparaden-DB erstellen

5. Formulare und GUI
5.1 Eigene Formulare mit einem Grafikprogramm gestalten
5.2 5.2 Eigene Formulare in OpenOffice-Base erstellen

6. Test und Dokumentation
6.1 Warum dokumentieren
6.2 Warum testen
6.3 Die DB DB_Autogarage.odb formal testen
6.4 Weitere DBs formal testen
6.5 DBs dokumentieren

7. Musterlösungen (Passwortgeschützt)


1. Einführung

1.1 Ein Tabellen-Negativbeispiel

Wenn wir für eine Problemstellung eine einzige grosse Tabelle erstellen, sind viele Informationen mehrfach vorhanden. Dieses mehrfache Abspeichern der gleichen Information nennt man Redundanz. Redundante Daten sind fehleranfällig. Bei Änderungen oder Löschungen werden eventuell nicht alle Einträge berücksichtigt oder unterschiedlich geändert. In Datenbanken sollten daher keine redundanten Informationen abgespeichert werden. Um dieses Ziel zu erreichen, werden die Informationen auf mehrere Tabellen verteilt und über Beziehungen miteinander verbunden.

  • Wie könnte man die obige Problemstellung (Kunde/Rechnung/Artikel) besser lösen?
  • Wie nennt man die Elemente einer Tabelle?

1.2 Datenbank-Grundlagen

Lesen sie im Theoriebeitrag zu Datenbanken folgendes durch:

  • Anforderungen an eine DB
  • Datenbankmodelle & Definition Datenbank
  • Designmethode & Verwaltungssprache
  • Begriffserklärungen & Praxisüberlegungen

1.3 Die Datenbank-SW "OpenOffice-Base"

Warum "OpenOffice-Base"?: In diesem Modul liegt der Schwerpunkt beim Design und der Implementation einer relationalen Datenbank. Un den gemäss Modulidentifikation verlangten Praxisbezug mit GUI-Komponenten und Formularfeldern zu erfüllen, setzen wir das kostenlose, MS-Access ähnliche und für verschiedene Betriebssysteme verfügbare LibreOffice oder  OpenOfficeBase ein. (MS-Access ist gibt's nur für WIN und LibreOffice auch in einer Portable-Version)

Und warum nicht MySQL?
Seit die kostenlose Variante von MySQL von Oracle übernommen wurde, steht es in der Kritik, nur halbherzig vom SW-Riesen unterstützt zu werden. Es erodiert damit auch der Rückhalt in der OpenSource-Gemeinschaft wo MySQL immer mehr durch MariaDB ersetzt wird.
MariaDB könnte Standalone betrieben werden, macht aber hier weniger Sinn.
Das OpenSource-SW-Paket XAMPP ermöglicht das einfache Installieren und Konfigurieren eines Apache-Webservers mit der Datenbank MariaDB und den Skriptsprachen Perl und PHP.
XAMPP wäre eine tolle Option für dieses Modul, würde aber den zeitlichen Rahmen von 40 Lektionen sprengen und einem späteren Modul 141 «DB-Systeme in Betrieb nehmen» vorgreifen. Ausserdem müssten Programmierkenntnisse in PHP oder einer Hochsprache vorliegen, damit die GUI-Lernvorgabe erfüllt werden kann. Aus diesen Gründen habe ich mich für LibreOfficeBase oder OpenOfficeBase entschieden. Auch diese beiden Datenbanksysteme lassen übrigens Abfragen per SQL-Statements zu.

LibreOffice oder OpenOffice?
LibreOffice spaltete sich Ende 2010 vom Office-Paket OpenOffice.org ab, wird seither unabhängig weiterentwickelt und ist inzwischen die modernere Alternative. Ausserdem wurde OpenOffice.org, insbesondere in den meisten Linux-Distributionen, sukzessiv durch LibreOffice ersetzt.

Zurzeit ist das GUI der beiden Datenbanksysteme ziemlich identisch.

Die auf dieser Webseite angebotenen Datenbankbeispiele wurden mit OpenOfficeBase erstellt, können aber auch mit LibreOffice genutzt und bearbeitet werden.

Libe/OpenOfficeBase lässt sich in ein Frontend und ein Backend aufteilen, was der Datensicherheit bei z.B. bei unerwartetem Terminieren von OpenOffice durch z.B. Stromausfall zuträglich ist. Ausserdem ist es möglich, Formulare eigenständig als sog. Standaloneformulare einzurichten.

1.4 "OpenOffice-Base" installieren

Für die folgenden Übungen und Arbeiten benötigen sie ein relationales Datenbanksystem. Grundsätzlich steht es ihnen offen, welches Produkt sie verwenden wollen. Die Beispiele und Aufgaben auf dieser Webseite sind allerdings auf der Basis von LibreOffice/OpenOffice-Base entstanden. Darum empfehle ich ihnen auch den Einsatz dieser Applikationen.

Laden sie sich die aktuelle Version von OpenOffice oder LibreOffice herunter und installieren sie es auf ihrem Notebook. MAC-User müssen unter Umständen Oracle-Java nachinstallieren.

Die SW-Link's:
SW: www.openoffice.org/de
Doku: www.openoffice.org/de/doc/index.html
SW: de.libreoffice.org
Doku: de.libreoffice.org/get-help/documentation


2. Relationen

2.1 Studium der Theorie zu ERD

Lernziele:

  • Sie können Beziehungen zwischen Tabellen erkennen und mit Typen versehen
  • Sie kennen die vier Beziehungstypen und die daraus möglichen Kombinationen
  • Sie können Tabellen und Beziehungen mittels ERM grafisch darstellen
  • Sie kennen die notwendigen Attribute, um die Beziehungstypen zu realisieren

Erarbeiten sie die Theorie zu folgenden Themen:

  • Entitätenblockdiagramm
  • Kardinalität
  • Die zehn Beziehungstypen 1:1 / 1:c / 1:m / 1:mc / c:c / c:m / c:mc / m:m / m:mc / mc:mc
  • Referentielle Integrität
  • Tabellenbeschreibung

2.2 Relationen einer vorgegebenen DB ermitteln

Laden und entpacken Sie diese OpenOfficeBase-Datenbanken: RelationenDB.zip

Es sind drei odb-Datenbanken in diesem ZIP-File enthalten. Starten sie diese nacheinander und versuchen Sie, die Beziehungstypen zu ermitteln. Zeigen Sie für jede dieser drei Datenbanken auf, wie die Beziehung realisiert ist, indem Sie die Tabellenfelder untersuchen. Beschreiben sie die Relation in einer Skizze der folgenden Art:

Erstellen sie für jede Datenbank eine Tabelle mit den Angaben wie Primär-, Fremdschlüssel etc. mit folgendem Aussehen: (Dies ist eine Tabellenbeschreibung)

  • Datenbank: Relation1.odb
    Tabelle1: T_KFZ_NR (Autokontrollschild)
    Tabelle2: T_KFZ_SN (Fahrzeugseriennummer)
    Situationsbeschreibung: Im Strassenverkehrsamt wird erfasst, welches Fahrzeug welches Kontrollschild besitzt
    Rolle der Beziehung: Immatrikuliertes Fahrzeug
  • Datenbank: Relation2.odb
    Tabelle1: T_KFZ_NR (Autokontrollschild)
    Tabelle2: T_Personen (Erfasste Personen)
    Situationsbeschreibung: Im Strassenverkehrsamt wird erfasst, welche Person welches Auto besitzt
    Rolle der Beziehung: Fahrzeugbesitzer
  • Datenbank: Relation3.odb
    Tabelle1: T_Automarke (Marke des Fahrzeugs)
    Tabelle2: T_Personen (Erfasste Personen)
    Tabelle3: ???
    Situationsbeschreibung: Eine Agentur führt eine Statistik über die Beliebtheit von Automarken
    Rolle der Beziehung: Markenpräferenz

2.3 Einfache Rechnungsverwaltung analysieren

Zeichnen sie für diese 5 Tabellen das ERD:

2.4 Referentielle Integrität erfahren

In dieser Aufgabe sollen sie die Auswirkung von «Referentieller Integrität» erleben. Erstellen sie dazu in OpenOffice/LibreOffice zwei Tabellen, die in einer 1:mc-Beziehung stehen und wo die eine Tabelle einen Fremdschlüssel enthält, der auf den Identifikationsschlüssel bzw. Primärschlüssel der anderen zeigt.

  • Beide Tabellen besitzen einen Primärschlüssel und je ein weiteres Attribut
    (Z.B. Tabelle1: P_ID, Name, O_ID / Tabelle2: O_ID, Ort)
  • Definieren Sie die Beziehung zwischen diesen beiden Tabellen
    (In OOoBase unter Extras/Beziehungen)
  • Erfassen Sie in beiden Tabellen Daten – Versuchen sie Fremdschlüssel zu erfassen, die noch nicht als Primärschlüssel existieren – Geht das?
  • Löschen Sie verschiedene Datensätze, solche ohne Verknüpfung und solche mit einer bestehenden Beziehung durch den Fremdschlüssel – Ihre Erkenntnis?
  • Anschliessend entfernen Sie die referenzielle Integrität…
    (In OOoBase unter Extras/Beziehungen und Beziehung mit RMB > Löschen)
    …und versuchen Gleiches wie zuvor
  • Sie sollten nun erkennen, dass Sie «Referenzielle Integrität»…
    (In OOoBase unter Extras/Beziehungen und Beziehung wieder aktivieren)
    …nur dann wieder erhalten, wenn zuvor keine Widersprüche erzeugt wurden
  • Testen Sie jetzt noch das Verhalten bei Aktivierung von «Kaskadiert löschen»
    (In OOoBase unter Extras/Beziehungen und Beziehung mit RMB > Bearbeiten)
    Löschen sie in der einen Tabelle einen Datensatz und überprüfen sie in der anderen Tabelle, wo Fremdschlüssel in die erste Tabelle verweisen, was nun alles gelöscht wurde

2.5 Den Unique Constraint anwenden

In einer Tabellenspalte soll jeder Wert nur einmal vorkommen oder datenbanktechnisch formuliert: Der Skalar muss innerhalb des Attributes einzigartig sein. Dies ist z.B. bei einem Primärschlüssel notwendig. Bei OOoBase und auch Access ist das automatisch der Fall. Anders sieht es aus, wenn eine weiteres Attribut einzigartig sein muss, wie z.B. die Tabelle T_KFZ_NR im obigen Beispiel, wo aus verständlichen Gründen die Nummer eines Fahrzeug-Kontrollschildes nur einmal vorkommen darf. Bei Access ist es kein Problem, diesen Constraint zu ergänzen. Bei der aktuellen (2017) Version von OOoBase muss man das von Hand, bzw. mit einem SQL-Kommando erledigen:

  • SQL-Editor aufrufen unter Extras/SQL
  • ALTER TABLE "T_Auto" ADD UNIQUE ("Kontrollschild"); eintippen und ausführen
    (Das Semikolon «;» am Schluss nicht vergessen)
    («T_Auto» ist der Tabellennamen und «Kontrollschild» das Attribut)

Aufgabe: Ergänzen sie in der aus Aufgabe 2.1 «Relationen bestimmen»  stammenden OOoBase-Datenbank Relation1.odb in der Tabelle T_KFZ_NR das Attribut Autokontrollschild mit obigem SQL-Befehl auf UNIQUE. Versuchen sie nun, zweimal dieselbe KFZ-Nummer einzugeben. Was stellen sie fest?

Hinweis: Wenn 1:1 Relationen verlangt sind, kann dies ebenfalls mit dem UNIQUE-Constraint erzwungen werden oder noch besser, das Ganze auf eine Tabelle reduzieren und damit die Übersichtlichkeit des ERD’s etwas fördern.

2.6 PC-Komponenten in einer DB verwalten

Setzen sie die folgende Tabellenbeschreibung in ein ERD um. Realisieren sie anschliessend die Datenbank mit OOoBase.

(PS=Primärschlüssel; FS=Fremdschlüssel; NN=NOT NULL; UN=UNIQUE)

Hinweis: Bei der Tabelle Ort müsste nach den Kriterien der Datenmodellierung der Kanton in eine eigene Tabelle ausgegliedert werden und mit einem Fremdschlüssel verknüpft werden. Damit könnten zusätzlich Daten redundanzfrei zu den Kantonen abgespeichert werden. Hier wurde darauf verzichtet, da die Daten in genau dieser Form von der Post zur Verfügung gestellt werden und zu den Kantonen keine weiteren Informationen abgespeichert werden sollen.

2.7 Einfache Rechnungsverwaltungs-DB

Erstellen sie nun die Datenbank gemäss ihrem ERD aus Aufgabe 2.2  «Einfache Rechnungsverwaltung analysieren».
Nachdem sie die Tabellen erstellt haben, erfassen Sie einige sinnvolle Daten. Die Tabelle «Ort» brauchen Sie übrigens nicht selbst zu erfassen. Die Webseite der Swisspost kann ihnen da sicher mit Datenmaterial weiterhelfen, das ihnen alle Orte und Postleitzahlen liefert. ERD’s etwas fördern.

2.8 Einen Velohandel mit einer DB verwalten

Öffnen Sie die hier als ZIP-Datei bereitgestellte Datenbank Velohandel.zip. Bestimmen Sie die Assoziationstypen durch die Definitionen von «UNIQUE» und «NOT NULL» in den Tabellenentwürfen entsprechend der Datenbank. Zeichnen Sie anschliessend das ERM zur Datenbank Velohandel.
(Das ERD soll Rechtecke mit den Entitätsnamen, die Beziehungen untereinander und die Assoziationstypen in der Form 1, c, m, mc enthalten)


3. Die Normalformen 1 bis 3

Motivation zum Thema:
Das Negativbeispiel eines Datenbestands in Form einer Tabelle → Sehr häufig haben Systeme, die aus einer Anforderung heraus gewachsen sind und nicht konzeptionell entwickelt wurden, eine vergleichbare Struktur wie diese Tabelle "Versandhandel":

Was kann schief gehen, wenn…

  • … sie die Adresse von Gustav Meier-Senn auf «Im Tobel 18» korrigieren
  • … Walter Morani aus La Cure per heutigem Datum eine neue Rechnung bekommt, weil er die Artikel 4, 6, 2 und 9 gekauft hat
  • … Ida Kuhler alle Artikel der Rechnung Nr. 002 zurückgegeben hat
  • … Walter Morani den Artikel Nummer 9 von der Rechnung Nummer 009 zurückgibt

Notieren sie mögliche Fehlerquellen im Datenbestand, die bei diesen Änderungen entstehen können.

3.1 Studium der Theorie zu Normalisierung

Lernziele:

  • Sie können eine Tabelle so zerlegen, dass das Resultat der 3. Normalform genügt
  • Sie können in OpenOffice Base Tabellen erzeugen und in Beziehung zueinander setzten

Erarbeiten sie die Theorie zu folgenden Themen:

  • Primärschlüssel und Fremdschlüssel
  • Normalisierungsprozess (1.,2. und 3. Normalform

3.2 Tabelle "Versandhandel" verbessern

Teilen Sie die Tabelle "Versandhandel" so auf, dass keine redundanten Daten mehr abgespeichert sind. Zeichnen sie für ihre Lösung das entsprechende ERD auf und erstellen sie eine Tabellenbeschreibung. Das Excel-Sheet "Versandhandel" können sie hier herunterladen.

3.3 Autohandel

Ein Autohändler hat seine Verkäufe bisher in einer Excel-Tabelle erfasst. Führen sie in dieser Tabelle eine Normalisierung durch und erstellen sie das ERD und die Tabellenbeschreibung. Das Excel-Sheet «Autohandel.xlsx» können sie hier herunterladen.

(Beachten sie, dass der Opel Manta noch unverkauft im Showroom des Autohändlers steht und der Verkäufer Schenk bisher noch kein Auto verkauft hat. Auch ist nicht klar, ob es sich bei den Verkäufern Schmid und bei den Kunden Meier und Steffen um ein und dieselben Personen handelt)

3.4 Reisebüro

Führen sie in dieser Tabelle eine Normalisierung durch und erstellen sie das ERD und die Tabellenbeschreibung. Beachten sie, dass es möglich ist, Hinflüge ohne Rückflüge zu buchen. Ein Hin- bzw. Rückflug kann sich aus mehreren Teilflügen zusammensetzen. Das Excel-Sheet «Reisebuero.xlsx» können sie hier herunterladen.

(Es sollen später auch noch spezifische Daten zu den einzelnen Flügen verwaltet werden können, wie z.B. Flugzeugtyp, maximale Passagieranzahl etc.)

3.5 Schulbibliothek

Eine Schulbibliothek hat den Wunsch, alle Bücher über eine Datenbank zu verwalten. Dabei interessiert folgendes:

  • Vom Kunden, das ist die Person, die Bücher ausleiht, seinen Name, Vorname, Adresse, PLZ, und Wohnort
  • Bei den Büchern der/die Buchautor(en), Buchtitel, Genre (Themen), ISBN-Nummer, Jahrgang und den Bücherstandort
  • Von den ausgeliehenen Bücher das Ausleihdatum, Rückgabedatum und die Leihgebühr

Jedes Buch wird einem «Genre» (Buchgattung, Thema) zugeordnet, wobei auch Genres erfasst werden können, von welchen noch keine entsprechenden Bücher vorhanden sind. Ein Autor kann mehrere Bücher schreiben, ein Buch aber auch mehrere Autoren haben. Jeder Kunde wird beim Ausleihen und der Rückgabe im System mutiert. Es können vom gleichen Titel mehrere Bücher vorhanden sein.

Auftrag: Entwerfen sie eine geeignete Datenbasis. Zeichnen sie das entsprechende ERD und erstellen sie die Tabellenbeschreibungen. Es dürfen übrigens zu keinem Zeitpunkt Mehrfacheinträge oder Nullwerte vorkommen.


4. Abfragen und SQL-Basics

Lernziele:

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

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

Lesen sie zuerst in der Datenbanktheorie den Beitrag zu "Einfache SQL-Abfragen mit dem Select-Befehl"

4.1 Abfrage1 in Bsp1.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp1.odb und das folgende ERD:

Starten sie die Bsp1.odb-OpenOfficeBase-Datenbank. Die beiden Tabellen T_Autotyp und T_Person wurden für sie bereits erstellt. Überprüfen sie diese. Nun wählen sie unter«Datenbank» die «Abfragen» aus (Linkes Fenster in OOBase). Es werden hier sieben Abfragen angezeigt. Öffnen sie nun die erste Abfrage (Abfrage1). Es sind drei Varianten zum Öffnen der Abfrage von Interesse: (Rechte Maustaste klicken!)

  • Bearbeiten (Die Abfrage wird in der Entwurfsansicht geöffnet)
  • In SQL-Ansicht bearbeiten (Der SQL-Befehl kann direkt eingesehen und allenfalls bearbeitet werden)
  • Öffnen (Die Abfrage wird ausgeführt und das Resultat in einem separaten Fesnter angezeigt)

Was sollen sie nun tun?

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt?
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Können sie sich nun erklären, warum vorher so viele Kombinationen angezeigt wurden? (Tipp: Beziehungen, Kartesisches Produkt)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an.

4.2 Abfrage2 in Bsp1.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp1.odb und das folgende ERD:

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt? Wie unterscheiden sich diese von der Abfrage1?
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Können sie sich nun erklären, warum bei Abfrage1 so viele Kombinationen angezeigt wurden und jetzt nicht mehr? (Tipp: Beziehungen)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an.

4.3 Abfrage3 in Bsp1.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp1.odb und das folgende ERD:

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt? Wie unterscheiden sich diese von der Abfrage2? (Tipp: Anzahl Einträge überprüfen)
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Können sie sich nun erklären, warum sich Abfrage3 von Abfrage 2 unterscheidet? (Tipp: Im ERD die Beziehungslinie mit rechter Maustaste anklicken und «Bearbeiten» wählen. Danach «Optionen-Typ» untersuchen.)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an. Was stellen sie fest?

4.4 Abfragen4+5+6 in Bsp1.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp1.odb und das folgende ERD:

  1. Öffnen sie die Abfragen und begutachten sie die Abfrageresultate. Was wird angezeigt? Wie unterscheiden sie sich? (Tipp: Anzahl Einträge überprüfen)
  2. Wählen sie jeweils die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Was ist jeweils verschieden? (Tipp: Im unteren Fensterteil das «Kriterium» für das Feld «Name» untersuchen.)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an. Welcher Teil im SQL-Kommando bewirkt das nun beobachtete Verhalten?

4.5 Abfrage7 in Bsp1.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp1.odb und das folgende ERD:

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Was wird nun angezeigt? (Tipp: Anzahl Einträge überprüfen)
  2. Wählen sie jeweils die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Was ist jeweils verschieden? (Tipp: Im unteren Fensterteil das «Kriterium» für das Feld «PLZ» untersuchen.)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an. Welcher Teil im SQL-Kommando bewirkt das nun beobachtete Verhalten?

4.6 Eigene Abfrage in Bsp1.odb erstellen

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp1.odb und das folgende ERD:

Nun sollen sie eine eigene Abfrage erstellen. Dazu gibt es drei Möglichkeiten:

  • Abfrage in Entwurfsansicht erstellen (Hier bevorzugte Methode!)
  • Abfrage unter Verwendung des Assistenten erstellen (Selbsterklärend!)
  • Abfrage in SQL-Ansicht erstellen (Dafür bräuchte es noch etwas mehr SQL-Kenntnisse)

Was sollen sie nun tun?

  1. Erstellen sie mit der Entwurfsansicht eine Abfrage aller Einträge in der Tabelle T_Autotyp. Dazu müssen sie zuerst die Tabelle hinzufügen, die erforderlich ist. Danach klicken sie im Kästchen T_Autotyp auf das Attribut bzw. Feld, dass sie gerne angezeigt haben möchten. Nach Anklicken erscheint das Attribut/Feld im unteren Fensterteil. Sie können nacheinander mehrere Attribute/Felder anklicken. Diese werden im unteren Fenster nach rechts aneinandergereiht.
  2. Modifizieren sie die soeben erstellte Abfrage derart, dass nur die Autotypen angezeigt werden, deren Namen mindestens ein «e» beinhaltet.
  3. Untersuchen sie den SQL-Befehl, der duch OOBase erzeugt wurde.

4.7 Hinweis zu 4.1 bis 4.6

Was sie in den vorangegangenen Aufgaben gesehen haben, sind «SQL-Abfragen mit verknüpften Tabellen». Das heisst, dass bei vielen Abfragen die beim Datenbank-Design so aufwändig separierten Tabellen (Normalformen) wieder zusammengefügt werden müssen. Die einfachste Art ist das sog. Kartesische Produkt (auch Kreuzprodukt) (Mathematischer Begriff für «Jeder mit jedem») von zwei Tabellen – einmal gefilter (Aufgabe 2.2) und einmal nicht Aufgabe 2.1). In Aufgabe 2.3 wird der etwas effektivere Join verwendet. Warum ist dieser effizienter?  Stellen sie sich nun vor, jede Tabelle hätte 10'000’000 Einträge. Wie viele Kombination müssten da bei der Variante «Kreuzprodukt» vom Datenbanksystem errechnet werden? Wie schaut es da mit der Performance der DB aus?

4.8 Abfrage1 in Bsp2.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp2.odb und das folgende ERD:

Starten sie die Bsp2.odb-OpenOfficeBase-Datenbank. Die drei Tabellen T_Autotyp, T_Person und T_Kontrollschild wurden für sie bereits erstellt. Überprüfen sie diese. Nun wählen sie unter«Datenbank» die «Abfragen» aus (Linkes Fenster in OOBase). Es werden hier fünf Abfragen angezeigt. Öffnen sie nun die erste Abfrage (Abfrage1). Es sind drei Varianten zum Öffnen der Abfrage von Interesse: (Rechte Maustaste klicken!)

  • Bearbeiten (Die Abfrage wird in der Entwurfsansicht geöffnet)
  • In SQL-Ansicht bearbeiten (Der SQL-Befehl kann direkt eingesehen und allenfalls bearbeitet werden)
  • Öffnen (Die Abfrage wird ausgeführt und das Resultat in einem separaten Fesnter angezeigt)

Was sollen sie nun tun?

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt und ist die Information dieser Abfrage nützlich und sinnvoll?
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Ergänzen sie im unteren Fensterteil beim Feld «Kontrollschild» den «Alias» mit dem Begriff «Autokennzeichen». Speichern sie die Abfrage und führen sie diese anschliessend aus. Was hat sich nun beim Abfrageresultat geändert? (Tipp: Überschrift)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an.

4.9 Abfrage2 in Bsp2.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp2.odb und das folgende ERD:

Die erste Abfrage war offenbar nicht so sinnvoll. Ist nun diese nützlicher?

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt?
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Können sie sich nun erklären, warum so viele Kombinationen angezeigt werden? (Tipp: Beziehungen)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an.

4.10 Abfrage3 in Bsp2.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp2.odb und das folgende ERD:

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt? Wie unterscheiden sich diese von der Abfrage2?
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Können sie sich nun erklären, warum bei Abfrage2 so viele Kombinationen angezeigt wurden und jetzt nicht mehr? (Tipp: Beziehungen)
  3. Bleiben sie in der Entwurfsansicht und ändern sie im unteren Fensterteil beim Feld «Name» die «Sortierung» auf «aufsteigend». Speichern sie die Abfrage und führen sie diese anschliessend aus. Was hat sich nun beim Abfrageresultat geändert? (Tipp: Reihenfolge)
  4. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an.

4.11 Abfrage4 in Bsp2.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp2.odb und das folgende ERD:

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Welche Kombinationen werden angezeigt? Wie unterscheiden sich diese von der Abfrage3?
  2. Wählen sie die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD. Klicken sie mit der rechten Maustaste auf die Beziehungslinie zwischen «T_Person» und «T_Kontrollschild» und wählen sie «Bearbeiten». Es öffnet sich das Fenster «Verbundeigenschaften». Wie unterscheidet sich die Einstellung bei «Option» bei dieser Abfrage zu der vorangegangenen Abfrage (Abfrage3)? Überprüfen sie dies auch bei der Beziehungslinie zwischen «T_Kontrollschild» und «T_Autotyp».
    Können sie sich nun erklären, warum bei Abfrage3 im Vergleich zu dieser Abfrage gewisse Zeilen fehlen?
  3. Bleiben sie in der Entwurfsansicht und ändern sie im ERD folgendes:
    Bei der Beziehung «T_Person» zu «T_Kontrollschild» den Optionstyp auf «Rechter Verbund» und bei der Beziehung «T_Kontrollschild» zu «T_Autotyp» den Optionstyp auf «Linker Verbund». Speichern sie die Abfrage und führen sie diese anschliessend aus. Was hat sich nun beim Abfrageresultat geändert? (Tipp: Fremdschlüssel-Nullwerte)
  4. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an.

4.12 Abfrage5 in Bsp2.odb analysieren

Diese Aufgabe bezieht sich auf die OpenOfficeBase-Datenbank Bsp2.odb und das folgende ERD:

  1. Öffnen sie die Abfrage und begutachten sie das Abfrageresultat. Was wird nun angezeigt? (Tipp: Anzahl Einträge überprüfen)
  2. Wählen sie jeweils die Entwurfsansicht (Bearbeiten). Im oberen Fensterteil finden sie das ERD und unten die angezeigten Felder. Was ist jeweils verschieden? (Tipp: Im unteren Fensterteil das «Kriterium» für das Feld «Kontrollschild» untersuchen.)
  3. Öffnen sie die Abfrage nun in der SQL-Ansicht und schauen sie sich den SQL-Befehl an. Welcher Teil im SQL-Kommando bewirkt das nun beobachtete Verhalten?

4.13 Eigene Abfragen in einer Hitparaden-DB erstellen

Sie erhalten eine Excel-Datei, die aus 100 nach ihrer Beliebtheit sortierten Musiktiteln besteht: Hitparade.xls

Ihre erste Aufgabe besteht darin, das Excel-Tabellenwerk in die Datenbank zu importieren. Üblicherweise exportiert bzw. importiert man die Daten im csv-Format. Bei OpenOffice funktioniert dies allerdings auf eine andere Art, die im folgenden beschrieben wird:

  • Erstellen sie eine neue OpenOfficeBase Datenbank mit dem Namen Hitparade.odb
  • Nun widmen sie sich der Excel-Datei Hitparade.xls. Da dieses Datei aus drei Tabellenblätter besteht, müssen diese zuerst in drei leere Excel-Dateien kopiert werden.
  • Starten sie nun OpenOfficeCalc (Dies ist die Excel-Entsprechung von OpenOffice) und öffnen sie die Excel-Dateien nacheinander.
  • Wählen sie jeweils die Kolonnen aus, die sie in die Datenbank kopieren möchten und wählen sie Bearbeiten/Kopieren (oder Ctrl-C)
  • Wechseln sie zu OpenOfficeBase und wählen Bearbeiten/Einfügen (oder Ctrl-V).
    Es erscheint ein Dialog bei der die Option «Definition und Daten» und «Erste Zeile als Spaltennamen verwenden» selektiert sein soll.
  • Im nächsten Dialogfenster wählen sie alle vorhandenen Spalten aus.
  • Im Dialogfenster «Typformatierung» überprüfen sie die Datentypen. Achtung: Zahlen als Integer und nicht als Text!
  • Wenn nun der fehlende Primärschlüssel reklamiert wird, hindern sie die Applikation nicht daran, dies zu beheben. Sie können das später immer noch korrigieren.

Nachdem sie die Tabellen in der DB angelegt und die Beziehungen definiert haben, sollen sie folgende Abfragen erstellen:

  1. Liste aller Rangierungen von 1 bis 100 unter Angabe von Musiktitel, Interpret und Nationalität.
  2. Anzeigen aller Titel sortiert nach Nationalität der Interpreten.
  3. Anzeigen aller Titel, die von Interpreten aus UK stammen.
  4. Anzeigen aller Titel, die von der Band Queen stammen.
  5. Anzeigen aller Titel, die von der Band Beatles und dem Interpreten John Lennon stammen.
  6. Anzeigen aller Titel, die nicht von der Band Abba stammen.
  7. Anzeigen aller Titel von Interpreten, deren Namen mit einem «A» beginnt.
  8. Anzeigen, wieviele Teilnehmer jede Nation aufweist. (Tipp: Es werden nur zwei Tabellen benötigt. Die T_Nationalitaet.Bezeichnung muss gruppiert werden und von der T_Interpret.Bezeichnung muss die Anzahl bestimmt werden. Beides sind übrigens Funktionen.

5. Formulare und GUI

Lernziel:

  • Sie können eine einfache Benutzeroberfläche ergonomisch bzw. benutzerfreundlich gestalten
  • Sie kennen die wichtigsten Formularelemente in OpenOfficeBase und können sie anwenden

Bevor sie die folgenden Aufgaben bearbeiten, sollten sie zuerst den Theoriebeitrag zu DB-Formulare lesen.

5.1 Eigene Formulare mit einem Grafikprogramm gestalten

Entwerfen sie mit einem Zeichnungsprogramm ihrer Wahl die Benutzerschnittstellen bzw. die Formulare für die im vorangegangenen Kapitel "3. Die Normalformen 1 bis 3" bearbeiteten Aufgaben:

  • 3.4 Reisebüro
  • 3.5 Schulbibliothek

Unterscheiden sie dabei die Stammdaten von den Bestands- und Bewegungsdaten und skizzieren sie benutzerfreundliche und thematisch korrekt aufgebaute Benutzerformulare.

5.2 Eigene Formulare in OpenOffice-Base erstellen

Realisieren bzw. Implementieren sie die soeben in "5.1 Eigene Formulare gestalten" gestalteten Formulare für:

  • Reisebüro
  • Schulbibliothek

6. Test und Dokumentation

Lernziele:

  • Sie kennen die Bestandteile einer Dokumentation und verschiedene Möglichkeiten und Formen
  • Sie kennen verschiedene Zielgruppen und können Ihre Dokumentation niveaugerecht für die verschiedenen Gruppen verfassen
  • Sie kennen den Unterschied zwischen Ausprobieren und Testen
  • Sie können sinnvolle Tests definieren, durchführen und dokumentieren

6.1 Warum dokumentieren

Der Zweck der Dokumentation besteht darin, das der Anwender das System selbstständig bedienen kann (Benutzerdokumentation) und der Entwickler das System weiter entwickeln, beziehungsweise Fehler suchen und korrigieren kann (Systemdokumentation)

  • Systemdokumentation
    Dazu gehört: Namenskonventionen für Benennung von Objekten, Tabellen, Abfragen etc., ERD, Tabellenbeschreibung, Inlinedokumentation, Kommentare in der Datenbank.
  • Benutzerdokumentation
    Zielgruppenorientierte Anleitung zur Benutzung der Datenbank als z.B. Online-Hilfe.  Nützlich sind auch aussagekräftige Fehlermeldungen.

6.2 Warum testen

Das Produkt sollte dem Kunden fehlerfrei übergeben werden. Das bedingt ein grüdliches Testen vor der Auslieferung. Aber bitte kein unsystematisches aus- und herumprobieren. Der Test muss systematisch, reproduzierbar und hinreichend dokumentiert sein.

Das Produkt systematisch Testen, indem zuvor Testfälle bestimmt werden und die Testausführung präzise dokumentiert wird:

Ein Testfall beschreibt einen elementaren, funktionalen Softwaretest, der zur Überprüfung einer z.B. in einer Spezifikation zugesicherten Eigenschaft eines Testobjektes dient. Bestandteile der Beschreibung eines Testfalls sind:

  • Die Vorbedingungen, die vor der Testausführung hergestellt werden müssen
  • Die Eingaben/Handlungen, die zur Durchführung des Testfalls notwendig sind
  • Die erwarteten Ausgaben/Reaktionen des Testobjektes auf die Eingaben
  • Die erwarteten Nachbedingungen, die als Ergebnis der Durchführung des Testfalls erzielt werden

Die Durchführung, der Inhalt und die Ergebnisse von Tests müssen protokolliert und dokumentiert werden. Dazu gehören die Beschreibung der Testfälle die Resultate und eine Zusammenfassung und Beurteilung, ob die Lieferung an den Absender/Entwickler zur Korrektur zurückgewiesen wird, oder ob die verbliebenen Fehler marginal sind und das Produkt freigegeben werden kann. (Die Fehler werden dann auf einer ToBeDone-Liste für einen nächsten Release vorgemerkt)

6.3 Die DB DB_Autogarage.odb formal testen

Sie erhalten hier eine OpenOfficeBase Datenbank «DB_Autogarage.odb», die sie testen sollen. Das ERD und die Tabellenbeschreibungen:

Erstellen sie das Testprozedere und testen sie anschliessend die Datenbank. Das ausgefüllte Testprotokoll zeigt auf, was bei der Datenbank noch verbessert werden muss. Korrigieren sie anschliessend die Fehler in der Datenbank und führen sie alle Test’s gemäss ihrer Testvorschrift nochmals durch. Protokollieren sie diesen Testvorgang erneut. Damit soll sichergestellt werden, dass bei den Korrekturarbeiten sich keine neue Fehler eingeschlichen haben.
Versuchen sie bei den gefundenen Fehlern zu unterscheiden, ob der Fehler zwingend behoben werden muss, oder ob der Fehler vorerst im Produkt belassen werden kann und erst im nächsten Release behoben werden soll, wie z.B. kleine Rechtschreibefehler in einer Eingabemaske.

6.4 Weitere DBs formal testen

Erstellen sie je eine Testvorschrift mit geeigneten Testfällen für die beiden im vorangegangenen Kapitel "5.2 Eigene Formulare in OpenOffice-Base erstellen" erstellten Datenbanken:

  • Reisebüro
  • Schulbibliothek

Überlegen sie sich dabei, was wie getestet werden soll. Basis ist dabei das ERD und die Tabellenbeschreibung. (Tipp: Überprüfen sie, ob Kardinalitäten, Datentypen, referentielle Integrität etc. eingehalten werden bzw. korrekt sind). Testen sie die beiden Datenbanken gemäss ihrer Testvorschrift und erstellen sie je ein Testprotokoll.

6.5 DBs dokumentieren

Erstellen sie je eine Dokumentation bzw. Gebrauchsanweisung (Manual) für die beiden im vorangegangenen Kapitel "5.2 Eigene Formulare in OpenOffice-Base erstellen" erstellten Datenbanken:

  • Reisebüro
  • Schulbibliothek