Microsoft Access Einführung (C) Hans Hutzler [email protected] Was ist ein Datenbanksystem? Datenbank (Datensammlung) + Datenbankprogramm (z.B. MS Access) Was ist eine Datenbank? Bezeichner Nr Name Vorname Strasse, Nr PLZ, Ort Telefon 1 Adamow Albert Aalstr. 17 45877 Essen 0201-555470 2 Basolew Berta Bohlweg 8 45887 Essen 0201-885522 3 Dorsch Dorle Dünenweg 9 44137 Dortmund 0231-995544 Geordnete Sammlung (vieler) gleich strukturierter Daten z.B. in Form einer Tabelle Was ist eine Datenbanktabelle? Bezeichner Nr Name Vorname Strasse, Nr PLZ, Ort Telefon 1 Adamow Albert Aalstr. 17 45877 Essen 0201-555470 2 Basolew Berta Bohlweg 8 45887 Essen 0201-885522 3 Dorsch Dorle Dünenweg 9 44137 Dortmund 0231-995544 Datensatz (Record) Geordnete Sammlung (vieler) gleich strukturierter Daten z.B. in Form einer Tabelle Was ist eine Datenbanktabelle? Nr Name Vorname Strasse, Nr PLZ, Ort Telefon 1 Adamow Albert Aalstr. 17 45877 Essen 0201-555470 2 Basolew Berta Bohlweg 8 45877 Essen 0201-885522 3 Dorsch Dorle Dünenweg 9 44137 Dortmund 0231-995544 Was ist eine Datenbanktabelle? Nr Name Vorname Strasse, Nr PLZ, Ort Telefon 1 Adamow Albert Aalstr. 17 45877 Essen 0201-555470 2 Basolew Berta Bohlweg 8 45877 Essen 0201-885522 3 Dorsch Dorle Dünenweg 9 44137 Dortmund 0231-995544 PLZ Ort 45877 Essen 45877 Essen 44137 Dortmund ´Redundanz´ Jede Datenbank besteht aus mehreren Tabellen Access starten und beenden Neu: Leere Datenbank Access starten und beenden Bereits am Anfang muss schon der Dateiname angegeben werden, da alle Eintragungen unmittelbar gespeichert werden Access starten und beenden Tabelle erstellen Entwurfsansicht aktivieren Tabelle erstellen Feldnamen und zugehörige Datentypen eingeben Datentypen: Text / Memo Text •Maximal 255 beliebige Zeichen •Sortierung möglich Memo •Maximal 65535 beliebige Zeichen •Sortierung nur nach den ersten 255 Zeichen Datentyp: Zahl Wie werden Zahlen gespeichert? Mantisse Jeder Dezimalzahl lässt sich mit geeigneten Exponenten so Exponent darstellen, dass alle Vorkommastellen Null und die erste Nachkommastelle von Null verschieden ist. 3245,77 = 0,34577·103 Dies gilt auch für Dualzahlen: 100111,101 = 0,100111101·26 Mantisse Exponent Wie wird der Single-Typ gespeichert? 100111,101 = 0,100111101·26 00000110 10011110 10000000 00000000 Wie wird der Single-Typ gespeichert? 00000110 10011110 10000000 00000000 Da diese Stelle laut Definition 1 sein muss, ist diese redundant und kann statt dessen mit dem Vorzeichen der Zahl belegt werden: 0 für positiv und 1 für negativ Wie wird der Single-Typ gespeichert? Wird der Exponent größer, so wird das darstellbare Zahlenintervall größer Wird die Mantisse länger, so werden die Zahlen genauer! 00000110 10011110 10000000 00000000 Double-Typ: 16 Bit für den Exponenten und 48 Bit für die Mantisse Größere und genauere Zahlen Datentypen: AutoWert Eindeutige, nur für diesen Datensatz vom System vergebene LongInt-Zahl (z.B. Identifikationsnummern, Artikelnummern, etc.) Datentyp: sonstige • Währung (richtet sich nach Ländereinstellung) • Datum/Uhrzeit (verschiedene Formate) • Ja/Nein (Haken) • OLE (Object Linking and Embedding z.B. Bild) • Hyperlink (z.B. Aufruf einer Web-Site) • Nachschlags-Assistent (zum Erstellen von Auswahlwerten) Beispiel Übungsdatenbank „Nordwind“ Hierbei handelt es sich um eine Microsoft Übungsdatenbank zum Erlernen von Access Dargestellt wird dabei die Verwaltung von Bestellungen eines GroßhandelsUnternehmens Nordwind-Tabellen Kunden-Tabelle Abfrage Umschalten auf Datenblattansicht Abfrage nach Ort Es sollen nur drei Felder des Datensatzes angezeigt werden. Der betreffende Kunde soll aus London kommen Abfrage nach Ort Ort = London! Umschalten auf Datenblattansicht Abfrage nach Ort Alternativ soll Madrid ausgewählt werden Abfrage nach Alternativ-Ort London oder Madrid Abfragen Ein UNDKriterium soll erfüllt werden Abfragen Kunden-Formular Kunden-Formular Kunden-Formular Rechte-MausKlick : „Eigenschaften“ Kunden-Formular Datenherkunft: Tabelle „Kunde“ Kunden-Formular Gewünschte Felder in Detailbereich ziehen Kunden-Formular Mit „Autoformat“ lässt sich das Design ändern Kunden-Formular Berichte Beziehungen Beziehungen sind notwendig, um die Daten eines Datensatzes, die in relationalen Datenbankkonzepten in verschiedenen Tabellen (=´Master- und Detailtabellen´) gespeichert sind, wieder zusammenhängend darstellen zu können – sei es in Abfragen, Formularen oder Berichten. • Einfache Beziehungen • Beziehungen mit referentieller Integrität • Referentielle Integrität mit Aktualisierungsweitergabe an • den Detaildatensatz Referentielle Integrität mit Löschweitergabe an den Detaildatensatz. Einfache Beziehungen • • • Jedem Datensatz in der Haupttabelle ist genau ein Datensatz in der Detailtabelle zugeordnet. 1:1 - Beziehungen 1:N - Beziehungen M:N - Beziehungen Jedem Datensatz in der Haupttabelle sind mehrere Datensätze in der Detailtabelle zugeordnet. Mehreren Datensätzen in der Haupttabelle sind mehrere Datensätze in der Detailtabelle zugeordnet. ´1:1´ Jeder Bundesbürger hat genau eine Personalausweisnummer Jeder Mensch hat einen charakteristischen Fingerabdruck Jeder Studierende eine Studiennummer Jeder Pkw hat ein charakteristisches Kennzeichen Jedes Vereinsmitglied hat eine Mitgliedsnummer Jeder Kunde hat eine Kundennummer ´1:N´ Jeder Mathematik-Lehrer unterrichtet in mehreren Klassen, aber jede Klasse hat nur einen Mathematiklehrer Jeder Mensch kann mehrere Pkw besitzen, aber jeder Pkw gehört nur einer bestimmten Person Ein Kundenbetreuer betreut mehrere Kunden, aber jeder Kunde hat genau einen Kundenbetreuer ´M:N´ Jeder Lehrer hat mehrere Schüler und jeder Schüler hat mehrere Lehrer Jeder Laden verkauft mehrere Artikel und jeder Artikel wird in mehreren Läden verkauft Eine Bank betreut mehrere Kunden und jeder Kunde kann mehrere Banken besuchen In Access nur möglich mit Hilfe einer Zuordnungstabelle Beziehungen mit referentieller Integrität In Beziehungen mit referentieller Integrität stellt Access sicher, dass zu jedem Datensatz in der Detailtabelle ein passender Datensatz in der Mastertabelle vorhanden ist. Halter Pkw • Jeder in die Tabelle Pkw eingefügte Datensatz muss einen gültigen Halter• • Code besitzen. Es darf kein Halter gelöscht werden, zu dem noch Pkw in der Datenbank vorliegen. Sobald zu einem Halter Pkw angelegt wurden, kann sein Halter-Code in der Mastertabelle nicht geändert werden. Referentielle Integrität mit Aktualisierungsweitergabe In Beziehungen, für die eine referentielle Integrität mit Aktualisierungsweitergabe eingerichtet wurde, reicht das Datenbanksystem Änderungen am Primärschlüssel der Mastertabelle an die entsprechenden Verknüpfungsfelder der Detailtabelle weiter. Ändert sich in unserem Beispiel also einmal der Halter-Code in einem Datensatz der Mastertabelle, so wird diese Änderung in jedem Datensatz der Detailtabelle Pkw nachvollzogen, der eben diesen Halter-Code besitzt. So bleibt der Zusammenhang der Daten erhalten. Dies geschieht völlig automatisch und transparent für den Benutzer. Referentielle Integrität mit Löschweitergabe Auch für den Fall des Löschens auf der Master-Seite in verknüpften Tabellen gibt es die Möglichkeit einer Weitergabe. Wird in Beziehungen, die mit einer Löschweitergabe eingerichtet wurden, ein Datensatz aus der Mastertabelle entfernt, so löscht Access die dazu gehörenden Detaildatensätze ebenfalls. Das Löschen eines Halterdatensatzes würde in unserem Beispiel also das Löschen der verknüpften Pkwdaten nach sich ziehen. Vorsicht: Eine Löschweitergabe kann fatale Folgen haben. Beispielsweise dann, wenn beim Löschen eines Kundendatensatzes unbemerkt auch noch offene Rechnungen gelöscht werden. Durchführung ´Beziehungen´Icon Durchführung Durchführung Beispiel: Schule • Ein Lehrer unterrichtet mehrere Fächer • Eine Klasse wird in mehreren Fächern unterrichtet • Jede Klasse hat mehrere Schüler Welche Tabellen braucht man? Beispiel: Schule • Ein Lehrer unterrichtet mehrere Fächer • Eine Klasse wird in mehreren Fächern unterrichtet • Jede Klasse hat mehrere Schüler Zuordnungstabellen für M:N-Beziehungen: Lehrer-Fach, Fach-Klasse Beispiel: Schule