Access 2000 und MS SQL Server im Teamwork von Irene Bauder, Jürgen Bär 1. Auflage Hanser München 2000 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21473 6 Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
172 Eine MS SQL Server-Datenbank in Access bearbeiten 6.2.2 Eine neue Tabelle im Datenbankdiagramm erstellen Um den Entwurf von Tabellen, die in das Datenbankdiagramm eingefügt wurden, zu bearbeiten, brauchen Sie nicht erst in das Datenbankfenster zu wechseln und hierüber die Tabelle in der Entwurfsansicht zu öffnen. Schneller und einfacher können Sie die Änderungen direkt im Diagrammfenster vornehmen. Dasselbe gilt für die Erstellung von zusätzlichen Tabellen. In einem Datenbankdiagramm kann auch eine neue Tabelle angelegt werden. In der Beispiel-Datenbank Firma fehlt noch die Tabelle Projektauswertung. 1. Lösen Sie im Menü DIAGRAMM den Menüpunkt NEUE TABELLE aus. Diesen Menüpunkt finden Sie auch im Kontextmenü, wenn Sie eine leere Stelle im Datenbankdiagramm- Fenster mit der rechten Maustaste anklicken. 2. Schreiben Sie den Namen Projektauswertung der neuen Tabelle und bestätigen Sie ihn mit OK. Die neue Tabelle wird in der Ansicht Spalteneigenschaften dargestellt. 3. Tragen Sie nun nacheinander die vier Felder Mitarbeiter_nr, Projekt_nr, Aufgabe und Beginn mit ihren Datentypen ein, wie Sie es aus der Abbildung erkennen können. 4. Setzen Sie anschließend den Primärschlüssel, der in diesem Beispiel aus den beiden Feldern Mitarbeiter_nr und Projekt_nr besteht. 5. Speichern Sie das Datenbankdiagramm und vergeben Sie einen Namen für dieses Diagramm. Bevor die eigentliche Sicherung erfolgt, werden alle Tabellen aufgelistet, die geändert wurden. So können Sie sich an dieser Stelle immer noch für oder gegen die gesamte Speicherung entscheiden. Bild 6.8: Eine neue Tabelle im Datenbankdiagramm anlegen
Datenbankdiagramme 173 Eine Tabelle aus dem Datenbankdiagramm entfernen Es gibt zwei Möglichkeiten, eine Tabelle aus einem Datenbankdiagramm zu entfernen. Beide Menüpunkte finden Sie im Kontextmenü, wenn Sie die Tabelle mit der rechten Maustaste anklicken. TABELLE AUSBLENDEN: Die Tabelle wird nur aus diesem Datenbankdiagramm entfernt. Sie kann jederzeit wieder über das Fenster Tabelle anzeigen geholt werden. TABELLE AUS DATENBANK LÖSCHEN: Die Tabelle wird aus der kompletten MS SQL Server-Datenbank und somit auch aus allen anderen Datenbankdiagrammen entfernt. Der Löschvorgang wird aber erst endgültig durchgeführt, wenn Sie das Datenbankdiagramm speichern. Falls Sie ein komplettes Datenbankdiagramm löschen, entfernen Sie nicht die in diesem Diagramm angezeigten Tabellen, da es sich hier nur um Verweise, nicht um die Tabellen selber handelt. 6.2.3 Beziehungen zwischen Tabellen erstellen und bearbeiten Beziehungen zwischen Tabellen können auf ähnliche Weise wie im Beziehungsfenster einer Access-Datenbank erstellt werden. Bis jetzt besitzen die vier Tabellen Abteilung, Mitarbeiter, Projekt und Projektauswertung im Datenbankdiagramm noch keine Beziehungen zueinander. Um die Beziehung zwischen den Tabellen Abteilung und Mitarbeiter anzulegen, gehen Sie folgendermaßen vor: 1. Klicken Sie in der Tabelle Abteilung den Zeilenmarkierer links neben dem Feld abt_nr an, das die 1-Seite der Beziehung darstellen soll. Normalerweise beginnt man bei der 1-Seite. Bild 6.9: Eine Beziehung zwischen zwei Tabellen erstellen
174 Eine MS SQL Server-Datenbank in Access bearbeiten 2. Ziehen Sie mit gedrückter Maustaste den Mauszeiger auf das entsprechende Feld Abteilungs_nr in der Tabelle Mitarbeiter. Beim Loslassen der Maus wird das Dialogfeld Beziehung erstellen eingeblendet. 3. Überprüfen Sie, ob die richtigen Felder bei der Primärschlüsseltabelle (Mastertabelle) und der Fremdschlüsseltabelle (Detailtabelle) eingetragen sind. In diesem Beispiel muss es immer die Abteilungsnummer sein. Über drei Kontrollkästchen können Sie zusätzliche Optionen einstellen: Vorhandene Daten bei Erstellung überprüfen : Wenn Sie dieses Kontrollkästchen einschalten, dürfen im Verbindungsfeld ( Abteilungs_nr ) der Detailtabelle ( Mitarbeiter ) nur Werte enthalten sein, die es im entsprechenden Feld ( abt_nr ) in der Mastertabelle ( Abteilung ) bereits gibt. Ist dies nicht der Fall, und Sie speichern das Datenbankdiagramm erhalten Sie eine Fehlermeldung. Es wird Ihnen mitgeteilt, dass gegen die COLUMN FOREIGN KEY -Einschränkung verstoßen wird. Die Beziehung kann nicht gespeichert werden. Sie müssen entweder das Kontrollkästchen ausschalten, dann ist aber auch keine referentielle Integrität gegeben, oder Sie korrigieren in der Fremdschlüsseltabelle die Daten. Beziehung für INSERT und UPDATE aktivieren : Für die neuen Daten wird die referentielle Integrität über dieses Kontrollkästchen eingestellt. Durch das Setzen können in die Detailtabelle Mitarbeiter nur Werte in das Beziehungsfeld Abteilungs_nr eingegeben werden, wenn diese Werte bereits in der Primärschlüsseltabelle Abteilung vorhanden sind. Die referentielle Integrität berücksichtigt hierbei keine Lösch- oder Aktualisierungsweitergabe. Beziehung für Replikation aktivieren : Die referentielle Integrität wird überprüft, wenn bei der Replikation die Detailtabelle in eine andere Datenbank kopiert wird. 4. Wählen Sie die OK -Schaltfläche, damit die Beziehung hergestellt wird. 5. Erst wenn Sie das Datenbankdiagramm über den Menüpunkt SPEICHERN im Menü DATEI oder über das Symbol in der Symbolleiste speichern, wird die Beziehung fest in die MS SQL Server-Datenbank geschrieben. 6. In einem Meldungsfenster werden die beiden Tabellen, zwischen denen Sie die Beziehung angelegt haben, vor dem endgültigen Speichern angezeigt. Sie werden noch einmal gefragt, ob Sie fortfahren wollen. Bestätigen Sie diese Meldung positiv. Alle Beziehungen, die eine Tabelle besitzt, können Sie sich im Dialogfeld Eigenschaften anzeigen lassen, um sie eventuell auch zu verändern. Öffnen Sie dazu die Tabelle in der Entwurfsansicht und wählen Sie die Schaltfläche Eigenschaften in der Symbolleiste. Wenn Sie sich im Datenbankdiagramm befinden, können Sie die Tabelle auch mit der rechten Maustaste anklicken und den Menüpunkt EIGENSCHAFTEN aufrufen. Holen Sie sich das Register Beziehungen im Dialogfeld Eigenschaften in den Vordergrund. Jede Beziehung besitzt einen Namen. Beim Anlegen einer Beziehung wird der Name standardmäßig aus der Vorsilbe FK (Foreign Key) und den beiden Tabellennamen gebildet, die jeweils durch einen Unterstrich voneinander getrennt sind. Die zuvor angelegte Beziehung heißt somit FK_Mitarbeiter_Abteilung. Natürlich können Sie diesen Namen im Textfeld Beziehungsname auch ändern.
Datenbankdiagramme 175 Wenn Sie die Beziehungsnamen im Datenbankdiagramm angezeigt haben möchten, schalten Sie im Menü DIAGRAMM den Menüpunkt BEZIEHUNGSBEZEICHNUNGEN ANZEIGEN ein. Nachdem Sie die Beziehung zwischen den beiden Tabellen Abteilung und Mitarbeiter hergestellt haben, sollten Sie dasselbe für die zwei restlichen Tabellen Projekt und Projektauswertung durchführen. Dabei stellt die Tabelle Projekt die 1-Seite der Beziehung dar. Das Verbindungsfeld ist das Feld Projekt_nr. Zwischen den beiden Tabellen Mitarbeiter und Projektauswertung wird noch keine Beziehung erstellt. Sie wird später über Trigger realisiert. Wenn eine Primärschlüsseltabelle zu mehreren Fremdschlüsseltabellen eine Beziehung besitzt, können Sie diese Zusammenhänge übersichtlich in einem eigenen Datenbankdiagramm darstellen. In dieses Diagramm fügen Sie zu Beginn nur die Mastertabelle ein. Anschließend lösen Sie im Kontextmenü dieser Tabelle den Menüpunkt DETAILTABELLEN HINZUFÜGEN aus. Dadurch werden automatisch alle Tabellen der n-seite in dem Diagramm angezeigt. Diese Methode ist um einiges schneller als das Ergänzen der Detailtabellen über das Fenster Tabelle anzeigen. 6.2.4 Eine Prüfeinschränkung bei einem Tabellenfeld ergänzen Gültigkeitsregeln werden in einer Access-Tabelle in der Entwurfsansicht beim gewünschten Feld definiert. Da die Feldeigenschaften in einer MS SQL Server-Tabelle nicht so wie in Access existieren, erfolgt die Festlegung einer solchen Prüfeinschränkung ein wenig anders. In der Tabelle Abteilung sollen die Städte eingeschränkt werden. Ab sofort sind nur noch die drei Städte München, Hamburg und Frankfurt erlaubt. Diese Aufgabe können Sie entweder aus dem Tabellenentwurf oder vom Datenbankdiagramm aus durchführen. 1. Im Datenbankdiagramm klicken Sie die Tabelle Abteilung mit der rechten Maustaste an und rufen dann den Menüpunkt EIGENSCHAFTEN auf. 2. In dem bereits bekannten Dialogfeld Eigenschaften holen Sie das Register Tabellen in den Vordergrund. 3. Drücken Sie die Schaltfläche Neu in dem Bereich CHECK-Einschränkungen für Tabellen und Spalten. 4. Tragen Sie in das mehrzeilige Textfeld den gewünschten Einschränkungsausdruck ein. In diesem Beispiel lautet er: [stadt] = 'München' or [stadt] = 'Hamburg' or [stadt] = 'Frankfurt' 5. Bei Bedarf ändern Sie noch den Einschränkungsnamen. Standardmäßig setzt er sich aus der Vorsilbe CK (Check) und dem Namen der Tabelle zusammen. 6. Speichern Sie das Datenbankdiagramm beziehungsweise den Tabellenentwurf. Wenn das Kontrollkästchen Vorhandene Daten bei Erstellung überprüfen eingeschaltet ist, tritt ein Fehler beim Speichern auf, falls es bereits eine andere Stadt als die drei genannten in den bestehenden Datensätzen gibt. In diesem Fall müssen Sie das Kontrollkästchen ausschalten oder die Städte an die Einschränkung anpassen.
176 Eine MS SQL Server-Datenbank in Access bearbeiten Bild 6.10: Eine Check -Einschränkung für ein Tabellenfeld festlegen Bei der Eingabe von Daten in der Datenblattansicht der Tabelle wird die auf diese Weise vorgenommene Einschränkung immer erst beim Speichern des gesamten Datensatzes überprüft. Bei Verwendung der Feldeigenschaft Gültigkeitsregel in einer Access-Tabelle erfolgt die Überprüfung hingegen sofort beim Verlassen des Feldes. Um diese Funktionalität in einem Access-Projekt zu bekommen, müssen Sie ein Formular über die MS SQL Server- Tabelle mit der Check -Einschränkung anlegen und für das entsprechende Textfeld eine Gültigkeitsregel definieren. Das fertige Datenbankdiagramm finden Sie im Access-Projekt Firma unter dem Namen Alle Tabellen gespeichert. Nach dem Festlegen der Beziehungen können die vier Tabellen mit Daten gefüllt werden. Für die Beispiel-Datenbank Firma gibt es dazu die beiden gespeicherten Prozeduren Abteilung_Mitarbeiter_füllen und Projekt_Projektauswertung_füllen. Die zuerst genannte Prozedur wurde bereits in Kapitel 4.3 verwendet.