66
Wirtschaftsinformatik II Datenorganisation – Datenbanken – Kommunikation Skript zur Lehrveranstaltung Hartmut Fritzsche Hochschule für Technik und Wirtschaft Dresden (FH) Fachbereich Informatik/Mathematik 6. Juni 2006

Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen 0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Embed Size (px)

Citation preview

Page 1: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Wirtschaftsinformatik IIDatenorganisation – Datenbanken – Kommunikation

Skript zur Lehrveranstaltung

Hartmut FritzscheHochschule für Technik und Wirtschaft Dresden (FH)

Fachbereich Informatik/Mathematik

6. Juni 2006

Page 2: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Inhaltsverzeichnis

1 GRUNDLAGEN DER DATENORGANISATION...........................................................31.1 Motivation: Speichern und Wiederfinden...................................................................31.2 Datenbanksysteme......................................................................................................3

2 EINFÜHRUNG IN DAS RELATIONALE DATENMODELL........................................42.1 Strukturteil..................................................................................................................42.2 Operationsteil..............................................................................................................5

3 MS ACCESS.......................................................................................................................83.1 Die Arbeitsoberfläche.................................................................................................83.2 Eine neue Datenbank anlegen.....................................................................................93.3 Tabellen.......................................................................................................................93.4 Abfragen...................................................................................................................133.5 Formulare..................................................................................................................153.6 Beziehungen zwischen Tabellen...............................................................................183.7 Berichte.....................................................................................................................203.8 Makros......................................................................................................................21

4 PROGRAMMENTWICKLUNG MIT VBA....................................................................234.1 Grundlagen................................................................................................................234.2 Steuerstrukturen........................................................................................................274.3 Objekte in Access.....................................................................................................304.4 Laufzeitfehler............................................................................................................324.5 Die ADO-Architektur...............................................................................................33

5 DATENMODELLIERUNG.............................................................................................385.1 Das Entity-Relationship-Modell...............................................................................385.2 Schlüsselarten / Anforderungen an den Schlüsselaufbau.........................................395.3 Entwurf von Relationen............................................................................................40

6 DATENBANKORGANISATION...................................................................................456.1 Klassifizierung und Architektur von Datenbanksystemen.......................................456.2 Konsistenz und Transaktionen..................................................................................46

7 DATENSCHUTZ UND INFORMATIONSSICHERHEIT.............................................467.1 Datensicherheit und Datenschutz..............................................................................467.2 Sicherheit in Netzwerken..........................................................................................47

8 KOMMUNIKATIONSSYSTEME...................................................................................488.1 Technisch-technologische Grundlagen.....................................................................488.2 Kommunikationsdienste...........................................................................................48

Literatur.....................................................................................................................................48

H. Fritzsche, Wirtschaftsinformatik II 2

Page 3: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

1 GRUNDLAGEN DER DATENORGANISATION

1.1 Motivation: Speichern und WiederfindenDie Datenverwaltung in Anwendungssystemen erfolgt grundlegend nach folgenden Gesichts-punkten:

extern vs. internDie Bezeichnung „intern“ bezieht sich auf Hauptspeicher und Register, mit „externer“ Spei-cherung ist die Verwaltung der Daten auf Festplatte, CD-ROM, DVD usw. gemeint.

statisch vs. dynamischIst 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 Organisa-tionsformen 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 Verarbei-tung 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 DatenbanksystemeEin 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 speichernund zentral verwalten. Ziel ist die Gewährleistung einer weitgehenden Unabhängigkeit derDaten von den mit ihnen arbeitenden Programmen bzw. Benutzern. Es wird zwischen einerphysischen und einer logischen Datenunabhängigkeit unterschieden. Unter logischer Da-tenunabhängigkeit versteht man, dass die anwendungsbezogene Sicht auf die DB losgelöstvon der logischen Gesamtstruktur existiert. Die globale Struktur soll änderbar sein, ohne lo-kale 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 Be-deutung für die Praxis.

H. Fritzsche, Wirtschaftsinformatik II 3

