Mitarbeiterverwaltung mit der MSDE

Autor: André Minhorst und Michael Kessel, Duisburg

Je größer ein Unternehmen ist, desto mehr Daten für Kunden, Mitarbeiter, Geschäftspartner usw. gibt es zu verwalten. Dabei wächst der Aufwand z. B. zur Verwaltung der Mitarbeiterdaten mit steigender Mitarbeiterzahl. Dummerweise befinden sich in vielen Fällen längst nicht alle Informationen über einen Mitarbeiter an einer Stelle und vor allem sind die Daten meist öfters als nur einmal vorhanden. So pflegt die Buchhaltung Ihre eigenen Daten, und auch die Personalverwaltung kocht ihr eigenes Süppchen. Zusätzlich erschwert das Vorhandensein verschiedener Anwendungen die Datenhaltung und führt damit zu unterschiedlichen Problemen. Das können Sie verhindern, wenn Sie die Daten an einer einzigen Stelle halten und pflegen, z. B. mit einer gut organisierten Datenbank.

Speziell die Haltung von Mitarbeiterdaten bringt eine Menge Probleme mit sich, wenn einer oder mehrere der oben genannten Fälle eintreten. Vor allem die mehrfache Haltung von Daten des gleichen Mitarbeiters führt zu Problemen: Es ist schnell passiert, dass sich die Daten in dem einen Datentopf verändern, während die Anpassungen in den anderen Töpfen nicht vorgenommen werden. So führen die aufgetretenen Redundanzen schnell zu Inkonsistenzen.

Bild 1: Formular zur Verwaltung von Mitgliedern

Daher ist es wichtig, solche Daten nur an einer einzigen Stelle zu halten. Die Verwendung unterschiedlicher Anwendungen für verschiedene Teilbereiche wie z. B. Buchhaltung und Personalabteilung bringt aber in der Regel die verteilte und redundante Datenhaltung mit sich.

Ziel kann es daher nur sein, die Daten an einer Stelle zu sammeln und alle Anwendungen – falls erforderlich – mit geeigneten Schnittstellen auf die Daten zugreifen zu lassen.

Die hier beschriebene Muster-lösung konzentriert sich auf die Verwaltung der Grunddaten der Mitarbeiter einer fiktiven Firma.

Sie ermöglicht die Eingabe unterschiedlicher Daten sowie deren Ausgabe in Berichten.

Dazu gehören personenbezogene Daten wie die Adresse, Informationen über aktuelle und eventuell vorhandene frühere Beschäftigungsverhältnisse sowie über die Projekte der einzelnen Mitarbeiter (siehe Bild 1).

Hinweis

Der vorliegende Beitrag setzt das Vorhandensein von Access 2000 sowie die Installation der MSDE bzw. des SQL Servers voraus. Wie das funktioniert, können Sie im Beitrag Die Microsoft Data Engine der Ausgabe 1/2000 von Access im Unternehmen nachlesen. Sie finden den Beitrag im PDF-Format auf der Heft-CD.

Das ist aber nicht das Hauptaugenmerk des Beitrags, denn wie die überschrift erkennen lässt, soll die Datenbank auf der Microsoft Database Engine (MSDE) basieren – dem kleinen Bruder des Microsoft SQL Servers.

Im Vergleich zum Verwalten von Daten mit der Jet-Engine, die in herkömmlichen Access-Datenbanken Verwendung findet, ergeben sich nämlich einige Veränderungen.

So gibt es hier etwas andere Datentypen wie unter Access und der komplette Entwurf von Tabellen sieht etwas anders aus.

Statt des Objekttyps Abfragen verwendet der SQL Server Sichten und Gespeicherte Prozeduren, und die Darstellung und Bearbeitung von Daten in Formularen erweist sich mit dem SQL Server als längst nicht so einfach.

Schließlich bietet der SQL Server ein viel ausgereifteres Sicherheitssystem als die Jet-Engine. All diese Themen sollen im Zusammenhang mit der Mitarbeiterverwaltung besprochen werden.

