Text - ETH E-Collection

Werbung
Institut für Computational Science
Prof. Dr. H. Hinterberger
Praxismodul 5
Daten verwalten Teil 2
mit MS Access
Praxis 5 – Daten verwalten (2)
© Institut für Computational Science, ETH Zürich, 1996-2005
Alle Rechte vorbehalten.
Internetadresse: www.evim.ethz.ch
2
Praxis 5 – Daten verwalten (2)
3
Wie bearbeite ich dieses Modul?
Dieses Praxismodul bearbeiten Sie am effizientesten, wenn Sie die folgenden drei Teile in
angegebener Reihenfolge angehen:
Teil A: Einführung...............................................................................................................Seite 5
In diesem zweiten Teil zum Thema Datenverwaltung lernen Sie mit Hilfe eines
Datenverwaltungssystems Daten zu verwalten. Hier finden Sie eine kurze Einführung
aus der Sicht der Anwender.
Teil B: E.Tutorial .....................................................................................................................Seite 9
Das E.Tutorial Praxis 5 vermittelt Ihnen in 8 Lektionen, wie Sie mit Hilfe eines
Datenverwaltungssystems (Microsoft Access) drei wichtige Aufgaben lösen können:
•
Strukturiertes Speichern von Daten
•
Erstellen von Abfragen
•
Ein- und Ausgabe von Daten
Zudem finden Sie in diesem Teil eine Erinnerungshilfe (Reminder) für die einzelnen Lektionen des
E.Tutorials, sowie einen Multiple-Choice Test.
Zeitaufwand: ca. 2 bis 3 Stunden
Teil C: Testaufgabe...........................................................................................................Seite 13
Bei der Testaufgabe wenden Sie die im E.Tutorial angeeigneten Fähigkeiten auf Daten der
Nährwertdatenbank an.
Zeitaufwand: ca. 1.5 Stunden
Begriffe:
In diesem Praxismodul werden folgende Begriffe behandelt:
Datenbanksystem
Attribut
Referentielle Integrität
Relationenmodell
Tupel
Redundanz
Relation
Beziehung
Relationale Operatoren
Abfrage
Beziehungstyp
SQL
Formular
Primärschlüssel
Praxis 5 – Daten verwalten (2)
4
Praxis 5 – Daten verwalten (2)
5
Fig. 1
Teil A: Einführung
Sinn von Datenbanksystemen in der Wissenschaft
Bei der wissenschaftlichen Tätigkeit werden digitale Daten produziert, archiviert, modifiziert mit dem
Ziel, mit Hilfe der Daten eine wissenschaftliche Fragestellung beantworten zu können. Die einzelnen
Elemente des Datenflusses entnehmen Sie der folgenden Abb. 1:
Abb. 1: Datenbanksysteme helfen beim Ablegen und Wiederfinden von Daten.
Bei der Datenarchivierung und -Verwaltung kommen häufig Datenbanksysteme zum Einsatz. Diese
ermöglichen nicht nur ein Strukturieren, Ablegen und Wiederfinden der Daten, sondern helfen auch
bei der Organisation all dieser Aufgaben. Charakteristisch für eine Datenbank ist das ihr zu Grunde
liegende Datenbankmodell.
Was bringen uns Datenbankmodelle?
Im letzten Praxismodul haben Sie recht grosse Datenlisten mit den Datenbankfunktionen von Excel
verwaltet. Der Nachteil dabei war, dass Sie alle Daten in eine Tabelle packen mussten. Sie haben
sicherlich gemerkt, dass die Tabelle ab einer gewissen Grösse ziemlich unübersichtlich wird. Darüber
hinaus brauchen Sie viel unnötigen Speicherplatz für leere Felder und Datenwiederholungen (so
genannte Redundanzen). Bei der Nährwerttabelle der letzten Testaufgabe waren etliche Werte
mehrfach in die Datenbank eingetragen. Beispielweise war jeder Nahrungsmittelnamen jeweils 25 Mal
identisch eingetragen und die Inhaltsstoffnamen sogar 48 Mal. Eine solch grosse Anzahl Redundanzen
Praxis 5 – Daten verwalten (2)
6
verunmöglicht somit eine effiziente Arbeitsweise (stellen Sie sich vor, Sie müssten an 48 Orten in der
Tabelle einen Inhaltsstoffnamen abändern…). Daher liegt es auf der Hand, diese Datensätze in separate
Tabellen abzulegen. Genau das erlauben Datenbanksysteme, die das Relationenmodell anwenden
(Abb. 2).
Abb. 2: Mit dem Relationenmodell lassen sich Daten der realen Welt übersichtlich strukturieren. Eine
relationale Datenbank ist in Relationen unterteilt, die logische Einheiten der zu repräsentierenden Welt
darstellen (hier Food_Name und Food_Gruppe). Relationen haben die Form von Tabellen, welche wie
die Listen in der Tabellenkalkulation Überschriften (Attribute) tragen und Daten enthalten. Diese
Relationen sind über identische Attribute verknüpft (RefID verweist auf ID). Es gibt drei
Beziehungstypen (1:1, 1:n und n:n). Bei Abb. 2b) ist eine n:1 Beziehung abgebildet.
Was ist das Relationenmodell?
Beim Aufteilen einer Datenliste auf verschiedenen Tabellen (Relationen) können in einem relationalen
Datenbanksystem Redundanzen reduziert werden. Damit dabei keine Informationen verloren gehen
(„Welches Nahrungsmittel enthält nun schon wieder 23.6g Kohlenhydrate?“), müssen die einzelnen
Relationen mittels Beziehungen verknüpft werden. Dabei werden immer identische Attribute
miteinander verbunden (vgl. Abb. 2).
Insgesamt unterscheidet man 3 Beziehungstypen: 1:1, 1:n und n:n. Die Zahl 1 steht dabei für eine
Beziehung zu einem Primärschlüssel und deutet darauf hin, dass in der entsprechenden Tabelle nur
genau ein Eintrag mit diesem Wert vorhanden ist. Der Beziehungstyp „n“ bedeutet hingegen, dass
mehrere Zeilen mit dem gleichen Attributwert in der Tabelle vorhanden sein können. Es gilt zu
beachten, dass n:n Beziehungen nicht direkt, sondern nur mittels einer Zwischentabelle erstellt
werden können.
Datenbank-Abfragen: Das System hilft beim Suchen
Das Besondere an Datenbanken ist die Möglichkeit, Information schnell und gezielt abzufragen.
Während kleine Datenbanken noch überschaubar sind, wird mit zunehmendem Umfang der
gespeicherten Information elektronisches Abfragen unerlässlich. Mittels SQL (Structured Query
Language) ist es möglich, solche Abfragen durchzuführen. Mit dieser speziell für diesen Zweck
entwickelten Sprache können Nutzer Fragen formulieren, die in eine für das Datenbanksystem
Praxis 5 – Daten verwalten (2)
7
verständliche Sprache umgesetzt werden. Kennt man sich in SQL ein wenig aus, kann man sich
einfacher in andere Systeme einarbeiten. Zudem ist SQL auch für Datenmanipulationen verwendbar
(Abb. 4).
Wichtig: Voraussetzung für eine erfolgreiche Abfrage ist die genaue Kenntnis der Datenbankstruktur.
Abb. 3: Beispiel einer Tabelle in Access zur Erfassung von Farbe und Ablageort eines Objekts.
Abb. 4: Abfrage einer Datenbank mit dem grafisch orientierten Assistenten von Access und der
Abfrage-Sprache SQL. Die Abfrage lautet in beiden Fällen: Nenne die Zeilen der Tabelle A, die im Feld
"Farbe"
das
Wort
"rot"
enthält.
Die
SQL-Abfragen
enthalten
die
Grundelemente
SELECT...FROM...WHERE...;. Der SELECT-Bereich gibt die Attribute (Felder) an, die im Resultat angezeigt
werden sollen, der FROM-Bereich die Tabellen, die abgefragt werden und auf WHERE folgen die
Auswahlkriterien.
Was gehört zu diesem Praxismodul und was nicht?
Das professionelle Erstellen einer Datenbank erfordert viel Wissen und Praxiserfahrung. Erwarten Sie
deshalb nicht, dass Sie nach diesem Praxismodul zum Datenbank-Experten werden. Der Einsatz von
MS Access als Beispiel eines Datenbanksystems hat den Vorteil, dass Sie auch ohne
Programmierkenntnisse an Probleme beim Erstellen und im Umgang mit Datenbanken herangeführt
werden. Im Wesentlichen besteht Access aus den drei Bausteinen Tabelle, Formular und Abfrage. Diese
lernen Sie nun im E.Tutorial Schritt für Schritt kennen.
Praxis 5 – Daten verwalten (2)
8
Praxis 5 – Daten verwalten (2)
Fig. 2
Teil B: E.Tutorial
Arbeiten Sie das E.Tutorial Praxis 5 durch!
Sie finden das E.Tutorial auf Ihrer CD-ROM oder über http://www.evim.ethz.ch.
Im E.Tutorial Praxis 5 lernen Sie...
¾
...den Aufbau einer relationalen Datenbank mit MS Access kennen (Lektionen 1 bis 3).
¾
...Abfragen an eine bestehende Datenbank zu stellen, um Daten aus verschiedenen
Tabellen miteinander darzustellen (Lektionen 4 und 5).
¾
...die Grundelemente der Abfragesprache SQL kennen (Lektionen 4 und 5).
¾
...Formulare erstellen (Lektion 6).
¾
...eine Datenbank zu erweitern, in dem Sie neue Tabellen erstellen und diese mit den schon
bestehenden verknüpfen (Lektionen 7 - 8).
Benutzen Sie die Erinnerungshilfe (Reminder) auf den nächsten Seiten, um festzuhalten, wo Sie
welche Funktion finden!
System-Voraussetzungen
PC mit MS Access Version 97, 2000 oder höher und Zugang zum ETH-Intranet.
Hinweis zur Version von MS Access
Das E.Tutorial bezieht sich auf die deutsche Version von MS Access 2002 und höher. Allen
Studierenden steht bei Bedarf eine kostenlose MS Access Version zur Verfügung. Weitere
Informationen erhalten Sie während den Vorlesungen oder unter http://www.msdnaa.net.
Die wichtigsten der beschriebenen Funktionen sind auch mit älteren Versionen von Access
durchführbar, allerdings treten Unterschiede im Fensteraufbau und in der Struktur der Menüs
und Befehle auf.
Weitere Hinweise finden Sie auf dem Blatt "Informationen zum Aufbau der Praxismodule"!
9
Praxis 5 – Daten verwalten (2)
Reminder zum E.Tutorial
10
Praxis 5 – Daten verwalten (2)
11
Praxis 5 – Daten verwalten (2)
12
Praxis 5 – Daten verwalten (2)
13
Fig. 3
Teil C: Testaufgabe
(Hinweis: Auf der EvIM-Internetseite www.evim.ethz.ch finden Sie eine alternative Testaufgabe. Beide Aufgaben
sind gleichwertig. Bitte sprechen Sie sich vorgängig mit den Assistierenden ab, falls Sie die alternative Aufgabe
abgeben möchten.)
1. Einführung
Sie haben im E.Tutorial anhand einer einfachen Datenbank einige wichtige Grundlagen kennen gelernt,
die beim Umgang mit Datenbanken von Bedeutung sind:
•
Aufbau einer relationalen Datenbank
•
Abfragen an eine Datenbank erstellen
•
Grundelemente der Abfragesprache SQL
•
Erweitern eines bestehenden Datenbank-Schemas
Die Testaufgabe gibt Ihnen die Möglichkeit, diese Fähigkeiten zu festigen und flexibel anzuwenden.
Als Datenquelle dient die im Praxismodul 4 eingeführte Nährwerttabelle, welche wir in das relationale
Datenbankmodell überführt haben. In der nachfolgenden Abbildung sehen Sie die Relationen und
Beziehungen dieser relationalen Nährwertdatenbank:
Die meisten Attribute wurden ohne Änderungen aus der Nährwerttabelle übernommen (vgl.
Praxismodul 4). Die Aufteilung der Nährwerttabelle in eine relationale Datenbank machte es jedoch
notwendig, dass wir einige zusätzliche Attribute einfügen mussten. Die Primärschlüssel sind jeweils
mit ID_?? bezeichnet und werden in anderen Relationen zur Identifizierung dieser Datensätze
verwendet. Immer dann, wenn ein Attribut auf ein anderes Attribut verweist, wird dieses mit einem
vorangestellten „Ref“ (Referenz) als solches gekennzeichnet.
Beispiel: Das Attribut RefID_Food_Gruppe in der Relation „Food“ verweist auf ID_Food_Gruppe in der
Relation „Food_Gruppe“ und definiert somit für jedes Nahrungsmittel eindeutig eine NahrungsmittelGruppe.
Praxis 5 – Daten verwalten (2)
14
2. Vorbereitendes zur Testaufgabe
Einlesen der relationalen Nährwertdatenbank
•
Laden Sie die Datenbank nwdb.mdb auf Ihren Rechner (verwenden Sie als Browser den Internet
Explorer).
•
Öffnen Sie die Datenbank in MS Access.
3. Aufgaben
Teil 1: Aufbau der relationale Datenbank
Diskutieren Sie folgende Fragen zum Aufbau der relationalen Nährwertdatenbank:
a) Wieso ist ID_Comp_Name in der Beziehungs-Darstellung in MS Access fett geschrieben?
b) Welche Beziehungstypen werden in der Datenbank verwendet?
c) In der Datenbank gibt es eine Zwischentabelle. Wie heisst Sie und wozu dient sie?
d) Angenommen Sie müssten eine neue Food_Gruppe „Hilfsstoffe“ erstellen. Wieso wird dieser
Gruppe der Primärschlüssel = 8 vergeben?
Teil 2: Abfragen stellen
Formulieren Sie folgende Abfragen an die Datenbank als SQL-Anweisung und mittels des AccessAbfrage-Assistenten. In Klammer stehen zur Selbstkontrolle die Anzahl Treffer, die Sie bei der Abfrage
erreichen sollten.
a) Erstellen Sie eine Liste aller Nahrungsmittel (48):
SELECT
FROM
b) Finden Sie das Nahrungsmittel mit der food_ID = 1000826. Nur der Nahrungsmittelname
(food_name) soll angezeigt werden (1):
SELECT
FROM
WHERE
Praxis 5 – Daten verwalten (2)
15
c) Erstellen Sie die folgende Abfrage. Wie lautet die Frage? (13)
SELECT Food.Food_Name, Comp_Name.Comp_Name, FC_Wert.FC_Wert
FROM Food INNER JOIN (Comp_Name INNER JOIN FC_Wert ON Comp_Name.ID_Comp_Name
= FC_Wert.RefID_Comp_Name) ON Food.ID_Food = FC_Wert.RefID_Food
WHERE (((Comp_Name.Comp_Name)="Zucker (in g)") AND ((FC_Wert.FC_Wert)>10))
ORDER BY Food.Food_Name;
d) Ein Sportler hat in der Vorbereitung für einen Kugelstosswettkampf erfahren, dass Sie bereits
mit der Nährwertdatenbank gearbeitet haben und gelangt deshalb mit folgender Frage an Sie:
„Um meine Schnellkraft und die Muskelmasse zu erhöhen, suche ich Nahrungsmittel, die viel
Protein (>20g) enthalten. Welche Nahrungsmittel können Sie mir empfehlen?
¾ Welche Nahrungsmittel erfüllen die Vorgaben des Kugelstossers und wie lautet die
Abfrage?
Teil 3: Änderung und Erweiterung der Datenbank
a) Änderung in der Datenbank
Bei ersten Testabfragen der Nährwertdatenbank wurde bemängelt, dass der Eintrag
„Teilentrahmte Milch, pasteurisiert“ nur ungenügend sortiert werden kann. So wird er nicht
nach „Milch“ sondern nach „Teilentrahmt“ sortiert.
¾ Ändern Sie diesen Nahrungsmittelnamen in „Milch, teilentrahmt, pasteurisiert“.
b) Erweiterung der Datenbank
Als Zusatz für die Online-Version der Nährwertdatenbank sollen Kontaktinformationen in die
Datenbank eingefügt werden. So wird es den Anwendern ermöglicht, zu jeder
Nahrungsmittelgruppe mit einem oder mehreren ExpertInnen in Verbindung zu treten.
Ihre Aufgabe besteht nun darin, eine zusätzliche Tabelle („Kontaktinformation“) zu erstellen,
welche folgende Informationen über die ExpertInnen enthält:
Foodgruppe_ID Name
Vorname
Ausbildung
1 Müller
Philipp
Biologe
2 Bühler
Toni
Käsermeister
3 Betschart
Benjamin
Metzgermeister
4 Geisser
Angela
Ernährungsberaterin
4 Brügger
Tamara
Kantonschemikerin
5 Valser
Antoinetta
Lebensmittelchemikerin
6 Stadler
Clemens
Immunologe
Praxis 5 – Daten verwalten (2)
16
¾ Erstellen Sie die Tabelle und geben Sie die Daten ein.
¾ Gibt es eine Nahrungsmittelgruppe, der keine Kontaktperson zugeordnet ist? Sie
brauchen keine Abfrage zu erstellen. Es reicht, wenn Sie Ihre Antwort anhand der
Tabellen aufzeigen.
c) Testen der Erweiterung
¾ Wie viele Lebensmittel werden von Herrn Stadler betreut?
¾ Wie heisst die zuständige Kontaktperson für das Nahrungsmittel „Spargel“?
¾ Ihre Kollegin interessiert sich für die Auswirkungen von Nitrat auf unser Trinkwasser.
Welche Ansprechperson können Sie Ihr gemäss unserer Datenbank empfehlen?
o
Erstellen Sie eine Liste, welche alle in der Datenbank enthaltenen Wasserarten
auflistet (Seewasser, Grundwasser, usw)
Tipp: Für diese „offene“ Abfrage eignet sich ein Wildcard-Zeichen: * (* steht dabei für ein oder
mehrere Zeichen: Beispiel: Haus* -> liefert die Datensätze z.B. für Hausdach, Haustüre, usw.
4. Form und Bedingungen
Zeigen Sie einer Assistentin oder einem Assistenten Ihre Abfragen und Datenbankerweiterungen am
Bildschirm.
Überlegen Sie sich, wie Sie einem Laien erklären würden, wie eine relationale Datenbank funktioniert.
Auf folgende Fragen sollten Sie vorbereitet sein:
•
Wie werden Daten in einer relationalen Datenbank organisiert?
•
Die vorliegende Datenbank ermöglicht es, dass mehrere Kontaktpersonen für eine
Nahrungsmittelgruppe (Food_Gruppe) zuständig sein können. Was müssten Sie an der
Datenbank ändern, damit es in Zukunft auch möglich ist, dass jede Kontaktperson
verschiedenen Food_Gruppen zugeteilt werden kann?
•
Welches sind die Grundelemente einer SQL-Abfrage?
5. FAQ's zur Testaufgabe
•
Muss die referentielle Integrität sichergestellt sein?
Ja. Dies ist aber nur möglich, wenn die Tabellen bereits Datensätze enthalten.
6. Literatur
Informationen über die Schweizerische Nährwertdatenbank: http:// food.ethz.ch/swifd/
Herunterladen