Page 4: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 Relationensche-mata. Der Operationsteil beschreibt einen Satz von Operationen für Anfragen und Modifikati-onen. 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 logikorien-tierten 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 Ob-jekt eine Reihe von Attribut Wert Paaren zuordnet. Mögliche Ausprägungen (Merkmals-werte 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 3-83319-315-4Autor Andreas HeuerTitel Objektorientierte DatenbankenVerlag Addison Wesley

Ein Objekttyp ist durch eine Menge von Attributen mit entsprechenden Wertebereichen cha-rakterisiert.

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

Page 5: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 Relationen-schema. 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 bezeich-net. 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 Norm-sprache 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 Projektionsbedin-gung aus.Achtung: Durch Projektion können Tupel entstehen, die sich nicht mehr unterscheiden. Dup-likate werden in der Ergebnisrelation eliminiert!H. Fritzsche, Wirtschaftsinformatik II 5

Page 6: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

(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 B C r2 A D r3 C D E1 1 1 1 1 1 1 01 2 2 0 1 0 1 12 0 2 2 0 2 1 0

2 2 1

r1 |<>| r2

A B C D1 1 1 11 2 2 12 0 2 0

( r1 |<>| r2 ) |<>| r3

A B C D E1 1 1 1 01 2 2 1 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. SFW-Block:

SELECT … AttributlisteFROM … beteiligte RelationenWHERE … komplexe Selektionsbedingung ;

H. Fritzsche, Wirtschaftsinformatik II 6

Page 7: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Semantik:

1. Kart. Produkt der Relationen hinter FROM mit dem Relationsnamen als Präfix2. Anwendung der Bedingungen der WHERE-Klausel auf das Ergebnis der FROM-Klausel3. Projektion auf die Attribute der SELECT-Klausel

Beispiel:

PersonenName Vorname Geburtsdatum WohnortMeyer Peter 10.05.1960 BerlinMeyer Peter 20.08.1966 DresdenSchmitt Susanne 01.01.1970 AueSchmitt Petra 01.01.1970 Rostock

Pers_HobbiesName Vorname Geburtsdatum HobbyMeyer Peter 10.05.1960 SurfenMeyer Peter 10.05.1960 KlavierspielMeyer Peter 20.08.1966 FußballSchmitt Susanne 01.01.1970 TanzenSchmitt Petra 01.01.1970 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) SELECT Name, VornameFROM Pers_HobbiesWHERE Hobby=’Surfen’ ;

Name VornameMeyer PeterSchmitt Petra

3) SELECT Y.Vorname, Y.NameFROM Pers_Hobbies As X, Pers_Hobbies As YWHERE X.Name='Schmitt'AND X.Hobby=Y.Hobby ;

Name VornameMeyer Peter

H. Fritzsche, Wirtschaftsinformatik II 7

Page 8: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Schmitt PetraSchmitt 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.

Beim Öffnen einer bereits bestehenden Datenbank wird entweder das Access-Datenbankfenster angezeigt oder ein vorher bereits erstelltes Startformular. In beiden Fällen

H. Fritzsche, Wirtschaftsinformatik II 8

Page 9: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 anlegenEine 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 Access-Datenbanken“ sein ( Schaltfläche ERSTELLEN).

Beispiel: Anlegen einer Datenbank c:\temp\Handelsfirma. MS Access-Datenbankdateien 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.

3.3 Tabellen

Eine Tabelle kann

H. Fritzsche, Wirtschaftsinformatik II 9

Page 10: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 :

1. Erstellen einer Tabelle in der Entwurfsansicht:

H. Fritzsche, Wirtschaftsinformatik II 10

Page 11: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 Erklärung GrößeTEXT für Zeichenketten aus Buchstaben, Ziffern und

Sonderzeichenmax. 255 Zeichen

MEMO für längere Texte max. 65535 ZeichenZAHL für Ganzzahl-, Gleitkomma- und

Dezimalzahltypenje nach Typ 1,2,4 oder 8 Byte

DATUM/UHRZEIT Jedes gültige Datum zwischen 1.1.100 und 31.12.9999 ist erlaubt.

8 Byte

WÄHRUNG Zahlenwerte, diese werden automatisch um ein Währungssymbol ergänzt, mit zwei Nachkommastellen dargestellt und bündig angeordnet

8 Byte

H. Fritzsche, Wirtschaftsinformatik II 11

Page 12: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

AUTOWERT 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.

4 Byte