Leider bietet der Rahmen eines einzelnen Beitrags nicht ausreichend Platz für die Besprechung aller Themen. Daher ist der vorliegende Beitrag der erste Teil einer Reihe von Beiträgen, die in loser Folge die Arbeit mit dem SQL Server bzw. der MSDE anhand der Mitarbeiterverwaltung beschreiben sollen.

Bevor Sie mit dem Erstellen der Tabellen beginnen, soll zunächst einmal das zugrunde liegende Datenmodell erläutert werden.

Die Tabelle tblMitarbeiter

Kernstück des Datenmodells ist die Tabelle tblMitarbeiter. In dieser Tabelle werden die Daten der Mitarbeiter wie Name, Anschrift, Geburtsdaten usw. behandelt, die unmittelbar mit der jeweiligen Person im Zusammenhang stehen.

Weitere Informationen, die sich auf das Arbeitsverhältnis beziehen, werden in nachfolgender Tabelle beschrieben – dabei handelt es sich vor allem um solche Informationen, die je nach Beschäftigung wechseln können. Eine Ausnahme ist die E-Mail-Adresse des Mitarbeiters: Sie soll immer gleich bleiben und wird daher in der Tabelle tblMitarbeiter gehalten.

Die Tabelle tblBeschaeftigungen

Die Tabelle tblBeschaeftigungen enthält Daten über das aktuelle Beschäftigungsverhältnis eines jeden Mitarbeiters. Hier können beispielsweise Informationen wie die Vertragslaufzeit, Probezeit, Art des Beschäftigungsverhältnisses, Position in der Firma usw. untergebracht werden.

Diese Tabelle ist vor allem sinnvoll, wenn Mitarbeiter bereits einmal für das Unternehmen gearbeitet haben und nach einer Tätigkeit für ein anderes Unternehmen wieder zurückkehren, oder um einfach festzuhalten, wann ein Mitarbeiter welche Position in welcher Abteilung innehatte.

Es kann dann für jedes Beschäftigungsverhältnis ein neuer Datensatz angelegt werden, der jeweils mit dem entsprechenden Eintrag in die Tabelle tblMitarbeiter verknüpft wird.

Die Tabelle tblProjekte

Um auch die Realisierung einer m:n-Beziehung in die Datenbank einfließen zu lassen, soll noch eine Projekttabelle erstellt werden. Sie soll lediglich einen Primärindex sowie den Projektnamen und Start- und Enddatum des Projektes enthalten. Natürlich können Sie jederzeit zusätzliche Felder unterbringen, um weitere Informationen zu speichern.

Die Tabelle tblMitarbeiterProjekte

Diese Tabelle dient der Verknüpfung von Mitarbeitern und Projekten. Der Hintergrund ist, dass es durchaus vorkommen kann, dass nicht nur einer, sondern mehrere Mitarbeiter an einem Projekt arbeiten. Außerdem ist auch der Fall vorstellbar, dass ein Mitarbeiter mehrere Projekte gleichzeitig bearbeitet. Mit der Tabelle tblMitarbeiterProjekte kann man jedem Projekt jeden Mitarbeiter zuweisen.

Die Tabelle enthält neben den beiden Feldern MitarbeiterID und ProjektID, die als zusammengesetzter Primärindex dienen und mit den beiden Tabellen tblMitarbeiter und tblProjekte verknüpft werden sollen, nur noch das Feld FunktionID. Dabei handelt es sich ebenfalls um ein Feld zur Realisierung einer Verknüpfung. Es dient zur Auswahl einer Funktion des jeweiligen Mitarbeiters in Zusammenhang mit dem ausgewählten Projekt.

Die Funktionen werden aus einer weiteren Tabelle ausgewählt, deren Aussehen später bei der Erstellung der Tabellen beschrieben wird.

Weitere Tabellen

