Microsoft Access
Microsoft Access [ˈækses] (auch MS Access) ist ein Datenbanksystem, welches die Verwaltung von Daten und die Entwicklung von Datenbankanwendungen ermöglicht. MS Access ist Bestandteil des Microsoft Office Professional-Pakets von Microsoft.MS Access existiert derzeit in der Version MS Access 2003. MS Access gibt es im Gegensatz zu anderen Office-Programmen von Microsoft nur für Windows.
MS Access speichert die Daten in ein so genanntes mdb-Dateiformat ab, wobei sowohl Elemente der Oberfläche als auch die Datenbanktabellen in einer monolithischen Datei landen. Es ist allerdings möglich, die Tabellendefinitionen und den Datenbestand sowie die Oberfläche in verschiedenen Dateien zu halten. Beim Einbinden bzw. Verknüpfen von externen Tabellen können auch Access-fremde Formate über ODBC angesprochen werden.
Im Gegensatz zu früheren PC-basierenden Datenbanksystemen unterstützt MS Access das Relationale Datenbankmodell. Um extern auf Access-Datenbanken zugreifen, eignet sich am besten die ebenfalls von Microsoft entwickelte ODBC-API.
MS Access mit der Jet-Engine als Datenbank-Backend eignet sich für kleinere bis mittlere Datenbanken. Um den Mehrbenutzerzugriff zu ermöglichen, erfolgen Schreibzugriffe in einer Access-Datenbank immer am Dateiende. Gelöschte oder abgeänderte Elemente bleiben als "Löcher" in der Datei stehen, bis die Access-Datei komprimiert wird. Durch schrittweise erweiterte unter anderem Cache-basierte Zugrifftechniken war es bereits ab Version 1.0 möglich, auch in Netzwerken beachtliche Zugriffsgeschwindigkeiten zu erreichen.
Der Betrieb von Access-Anwendungen im LAN ist jedoch an eine stabile Netzwerkumgebung gebunden. Bereits kleine Aussetzer lassen die Verbindung zum Backend abreissen. Ein Programmneustart ist dann notwendig. In der Praxis sind aber in standardmäßig eingerichten Netzwerken z.B. auf Ethernet-Basis keine größeren Probleme zu erwarten. Für den Einsatz in heterogenen Netzwerken oder gar im WLAN ist Access allerding wegen dieser statusgebundenen Zugriffstechnologie über das Dateisystem nicht geeignet.
Um diese Schwächen zu überwinden, hat Microsoft ab der Version 2000 Access so erweitert, dass Anwendungen direkt auf einer Datenbank, die auf einem SQL-Server betrieben wird, aufgebaut werden können, anstatt sie über ODBC einzubinden. Für diesen Zweck wurde ein neues Datei-Format mit der Endung adp entwickelt und der Dateizugriff von DAO (Data Access Objects) auf das vielseitigere ADO (Active Data Objects) umgestellt. ADO abstrahiert wesentlich stärker von den verwendeten Datenbankquellen als sein Vorgänger und kann daher eine wesentlich höhere Stabilität gewährleisten.
Mit Access wird ab Version 2000 eine kostenfreie Desktop-Version des Microsoft SQL-Servers ausgeliefert, die sich über die Access-Oberfläche verwalten lässt. Daher ist es nicht nötig, eine zusätzliche Programmlizenz zu erwerben. Allerdings sind die Verwaltungsmöglichkeiten stark eingeschränkt, weswegen für größere Projekte die Verwendung des MSSQL-Servers notwendig ist.
Durch die Bereitsstellung von visuellen Programmierobjekten, die speziell in Hinblick auf den Datenbankzugriff optimiert sind, ist es mit Access möglich, innerhalb von kurzer Zeit datenbankbasierte Anwendungen zu erstellen, ohne umfangreiche Programmierarbeiten durchführen zu müssen. Dabei ist es möglich, auf Skripte, die in einer speziellen Makro-Sprache erstellt werden müssen, zurückzugreifen. Um jedoch umfangreichere Anwendungen erstellen zu können, ist in Access eine Entwicklungsumgebung für Visual Basic for Applications integriert. Zur Verbesserung der Geschwindigkeit der Programmausführung kann der auf Basis von VBA erstellte Sourcecode kompiliert und zusätzlich als maschinennaher Pseudocode in der Datenbankdatei gespeichert werden.
Zur Erstellung einer Datenbank werden vom Entwickler mehrere Objektarten erstellt:
- Tabellen zur Speicherung der Daten
- Abfragen zur Aufbereitung der Daten
- Formulare zur Dateneingabe
- Berichte zur Darstellung der Daten
- Makros zur einfachen Automation
- Visual Basic Module zur Programmierung in Visual Basic for Applications (VBA)