JA/NEIN Es gibt genau zwei Werte, die die möglichen Ergebnisse einer Entscheidungsfrage repräsentieren (sog. Boolesches Feld)

1 Bit

OLE-OBJEKT Ein OLE-Objekt wurde in einem anderen Programm erstellt (z.B. Excel) und kann eineGrafik, eine Excel-Tabelle oder ähnliches sein. OLE steht für Object linking and embedding.

bis zu 1 GByte

HYPERLINK Werte sind Hyperlinks, beim Klicken darauf werden die verlinkten Objekte geöffnet und angezeigt.

max. 64000 Zeichen

NACHSCHLAGLISTE

Feldwerte können aus einer Liste ausgewählt werden. Der Liste kann z.B. eine andere Tabelle zugrunde liegen.

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 eine Dezimalziffer (0 – 9), Eingabe zwingend9 eine Dezimalziffer (0 – 9) oder ein Leerzeichen, Eingabe optional# eine Dezimalziffer, ein Leerzeichen oder Plus- bzw. MinuszeichenL ein Buchstabe (A – Z), Eingabe zwingend ? ein Buchstabe (A – Z), Eingabe optionalA ein Buchstabe oder eine Ziffer, Eingabe zwingenda ein Buchstabe oder eine Ziffer, Eingabe optional& ein beliebiges Zeichen (einschließlich Leerzeichen), Eingabe zwingendC 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

„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.

H. Fritzsche, Wirtschaftsinformatik II 12

Page 13: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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:

Die gewünschte Tabelle HINZUFÜGEN und das Fenster SCHLIEẞEN. Auf dem Bildschirm erscheint das Abfragefenster in der Entwurfsansicht:

H. Fritzsche, Wirtschaftsinformatik II 13

Page 14: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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).

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 Syntax Bedeutung BeispielObjekte [Name] Name von Feldern, [EINPREIS]*1,16

H. Fritzsche, Wirtschaftsinformatik II 14

Page 15: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Berichten oder FormularenDatum #Datum# ein konstantes Datum #12.02.2003#Text (Zeichenkette) "Text" Zeichenketten-Konstante 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

ZeichenWIE 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 KundennamensIm Entwurf ist als Kriterium der später im Dialogfenster anzuzeigende Text in eckige Klammern einzuschließen.

Anwendung: DK auf das Symbol „ParameterabfrageKunden“ öffnet das kleine Fenster. Nach Eingabe des Kundennamens erfolgt die Selektion.

H. Fritzsche, Wirtschaftsinformatik II 15

Page 16: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 FormulareDie 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

H. Fritzsche, Wirtschaftsinformatik II 16

Page 17: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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

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.

H. Fritzsche, Wirtschaftsinformatik II 17

Page 18: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Beim tabellarischen Autoformular hat man keine Möglichkeit, die Spaltenbreite zu verändern:

Formular-Assistent

Schritt 1: Tabelle und Datenfelder auswählenSchritt 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

H. Fritzsche, Wirtschaftsinformatik II 18

Page 19: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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

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.

H. Fritzsche, Wirtschaftsinformatik II 19

Page 20: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Es wird unterschieden zwischen

Standardbeziehungen Beziehungen mit referentieller Integrität

Anzeigen des Beziehungsfensters: MS Access – Symbolleiste .

H. Fritzsche, Wirtschaftsinformatik II 20

Page 21: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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:

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.

H. Fritzsche, Wirtschaftsinformatik II 21

Page 22: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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.

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 undFestlegungen 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.H. Fritzsche, Wirtschaftsinformatik II 22

Page 23: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

MS Access bietet verschiedene Assistenten zur Erstellung von Berichten an.

Struktur von Berichten:

Berichtskopf (auf der 1. Seite des Berichts) Berichtsfuß (auf der letzten Seite des Berichts) Seitenkopf (auf jeder Berichtsseite) Seitenfuß (auf jeder Berichtsseite) Gruppenkopf (nur für Gruppierungsbericht) Gruppenfuß (nur für Gruppierungsbericht) Detailbereich

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.

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:

H. Fritzsche, Wirtschaftsinformatik II 23

Page 24: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

FormMakroTest:

Lösung: 1. Objekt Makros → NEU2. Einfügen Aktionen: - Öffnen Formular Formularname: Form1Artikel

