1 Grundlagen der Datenorganisation

Werbung
Wirtschaftsinformatik II
Datenorganisation – Datenbanken – Kommunikation
Skript zur Lehrveranstaltung
Hartmut Fritzsche
Hochschule für Technik und Wirtschaft Dresden (FH)
Fachbereich Informatik/Mathematik
6. Juni 2006
Inhaltsverzeichnis
1
GRUNDLAGEN DER DATENORGANISATION .......................................................... 3
1.1 Motivation: Speichern und Wiederfinden .................................................................. 3
1.2 Datenbanksysteme ...................................................................................................... 3
2
EINFÜHRUNG IN DAS RELATIONALE DATENMODELL........................................ 4
2.1 Strukturteil .................................................................................................................. 4
2.2 Operationsteil ............................................................................................................. 5
3
MS ACCESS ...................................................................................................................... 8
3.1 Die Arbeitsoberfläche ................................................................................................ 8
3.2 Eine neue Datenbank anlegen .................................................................................... 9
3.3 Tabellen .................................................................................................................... 10
3.4 Abfragen ................................................................................................................... 13
3.5 Formulare ................................................................................................................. 17
3.6 Beziehungen zwischen Tabellen .............................................................................. 20
3.7 Berichte .................................................................................................................... 22
3.8 Makros ...................................................................................................................... 23
4
PROGRAMMENTWICKLUNG MIT VBA ................................................................... 24
4.1 Grundlagen ............................................................................................................... 24
4.2 Steuerstrukturen ....................................................................................................... 29
4.3 Objekte in Access ..................................................................................................... 33
4.4 Laufzeitfehler ........................................................................................................... 34
4.5 Die ADO-Architektur ............................................................................................... 36
5
DATENMODELLIERUNG............................................................................................. 41
5.1 Das Entity-Relationship-Modell .............................................................................. 41
5.2 Schlüsselarten / Anforderungen an den Schlüsselaufbau ......................................... 42
5.3 Entwurf von Relationen ........................................................................................... 43
6
DATENBANKORGANISATION ................................................................................... 48
6.1 Klassifizierung und Architektur von Datenbanksystemen ....................................... 48
6.2 Konsistenz und Transaktionen ................................................................................. 49
7
DATENSCHUTZ UND INFORMATIONSSICHERHEIT............................................. 49
7.1 Datensicherheit und Datenschutz ............................................................................. 49
7.2 Sicherheit in Netzwerken ......................................................................................... 50
8
KOMMUNIKATIONSSYSTEME .................................................................................. 51
8.1 Technisch-technologische Grundlagen .................................................................... 51
8.2 Kommunikationsdienste ........................................................................................... 51
LITERATUR ............................................................................................................................ 51
H. Fritzsche, Wirtschaftsinformatik II
2
1 GRUNDLAGEN DER DATENORGANISATION
1.1 Motivation: Speichern und Wiederfinden
Die Datenverwaltung in Anwendungssystemen erfolgt grundlegend nach folgenden Gesichtspunkten:
extern vs. intern
Die Bezeichnung „intern“ bezieht sich auf Hauptspeicher und Register, mit „externer“ Speicherung ist die Verwaltung der Daten auf Festplatte, CD-ROM, DVD usw. gemeint.
statisch vs. dynamisch
Ist der für Datenobjekte intern benötigte Speicherplatz zur Programmierzeit bekannt, spricht
man von statischen Datenstrukturen. Für statisch zu verwaltende Daten stellt der Compiler zur
Übersetzungszeit Speicherplatz bereit.
Ist die Kardinalität der Datenobjekte zur Programmierzeit nicht bekannt, muss dem Programm
vom Betriebssystem Speicherplatz zur „Laufzeit“ (d.h. zur Ausführungszeit des Programms)
bereitgestellt werden. In diesem Fall spricht man von dynamischen Datenstrukturen.
Dynamisch verwaltete, nicht-elementare Datenbestände können auf unterschiedliche Art und
Weise organisiert sein. Beispiele sind: Ungeordnete Folge, geordnete Folge, (binärer)
Baum, gerichteter/ungerichteter Graph, Hash-Tabelle. B*-Bäume sind spezielle Bäume, bei
denen die Informationen ausschließlich in Blattknoten liegen. Entsprechend den Organisationsformen gibt es unterschiedliche Verfahren der Verarbeitung (z.B. sequentiell, binär,
durch direktes oder indirektes Hash-Verfahren), die auf grundlegenden Zugriffsarten (z.B.
sequentiell, wahlfrei, indexsequentiell, assoziativ) basieren. Die Reihenfolge der Verarbeitung kann vorbestimmt (z.B. sequentiell) oder frei wählbar sein.
Basisoperationen für die Verarbeitung sind



das Einfügen eines Elementes in die Datenbasis
das Suchen eines bestimmten Elementes in der Datenbasis
das Entfernen eines Elementes aus der Datenbasis
1.2 Datenbanksysteme
Ein Datenbanksystem (DBS) umfasst eine oder mehrere Datenbasen bzw. Datenbanken (DB)
und ein Datenbankmanagementsystem (Data Base Management System = DBMS):
DBS = DB + DBMS
Datenbankmanagementsysteme werden auch als Datenbankbetriebssysteme bezeichnet.
Datenbanksysteme sind eine spezielle Art von Informationssystemen, die Daten speichern
und zentral verwalten. Ziel ist die Gewährleistung einer weitgehenden Unabhängigkeit der
Daten von den mit ihnen arbeitenden Programmen bzw. Benutzern. Es wird zwischen einer
physischen und einer logischen Datenunabhängigkeit unterschieden. Unter logischer Datenunabhängigkeit versteht man, dass die anwendungsbezogene Sicht auf die DB losgelöst
von der logischen Gesamtstruktur existiert. Die globale Struktur soll änderbar sein, ohne lokale Anwendungen ändern zu müssen.
Wesentliche Arten von DBS sind hierarchische DBS (HDBS), Netzwerk--DBS, relationale
DBS (RDBS) und objektorientierte DBS (OODBS). In der Praxis dominieren derzeit RDBS.
OODBS sind gegenwärtig noch Forschungsgegenstand, gewinnen aber zunehmend auch Bedeutung für die Praxis.
H. Fritzsche, Wirtschaftsinformatik II
3
2 EINFÜHRUNG IN DAS RELATIONALE DATENMODELL
Die mathematische Grundlage für relationale Datenbanken bildet das Relationenmodell von
E. F. Codd (1970). Das Relationenmodell umfasst einen Strukturteil und einen Operationsteil.
Der Strukturteil enthält Beschreibungen von Objekttypen auf der Basis von Relationenschemata. Der Operationsteil beschreibt einen Satz von Operationen für Anfragen und Modifikationen. Es werden als Beschreibungsmittel unterschieden:
 die Relationenalgebra
 die Normsprache SQL
2.1 Strukturteil
Bei der Beschreibung von wirklichen oder gedachten Gegenständen wird eine objektzentrierte
Sicht verfolgt (im Unterschied z.B. zu einer prädikatzentrierten Sicht, die bei der logikorientierten Programmierung zugrundegelegt wird):
Ein Objekt ist etwas, über das etwas ausgesagt werden kann. Objekte besitzen Ausprägungen
für Attribute (d.h. Merkmale). Die Struktur eines Objektes ergibt sich, indem man dem Objekt eine Reihe von Attribut  Wert  Paaren zuordnet. Mögliche Ausprägungen (Merkmalswerte oder kurz Werte) eines Attributs sind jeweils aus einem Wertebereich entnommen.
Beispiel: Sei Objekt1 das Buch "Objektorientierte Datenbanken ... " von Andreas Heuer.
Objekt
Attribut
Wert
ISBN
Autor
Titel
Verlag
3-83319-315-4
Andreas Heuer
Objektorientierte Datenbanken
Addison Wesley
Ein Objekttyp ist durch eine Menge von Attributen mit entsprechenden Wertebereichen charakterisiert.
Ein Relationenschema R umfasst die Objekttypbezeichnung sowie die Attribute und deren
Wertebereiche.
Eine Relation r(R) ist – mathematisch definiert – eine Teilmenge des kartesischen Produkts
über den Wertebereichen von R. Ein Element einer Relation heißt Tupel. Eigenschaften einer
Relation:




keine mehrfachen Tupel vorhanden
keine festgelegte Reihenfolge der Tupel in der Relation
keine Festlegung der Reihenfolge der Attribute
Attributwerte sind „atomar“ (sog. 1. Normalform)
H. Fritzsche, Wirtschaftsinformatik II
4
Attributwerte sind „atomar“, wenn sie einem Objekttyp angehören, der nicht wieder in Form
eines Relationenschemas beschrieben wird, also in diesem Sinne der Objektbeschreibung
nicht weiter zerlegbar ist.
Eine Basisrelation ist die in der Datenbank aktuell vorhandene Relation zu einem Relationenschema. Die Datenbank ist die Menge aller Basisrelationen. Das Datenbankschema ist die
Menge aller Relationenschemata einer Datenbank.
Relationen werden im Zusammenhang mit RDBS in Form von Tabellen dargestellt. In der
Datenbankterminologie gelten in diesem Sinne folgende Entsprechungen:




Relation – Tabelle
Attribut – Spalte
Tupel – Datensatz bzw. Zeile
Wertebereich – Domäne
Als Grad wird die Anzahl der Attribute einer Relation, d.h. der Spalten der Tabelle bezeichnet. Mit dem Begriff Kardinalität wird die Anzahl der Datensätze, d.h. der Zeilen bezeichnet.
2.2 Operationsteil
Verbreitete Beschreibungsmittel für Operationen sind die Relationenalgebra und die Normsprache SQL (Standard Query Language).
Relationenalgebra
Es wird ein Satz von Grundoperationen definiert:
Selektion:
σ
Projektion :
π
(natürlicher) Verbund:
‫׀<>׀‬
Mengenoperationen:
, ∩, \
Umbenennung:
β
Ergebnisse von Operationen sind jeweils wieder Relationen. Die Operatoren definieren eine
relationale Algebra zur Bearbeitung von Objekten.
Selektion (auch: Restriction)
Wählt Tupel (Zeilen) aus einer Relation (Tabelle) entsprechend einer Selektionsbedingung
aus. Selektionsbedingung kann sein:



Attribut – Konstanten – Vergleich
Attribut – Attribut – Vergleich
Verknüpfung von Selektionsbedingungen durch Operatoren and, or, not
Beispiele:
sumoffen <> 0 (r(Kunden))
ort = “Dortmund“ (r(Kunden))
Projektion
Wählt Attribute (Spalten) aus einer Relation (Tabelle) entsprechend einer Projektionsbedingung aus.
H. Fritzsche, Wirtschaftsinformatik II
5
Achtung: Durch Projektion können Tupel entstehen, die sich nicht mehr unterscheiden. Duplikate werden in der Ergebnisrelation eliminiert!
(natürlicher) Verbund (auch: Join)
Der natürliche Verbund verknüpft Relationen über allen gemeinsamen Attributen. Nur Tupel
mit gemeinsamen gleichen Attributwerten werden zu neuen Tupeln verbunden.
Mengenoperationen lassen sich auf Relationen anwenden, die das gleiche Relationenschema
besitzen.
Beispiel:
r1
A
1
1
2
B
1
2
0
C
1
2
2
B
1
2
0
C
1
2
2
D
1
1
0
r2
A
1
0
2
D
1
1
0
r3
C
1
0
2
2
D
1
1
1
2
E
0
1
0
1
r1 |><| r2
A
1
1
2
( r1 |><| r2 ) |><| r3
A
1
1
B
1
2
C
1
2
D
1
1
E
0
0
Durch Umbenennen können Relationenschemata für eine (spätere) Verknüpfung kompatibel
gemacht werden. Beispiel: Umbenennen der Attributbezeichnung Wohnort in Ort.
SQL
Die Normsprache SQL unterstützt unterschiedliche Arten von Operationen:




Definition von Relationenschemata
Erzeugung von Zugriffspfaden
Anfragen
Datenmanipulationen
Hier wird nur der Anfrage-Teil besprochen. Eine SQL-Anfrage besteht aus einem sog. SFWBlock:
SELECT …
Attributliste
H. Fritzsche, Wirtschaftsinformatik II
6
FROM …
WHERE …
beteiligte Relationen
komplexe Selektionsbedingung ;
Semantik:
1. Kart. Produkt der Relationen hinter FROM mit dem Relationsnamen als Präfix
2. Anwendung der Bedingungen der WHERE-Klausel auf das Ergebnis der FROM-Klausel
3. Projektion auf die Attribute der SELECT-Klausel
Beispiel:
Personen
Name
Meyer
Meyer
Schmitt
Schmitt
Vorname
Peter
Peter
Susanne
Petra
Geburtsdatum
10.05.1960
20.08.1966
01.01.1970
01.01.1970
Wohnort
Berlin
Dresden
Aue
Rostock
Pers_Hobbies
Name
Meyer
Meyer
Meyer
Schmitt
Schmitt
Vorname
Peter
Peter
Peter
Susanne
Petra
Geburtsdatum
10.05.1960
10.05.1960
20.08.1966
01.01.1970
01.01.1970
Hobby
Surfen
Klavierspiel
Fußball
Tanzen
Surfen
1)
SELECT
FROM
*
Personen,Pers_Hobbies ;
Liefert eine Relation mit 8 Spalten und 20 Zeilen. Der * steht für die Auswahl aller
Attribute. Ist keine WHERE-Klausel angegeben, wird jede Zeile der ersten Relation mit
jeder Zeile der zweiten Relation kombiniert.
2)
3)
SELECT
FROM
WHERE
Name, Vorname
Pers_Hobbies
Hobby=’Surfen’ ;
Name
Meyer
Schmitt
Vorname
Peter
Petra
SELECT
FROM
WHERE
AND
Y.Vorname, Y.Name
Pers_Hobbies As X, Pers_Hobbies As Y
X.Name='Schmitt'
X.Hobby=Y.Hobby ;
H. Fritzsche, Wirtschaftsinformatik II
7
Name
Meyer
Schmitt
Schmitt
Vorname
Peter
Petra
Susanne
Liefert zu allen Schmitts die Namen der Personen, die mit diesen mindestens ein
Hobby teilen. Durch Nachstellen einer Tupelvariablen findet ein Umbenennen statt.
Das ist notwendig, wenn eine Relation nach FROM mehrfach vorkommt.
3 MS ACCESS
3.1 Die Arbeitsoberfläche
Eine MS Access-Datenbank ist als Datei gespeichert. MS Access 2002 ist ein Programm zur
Ausführung von Datenbankoperationen, das DBMS. Nach dem Start des Programms MS
Access 2002 präsentiert diese Anwendung eine für MS Windows typische grafische
Benutzeroberfläche mit Titelleiste (darin: „Microsoft Access“), Menüleiste, Symbolleiste,
Arbeitsfläche und Statusleiste:
Es kann gewählt werden, ob eine neue Datenbank erstellt oder eine bereits existierende
Datenbank geöffnet werden soll.
H. Fritzsche, Wirtschaftsinformatik II
8
Beim Öffnen einer bereits bestehenden Datenbank wird entweder das AccessDatenbankfenster angezeigt oder ein vorher bereits erstelltes Startformular. In beiden Fällen
können anschließend Objekte der angezeigten Typen (Tabellen, Abfragen, Formulare etc.
erstellt, bearbeitet oder (bei Objekten der Typen Abfragen, Formulare und Berichte)
angewendet werden.
3.2 Eine neue Datenbank anlegen
Eine neue Datenbank kann mit dem DB-Assistenten erstellt oder „von Hand“ erzeugt
werden.
Soll eine neue Datenbank von Hand erstellt werden, sind im angezeigten Filedialog das
gewünschte Verzeichnis und der Dateiname anzugeben. Dateityp soll „Microsoft AccessDatenbanken“ sein ( Schaltfläche ERSTELLEN).
Beispiel: Anlegen einer Datenbank c:\temp\Handelsfirma. MS AccessDatenbankdateien haben die Extension .mdb. Es wird also eine Datei
Handelsfirma.mdb auf c:\temp angelegt.
Das Datenbankfenster wird jetzt automatisch geöffnet (falls es nicht bereits geöffnet war) und
in der Titelleiste erscheint der Datenbank-Name. Über das Datenbankfenster kann fortan mit
der Datenbank gearbeitet werden.
H. Fritzsche, Wirtschaftsinformatik II
9
3.3 Tabellen
Eine Tabelle kann



in der Entwurfsansicht
unter Verwendung des Assistenten
in der Datenblattansicht
erstellt werden:
Durch Doppelklick auf das entsprechende Symbol wird mit der Erstellung begonnen.
Alternative: TABELLEN → Doppelklick auf Symbol
H. Fritzsche, Wirtschaftsinformatik II
:
10
1. Erstellen einer Tabelle in der Entwurfsansicht:
In der Entwurfsansicht einer (nicht nur neuen) Tabelle können die Namen der Datenfelder
(d.h. der Attribute der Relation) und ihre jeweiligen Datentypen (als Felddatentyp bezeichnet)
festgelegt werden, d.h. das Relationenschema wird festgelegt. Zusätzlich kann eine max. 255
Zeichen lange erläuternde Erklärung als Beschreibung für jedes definierte Datenfeld
angegeben werden. Bei der späteren Dateneingabe erscheint die Beschreibung in der
Statusleiste.
Es existieren folgende Datentypen:
Datentyp
TEXT
MEMO
ZAHL
DATUM/UHRZEIT
Erklärung
für Zeichenketten aus Buchstaben, Ziffern und
Sonderzeichen
für längere Texte
für Ganzzahl-, Gleitkomma- und
Dezimalzahltypen
Jedes gültige Datum zwischen 1.1.100 und
H. Fritzsche, Wirtschaftsinformatik II
Größe
max. 255 Zeichen
max. 65535 Zeichen
je nach Typ 1,2,4
oder 8 Byte
8 Byte
11
WÄHRUNG
AUTOWERT
JA/NEIN
OLE-OBJEKT
HYPERLINK
NACHSCHLAGLISTE
31.12.9999 ist erlaubt.
Zahlenwerte, diese werden automatisch um ein
Währungssymbol ergänzt, mit zwei
Nachkommastellen dargestellt und bündig
angeordnet
Zahlenwert, dient der fortlaufenden Vergabe
von Nummern. Der Wert wird für jeden neu
eingefügten Datensatz automatisch um 1 erhöht.
Das Feld ist für die Dateneingabe gesperrt. Der
Datentyp AUTOWERT darf nur einmal pro
Tabelle vergeben werden.
Es gibt genau zwei Werte, die die möglichen
Ergebnisse einer Entscheidungsfrage
repräsentieren (sog. Boolesches Feld)
Ein OLE-Objekt wurde in einem anderen
Programm erstellt (z.B. Excel) und kann eine
Grafik, eine Excel-Tabelle oder ähnliches sein.
OLE steht für Object linking and embedding.
Werte sind Hyperlinks, beim Klicken darauf
werden die verlinkten Objekte geöffnet und
angezeigt.
Feldwerte können aus einer Liste ausgewählt
werden. Der Liste kann z.B. eine andere Tabelle
zugrunde liegen.
8 Byte
4 Byte
1 Bit
bis zu 1 GByte
max. 64000 Zeichen
4 Byte
Im unteren Teil der Entwurfsansicht können - abhängig vom jeweiligen Datentyp zusätzliche Feldeigenschaften spezifiziert werden.
 „Eingabe erforderlich“: Bestimmt, ob beim späteren Ausfüllen eines Datensatzes eine
Eingabe in das Feld erforderlich ist oder nicht.
 Mit „Eingabeformat“ kann die Dateneingabe in die Tabelle qualifiziert werden. Für die
Datentypen TEXT, ZAHL, WÄHRUNG und DATUM/UHRZEIT können Muster definiert
werden. Die Definition eines Eingabeformates ist eine Zeichenfolge, die Literalzeichen
und Platzhalterzeichen enthalten kann. Literalzeichen werden bei der Dateneingabe
automatisch eingefügt. Platzhalterzeichen schränken die möglichen Eingaben ein:
0
9
#
L
?
A
a
&
C
. , : ; -/
\
<
>
eine Dezimalziffer (0 – 9), Eingabe zwingend
eine Dezimalziffer (0 – 9) oder ein Leerzeichen, Eingabe optional
eine Dezimalziffer, ein Leerzeichen oder Plus- bzw. Minuszeichen
ein Buchstabe (A – Z), Eingabe zwingend
ein Buchstabe (A – Z), Eingabe optional
ein Buchstabe oder eine Ziffer, Eingabe zwingend
ein Buchstabe oder eine Ziffer, Eingabe optional
ein beliebiges Zeichen (einschließlich Leerzeichen), Eingabe zwingend
ein beliebiges Zeichen (einschließlich Leerzeichen), Eingabe optional
Dezimal-, Tausender-, Datums und Zeittrennzeichen
(tatsächliche Darstellungen sind länderspezifisch!)
das nachfolgende Zeichen wird als Konstante ausgegeben
nachfolgende Zeichen werden in Kleinbuchstaben umgewandelt
nachfolgende Zeichen werden in Großbuchstaben umgewandelt
H. Fritzsche, Wirtschaftsinformatik II
12
 „Gültigkeitsregel“: Ermöglicht die Festlegung bestimmter Gültigkeitsprüfungen während
der Eingabe von Daten in eine Tabelle durch den Nutzer. Nutzerdefinierte Regeln
ergänzen die standardmäßig vorhandenen Gültigkeitsregeln.
Standardmäßig wird z.B. überprüft, ob eine Datumsangabe ein gültiges Datum darstellt.
Die Angabe 22.14.2005 etwa ist kein gültiges Datum.
Beispiele für nutzerdefinierte Regeln:
o wie "#*"
ein TEXT muss mit einem Zifferzeichen beginnen und kann nachfolgend beliebig
viele beliebige Zeichen enthalten.
o < #20.10.2004#
Ein DATUM muss vor dem 20.10.2004 liegen.
o < Datum()
Ein Datum muss vor dem aktuellen Tagesdatum liegen.

Über die Registerkarte NACHSCHLAGEN kann für die Datentypen Text, Zahl und Ja/Nein
als Unterstützung für die Dateneingabe festgelegt werden, dass ein Wert aus einer Menge
in einem Menü angezeigter Werte ausgewählt werden kann (STEUERELEMENT ANZEIGEN :
Listenfeld). Die angezeigten Werte entstammen dabei z.B. einer „Werteliste“. Bei
DATENSATZHERKUNFT können in diesem Fall durch Semikolon getrennte Bezeichnungen
angegeben werden.
Beim Tabellenentwurf kann ein Datenfeld als Primärschlüsselfeld festgelegt werden. Dadurch
bekommt das Datenfeld eine besondere Bedeutung. Die Werte dieses Datenfeldes sollen dazu
dienen, jeden Datensatz der Tabelle eindeutig zu identifizieren. Es können also nicht zwei
gleiche Werte innerhalb einer Tabelle vergeben werden.
3.4 Abfragen
MS Access bietet verschiedene Abfragearten: Auswahlabfragen, Parameterabfragen,
Aktionsabfragen, Kreuztabellenabfragen, Pivot-Tabellenabfragen und SQL-Abfragen.
Zum Erstellen einer Auswahlabfrage ist im Datenbankfenster das Objekt Abfragen zu
wählen. Beim „manuellen“ Erstellen einer Abfrage in der Entwurfsansicht ist zunächst die
Tabelle zu wählen, auf die sich die Abfrage beziehen soll:
H. Fritzsche, Wirtschaftsinformatik II
13
Die gewünschte Tabelle HINZUFÜGEN und das Fenster SCHLIEßEN. Auf dem Bildschirm
erscheint das Abfragefenster in der Entwurfsansicht:
Im geöffneten Abfragefenster sind die Felder zu bestimmen, die in die Abfrage aufgenommen
werden sollen (Projektion). Diese werden aus der Feldliste im oberen Teil des
Abfragefensters ausgewählt (z.B. Anklicken und nach unten ziehen oder Doppelklick in
Titelleiste und nach unten ziehen).
Zur Ausführung der Anfrage ist im Access – Anwendungsfenster auf das Symbol ! zu
klicken (Alternative: ABFRAGE → AUSFÜHREN).
H. Fritzsche, Wirtschaftsinformatik II
14
Das Speichern einer Abfrage erfolgt über DATEI → SPEICHERN. Im folgenden Dialogfenster
kann ein Name für die Abfrage festgelegt werden.
Für eine Abfrage können Kriterien definiert werden. In verschiedene Felder können eine oder
mehrere Bedingungen eingetragen werden.
Die Bedingungen einer Zeile werden mittels and verknüpft. In unterschiedlichen Zeilen
eingetragene Bedingungen werden mittels or verknüpft.
Für Abfragen wird auch die ANSICHT → SQL-ANSICHT angeboten!
Kriterien mit Objektnamen, Datum und Text
Für Bezugnamen auf Objekte(z.B. Feldnamen) und konstante Datums- bzw. Textangaben
muss folgende Syntax benutzt werden:
Zugriff auf
Objekte
Syntax
[Name]
Datum
Text (Zeichenkette)
#Datum#
"Text"
Bedeutung
Name von Feldern,
Berichten oder Formularen
ein konstantes Datum
Zeichenketten-Konstante
Beispiel
[EINPREIS]*1,16
#12.02.2003#
MS Access
Besonders zu beachten ist die Zeichenkette, die kein Zeichen enthält. Sie wird als leere
Zeichenkette bezeichnet und durch "" repräsentiert. Soll eine Zeichenkette das Zeichen
"selbst enthalten, ist dieses innerhalb der Zeichenkette doppelt anzugeben. Beispiel: Hotel
"Dresden" wird durch "Hotel ""Dresden""" repräsentiert.
Der Vergleichsoperator WIE (LIKE)
Mit Hilfe dieses Operators können Textfelder (Strings) auf bestimmte enthaltene
Zeichenkombinationen geprüft werden. Im Auswahlkriterium können Platzhalterzeichen
verwendet werden:
Zeichen
Bedeutung
Beispiel
*
Beliebige Anzahl beliebiger
Zeichen
WIE K*
?
Ein beliebiges Zeichen
WIE ???M*
#
Eine beliebige Ziffer
WIE #*
MS Access bietet auch die Möglichkeit, Parameterabfragen zu erstellen. In Bedingungen
auftretende Konstanten werden dabei erst zur Ausführungszeit der Abfrage festgelegt. Es wird
ein Dialogfenster eingeblendet, in das ein Wert (oder ein Kriterium) einzugeben ist.
Beispiel: Auswahl einer Zeile der Kundentabelle anhand des Kundennamens
Im Entwurf ist als Kriterium der später im Dialogfenster anzuzeigende Text in eckige
Klammern einzuschließen.
H. Fritzsche, Wirtschaftsinformatik II
15
Anwendung: DK auf das Symbol „ParameterabfrageKunden“ öffnet das kleine Fenster. Nach
Eingabe des Kundennamens erfolgt die Selektion.
H. Fritzsche, Wirtschaftsinformatik II
16
Mit Hilfe von Aktionsabfragen können durch eine Operation Änderungen an Tabellen bzw.
Datensätzen vorgenommen werden.
o Tabellenerstellungsabfrage: Aus den Ergebnissen einer Abfrage kann eine neue
Tabelle erstellt werden.
o Aktualisierungsabfrage: An einer Gruppe von Datensätzen können Änderungen
durchgeführt werden.
o Anfügeabfrage: Aus einer Tabelle können Datensätze in eine andere Tabelle
eingefügt werden.
o Löschabfrage: Aus einer abgefragten Tabelle können Datensätze gelöscht werden.
3.5 Formulare
Die Datensätze einer Tabelle können in der Datenblattansicht der Tabelle gleichzeitig
dargestellt und bearbeitet werden. Es gibt allerdings nur sehr eingeschränkte Möglichkeiten
zur Gestaltung des Datenblattes. Formulare bieten komfortable und individuelle
Gestaltungsmöglichkeiten.
Zur Erstellung von Formularen bietet MS Access folgende Mittel an:

AutoFormular zur automatischen Erstellung von Formularen,

Formular-Assistent,

Diagramm-Assistent,

Pivot-Tabellen-Assistent,

Entwurfsansicht.
Bei der Erstellung von Formularen kann zwischen folgenden Layouts gewählt werden:

Einspaltige Darstellung,

Tabellarische Darstellung,

Datenblattdarstellung,

Block-Darstellung
H. Fritzsche, Wirtschaftsinformatik II
17

Hauptformular mit Unterformular
Erstellen von Formularen mittels AutoFormular
AutoFormular dient der automatischen Erstellung eines Formulars zu ausgewählten
Datenfeldern einer Tabelle oder Abfrage. Als Layout-Möglichkeiten stehen zur Verfügung:
Einspaltige Darstellung, Tabellarische Darstellung und die Datenblattansicht.
MS Access öffnet das Formular in der Formularansicht. In dieser Darstellung können Daten
gesucht, bearbeitet oder eingegeben werden. Änderungen werden auch in der
zugrundeliegenden Tabelle gespeichert.
Beim tabellarischen Autoformular hat man keine Möglichkeit, die Spaltenbreite zu verändern:
Formular-Assistent
Schritt 1: Tabelle und Datenfelder auswählen
H. Fritzsche, Wirtschaftsinformatik II
18
Schritt 2: Layout wählen. Es kann zwischen
einspaltiger Darstellung
tabellarischer Darstellung
Datenblattansicht
Blockdarstellung
gewählt werden.
Schritt 3: Format wählen (z.B. Standard)
Schritt 4: Formularnamen wählen.
Formulare in der Entwurfsansicht bearbeiten
Die wesentlichen Elemente der Entwurfsansicht sind die Formularbereiche und die
Steuerelemente.
In der Entwurfsansicht kann ein Formular individuell gestaltet werden, das meist auf einem
bereits bestehenden Formular basiert.
Zum Ändern der Datenquelle eines in der Entwurfsansicht geöffneten Formulars:
Kontextmenü Formular → EIGENSCHAFTEN → DATENSATZHERKUNFT →
Menü-Auswahl
Das Erstellen eines Hauptformulars mit Unterformular setzt voraus, dass
H. Fritzsche, Wirtschaftsinformatik II
19



sowohl für das Hauptformular als auch für das Unterformular eine Tabelle ausgewählt
wurde
in der Tabelle für das Hauptformular ein Primärschlüssel auf das die Tabellen
verbindende Attribut festgelegt wurde und
das Hauptformular über eine 1:n-Beziehung mit dem Unterformular verbunden wurde.
3.6 Beziehungen zwischen Tabellen
Die konzeptuellen Grundlagen für das Verknüpfen von Tabellen werden im Kapitel
„Datenmodellierung“ beschrieben.
Zur Definition von Beziehungen stellt MS Access ein Beziehungsfenster bereit.
Es wird unterschieden zwischen


Standardbeziehungen
Beziehungen mit referentieller Integrität
Anzeigen des Beziehungsfensters: MS Access – Symbolleiste 
.
Falls noch keine Beziehungen
zwischen den in der Datenbank
vorhandenen Tabellen bestehen,
öffnet MS Access automatisch
ein Dialogfenster:
Es können Tabellen und/oder
Abfragen zum
Beziehungsfenster hinzugefügt
werden.
Das Dialogfenster wird
alternativ durch
geöffnet.
Beispiel für die Handelsfirma:
H. Fritzsche, Wirtschaftsinformatik II
20
Beziehungen erzeugen: Markieren des Namens des Datenfeldes der Haupttabelle (Master),
auf dem die Beziehung basieren soll. Ziehen des markierten Datenfeldes mit der Maus auf das
Datenfeld der Detailtabelle, mit dem die Verknüpfung erfolgen soll.
Die Option „Mit referentieller Integrität“ wird verwendet, wenn


das Verknüpfungsfeld der Mastertabelle als Primärschlüssel dient,
die Verknüpfungsfelder den gleichen Datentyp aufweisen.
H. Fritzsche, Wirtschaftsinformatik II
21
3.7 Berichte
In Berichten werden Daten aus Tabellen, Abfragen oder Formularen für den Druck aufbereitet
und dargestellt. Zum Beispiel können in einem Bericht Diagramme erzeugt und dargestellt
werden. Es wird wie bei Tabellen, Abfragen und Formularen unterschieden:

Entwurf
Dabei wird ein Objekt vom Typ Bericht erstellt, in dem Bezüge zu Datenquellen und
Festlegungen zur Gestaltung enthalten sind.

Präsentation
Dabei wird das im Entwurf erstellte Objekt „ausgeführt“, d.h. es wird ein aktueller
Bericht erzeugt.
Ein Objekt vom Typ Bericht ist mit den im Entwurf festgelegten Datenquellen verbunden, so
dass zum Zeitpunkt der Präsentation eines Berichts jeweils auf die aktuellen Daten Bezug
genommen wird.
MS Access bietet verschiedene Assistenten zur Erstellung von Berichten an.
Struktur von Berichten:







Berichtskopf
Berichtsfuß
Seitenkopf
Seitenfuß
Gruppenkopf
Gruppenfuß
Detailbereich
(auf der 1. Seite des Berichts)
(auf der letzten Seite des Berichts)
(auf jeder Berichtsseite)
(auf jeder Berichtsseite)
(nur für Gruppierungsbericht)
(nur für Gruppierungsbericht)
In einem gruppierten Bericht werden die Daten nach bestimmten Datenfeldern gruppiert
dargestellt. Zum Beispiel können Artikel nach der ersten Stelle der Artikelnummer (der
Artikelgruppe) gruppiert dargestellt werden.
Einem Bericht können (wie Formularen) Steuerelemente hinzugefügt werden.
H. Fritzsche, Wirtschaftsinformatik II
22
3.8 Makros
Makros sind Befehlsfolgen, die unter einem Namen in der Datenbank abgespeichert und
ausgeführt werden können. Makros eignen sich besonders zur Gestaltung von
Menüsteuerungen.
Beispiel: Erzeugen eines Formulars FormMakroTest, das eine Befehlsschaltfläche mit der
Beschriftung Formularaufruf enthält. Durch ein mit der Schaltfläche verknüpftes Makro
MakTestFormular soll bewirkt werden, dass ein bereits existierendes Formular
Form1Artikel geöffnet und das Formular FormMakroTest geschlossen wird.
Form1Artikel:
FormMakroTest:
Lösung:
1. Objekt Makros → NEU
2. Einfügen Aktionen: - Öffnen Formular
H. Fritzsche, Wirtschaftsinformatik II
Formularname: Form1Artikel
23
- Schließen
Objekttyp:
Formular
Objektname: FormMakroTest
3. Speichern des Makros unter dem Namen MakTestFormular
4. Zuordnen des Makros zur Schaltfläche Befehl0 im Formular FormMakroTest,
Ereignis: Beim Klicken
5. Testen der Schaltfläche im Formular FormMakroTest
Die folgenden Abbildungen verdeutlichen die Schritte 2 und 4:
Die Aktionen werden in der Reihenfolge ausgeführt, in der sie untereinander in der Spalte
AKTION aufgeführt sind.
4 PROGRAMMENTWICKLUNG MIT VBA
4.1 Grundlagen
H. Fritzsche, Wirtschaftsinformatik II
24
VBA (Visual Basic for Application) ist die Programmiersprache der Office-Anwendungen
Word, Access und Excel. VBA-Programme werden in der Entwicklungsumgebung
entwickelt.
In einem MS Access Projekt kann VBA-Code an folgenden Stellen gespeichert sein:
 in Formularen bzw. Berichten,
 in übergreifenden Moduln,
 in gekapselten Klassen.
Vor der Verwendung eines Programms wird es compiliert. Zur Ausführung von Programmen:
PROGRAMMEDITOR → ANSICHT → DIREKTFENSTER.
Module enthalten Prozeduren, sie sind selbst nicht ausführbar.
Modultypen:
- Standardmodul
- Klassenmodul
Ein Standardmodul ist für die Gesamte Datenbank gültig und sollte deshalb Prozeduren und
Funktionen für häufig an verschiedenen Stellen benötigte Aufgaben enthalten.
Ein Klassenmodul ist mit einem Objekt verbunden. Jedem Formular oder Bericht ist genau
ein Klassenmodul zugeordnet. Access erstellt Formular- und Berichtsmodule automatisch,
wenn eine Ereignisprozedur für ein Formular oder einen Bericht erstellt wird.
Prozedurtypen:
H. Fritzsche, Wirtschaftsinformatik II
25
Prozedur
FunctionProzedur
SubProzedur
Allgemeine
Prozedur
EreignisProzedur
Aufrufe von Prozeduren des Typs „Function-Prozedur“ (Funktionsprozedur genannt, oder
kurz: Funktion) liefern einen Wert zurück. Sub-Prozeduren (kurz: Prozeduren) liefern keinen
Wert zurück.
Konstanten bezeichnen Werte, die während der Abarbeitung eines Programms unveränderlich
sind. Die Werte werden
a. in einer externen Darstellung angegeben (sog. Literale) . Mit der Bezeichnung der
Konstanten wird ihr Datentyp festgelegt.
Beispiele: 4, „Dresden“, #12.04.2005#
b. durch eine Konstantendeklaration festgelegt, wobei die Konstante einen Namen erhält.
Variablen bezeichnen Speicherplätze, die während der Abarbeitung eines Programms
nacheinander verschiedene Werte eines bestimmten Datentyps aufnehmen können.
Beispiel: summe ist der Name einer Variablen.
Die Zuordnung eines Datentyps zu einer Variablen erfolgt explizit durch eine
Variablendeklaration oder implizit.
Durch die Anweisung option explicite im Kopf eines Moduls kann verlangt werden,
dass für alle im Modul verwendeten Variablen eine Variablendeklaration erfolgen muss.
Syntax einer Variablendeklaration:
Dim variable As datentypname [, variable As datentypname] …
Dim ist dabei einer von vier möglichen Bezeichnern, die die Sichtbarkeit und
Lebensdauer der deklarierten Variablen bestimmen.
Beispiel:
Dim menge As Integer, preis As Currency
Regeln für Sichtbarkeit (Scope ) und Lebensdauer (Extent) von Variablen
Bezeichner
Public
Variablentyp
Globale Variable
H. Fritzsche, Wirtschaftsinformatik II
Sichtbarkeitsbereich Lebensdauer
jede Prozedur der
gesamte Laufzeit der
gesamten
Datenbankanwendung
Datenbankanwendung
26
Private
Global für Modul
jede Prozedur des
gesamte Laufzeit der
Moduls, in dem die
Datenbankanwendung
Variable deklariert ist
Dim
Lokale Variable
nur die Prozedur, in
der die Variable
deklariert ist
nur während der
Ausführungszeit der
Prozedur
Static
Lokale Variable
nur die Prozedur, in
der die Variable
deklariert ist
gesamte Laufzeit der
Datenbankanwendung
Es ist zu beachten, dass Deklarationen mittels Public oder Private am Anfang des
Moduls im Deklarationsteil platziert werden müssen (nicht innerhalb einer Prozedur)!
Mittels Wertzuweisungen können Variablen Werte zugewiesen werden.
Beispiel:
summe = 2+3
Der Variablen mit dem Namen links vom Zuweisungssymbol (=) wird der
Wert zugewiesen, der sich bei der Berechnung des rechts vom
Zuweisungssymbol stehenden Ausdrucks ergibt.
Beispiel:
Prozedur, die einen Zähler realisiert, der bei jedem Prozeduraufruf den Wert einer
Zustandsvariablen z um 1 erhöht. Der Wert wird in einer „Message Box“
ausgegeben.
Prozedurdeklaration:
Public Sub Zähler()
Static z As Integer
z = z + 1
MsgBox "Zustand:" & z, vbInformation
End Sub
Prozeduraufruf:
Zähler
Prozedurausführung:
...
H. Fritzsche, Wirtschaftsinformatik II
27
Das im Beispiel verwendete Meldungsfenster (MsgBox) kann sowohl als Funktion als auch
als Sub-Prozedur angewendet werden.
Syntax:
MsgBox(<anzeigetext>, <schaltflächen>, <titel>)
MsgBox <anzeigetext>, <schaltflächen>,<titel>
Verwendung als Funktion
Verwendung als Prozedur
Bei Anwendung als Funktion liefert der MsgBox-Aufruf den Wert der betätigten Schaltfläche.
Folgende Werte werden von den in Meldungsfenstern dargestellten Schaltflächen geliefert:
Wert
1
2
3
4
5
6
7
Konstante
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
Gewählte Schaltfläche
OK
ABBRECHEN
ABBRECHEN
WIEDERHOLEN
IGNORIEREN
JA
NEIN
Eingabedialoge
Public Function Mehrwertsteuer()
Dim wert
wert = InputBox("Bitte Betrag eingeben:", _
"Berechnung der Mehrwertsteuer")
wert = FormatCurrency((Nz(wert, 0) * 0.16), 2)
MsgBox "Ergebnis:" & wert
End Function
H. Fritzsche, Wirtschaftsinformatik II
28
Operatoren
In den bisherigen Beispielen wurden bereits Operatoren in Ausdrücken verwendet.
Grundsätzlich werden Klassen von Operatoren unterschieden:
a. Zeichenkettenoperatoren
Verkettungsoperator: &
Bsp.: "Datenbank" & "fenster" →
"Datenbankfenster"
b. Arithmetische Operatoren
+,-,*, /
\
ganzzahlige Division – Quotient
MOD
ganzzahlige Division – Rest (modulo – Operator)
^
Potenz
c. Vergleichsoperatoren
=,<>,>,<,>=,<=,Like
d. Logische Operatoren
Not, And, Or, Xor
4.2 Steuerstrukturen
Ein Programm besteht aus einer (zeilenweise notierten) Folge von Anweisungen, die der
Reihe nach ausgeführt werden. Eine solche Folge nennt man Anweisungssequenz.
Als Alternative wird eine Programmkonstruktion bezeichnet, die es erlaubt,
-
eine Anweisungsfolge in Abhängigkeit vom Ergebnis der Auswertung einer
Bedingung auszuführen oder nicht auszuführen, oder
-
zwei unterschiedliche Anweisungsfolgen je nach Ergebnis der Auswertung einer
Bedingung (True oder False ) auszuführen.
Syntax:
If <bedingung> then
<anweisungsfolge>
End If
oder
If <bedingung> then
<anweisungsfolge1>
Else
<anweisungsfolge2>
End If
Beispiel:
H. Fritzsche, Wirtschaftsinformatik II
29
Public Sub Rabatt()
Dim anzahl As Integer, ausgabe As String
Dim einzelpreis As Double, gesamtpreis As Double
anzahl = InputBox("Wieviele Teile bestellt: ")
einzelpreis = 10
gesamtpreis = anzahl * einzelpreis
If gesamtpreis >= 100 Then
ausgabe = "rabatt möglich"
Else
ausgabe = "kein Rabatt möglich!"
End If
MsgBox ausgabe
End Sub
Beispiel für eine Fallauswahl:
Public Sub Noten()
Dim note As Integer, text As String
note = InputBox("Bitte Note eingeben:","Noteneingabe")
Select Case note
Case 1
text = "Note: sehr gut"
Case 2
text = "Note: gut"
Case 3
text = "Note: befriedigend"
Case 4
text = "Note: genügend"
Case 5
text = "Note: ungenügend"
Case Else
text = "keine gültige Note!"
End Select
MsgBox text, vbInformation, "Beispiel Noten"
End Sub
Als Iteration wird eine Programmkonstruktion bezeichnet, die es ermöglicht, eine
Anweisungsfolge wiederholt auszuführen. Die Anzahl der Wiederholungen kann durch einen
Zähler gesteuert werden oder vom Ergebnis der Auswertung einer Bedingung in jedem
Schleifendurchlauf abhängen.
Zählergesteuerte Iteration:
Syntax:
H. Fritzsche, Wirtschaftsinformatik II
30
For <zähler> = <startwert> To <endwert> [Step <schrittweite>]
<anweisungsfolge>
Next
Semantik:
Für <zähler> ist der Name einer Variablen einzusetzen. <startwert>, <endwert> und
<schrittweite> stehen für Ausdrücke, deren Auswertung jeweils eine ganze Zahl liefert.
Die <anweisungsfolge> wird wiederholt ausgeführt. Die Anzahl der Wiederholungen
ergibt sich aus <endwert> - <startwert>, falls keine <schrittweite> angegeben wurde, d.h.
die <schrittweite> ist in diesem Fall gleich 1. Die <anweisungsfolge> wird das erste Mal
mit dem <startwert> als Wert für <zähler> ausgeführt, anschließend wird der <zähler>
um die <schrittweite> erhöht bzw. erniedrigt und geprüft, ob der <endwert> über- bzw.
unterschritten wurde. Ist das nicht der Fall, wird die <anweisungsfolge> erneut ausgeführt
usw.
Bedingungsgesteuerte Iteration:

„anfangsgesteuert“
Syntax:
Do While <bedingung>
<anweisungsfolge>
Loop
Semantik:
Zuerst wird <bedingung> ausgewertet. Liefert die Auswertung des als <bedingung>
formulierten Ausdrucks True, wird anschließend die <anweisungsfolge> ausgeführt und
es wird mit der erneuten Auswertung der <bedingung> fortgesetzt. Die Iteration wird
beendet, wenn die Auswertung der <bedingung> erstmals den Wert False liefert. Die
Abarbeitung wird in diesem Fall mit der auf Loop logisch folgenden Anweisung
fortgesetzt.

“endegesteuert”
Syntax:
Do
<anweisungsfolge>
Loop Until <bedingung>
Semantik:
Zuerst wird die <anweisungsfolge> ausgeführt. Anschließend wird <bedingung>
ausgewertet. Es gibt zwei Möglichkeiten:
1. Liefert die Auswertung des als <bedingung> formulierten Ausdrucks True, wird die
Iteration beendet. Die Abarbeitung wird in diesem Fall mit der auf Loop logisch
folgenden Anweisung fortgesetzt.
2. Liefert die Auswertung des als <bedingung> formulierten Ausdrucks False, wird
anschließend die <anweisungsfolge> erneut ausgeführt und im Anschluss daran wird
wiederum die <bedingung> ausgewertet usw.
H. Fritzsche, Wirtschaftsinformatik II
31
Beispiel:
Berechnung des größten gemeinsamen Teilers zweier natürlicher Zahlen p und
q , mit p > 0 und q > 0.
Public Function ggt(p as Long, q as Long)
Dim h As Long, r As Long
If q > p Then
h = p
p = q
q = h
End If
r = p Mod q
Do While r <> 0
p = q
q = r
r = p Mod q
Loop
ggt = q
End Function
Es stehen in VBA weitere Arten von Anweisungen zur Steuerung des Kontrollflusses zur
Verfügung.

Sprunganweisungen mit GoTo
Syntax:
GoTo
<sprungziel>
Das Sprungziel ist ein Name mit maximal 200 Zeichen, gefolgt von einem Doppelpunkt.
Semantik:
Fortsetzung der Verarbeitung an der mit <sprungziel> markierten Stelle.

Schleifen-/Programmabbruch
Exit Do
Verlassen einer bedingungsgesteuerten Schleife (Iteration).
Exit For
Verlassen einer zählergesteuerten Schleife (Iteration).
Exit Function
Verlassen einer Function - Prozedur.
Exit Sub
Verlassen einer Sub - Prozedur.
Exit- und GoTo- Anweisungen führen zu unübersichtlichen Programmstrukturen und
sollten deshalb sehr sparsam verwendet werden.
H. Fritzsche, Wirtschaftsinformatik II
32
Andererseits kann mittels Exit der Programmcode zum Teil wesentlich verkürzt werden.
4.3 Objekte in Access
Access-Elemente – wie Tabellen, Formulare, Berichte, Steuerelemente usw. – sind Objekte.
Von einem VBA-Programm kann auf Objekte zugegriffen werden.
Jedes Objekt besitzt individuelle Eigenschaften, d.h. Ausprägungen von Merkmalen.
Auf jedes Objekt können Operationen angewendet werden. Solche Operationen
werden als Methoden bezeichnet.
Bestimmte Access-Objekte haben definierte Namen und können über diese Namen
angesprochen werden. Man spricht: „... können referenziert werden“. Wichtige Objekte zeigt
die folgende Übersicht:
Objektname
Application
Controls
Debug
DoCmd
Forms
Reports
Module
Bedeutung
Die MS_Access - Anwendung
Auflistung aller Steuerelemente eines
Formulars oder Berichts
Direktfenster
Interpreter für Aktionen (Makrointerpreter)
Auflistung geöffneter Formulare
Auflistung geöffneter Berichte
Formular- oder Berichtsmodul
Das Objekt Application wird von Access beim Öffnen einer Datenbank erzeugt.
Zwischen den Objekten ist eine Hierarchiebeziehung „enthält“ definiert: Application
enthält Formulare (Forms), Berichte (Reports), das Direktfenster (Debug), den
Makrointerpreter (DoCmd) usw.
Forms repräsentiert eine Auflistung (Collection) enthaltener Elemente, also alle definierten
Formulare. Jedes Formular enthält das Objekt Controls. Das Objekt Controls
repräsentiert eine Auflistung (Collection) enthaltener Steuerelemente.
Reports repräsentiert eine Auflistung (Collection) enthaltener Elemente, also alle
definierten Berichte. Jeder Bericht enthält das Objekt Controls. Das Objekt Controls
repräsentiert eine Auflistung (Collection) enthaltener Steuerelemente.
Weitere Objektnamen vergibt Access automatisch beim Erzeugen von Steuerelementen in
Formularen und Berichten.
Falls eine hierarchische Folge von Objekten vorliegt, werden die einzelnen Objekte
nacheinander und durch Punkt (.) getrennt notiert.
Mit Ausrufezeichen (!) schließt man den Namen eines Objekts (Formulars oder Berichts) an
ein Auflistungs-Objekt an, wenn man ein bestimmtes Objekt der Auflistung referenzieren
möchte.
H. Fritzsche, Wirtschaftsinformatik II
33
<objektreferenz> steht nachfolgend für den Namen eines Objekts oder für einen Ausdruck,
der das Objekt in der Objekthierarchie eindeutig bestimmt, d.h. für eine Auflistung von
Objektnamen, die jeweils durch . oder ! getrennt sind.
Syntax zum Zugriff auf Objekteigenschaften:
.
<objektreferenz> <merkmalsname>
Diese Notation ist wie ein Variablenname zu verwenden:

auf der rechten Seite einer Wertzuweisung repräsentiert sie einen Zugriff auf den
Merkmalswert.

auf der linken Seite einer Wertzuweisung bedeutet sie, dass der bisherige
Merkmalswert durch das Ergebnis der Auswertung des rechts stehenden Ausdrucks
ersetzt wird.
Me ist ein bestimmtes Schlüsselwort in VBA. Es bezeichnet das jeweils aktuelle Objekt.
Innerhalb der Prozeduren eines Formularmoduls kann mittels des Schlüsselwortes Me auf das
zum Modul gehörige (und gerade geöffnete) Formular Bezug genommen werden.
Beispiel:
Um einem Textfeld Text1, das sich auf einem geöffneten Formulars FormT1
befindet, die Zeichenkette "Dresden" zuzuweisen, können die folgenden
Notationen gleichwertig benutzt werden:
Application.Forms!FormT1.Text1 = "Dresden"
Me.Text1 = "Dresden"
Objektvariablen sind eine spezielle Art von Variablen, die Referenzen auf Objekte aufnehmen
können. Objektvariablen sind vom Nutzer wie andere Variablen auch zu deklarieren.
Syntax:
Dim <objektvariablenname> As <objektdatentyp>
4.4 Laufzeitfehler
Laufzeitfehler machen sich zur „Lauf-Zeit“ – also während der Ausführung – eines
Programms bemerkbar, sie führen zum ungewollten Abbruch der Abarbeitung. Laufzeitfehler
werden von Fehlern unterschieden, die zur „Compile-Zeit“ – also während der Übersetzung –
eines Programms feststellbar sind.
Ein Programm kann so gestaltet werden, dass im Falle des Auftretens von Laufzeitfehlern und
in Abhängigkeit des Typs dieser Fehler vom Nutzer zur Behandlung vorgesehene
Programmteile ausgeführt werden. In diesen Programmteilen können geeignete Maßnahmen
ergriffen und möglicherweise sogar Fehlerursachen behoben werden. In diesen letzteren
Fällen ist es sinnvoll, an der Stelle mit der Abarbeitung fortzusetzen, an der ein Abbruch
aufgrund eines Fehlers stattgefunden hat. Ist dies nicht möglich, kann das Programm
zumindest kontrolliert beendet werden.
Beispiel:
H. Fritzsche, Wirtschaftsinformatik II
34
Funktionsprozedur ggt zur Berechnung des größten gemeinsamen Teilers zweier Zahlen p
und q. Falls der kleinere der beiden Parameterwerte gleich 0 ist, gibt es keinen Abbruch
aufgrund einer Division durch 0. Als größter gemeinsamer Teiler wird in diesem Fall 0
geliefert.
Public Function ggt(p As Long, q As Long)
Dim h As Long, r As Long
On Error GoTo ggt_err
If q > p Then
h = p
p = q
q = h
End If
r = p Mod q
Do While r <> 0
p = q
q = r
r = p Mod q
Loop
ggt = q
Exit Function
ggt_Exit:
ggt = 0
Exit Function
ggt_err:
MsgBox Err.Number & vbCrLf & Err.Description, vbCritical,
"Error!"
Resume ggt_Exit
End Function
Erläuterung:
Die On Error – Anweisung schaltet die Fehlerüberwachung in der Prozedur ein, in der die
Anweisung steht. Im Falle des fehlerfreien Ablaufs wird durch Exit Function die
Funktion verlassen und die Fehlerüberwachung ausgeschaltet. Im Falle des Abbruchs der
Verarbeitung aufgrund einer Division durch 0 wird an der mit dem Sprungziel ggt_err
gekennzeichneten Anweisung fortgesetzt. Die von MS Access automatisch erzeugten Werte
für die Fehlernummer und den Text einer Fehlerbeschreibung werden in einer Messagebox
ausgegeben. Resume ggt_Exit bewirkt ein Wiederaufsetzen, d.h. eine Fortsetzung der
H. Fritzsche, Wirtschaftsinformatik II
35
Abarbeitung des Programms an der mit der Sprungmarke ggt_Exit gekennzeichneten
Anweisung, wobei die Fehlerüberwachung erneut wirksam wird.
4.5 Die ADO-Architektur
Mit Hilfe von ADO-Objekten können Client-Anwendungen komfortabel auf Daten eines
Datenbankservers zugreifen. Die ADO-Architektur wird hier speziell für den Umgang mit
Datenobjekten verwendet, also z.B. nicht für Strukturänderungen an der Datenbank. ADO
besteht aus mehreren Teilen, von denen hier nur die Bibliothek ADODB betrachtet wird, die
für Datenzugriffe benötigt wird.
ADODB enthält nur wenige Objekte in einer flachen Hierarchie. Hauptobjekte sind
Connection, Command und Recordset. Diese Objekte verfügen über weitere
Objekte, die Auflistungen von Einzelobjekten sind: Errors, Parameters und Fields.
Connection
Errors
Command
Recordset
Parameters
Fields
Mit dem Objekt Connection wird eine Datenverbindung zu einer Datenquelle hergestellt.
Das Objekt repräsentiert die geöffnete Verbindung. Über die Merkmale (Eigenschaften) des
Connection-Objekts werden Provider, Cursortyp, die Standarddatenbank und das Zeitlimit
für eine Verbindung festgelegt.
Das Command-Objekt kapselt Informationen zu einem Befehl (z.B. SQL-Anweisung).
Das Objekt Recordset ermöglicht einen Zugriff auf die einzelnen Datensätze einer
geöffneten Datenquelle. Praktisch wird oft Objektbezeichnern der Name ADODB
vorangestellt, um Verwechselungen zu vermeiden.
Mit der folgenden Deklaration wird eine Variable vom Typ Recordset im Programm
angelegt:
Dim rs As ADODB.Recordset
Erzeugen eines Recordset-Objektes und Initialisieren der Variablen mit dem erzeugten
Objekt:
Set rs = new ADODB.Recordset
Öffnen einer Datenquelle:
rs.Open <datenherkunft>,<verbindung>, <cursortyp>,<sperrtyp>
H. Fritzsche, Wirtschaftsinformatik II
36
<datenherkunft> ein Objektname (Tabellenname) oder eine SQL-Anweisung als
String . Beispiel: "Artikel"
<verbindung>
Name des aktuellen Connection-Objekts, über das zuvor eine
Verbindung zur Datenquelle aufgebaut worden ist. Beispiel:
CurrentProject.Connection liefert die gerade geöffnete
Verbindung zur aktuellen Datenbank.
<cursortyp>
Art der Öffnung des Recordset (davon ist abhängig, welche
Aktionen möglich sind).
<sperrtyp>
Art der Sperrmethode, die bei einem gemeinsamen Datenzugriff
anzuwenden ist.
Cursortypen:
adOpenForwardOnly
adOpenStatic
adOpenKeyset
adOpenDynamic
Einmaliges Durchlaufen der Datensätze;
nur Lesen, nicht Ändern; geringster
Ressourcenverbrauch;
Defaultwert
Statische Kopie der Daten verwendet; beliebige
Navigation möglich; geringer
Ressourcenverbrauch
Ändern, Einfügen und Löschen von Zeilen
möglich;
Nur die zum Zeitpunkt des Öffnens vorhandenen
Datensätze werden verwendet.
Ändern, Einfügen und Löschen von Zeilen
möglich;
Auch Datensätze berücksichtigt, die nach dem
Öffnen durch andere Benutzer eingefügt wurden;
Hoher Ressourcenverbrauch
Sperrtypen:
adLockReadOnly
adLockPessimistic
adLockOptimistic
adLockBatchOptimistic
Es wird ein Recordset erzeugt, in dem nur
gelesen werden kann
Pessimistische Sperrmethode: Datensatz wird
gesperrt, sobald mit dem Schreiben begonnen
wird. Es bleibt solange gesperrt, bis die
Änderung abgeschlossen ist.
Optimistische Sperrmethode: Datensatz wird erst
gesperrt, wenn Update erfolgt. Paralleles
Editieren ist möglich. Wer zuerst speichert,
dessen Änderung wird in die Tabelle
übernommen.
Änderungen werden in einem Cache gespeichert
und später ausgeführt.
Positionieren des Datensatz- (DS-) Zeigers - navigieren innerhalb eines Recordsets:
H. Fritzsche, Wirtschaftsinformatik II
37
MoveFirst
MoveLast
MoveNext
MovePrevious
Move <zahl>
DS-Zeiger auf den ersten Datensatz positionieren.
DS-Zeiger auf den letzten Datensatz positionieren
DS-Zeiger auf den nächsten Datensatz
positionieren
DS-Zeiger auf den vorhergehenden Datensatz
positionieren
DS-Zeiger um <zahl> Datensätze weitersetzen.
Ist <zahl> negativ, wird der DS-Zeiger um
<zahl> Datensätze zurückgesetzt.
Das Positionieren des Datensatzzeigers auf einen nicht vorhandenen Datensatz löst keinen
Laufzeitfehler aus; erst die Bezugnahme auf ein Datenfeld bei einer ungültigen Position des
DS-Zeigers löst einen Laufzeitfehler aus. Ein Laufzeitfehler wird bei einer Bezugnahme auf
ein Datenfeld ausgelöst, wenn der DS-Zeiger vor dem ersten Datensatz (Position BOF –
Begin of File) oder hinter dem letzten Datensatz (EOF – End of File) positioniert ist.
Sind in einem Recordset keine Datensätze vorhanden, haben BOF und EOF den Wert True:
If rs.EOF And rs.BOF Then
Rem keine Datensätze vorhanden
End If
Die folgenden Methoden sind auf ein Recordset anwendbar.
 Suchen eines Datensatzes im Recordset:
Find <kriterium>,<auslassen>,<suchrichtung>,<start>
<kriterium>
ein Suchkriterium entsprechend der in der SQL-WHERE-Klausel
verwendeten Syntax .
<auslassen>
eine positive ganze Zahl. Entsprechend viele Datensätze werden von
der aktuellen Position des Datensatzzeigers an von der Suche
ausgeschlossen
<suchrichtung> adSearchForward | adSearchBackward
<start>
Startposition für die Suche
 Hinzufügen eines Datensatzes zum Recordset:
AddNew
Alle Felder des Datensatzes enthalten nach Ausführung der Methode Null—Werte. Nach
Zuweisung von Werten erfolgt mit Update die Speicherung des neuen Datensatzes.
 Löschen eines Datensatzes:
Delete
Löscht den Datensatz, auf dem der DS-Zeiger steht, verschiebt aber nicht den Datensatz.
Ein gelöschter DS steht nicht mehr zur Verfügung.
 Aktualisieren der Datenquelle (Tabelle):
Update
 Verwerfen einer Änderung:
H. Fritzsche, Wirtschaftsinformatik II
38
CancelUpdate
 Schließen der Verbindung mit der Datenquelle (Tabelle):
Close
Ein Recordset kann auch mit einer SQL-Anweisung geöffnet werden.
Achtung: Der SQL-Dialekt unter ADO 2.0 verwendet folgende Joker-Zeichen:
% anstelle von *
_ anstelle von ?
Beispiel:
Dim tabelle As Recordset
Dim sql As String
Dim nr As String
Set tabelle = new Recordset
nr=Forms!Formularx.text1
sql = "Select ARTNR,ARTBEZEICH,BESTAND From Artikel Where
ARTNR='" & nr & "'"
tabelle.Open
sql,CurrentProject.Connection,adOpenStatic,adLockReadOnly
Beispiel: Ermitteln, ob ein Recordset initialisiert ist. Falls nein, initialisieren und öffnen:
Es sei rs der Name eine Variablen
(1) Deklaration
Private rs
vor den Ereignisprozeduren des Formularmoduls. Der Typ ist Variant und die
Variable ist in allen Prozeduren des Moduls sichtbar.
(2) If VarType(rs) = vbEmpty then
Set rs = New Recordset
rs.Open …
End If
VarType liefert eine Zahl als Rückgabewert. Die Zahl kennzeichnet den Datentyp
der Variablen, deren Name als Parameter angegeben wurde. Empty ist ein Subtyp von
Variant, der Variant-Variablen automatisch nach der Deklaration zugeordnet wird,
und bevor der Variablen ein Wert zugewiesen wird. Der Datentyp Empty wird durch
die VBA-Konstante vbEmpty bezeichnet.
Beispiel: Mit Hilfe von Listenfeldern (als ungebundene Steuerelemente) ist es möglich, aus
einer festen Anzahl von (im Listenfeld angezeigten) Werten einen Wert zu selektieren und in
einer Ereignisprozedur auf diesen ausgewählten Wert Bezug zu nehmen.
Als Wert der Eigenschaft Herkunftstyp ist Werteliste beim Listenfeld einzutragen. Die
einzelnen Werte werden unter der Eigenschaft Datensatzherkunft eingetragen. Beispiel für die
Notation: "Otto";"Paul";"Karl".
H. Fritzsche, Wirtschaftsinformatik II
39
Mit Hilfe von Listenfeldern (als gebundene Steuerelemente) ist es möglich, aus den Werten
einer Tabellenspalte zu selektieren und in einer Ereignisprozedur auf diesen ausgewählten
Wert Bezug zu nehmen.
Bei eingeschaltetem Assistenten wird ein
Listenfeld auf einem Formular platziert:
H. Fritzsche, Wirtschaftsinformatik II
40
Zum Öffnen eines Berichts ist in der Ereignisprozedur z.B. zu notieren:
DoCmd.OpenReport "Ber3b", acViewPreview, , "ARTNR= '" & _
Me!Liste0 & "'"
5 DATENMODELLIERUNG
Der Datenbankentwurf beschäftigt sich mit der Organisation der Daten in physisch getrennten
Relationen. Dabei wird unterteilt in:

Logischer Datenbankentwurf
Definieren der konzeptionellen und externen Ebene. Dabei erfolgt das Aufteilen
der für eine Domäne ermittelten Objekttypen und Attribute auf Relationen. Die
Korrektheit der Datenbankoperationen ist zu sichern.

Physischer Datenbankentwurf
Definieren der internen Ebene (Auswahl des Datenbanksystems usw.). Hauptziele
sind die Performanz und der Schutz vor Datenverlust.
5.1 Das Entity-Relationship-Modell
Beim Entwurf eines konzeptionellen Datenschemas geht es zunächst um die Beschreibung
eines Ausschnittes aus der realen Welt. Dieser Vorgang heißt Modellbildung.
Eine Entitätsmenge entspricht einer Klasse von Objekten mit gleichen Merkmalen, aber von
Objekt zu Objekt unterschiedlichen Merkmalsausprägungen. Wir bezeichnen eine
Entitätsmenge auch als Objekttyp (OT).
Eine binäre Assoziation (OT1, OT2) legt fest, wie viele Entitäten aus OT2 einem Objekt aus
OT1 zugeordnet sein können.
Wir unterscheiden folgende Assoziationstypen:
1:
einfache Assoziation
H. Fritzsche, Wirtschaftsinformatik II
41
c:
m:
mc:
konditionelle Assoziation
multiple Assoziation
multipel-konditionelle Assoziation
Kombiniert man eine Assoziation (OT1,OT2) mit ihrer Gegenassoziation, so ergibt dies die
Beziehung (relationship) zwischen den beiden betrachteten Entitätsmengen.
5.2 Schlüsselarten / Anforderungen an den Schlüsselaufbau
Ein Schlüssel ist ein Merkmal oder eine Kombination von Merkmalen, womit Datensätze
(Entitäten) in einer Menge von Datensätzen ausgezeichnet werden können.
Schlüsselarten:

Suchschlüssel (search key)
Schlüssel, dessen Wert mit den entsprechenden Merkmalswerten genau der Entitäten
übereinstimmt, die bei einer Abfrage gesucht werden. Mit einem Suchschlüsselwert
können ggf. auch mehrere Entitäten einer Entitätsmenge angesprochen werden (z.B.
SEEK).

Sortierschlüssel ( sort key)
Bestimmt bei einer gegebenen Ordnung der Schlüsselwerte die physische Reihenfolge
der Datensätze in der Datei.

Primärschlüssel (primary key)
Positioniert die Datensätze in einer Speicherorganisation bei mehreren möglichen
Sortierschlüsseln.

Identifikationsschlüssel (unique key)
Eine Entität wird durch den Wert ihres Identifikationsschlüssels eindeutig und
dauerhaft bezeichnet.
Def.: Ein Identifikationsschlüssel ist ein Attribut oder eine minimale
Attributkombination, anhand dessen bzw. deren jedes Tupel der Relation eindeutig
identifiziert werden kann und dessen bzw. deren Wert zeitinvariant ist, d.h. sich während der
Existenz des Tupels nicht ändert.
Der Ausdruck „minimale Attributkombination“ bedeutet, dass ohne Verlust der eindeutigen
Identifizierbarkeit kein Attribut der Attributkombination weggelassen werden darf.
Sind mehrere minimale Attributkombinationen vorhanden, spricht man von
Schlüsselkandidaten (candidate key). In diesem Fall wird ein Schlüssel als Primärschlüssel
ausgezeichnet. Die anderen Kandidaten heißen Sekundärschlüssel.
Forderungen an künstliche Identifikationsschlüssel sind:




Eindeutigkeit
laufende Zuteilbarkeit
Kürze und Schreibbarkeit
„sprechende“ Schlüssel
(aus den Schlüsselwerten sollen bestimmte Eigenschaften der beschriebenen Entität
erkennbar werden)
H. Fritzsche, Wirtschaftsinformatik II
42
Verbundschlüssel umfassen einen Identifikationsteil und einen Klassifikationsteil.
Parallelschlüssel sind Verbundschlüssel, bei denen es keine Beziehung zwischen
klassifizierendem und identifizierendem Teil gibt.
Bsp.: Zugbezeichnung IC 100. IC bezeichnet einen Zug der Klasse IC. 100 ist eine
willkürliche Bezeichnung, die keine Aussage über die Art des Zuges liefert.
5.3 Entwurf von Relationen
Strukturregel SR1:
Bei der Darstellung von Entitätsmengen durch Relationen muss für jede Relation ein
Identifikationsschlüssel festgelegt werden.
Notation:
R(A,B, …)
R: Name der Relation (Tabelle)
A,B, … : Namen von Attributen (Spalten)
Die zum Identifikationsschlüssel gehörigen Attribute werden unterstrichen.
mit
Attributabhängigkeiten
Es gibt unterschiedliche Arten von Attributabhängigkeiten:
1. funktionale Abhängigkeit
Def.: In R(A,B) ist das Attribut B vom Attribut A funktional abhängig, wenn zu jedem
Wert von A genau ein Wert von B gehört.
Die Attribute können sich nicht unabhängig voneinander ändern.
Beispiel: Gewicht und Farbe eines Teiles sind von der Teilenummer funktional
abhängig: zu unterschiedlichen Gewichten gehören immer unterschiedliche Teile, zu
unterschiedlichen Teilenummern aber nicht unbedingt unterschiedliche Gewichte. Zu
einer Teilenummer können nicht unterschiedliche Gewichte gehören. Das gleiche gilt für
die Farbe.
2. volle funktionale Abhängigkeit
Def.: In R(S1,S2,A) ist das Attribut A von (den Schlüsseln) S1, S2 voll funktional
abhängig, wenn A von dem zusammengesetzten Attribut (S1,S2) funktional abhängig ist,
nicht aber von einem einzelnen Attribut S1 oder S2.
3. transitive Abhängigkeit
Def.: In R(S,A,B) ist das Attribut B vom Schlüssel S (der auch ein zusammengesetzter
Schlüssel sein kann) transitiv abhängig, wenn A von S funktional abhängig ist, S jedoch
nicht von A, und wenn B von A funktional abhängig ist.
H. Fritzsche, Wirtschaftsinformatik II
43
Normalformen
1. Normalform (1NF)
Def.: Eine Relation ist in der 1NF, wenn alle Attribute nur atomare Werte besitzen.
Für jedes Tupel und jedes Attribut im Tupel gibt es jeweils nur einen Wert. Insbesondere
kann ein Wert nicht wieder eine Tabelle sein.
Beispiel: Die nachfolgende Relation PERSONEN mit PERS# als Identifikationsschlüssel ist
nicht in der 1NF, da sie für PROJ#, PROJNAME und %ARBZEIT Mehrfacheinträge aufweist.
PERSONEN
PERS# PERSNAME ABT#
101
Meyer
1
102
Krause
2
ABTNAME
PROJ#
Planung
11,12
Projektierung 13
PROJNAME %ARBZEIT
A,B
60,40
C
100
Lösung: Die Inhalte der Tupel mit Mehrfacheinträgen müssen auf mehrere Tupel aufgeteilt
werden, so dass für unterschiedliche Projektnummern, Projektnamen und prozentuale Anteile
der Arbeitszeit unterschiedliche Tupel entstehen. Der Informationsgehalt der Relation bleibt
dadurch ungeändert, aber es entstehen Redundanzen. PERS# allein genügt als
Identifikationsschlüssel nicht mehr. Es wird eine Kombination (PERS#, PROJ#) als
Identifikationsschlüssel verwendet.
2. Normalform (2NF)
Def.: Eine Relation ist in der 2NF, wenn sie sich in der 1NF befindet und wenn jedes NichtSchlüssel-Attribut funktional abhängig ist vom Gesamtschlüssel, nicht aber von den einzelnen
Schlüsselteilen (d.h. jedes Nicht-Schlüssel-Attribut ist voll funktional abhängig vom
Gesamtschlüssel).
Beispiel: Die modifizierte Relation PERSONEN (jetzt PERS-PROJ-TAETIGK) mit dem
Identifikationsschlüssel (PERS#,PROJ#) befindet sich in der 1NF, aber nicht in der 2NF.
PERS-PROJ-TAETIGK
PERS# PERSNAME ABT#
101
Meyer
1
101
Meyer
1
102
Krause
2
ABTNAME
Planung
Planung
Projektierung
PROJ#
11
12
13
PROJNAME
A
B
C
%ARBZEIT
60
40
100
PROJNAME ist von PROJ# allein funktional abhängig. Auch ABT# ist von PERS# allein
funktional abhängig (Annahme: 1 Person kann nicht gleichzeitig zu mehreren Abteilungen
gehören).
Lösung: Aufspalten der Relation PERS-PROJ-TAETIGK in 3 Relationen PERSONEN,
PROJEKTE, PERS-PROJ-TAETIGK.
PERSONEN
H. Fritzsche, Wirtschaftsinformatik II
44
PERS#
101
102
PERSNAME
Meyer
Krause
ABT#
1
2
ABTNAME
Planung
Projektierung
PROJEKTE
PROJ#
PROJNAME
11
A
12
B
13
C
PERS-PROJ-TAETIGK
PERS#
PROJ#
%ARBZEIT
101
11
60
101
12
40
102
13
100
Auch jetzt steckt in der Relation PERSONEN noch Redundanz. Für jede Person ist der
Abteilungsname gespeichert, obwohl dieser mit der Abteilungsnummer funktional gekoppelt
ist.
3. Normalform (3NF)
Def.: Eine Relation ist in der 3NF, wenn sie sich in der 2NF befindet und keine funktionalen
Abhängigkeiten zwischen Attributen existieren, die nicht als Schlüssel definiert sind (d.h.
keine transitiven Abhängigkeiten definiert sind).
Beispiel: Die Relation PERSONEN(PERS#, PERSNAME, ABT#, ABTNAME) befindet
sich nicht in der 3NF, weil ABTNAME über ABT# transitiv von PERS# abhängt.
Lösung: Aufspalten der Relation PERSONEN in zwei Relationen:
PERSONEN(PERS#,PERSNAME,ABT#)
ABTEILUNGEN(ABT#,ABTNAME)
Relationen in der 3NF heißen „normalisiert“.
Beziehungen zwischen Relationen: Globale Normalisierung
Die globale Normalisierung verbindet die existierenden Beziehungen zwischen
Entitätsmengen mit der Normalisierung des Relationenmodells.
Def.: Ein Attribut heißt global, wenn es mindestens in einer Relation im
Identifikationsschlüssel vorkommt.
Def.: Ein Attribut heißt lokal, wenn es nur in einer einzigen Relation und dort nicht im
Identifikationsschlüssel vorkommt.
Es kann nach diesen Definitionen Attribute geben, die weder global noch lokal sind. Solche
Attribute treten bei „sich überlappenden“ Entitätsmengen auf.
H. Fritzsche, Wirtschaftsinformatik II
45
Beispiel: Angestellte und Studierende sind Hochschulangehörige. Doktoranden sind sowohl
Angestellte als auch Studierende. Angenommen, die Attribute NAME und ADRESSE werden
sowohl in einer Relation ANGESTELLTE als auch in einer Relation STUDIERENDE
verwaltet:
ANGESTELLTE(A#,NAME,ADRESSE,LOHNGRUPPE)
STUDIERENDE(S#,NAME,ADRESSE,STUDIENGANG)
In diesem Fall sind die Attribute NAME und ADRESSE weder lokal noch global.
Attribute, die weder global noch lokal sind, sind Quelle von Redundanz und deshalb zu
eliminieren. Sie sind einer neuen, übergeordneten Relation zuzuordnen (Generalisierung).
Beispiel:
HOCHSCHULANGEHOERIGE(PERS#,NAME,ADRESSE)
ANGESTELLTE(PERS#,A#,LOHNGRUPPE)
STUDIERENDE(PERS#,S#,STUDIENGANG)
Die gewonnenen Erkenntnisse können nun in einer zweiten Strukturregel zusammengefasst
werden:
Strukturregel SR2:
Die Datenbasis muss aus Relationen in der 3NF bestehen, die nur globale und lokale
Attribute enthalten.
Verbindungen zwischen Relationen werden nunmehr ausschließlich über Globalattribute
hergestellt. Trotz der Einhaltung der Normalformen und der Vermeidung von Attributen, die
weder global noch lokal sind, können  zunehmend bei großen Datenmengen 
Konsistenzverletzungen auftreten.
Mit dem Begriff des Fremdschlüssels wird die Möglichkeit geschaffen, auszudrücken, dass
Wertebereiche für Attribute einer Relation von den aktuell in einer anderen Relation
vorhandenen Datensätzen bestimmt werden.
Def.: Ein Fremdschlüssel (foreign key) in einer Relation R2 ist ein Attribut (oder eine
Attributkombination), welches (welche) dem Identifikationsschlüssel in einer anderen
Relation R1 entspricht, und dessen zugehöriger Wertebereich die Menge genau jener Werte
umfasst, welche die aktuell in R1 enthaltenen Tupel identifizieren. R1 heißt Basisrelation des
Fremdschlüssels.
Beispiel:
Sei R1
PERSONEN(PERS#,PERSNAME,ABT#)
und R2
PERS-PROJ-TAETIGK(PERS#,PROJ#,%ARBZEIT)
H. Fritzsche, Wirtschaftsinformatik II
46
PERS# ist Fremdschlüssel in PERS-PROJ-TAETIGK und Identifikationsschlüssel in
PERSONEN. PERSONEN ist Basisrelation.
Def.: Die referentielle Integrität ist eine Konsistenzbedingung, welche verlangt, dass
Fremdschlüssel in R2 nur Tupel in R1 referenzieren, die z.Z. tatsächlich existieren.
Def.: Ein statischer Wertebereich ist eine Menge von Werten, welche bei der Definition der
Datenbasis festgelegt wird, und die sich im Verlaufe der Zeit nicht ändert.
Def.: Ein dynamischer Wertebereich ist eine Menge von Identifikationsschlüsselwerten oder wertkombinationen einer Basisrelation, die für Fremdschlüssel zur Verfügung stehen.
Strukturregel SR3:
Lokale Attribute müssen statische Wertebereiche verwenden.
Jedes Global-Attribut darf nur in einer einzigen Relation auf einem statischen
Wertebereich basieren und muss in dieser Relation Identifikationsschlüssel sein. In
allen anderen Relationen muss es auf einem dynamischen Wertebereich basieren,
d.h. als Fremdschlüssel aus einer anderen Relation eingebracht werden.
Normalisierungen können auch anhand von Entitäten-Diagrammen vorgenommen werden.
Beziehungstypen bei Relationen:
1
c
m
mc
1
1-1
1-c
1-m
1 - mc
c
c-1
c-c
c-m
c - mc
m
m-1
m-c
m-m
m - mc
mc
mc - 1
mc - c
mc - m
mc - mc
Hierarchische Beziehung
Konditionelle Beziehung
Netzwerkartige Beziehung
Def.: Eine hierarchische Beziehung (H-Beziehung) besteht zwischen den Relationen R1 und
R2 genau dann, wenn ein Attribut (oder eine Attributkombination) in R2 als Fremdschlüssel
auf R1 basiert.
Hierarchische Beziehungen lassen sich direkt mit Fremdschlüsseln und dynamischen
Wertebereichen darstellen.
Zur Modellierung konditioneller und netzwerkartiger Beziehungen sind zusätzliche
Relationen erforderlich. Rekursive Beziehungen müssen unter Bildung von
Beziehungsrelationen aufgelöst werden.
Strukturregel SR4:
Rekursive Beziehungen zwischen Entitätstypen sind untersagt.
H. Fritzsche, Wirtschaftsinformatik II
47
6 DATENBANKORGANISATION
6.1 Klassifizierung und Architektur von Datenbanksystemen
1) hierarchische DBS (HDBS)
z.B.:
IMS (Fa. IBM, 1968)
2) Netzwerk-DBS
z.B.:
IDMS
3) Relationale DBS (RDBS)
z.B.:
INGRES, ORACLE, MS ACCESS, dBASE, SYBASE, MySQL
4) Objektorientierte DBS (OODBS)
z.B.:
O2, ORION/ITASCA, POET, UniSQL
MS Access 2000 vereinigt Entwicklungssystem und DBMS und besteht eigentlich aus zwei
Produkten:

Der Jet-Datenbankmodul dient dem Entwickeln von Datenbanklösungen für Desktops.

Mit Microsoft Data Engine (MSDE) ist die Verwaltung einer Backend-Datenbank
möglich. MSDE ist wie ein Miniatur-Datenbankserver einzustufen. Die MSDE wird
standardmäßig nicht mit Access 2000 mit installiert.
Grundlage für die Architektur von DBS bildet das 3-Ebenen-Modell.
Anwender benutzen Anwendungsprogramme über deren Benutzeroberfläche.
Anwendungsprogramme greifen über das DBMS auf die Datenbasis zu.
Anwendungsprogramme lösen über Befehle der verwendeten Datenmanipulationssprache
(DML) Transaktionen an das DBMS aus. Das DBMS formt Transaktionen in Anweisungen
an das Betriebssystem um. Das Betriebssystem verwaltet die Speicher und löst Operationen
für Speicherzugriffe aus.
H. Fritzsche, Wirtschaftsinformatik II
48
Funktionsschichten des DBMS:

Relationenverwalter

Tupelverwalter

Speicherverwalter
6.2 Konsistenz und Transaktionen
Daten sind konsistent, wenn sie vordefinierte Konsistenzbedingungen einer Datenbank
erfüllen. Man unterscheidet Konsistenzbedingungen, die


dauernd erfüllt sein müssen,
temporär Inkonsistenzen erlauben.
7 DATENSCHUTZ UND INFORMATIONSSICHERHEIT
7.1 Datensicherheit und Datenschutz
Datensicherheit (data security) umfasst alle organisatorischen und technischen Maßnahmen
für die Sicherstellung der notwendigen Verfügbarkeit und Abschirmung der Daten.
Verfügbarkeit bedeutet, auf bestimmte Daten zugreifen zu können.
Abschirmung bedeutet, den Zugriff auf Daten für Unbefugte verhindern zu können.
Datenschutz ist der Schutz der durch Daten dargestellten Sachverhalte des realen Lebens vor
jeder Art von Missbrauch, insbesondere bei Daten über Personen.
H. Fritzsche, Wirtschaftsinformatik II
49
Zum Datenschutz gehört die Abschirmung gegen Unberechtigte, aber auch deren
Verfügbarkeit für Berechtigte.
7.2 Sicherheit in Netzwerken
Sicherheit in netzbasierten Anwendungen ist mehrseitig. Es treffen unterschiedliche Akteure
mit unterschiedlichen Interessen aufeinander: Nutzer, Systembetreiber, Wartungsdienste,
Systemhersteller, ...
Anforderungen:
Vertraulichkeit
- Vertraulichkeit von Nachrichteninhalten
- Anonymität von Sender und/oder Empfänger
- Unbeobachtbarkeit
- keine Preisgabe des Ortes mobiler Kommunikationsstationen
Integrität
- Erkennbarkeit von Fälschungen des Nachrichteninhaltes
Verfügbarkeit
- Kommunikation zwischen allen Partnern, die dies wünschen
Verbindlichkeit/Zurechenbarkeit
- Nachweisbarkeit, dass Instanz x Nachricht y (mit korrektem Inhalt) gesendet hat
- Beweismittel für Betreiber über Diensteinanspruchnahmen
Schlüsselaustausch nach Diffie/Hellman
Die Kommunikationspartner A und B können jeder einen gemeinsamen Schlüssel K
erzeugen, ohne geheime Informationen austauschen zu müssen.
Beispiel: A und B seien zwei Kommunikationspartner, die vertraulich kommunizieren
möchten und einen gemeinsamen Schlüssel K zur Verschlüsselung ihrer Informationen
vereinbaren möchten. K selbst wird nicht ausgetauscht!
A
A und B vereinbaren zwei Zahlen g = 4 und p = 11
B
A wählt seinen privaten Schlüssel XA = 3
B wählt seinen privaten Schlüssel XB=4
A berechnet seinen öffentlichen Schlüssel
YA
= g XA mod p
= 4 3 mod 11 = 64 mod 11 = 9
B berechnet seinen öffentlichen Schlüssel
YB
= g XB mod p
= 4 4 mod 11 = 256 mod 11 = 3
A sendet YA an B
B sendet YB an A
A berechnet den Sitzungsschlüssel K:
K = YBXA = 33 mod 11 = 27 mod 11 = 5
B berechnet den Sitzungsschlüssel K:
K = YAXB = 94 mod 11 = 6561 mod 11 = 5
H. Fritzsche, Wirtschaftsinformatik II
50
8 KOMMUNIKATIONSSYSTEME
8.1 Technisch-technologische Grundlagen
Prozess: Ein sich gerade auf einem Rechner in Abarbeitung befindliches Programm.
Verteiltes System (Netzwerkbetriebssystem): Computer arbeiten in einem Netzwerk
zusammen. Auf jedem Computer läuft ein eigenes Betriebssystem. Der Nutzer ist sich der
Existenz mehrerer Computer bewusst (im Unterschied zu einem „echten“ verteilten System).
Sockets bieten eine Möglichkeit zur Kommunikation zwischen nicht verwandten Prozessen.
Socket :
IP-Adresse + Portnummer
IP-Adressen identifizieren einen Computer im Netzwerk eindeutig.
Portnummern identifizieren Dienste (d.h. Prozesse, die durch die Ausführung
von Programmen einen bestimmten Dienst erbringen.
8.2 Kommunikationsdienste
Finger
Mit Hilfe des Dienstes Finger können Informationen über Nutzer bereitgestellt werden. Ein
Finger-Client (Programm finger) ermöglicht es, Informationen zu entfernten Nutzern
abzufragen. Ein Server (Programm fingerd) liefert die Informationen.
World Wide Web
Das World Wide Web (WWW) ist nicht das Internet, sondern ein Dienst, der im Internet
angeboten wird. Grundlage der Kommunikation ist das Hypertext Transfer Protocol (HTTP),
ein Protokoll, das in der Anwendungsschicht liegt. Über das HTTP sollen vom Server (dem
Web-Server) bereitgestellte Dokumente auf Anforderung vom Client zum Client übertragen
und vom Client (einem Browser) visualisiert werden.
LITERATUR
P. Lomax:
VB & VBA in a Nutshell: The Language. O’Reilly, 1998.
RRZN / Universität Hannover (Hrsg.):
ACCESS 2000 – Automatisierung, Programmierung. 1. Auflage, Februar 2000.
RRZN / Universität Hannover (Hrsg.):
ACCESS 2000 – Fortgeschrittene Techniken für Datenbank-Entwickler. 1. Auflage,
Mai 2000.
E. Tiemeyer, K. Konopasek:
Unternehmensdatenbanken mit MS SQL Server und Access – planen, entwickeln,
einsetzen. Markt+Technik Verlag, 2001.
H. Fritzsche, Wirtschaftsinformatik II
51
Herunterladen