Neben den genannten Tabellen gibt es eine Menge von Tabellen, die lediglich als Grundlage für Nachschlagefelder der Tabellen tblMitarbeiter und tblBeschaeftigungen dienen.

Ein Beispiel ist die Tabelle tblPositionen, in der die verschiedenen Positionen des Unternehmens beschrieben werden, die ein Mitarbeiter besetzen kann. Das Aussehen dieser Tabellen wird ebenfalls weiter hinten beschrieben.

Wenn Sie alle Vorbereitungen getroffen haben, also den SQL Server bzw. die MSDE installiert und gestartet haben, können Sie direkt mit dem Anlegen des Projektes beginnen.

Dazu wählen Sie direkt nach dem Starten von Access die Option Access-Datenbank-Assistenten, Seiten und Projekte aus und klicken auf die Schaltfläche OK (siehe Bild 2).

Bild 2: Anlegen eines neuen Projektes

Im nun erscheinenden Dialog Neu wählen Sie im Register Allgemein den Eintrag Projekt (Neue Datenbank) aus. Das bedeutet, dass Sie im SQL Server eine neue Datenbank für die Verwaltung der Mitarbeiterdaten anlegen und das aktuelle Access-Projekt als Frontend für diese Datenbank verwenden.

Mit der Option Projekt (Bestehende Datenbank) können Sie ein neues Frontend für eine bestehende Datenbank erstellen.

Im Fenster Neue Datenbankdatei wählen Sie nun den Speicherort für die Projektdaten mit der Endung .adp aus.

Im Anschluss daran legen Sie fest, auf welchem SQL Server die neue Datenbank angelegt werden soll und unter welchem Benutzernamen. Hier können Sie zunächst einmal den Benutzernamen sa wählen, ohne ein Kennwort eingeben zu müssen (siehe Bild 3).

Bild 3: Auswahl des Datenbankservers und des Benutzernamens

Hinweis

Bei dem Benutzerkonto mit dem Benutzer sa handelt es sich um ein Standardkonto, das die Erstellung von Datenbanken und den Entwurf der unterschiedlichen Datenbankobjekte erlaubt. Für die ersten Schritte ist dieses Konto praktikabel, Sie sollten aber schnellstmöglich ein neues Kennwort festlegen. Der Hintergrund ist, dass sonst beliebige andere Benutzer auf Ihre Datenbank zugreifen können.

Im Kombinationsfeld im oberen Bereich des Fensters wählen Sie den Rechner aus, auf dem sich der Datenbankserver befindet. Möglicherweise finden Sie hier keinen Eintrag vor: In diesem Fall sollten Sie überprüfen, ob der SQL Server auf dem gewünschten Rechner gestartet ist. Sie erkennen das an dem Symbol für den SQL Server im rechten Bereich der Taskleiste (siehe Bild 4).

Mit einem Doppelklick auf das Symbol starten Sie den SQL Server-Dienst-Manager. Hier können Sie die unterschiedlichen Dienste des SQL Servers starten.

Falls Sie die MSDE verwenden und auf dem lokalen Rechner installiert haben, erscheint statt des Rechnernamens der Eintrag (lokal).

Wenn der SQL Server ordnungsgemäß gestartet ist und dennoch nicht angezeigt wird, geben Sie seinen Namen einfach von Hand ein. Möglicherweise hat Access den SQL Server noch nicht erkannt.

Access schlägt automatisch einen Eintrag für den Namen der SQL Server-Datenbank vor. Diesen können Sie wahlweise übernehmen oder einen anderen auswählen – im vorliegenden Fall soll die Datenbank Mitarbeiterverwaltung heißen.

Zwei Mausklicks weiter zeigt Access Ihnen die laufende Erstellung der neuen SQL Server-Datenbank an (siehe Bild 5).

Fertig! Access empfängt Sie mit dem Datenbankfenster des neuen Datenbankprojektes, dass fast wie das Datenbankfenster herkömmlicher Access-Datenbanken aussieht. Aber auch nur fast, denn es enthält keinen Eintrag mehr für die Abfragen, stattdessen aber für Sichten, Datenbankdiagramme und Gespeicherte Prozeduren. Was es mit diesen neuen Objekten auf sich hat, erfahren Sie in den nächsten Kapiteln.