- Schließen Objekttyp: FormularObjektname: FormMakroTest

3. Speichern des Makros unter dem Namen MakTestFormular4. Zuordnen des Makros zur Schaltfläche Befehl0 im Formular FormMakroTest,

Ereignis: Beim Klicken5. 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.

H. Fritzsche, Wirtschaftsinformatik II 24

Page 25: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

4 PROGRAMMENTWICKLUNG MIT VBA

4.1 Grundlagen

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.

H. Fritzsche, Wirtschaftsinformatik II 25

Page 26: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 26

Prozedur

Function-Prozedur

Sub-Prozedur

AllgemeineProzedur

Ereignis-Prozedur

Page 27: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 Variablentyp Sichtbarkeitsbereich LebensdauerPublic Globale Variable jede Prozedur der

gesamten Datenbankanwendung

gesamte Laufzeit derDatenbankanwendung

Private Global für Modul jede Prozedur desModuls, in dem die Variable deklariert ist

gesamte Laufzeit der Datenbankanwendung

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 derDatenbankanwendung

H. Fritzsche, Wirtschaftsinformatik II 27

Page 28: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 Integerz = z + 1MsgBox "Zustand:" & z, vbInformationEnd Sub

Prozeduraufruf:

Zähler

Prozedurausführung:

...

Das im Beispiel verwendete Meldungsfenster (MsgBox) kann sowohl als Funktion als auch als Sub-Prozedur angewendet werden.

Syntax: MsgBox(>anzeigetext<, >schaltflächen<, >titel<) Verwendung als Funktion

MsgBox >anzeigetext<, >schaltflächen<,>titel< 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 Konstante Gewählte Schaltfläche

H. Fritzsche, Wirtschaftsinformatik II 28

Page 29: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

1 vbOK OK2 vbCancel ABBRECHEN3 vbAbort ABBRECHEN4 vbRetry WIEDERHOLEN5 vbIgnore IGNORIEREN6 vbYes JA7 vbNo 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

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)

H. Fritzsche, Wirtschaftsinformatik II 29

Page 30: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

^ Potenz

c. Vergleichsoperatoren=,<>,>,<,>=,<=,Like

d. Logische OperatorenNot, 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:

Public Sub Rabatt()Dim anzahl As Integer, ausgabe As StringDim einzelpreis As Double, gesamtpreis As Doubleanzahl = InputBox("Wieviele Teile bestellt: ")einzelpreis = 10gesamtpreis = anzahl * einzelpreisIf gesamtpreis >= 100 Then

ausgabe = "rabatt möglich"Else

ausgabe = "kein Rabatt möglich!"End IfMsgBox ausgabe

H. Fritzsche, Wirtschaftsinformatik II 30

Page 31: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

End Sub

Beispiel für eine Fallauswahl:Public Sub Noten()Dim note As Integer, text As Stringnote = InputBox("Bitte Note eingeben:","Noteneingabe")Select Case noteCase 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 SelectMsgBox 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:

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.

H. Fritzsche, Wirtschaftsinformatik II 31

Page 32: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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.

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 LongIf q > p Then

h = p p = q q = h

End Ifr = p Mod qDo While r <> 0

H. Fritzsche, Wirtschaftsinformatik II 32

Page 33: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

p = q q = r r = p Mod q

Loopggt = qEnd 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-/ProgrammabbruchExit DoVerlassen einer bedingungsgesteuerten Schleife (Iteration).

Exit ForVerlassen einer zählergesteuerten Schleife (Iteration).

Exit FunctionVerlassen einer Function - Prozedur.

Exit SubVerlassen einer Sub - Prozedur.

Exit- und GoTo- Anweisungen führen zu unübersichtlichen Programmstrukturen und sollten deshalb sehr sparsam verwendet werden.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:H. Fritzsche, Wirtschaftsinformatik II 33

Page 34: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Objektname BedeutungApplication Die MS_Access - AnwendungControls Auflistung aller Steuerelemente eines

Formulars oder Berichts Debug DirektfensterDoCmd Interpreter für Aktionen (Makrointerpreter)Forms Auflistung geöffneter FormulareReports Auflistung geöffneter BerichteModule 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.

>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.H. Fritzsche, Wirtschaftsinformatik II 34

