(C) Hans Hutzler Hans.Hutzler@arcor.de Microsoft Access Einführung.

Post on 06-Apr-2016

218 views 0 download

Transcript of (C) Hans Hutzler Hans.Hutzler@arcor.de Microsoft Access Einführung.

(C) Hans Hutzler Hans.Hutzler@arc(C) Hans Hutzler Hans.Hutzler@arcor.deor.de

Microsoft AccessMicrosoft AccessEinführungEinführung

Was ist ein Was ist ein Datenbanksystem?Datenbanksystem?

Datenbank(Datensammlun

g)

Datenbankprogramm

(z.B. MS Access)+

Was ist eine Datenbank?Was ist eine Datenbank?

Geordnete Sammlung (vieler) gleich strukturierter Daten z.B. in Form einer Tabelle

NrNr NameName VornameVorname Strasse, Strasse, NrNr

PLZ, OrtPLZ, Ort TelefonTelefon

11 AdamowAdamow AlbertAlbert Aalstr. 17Aalstr. 17 45877 Essen45877 Essen 0201-0201-555470555470

22 BasolewBasolew BertaBerta Bohlweg 8Bohlweg 8 45887 Essen45887 Essen 0201-0201-885522885522

33 DorschDorsch DorleDorle Dünenweg 9Dünenweg 9 44137 44137 DortmundDortmund

0231-0231-995544995544

Bezeichner

Was ist eine Was ist eine Datenbanktabelle?Datenbanktabelle?

Geordnete Sammlung (vieler) gleich strukturierter Daten z.B. in Form einer Tabelle

NrNr NameName VornameVorname Strasse, Strasse, NrNr

PLZ, OrtPLZ, Ort TelefonTelefon

11 AdamowAdamow AlbertAlbert Aalstr. 17Aalstr. 17 45877 Essen45877 Essen 0201-0201-555470555470

22 BasolewBasolew BertaBerta Bohlweg 8Bohlweg 8 45887 Essen45887 Essen 0201-0201-885522885522

33 DorschDorsch DorleDorle Dünenweg 9Dünenweg 9 44137 44137 DortmundDortmund

0231-0231-995544995544Datensat

z (Record)

Bezeichner

Was ist eine Was ist eine Datenbanktabelle?Datenbanktabelle?

NrNr NameName VornameVorname Strasse, Strasse, NrNr

PLZ, OrtPLZ, Ort TelefonTelefon

11 AdamowAdamow AlbertAlbert Aalstr. 17Aalstr. 17 45877 Essen45877 Essen 0201-0201-555470555470

22 BasolewBasolew BertaBerta Bohlweg 8Bohlweg 8 45877 Essen45877 Essen 0201-0201-885522885522

33 DorschDorsch DorleDorle Dünenweg 9Dünenweg 9 44137 44137 DortmundDortmund

0231-0231-995544995544

Was ist eine Was ist eine Datenbanktabelle?Datenbanktabelle?

NrNr NameName VornameVorname Strasse, Strasse, NrNr

PLZ, OrtPLZ, Ort TelefonTelefon

11 AdamowAdamow AlbertAlbert Aalstr. 17Aalstr. 17 45877 Essen45877 Essen 0201-0201-555470555470

22 BasolewBasolew BertaBerta Bohlweg 8Bohlweg 8 45877 Essen45877 Essen 0201-0201-885522885522

33 DorschDorsch DorleDorle Dünenweg 9Dünenweg 9 44137 44137 DortmundDortmund

0231-0231-995544995544

PLZPLZ OrtOrt4587745877 EssenEssen

4587745877 EssenEssen

4413744137 DortmundDortmund

´Redundanz´

Jede Datenbank besteht aus mehreren

Tabellen

Access starten und beendenAccess starten und beenden

Neu: Leere

Datenbank

Access starten und beendenAccess starten und beendenBereits am

Anfang muss schon

der Dateiname angegeben werden, da

alle Eintragung

en unmittelbar gespeichert

werden

Access starten und beendenAccess starten und beenden

Tabelle erstellenTabelle erstellenEntwurfsansicht aktivieren

Tabelle erstellenTabelle erstellenFeldnamen und

zugehörige Datentypen eingeben

Datentypen: Text / MemoDatentypen: Text / MemoTextText MemoMemo

•Maximal 255 beliebige Maximal 255 beliebige Zeichen Zeichen •Sortierung möglichSortierung möglich

•Maximal 65535 beliebige Maximal 65535 beliebige ZeichenZeichen•Sortierung nur nach den Sortierung nur nach den ersten 255 Zeichenersten 255 Zeichen

Datentyp: ZahlDatentyp: Zahl

Wie werden Zahlen Wie werden Zahlen gespeichert?gespeichert?

Jeder Dezimalzahl lässt sich mit geeigneten Exponenten so darstellen, dass alle Vorkommastellen Null und die erste

Nachkommastelle von Null verschieden ist.

Dies gilt auch für Dualzahlen:

100111,101 = 0,100111101·26

3245,77 = 0,34577·103

Mantisse

Mantisse

Exponent

Exponent

Wie wird der Single-Typ Wie wird der Single-Typ gespeichert?gespeichert?

100111,101 = 0,100111101·26

00000110

10011110

10000000

00000000

Wie wird der Single-Typ Wie wird der Single-Typ gespeichert?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 Wie wird der Single-Typ gespeichert?gespeichert?

00000110

10011110

10000000

00000000

Wird der Exponent größer, so wird das darstellbare Zahlenintervall

größerWird die Mantisse länger, so werden

die Zahlen genauer!