Bild 4: Der Server-Dienst-Manager und sein Symbol in der Taskleiste

Bild 5: Die Erstellung der SQL Server-Datenbank läuft.

Die Tabellenerstellung in Access-Projekten ist anders als in herkömmlichen Access-Datenbanken. Der Grund liegt hauptsächlich in der etwas anderen Struktur von SQL Server-Tabellen gegenüber den Tabellen in Jet-Datenbanken.

Erstellen der Tabelle tblMitarbeiter

Der Unterschied der Tabellenerstellung wird direkt in der Entwurfsansicht einer neuen Tabelle deutlich, die Sie mit einem Doppelklick auf den Eintrag Erstellt eine Tabelle in der Entwurfsansicht im Register Tabellen des Datenbankfensters anzeigen können.

Eigenschaft

Beschreibung

Spaltenname

Bezeichnung des Feldes

Datentyp

Datentyp des Feldes

Größe

Vom Datentyp abhängiger, reservierter Speicherplatz für den Feldinhalt. Kann in manchen Fällen vom Benutzer festgelegt werden, z. B. bei Zeichenketten.

Genauigkeit

Genauigkeit bestimmter Zahlendatentypen mit Nachkommastellen

Dezimalstellen

Anzahl der Dezimalstellen, z. B. bei Währungsangaben

Null zulassen

Gibt an, ob ein Wert für dieses Feld eingegeben werden muss.

Standardwert

Wert, der beim Neuanlegen eines Datensatzes automatisch für das Feld angegeben wird. Verhindert das Auftreten von Null-Werten.

Identität

Entspricht etwa dem Autowert bei Access-Datenbanken.

ID-Startwert

Startwert des Autowertes

ID-Schrittweite

Schrittweite des Autowertes

Ist RowGUID

Eine Spalte der Tabelle kann als RowGuid verwendet werden. Ein RowGuid ist ein global einzigartiger Wert, der z. B. für die Replikation und Synchronisation gebraucht wird.

Tab. 1: Bestandteil einer Felddefinition

Im Gegensatz zu Access-Datenbanken werden Sie hier direkt beim Anlegen der Datenbank dazu aufgefordert, den Tabellennamen anzugeben, unter dem die Tabelle gespeichert werden soll.

Geben Sie den Namen tblMitarbeiter ein und werfen Sie dann einen Blick auf die Entwurfsansicht. Es fehlen nicht nur die Eigenschaften herkömmlicher Datenbanken, es können auch keine Nachschlagefelder definiert werden. Dafür enthält das Entwurfsraster einige Felder, die über Feldname, Felddatentyp und Beschreibung hinausgehen. Tab. 1 enthält eine Auflistung der Eigenschaften sowie ihrer Funktionen.

Festlegen eines Primärindexfeldes

Als Erstes legen Sie ein Feld namens MitarbeiterID an. Dieses soll als Primärindex der Tabelle dienen. Dazu geben Sie zunächst den Namen des Feldes ein.

Bei der anschließenden Auswahl des Datentyps tritt das erste Problem auf: Das Kombinationsfeld bietet keinen Autowert an. Der Grund liegt da-rin, dass hier nur echte Datentypen angeboten werden. Der von Access-Datenbanken bekannte Autowert ist schließlich auch nur ein Long Integer-Wert, der von Datensatz zu Datensatz inkrementell erhöht wird.

Aber auch der Datentyp Long Integer lässt sich hier nicht finden. Der SQL Server verwendet fast durchgängig andere oder anders benannte Datentypen als herkömmliche Access-Datenbanken.