Page 35: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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:

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 Ifr = p Mod qDo While r <> 0

p = q q = r r = p Mod q

LoopH. Fritzsche, Wirtschaftsinformatik II 35

Page 36: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

ggt = qExit Function

ggt_Exit:ggt = 0Exit 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 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.

H. Fritzsche, Wirtschaftsinformatik II 36

Connection

Page 37: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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<

>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 Einmaliges Durchlaufen der Datensätze;nur Lesen, nicht Ändern; geringster Ressourcenverbrauch;Defaultwert

adOpenStatic Statische Kopie der Daten verwendet; beliebige Navigation möglich; geringer Ressourcenverbrauch

H. Fritzsche, Wirtschaftsinformatik II 37

Errors Command

Fields

Recordset

Parameters

Page 38: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

adOpenKeyset Ändern, Einfügen und Löschen von Zeilen möglich; Nur die zum Zeitpunkt des Öffnens vorhandenen Datensätze werden verwendet.

adOpenDynamic Ä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 Es wird ein Recordset erzeugt, in dem nur gelesen werden kann

adLockPessimistic Pessimistische Sperrmethode: Datensatz wird gesperrt, sobald mit dem Schreiben begonnen wird. Es bleibt solange gesperrt, bis die Änderung abgeschlossen ist.

adLockOptimistic Optimistische Sperrmethode: Datensatz wird erst gesperrt, wenn Update erfolgt. Paralleles Editieren ist möglich. Wer zuerst speichert, dessen Änderung wird in die Tabelle übernommen.

adLockBatchOptimistic Änderungen werden in einem Cache gespeichert und später ausgeführt.

Positionieren des Datensatz- (DS-) Zeigers - navigieren innerhalb eines Recordsets:

MoveFirst DS-Zeiger auf den ersten Datensatz positionieren.MoveLast DS-Zeiger auf den letzten Datensatz positionierenMoveNext DS-Zeiger auf den nächsten Datensatz

positionierenMovePrevious DS-Zeiger auf den vorhergehenden Datensatz

positionierenMove <zahl> 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 ThenRem keine Datensätze vorhanden

End If

Die folgenden Methoden sind auf ein Recordset anwendbar.H. Fritzsche, Wirtschaftsinformatik II 38

Page 39: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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: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 RecordsetDim sql As StringDim nr As StringSet tabelle = new Recordsetnr=Forms!Formularx.text1sql = "Select ARTNR,ARTBEZEICH,BESTAND From Artikel Where ARTNR='" & nr & "'"tabelle.Open sql,CurrentProject.Connection,adOpenStatic,adLockReadOnly

H. Fritzsche, Wirtschaftsinformatik II 39

Page 40: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 thenSet rs = New Recordsetrs.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".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

Page 41: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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

H. Fritzsche, Wirtschaftsinformatik II 41

Page 42: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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.). Hauptzielesind 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 Assoziationc: konditionelle Assoziationm: multiple Assoziationmc: 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.

H. Fritzsche, Wirtschaftsinformatik II 42

Page 43: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 minimaleAttributkombination, 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)

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

Notation: R(A,B, …) mit R: Name der Relation (Tabelle)A,B, … : Namen von Attributen (Spalten)

Die zum Identifikationsschlüssel gehörigen Attribute werden unterstrichen.

Attributabhängigkeiten

Es gibt unterschiedliche Arten von Attributabhängigkeiten:

H. Fritzsche, Wirtschaftsinformatik II 43

Strukturregel SR1:

Bei der Darstellung von Entitätsmengen durch Relationen muss für jede Relation ein Identifikationsschlüssel festgelegt werden.

Page 44: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

1. funktionale Abhängigkeit

Def. : In R(A,B) ist das Attribut B vom Attribut A funktional abhängig, wenn zu jedemWert 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 funktionalabhä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 jedochnicht von A, und wenn B von A funktional abhängig ist.

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.

PERSONENPERS# PERSNAME ABT# ABTNAME PROJ# PROJNAME %ARBZEIT101 Meyer 1 Planung 11,12 A,B 60,40102 Krause 2 Projektierung 13 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)H. Fritzsche, Wirtschaftsinformatik II 44

Page 45: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Def.: Eine Relation ist in der 2NF, wenn sie sich in der 1NF befindet und wenn jedes Nicht-Schlü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-TAETIGKPERS# PERSNAME ABT# ABTNAME PROJ# PROJNAME %ARBZEIT101 Meyer 1 Planung 11 A 60101 Meyer 1 Planung 12 B 40102 Krause 2 Projektierung 13 C 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.

PERSONENPERS# PERSNAME ABT# ABTNAME101 Meyer 1 Planung102 Krause 2 Projektierung

PROJEKTEPROJ# PROJNAME11 A12 B13 C

PERS-PROJ-TAETIGKPERS# PROJ# %ARBZEIT101 11 60101 12 40102 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).

H. Fritzsche, Wirtschaftsinformatik II 45

Page 46: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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 imIdentifikationsschlüssel vorkommt.

Es kann nach diesen Definitionen Attribute geben, die weder global noch lokal sind. Solche Attribute treten bei „sich überlappenden“ Entitätsmengen auf.

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:

H. Fritzsche, Wirtschaftsinformatik II 46

Strukturregel SR2:

Die Datenbasis muss aus Relationen in der 3NF bestehen, die nur globale und lokale Attribute enthalten.

Page 47: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

Verbindungen zwischen Relationen werden nunmehr ausschließlich über Globalattribute hergestellt. Trotz der Einhaltung der Normalformen und der Vermeidung von Attributen, dieweder 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 R1PERSONEN(PERS#,PERSNAME,ABT#)

und R2PERS-PROJ-TAETIGK(PERS#,PROJ#,%ARBZEIT)

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.

Normalisierungen können auch anhand von Entitäten-Diagrammen vorgenommen werden.

Beziehungstypen bei Relationen:

1 c m mc

H. Fritzsche, Wirtschaftsinformatik II 47

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.

Page 48: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

1 1 - 1 c - 1 m - 1 mc - 1 Hierarchische Beziehungc 1 - c c - c m - c mc - c Konditionelle Beziehungm 1 - m c - m m - m mc - m Netzwerkartige Beziehungmc 1 - mc c - mc m - mc mc - mc

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 dynamischenWertebereichen darstellen.

Zur Modellierung konditioneller und netzwerkartiger Beziehungen sind zusätzliche Relationen erforderlich. Rekursive Beziehungen müssen unter Bildung von Beziehungsrelationen aufgelöst werden.

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.

H. Fritzsche, Wirtschaftsinformatik II 48

Strukturregel SR4:

Rekursive Beziehungen zwischen Entitätstypen sind untersagt.

Page 49: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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.

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

1 Datensicherheit und DatenschutzDatensicherheit (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.H. Fritzsche, Wirtschaftsinformatik II 49

Page 50: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

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.

Zum Datenschutz gehört die Abschirmung gegen Unberechtigte, aber auch deren Verfügbarkeit für Berechtigte.

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 BA und B vereinbaren zwei Zahlen g = 4 und p = 11

A wählt seinen privaten Schlüssel XA = 3 B wählt seinen privaten Schlüssel XB=4

A berechnet seinen öffentlichen Schlüssel B berechnet seinen öffentlichen SchlüsselYA = g XA mod p YB = g XB mod p

= 4 3 mod 11 = 64 mod 11 = 9 = 4 4 mod 11 = 256 mod 11 = 3

A sendet YA an B B sendet YB an A

H. Fritzsche, Wirtschaftsinformatik II 50

Page 51: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

A berechnet den Sitzungsschlüssel K: B berechnet den Sitzungsschlüssel K:K = YB

XA = 33 mod 11 = 27 mod 11 = 5 K = YAXB = 94 mod 11 = 6561 mod 11 = 5

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 + PortnummerIP-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.

H. Fritzsche, Wirtschaftsinformatik II 51

Page 52: Aufgabenstellung zum 1 - HTW Dresden - Hochschule für ...fritzsch/WI/wi_script04.doc · Web viewBeispiele: (sumoffen  0 (r(Kunden)) (ort = “Dortmund“ (r(Kunden)) Projektion

E. Tiemeyer, K. Konopasek: Unternehmensdatenbanken mit MS SQL Server und Access – planen, entwickeln, einsetzen. Markt+Technik Verlag, 2001.

H. Fritzsche, Wirtschaftsinformatik II 52