Double-Typ: 16 Bit für den Exponenten und 48 Bit für die Mantisse

Größere und genauere Zahlen

Datentypen: AutoWertDatentypen: AutoWert

Eindeutige, nur für diesen Datensatz vom System vergebene LongInt-

Zahl(z.B. Identifikationsnummern,

Artikelnummern, etc.)

Datentyp: sonstigeDatentyp: sonstige• Währung (richtet sich nach Ländereinstellung)Währung (richtet sich nach Ländereinstellung)• Datum/Uhrzeit (verschiedene Formate)Datum/Uhrzeit (verschiedene Formate)• Ja/Nein (Haken)Ja/Nein (Haken)• OLE (Object Linking and Embedding z.B. Bild)OLE (Object Linking and Embedding z.B. Bild)• Hyperlink (z.B. Aufruf einer Web-Site)Hyperlink (z.B. Aufruf einer Web-Site)• Nachschlags-Assistent (zum Erstellen von Nachschlags-Assistent (zum Erstellen von

Auswahlwerten)Auswahlwerten)

Beispiel Übungsdatenbank Beispiel Übungsdatenbank „Nordwind“„Nordwind“

Hierbei handelt es sich um eine Microsoft Übungsdatenbank zum Erlernen von Access

Dargestellt wird dabei die Verwaltung von Bestellungen eines Großhandels-

Unternehmens

Nordwind-TabellenNordwind-Tabellen

Kunden-TabelleKunden-Tabelle

AbfrageAbfrage

Abfrage nach OrtAbfrage nach Ort

Es sollen nur drei Felder des

Datensatzes angezeigt werden.

Der betreffende Kunde soll aus

London kommen

Umschalten auf Datenblattansic

ht

Abfrage nach OrtAbfrage nach Ort

Ort = London!

Abfrage nach OrtAbfrage nach Ort

Alternativ soll Madrid

ausgewählt werden

Umschalten auf Datenblattansic

ht

Abfrage nach Alternativ-OrtAbfrage nach Alternativ-Ort

London oder Madrid

AbfragenAbfragen

Ein UND-Kriterium soll erfüllt werden

AbfragenAbfragen

Kunden-FormularKunden-Formular

Kunden-FormularKunden-Formular

Kunden-FormularKunden-Formular

Rechte-Maus-Klick :

„Eigenschaften“

Kunden-FormularKunden-Formular

Datenherkunft: Tabelle „Kunde“

Kunden-FormularKunden-FormularGewünschte Felder in

Detailbereich ziehen

Kunden-FormularKunden-Formular

Mit „Autoformat“ lässt sich das Design ändern

Kunden-FormularKunden-Formular

BerichteBerichte

BeziehungenBeziehungen

• Einfache Beziehungen Einfache Beziehungen • Beziehungen mit referentieller Integrität Beziehungen mit referentieller Integrität • Referentielle Integrität mit Referentielle Integrität mit

Aktualisierungsweitergabe an den Aktualisierungsweitergabe an den Detaildatensatz Detaildatensatz

• Referentielle Integrität mit Löschweitergabe an Referentielle Integrität mit Löschweitergabe an den Detaildatensatz. den Detaildatensatz.

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 BeziehungenEinfache Beziehungen

• 1:1 - Beziehungen 1:1 - Beziehungen • 1:N - Beziehungen 1:N - Beziehungen • M:N - Beziehungen M:N - Beziehungen

Jedem Datensatz in der Haupttabelle ist genau ein Datensatz in der Detailtabelle

zugeordnet.

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´´1:1´Jeder Bundesbürger hat genau eine

PersonalausweisnummerJeder 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´´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´´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 Beziehungen mit referentieller IntegritätIntegrität

• Jeder in die Tabelle Jeder in die Tabelle PkwPkw eingefügte Datensatz muss einen gültigen eingefügte Datensatz muss einen gültigen HalterHalter-Code besitzen. -Code besitzen.

• Es darf kein Es darf kein HalterHalter gelöscht werden, zu dem noch gelöscht werden, zu dem noch PkwPkw in der in der Datenbank vorliegen. Datenbank vorliegen.

• Sobald zu einem Sobald zu einem Halter PkwHalter Pkw angelegt wurden, kann sein angelegt wurden, kann sein HalterHalter--Code in der Mastertabelle nicht geändert werden.Code in der Mastertabelle nicht geändert werden.

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

Referentielle Integrität mit Referentielle Integrität mit Aktualisierungsweitergabe 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 Referentielle Integrität mit LöschweitergabeLö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ührungDurchführung

´Beziehungen´-Icon

DurchführungDurchführung

DurchführungDurchführung

Beispiel: SchuleBeispiel: Schule

• Ein Lehrer unterrichtet mehrere FächerEin Lehrer unterrichtet mehrere Fächer• Eine Klasse wird in mehreren Fächern unterrichtetEine Klasse wird in mehreren Fächern unterrichtet• Jede Klasse hat mehrere SchülerJede Klasse hat mehrere Schüler

Welche Tabellen braucht man?

Beispiel: SchuleBeispiel: Schule

• Ein Ein LehrerLehrer unterrichtet mehrere unterrichtet mehrere FächerFächer• Eine Eine KlasseKlasse wird in mehreren Fächern unterrichtet wird in mehreren Fächern unterrichtet• Jede Klasse hat mehrere Jede Klasse hat mehrere SchülerSchüler

Zuordnungstabellen für M:N-Beziehungen: Lehrer-Fach, Fach-Klasse

Beispiel: SchuleBeispiel: Schule