Eine Beschreibung aller möglichen Datentypen würde den Rahmen des vorliegenden Beitrags sprengen, daher werden in Tab. 2 nur die in der Beispieldatenbank verwendeten Datentypen erläutert. Für eine ausführliche Beschreibung verwenden Sie bitte die Online-Hilfe des SQL Servers und suchen nach dem Stichwort Datentypen.

Um den Autowert mit dem SQL Server zu realisieren, stellen Sie die Feldeigenschaften wie in Bild 6 ein. Gleichzeitig können Sie auch die anderen Felder wie in der Abbildung anlegen.

Bild 6: Entwurfsansicht der Tabelle tblMitarbeiter

Datentyp

Beschreibung

bit

Ganze Zahlen mit dem Wert 0 oder 1, auch für Ja/Nein-Werte einzusetzen

int

Ganze Zahlen von -232 bis 232-1

smallint

Ganze Zahlen von -215 bis 215-1

tinyint

Ganze Zahlen von 0 bis 255

char(n)

Zeichenkette mit fester Zeichenzahl (Rest wird mit Leerzeichen aufgefüllt)

varchar(n)

Zeichenkette mit variabler Zeichenzahl

datetime

Datumsangabe mit hoher Genauigkeit (3,33msek)

smalldatetime

Datumsangabe mit ausreichender Genauigkeit (1min)

Tab. 2: Einige Datentypen und deren Verwendung

Zu guter Letzt definieren Sie das Primärschlüsselfeld noch als solches: Dazu markieren Sie wie bei Access-Datenbanken einfach das gewünschte Feld und klicken mit der Maus auf das Primärschlüssel-Symbol.

Festlegen weiterer Indizes

Auch mit dem SQL Server können Sie neben dem Primärindex noch weitere Indizes anlegen.

Warum aber sollten Sie das eigentlich tun Es gibt mehrere Gründe: Neben der Eigenschaft als Primärindex gibt es noch weitere Aufgaben, die Indizes erfüllen.

Bild 7: Anlegen eines neuen Index

Weitere Indizes dienen hauptsächlich dazu, eindeutige Felder festzulegen und damit doppelte Einträge zu verhindern, oder einfach nur, um die Inhalte eines Feldes zu indizieren, damit Such- oder Sortiervorgänge optimiert werden können.

Um weitere Indizes anzulegen, wählen Sie in der Entwurfsansicht der Tabelle tblBeschaeftigungen aus dem Kontextmenü den Eintrag Eigenschaften aus.

Wechseln Sie im nun erscheinenden Fenster (siehe Bild 7) in das Register Indizes/Schlüssel. Hier finden Sie bereits einen Index vor. Dabei handelt es sich um den Primärindex, den Sie zuvor in der Entwurfsansicht festgelegt haben. Nun werden Sie zwei weitere Indizes anlegen.

Anlegen eines eindeutigen Index

Ein gutes Beispiel für einen eindeutigen Index ist das Feld E-Mail der Tabelle tblMitarbeiter. Es muss auf jeden Fall eindeutig sein, damit nicht zwei Mitarbeiter die gleiche E-Mail-Adresse haben.

Bild 8: Eine Tabelle in der Datenblattansicht

Mit einem Mausklick auf die Schaltfläche Neu legen Sie einen neuen Index an. Er erhält automatisch den Namen IX_tblMitarbeiter. In der Tabelle Spaltenname wählen Sie nun das zu indizierende Feld aus – also EMail.

Um den Index als eindeutig zu kennzeichnen, müssen Sie noch folgende Einstellung vornehmen: Setzen Sie einen Haken in das Kontrollkästchen UNIQUE erstellen und wählen Sie die Option Index aus. Um doppelte Werte auszuschließen, setzen Sie zusätzlich ein Häkchen in das Kontrollkästchen Doppelte Schlüssel ignorieren.

Anlegen eines Suchindex

Wenn Sie ein Feld als Suchindex festlegen möchten, um schnell einen bestimmten Wert in diesem Feld zu finden, gehen Sie ähnlich wie bei der Erstellung eines eindeutigen Schlüssels vor.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar