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/