Microsoft Access Database
Vorlage:Hinweisbaustein Die Microsoft Access Database ist das Standard-Datenbank-Format von Microsoft Access. Die Standard-Datei-Erweiterung ist „.mdb“ (seit Access 2007 auch „.accdb“). MDB ist die Abkürzung für Microsoft DataBase und ein proprietäres Dateiformat, welches eine dateibasierte Red-Jet-Datenbank darstellt. Da Microsoft keine öffentlich zugängliche Dokumentation über den internen Aufbau des Dateiformats bereitstellt, versuchen mehrere Open-Source-Projekte wie beispielsweise Jackcess (Java Library für MS Access) und MDB Tools, dieses zu verstehen und für Dritte plattformunabhängig zugänglich zu machen.<ref>Jackcess. In: jackcess.sourceforge.io. 26. Januar 2023, abgerufen am 19. Februar 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref>MDB Tools. In: mdbtools.github.io. Abgerufen am 19. Februar 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Unter Microsoft Windows können Programmierer über Data Access Objects (DAO), ActiveX Data Objects (ADODB/ADOX), ADO.NET, Open Database Connectivity (ODBC), Remote Data Objects (RDO), OLE DB oder via DB-Library auf derartige Datenbanken zugreifen.
Allgemeines
Nachdem Microsoft Access (Codename „CIRRUS“)<ref>Tony Goodhew: Jet Engine: History. In: avdf.com. November 1996, archiviert vom Vorlage:IconExternal am 29. Januar 1999; abgerufen am 19. Februar 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> 1992 erschien, hatte es in vier Jahren das bis dahin führende Datenbank-Format dBASE abgelöst.<ref>Artikel in PC-Welt, Ausgabe Mai 1996</ref> Das Datenbankformat bietet ab Version 1.0 (1992): Tabellen, referentielle Integrität, Check-Klauseln, Verschlüsselung, Benutzerverwaltung, Dialoge, Berichte, gespeicherte Abfragen und VBA-Interaktion (anfangs noch AccessBasic genannt) an.<ref>Der BibISBN-Eintrag Vorlage:BibISBN/3528053127 ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen neuen Eintrag an.</ref><ref>Informationen zur Struktur einer Access-Datenbank. In: support.microsoft.com. Abgerufen am 19. Februar 2023.</ref>
Es gibt zahlreiche Anwendungen, die dieses Datenbankformat verwenden, da die Komponenten und Schnittstellen der Jet-Engine integraler Bestandteil von Microsoft Windows sind und unabhängig davon, ob Access installiert ist oder nicht, von Anwendungen genutzt werden können.<ref>Der BibISBN-Eintrag Vorlage:BibISBN/1556158777 ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen neuen Eintrag an.</ref> Eine abgewandelte Form dieses Dateiformates wird auch in Microsoft MapPoint benutzt, oder als sogenannte Blue-Jet-Datenbank von Programmen und Systemkomponenten wie beispielsweise Microsoft Exchange, Active Directory oder Microsoft Update genutzt. Eine Vorgängerversion dieses Formates wurde ab 1989 mit Microsoft BASIC Professional Development System (PDS) Version 7.0 und 7.1 sowie mit Microsoft Visual Basic für DOS Version 1.0 als sogenannte ISAM-Datenbank mit entsprechenden Entwicklerwerkzeugen ausgeliefert.
Es existieren bereits viele unterschiedliche Versionen, die zum Teil nicht kompatibel zueinander sind. Zur Nutzung ist daher häufig ein Importfilter oder Konverter nötig.
Microsoft spricht immer von Access-Datenbank. Genauer gesagt handelt es sich – je nach Access-Version – um verschiedene Datenbanken. Access benutzt eine vorhandene Datenbank (sozusagen als Client) um seine Extra-Strukturen zu speichern:
- keine Access-Version benutzt die Jet-Datenbank Version 0.5 (ISAM mdb)
- Access-Version 1.0 benutzt die Jet-Datenbank Version 1.0
- Access-Version 1.1 benutzt die Jet-Datenbank Version 1.1
- Access-Version 2.0 benutzt die Jet-Datenbank Version 2.0
- Access-Version 7.0 benutzt die Jet-Datenbank Version 3.0
- Access-Version 8.0 benutzt die Jet-Datenbank Version 3.0
- Access-Version 9.0 benutzt die Jet-Datenbank Version 4.0 (mdb) oder den SQL-Server (adp)
- Access-Version 10.0 benutzt die Jet-Datenbank Version 4.0 (mdb) oder den SQL-Server (adp)
- Access-Version 11.0 benutzt die Jet-Datenbank Version 4.0 (mdb) oder den SQL-Server (adp)
- Access-Version 12.0 benutzt die Jet-Datenbank Version 4.0 (mdb) oder die Jet-Datenbank Version 12.0 (accdb) – benötigt ACE (Microsoft Access Database Engine 2010)
- Access-Version 14.0 benutzt die Jet-Datenbank Version 4.0 (mdb) oder die Jet-Datenbank Version 12.0 (accdb) – benötigt ACE (Microsoft Access Database Engine 2010)
Versionen
| Name / Alias | Exe -Typ Bits | Erscheinungsjahr | Beschreibung |
| „Access 0.5“ | 16 | 1990 | enthalten in Microsoft BASIC Professional Development System (PDS), 16 Bit, DOS-ISAM-Datenbank, Maximal-Größe 128 MB, Seitengröße 2 KB, lokaler Zeichensatz |
| Access 1.0 | 16 | 1992 | wählbarer Zeichensatz pro Feld |
| Access 1.1 | 16 | 1993 | maximale Datenbank-Größe 1 GB |
| Access 2.0 | 16 | 1994 | enthalten in Office Professional 4.3 |
| Access 7.0 / 95 | 32 | 1995 | enthalten in Office 95, 32 Bit |
| Access 8.0 / 97 | 32 | 1997 | enthalten in Office 97 |
| Access 9.0 / 2000 | 32 | 2000 | enthalten in Office 2000, maximale Datenbank-Größe 2 GB, Seitengröße 4 KB, Unicode (UCS2 oder UTF-8? bei UnicodeCompression) |
| Access 10.0 / 2002 / XP | 32 | 2002 | enthalten in Office XP |
| Access 11.0 / 2003 | 32 | 2003 | enthalten in Office 2003 |
| Access 12.0 / 2007 | 32 | 2007 | enthalten in Office 2007 |
| Access 14.0 / 2010 | 32 / 64 | 2010 | enthalten in Office 2010 |
| Access 15.0 / 2013 | 32 / 64 | 2013 | enthalten in Office 2013 |
In der Version „Access 0.5“ (mit DOS-ISAM-Datenbank) sind noch keine grafischen Werkzeuge enthalten, sondern lediglich die Jet-Tabellen.
Systemtabellen
Je nach Version der Jet-Engine und der darüberliegenden Access-Version entstehen unterschiedliche Systemtabellen:
| Access/Jet System-Tabellen und Ersteller nach Version | Jet 0.5 | Jet 1.0 | Jet 1.1 | Jet 2.0 | Jet 3.0 | Jet 4.0 | Jet 12.0 | Acc 1.0 1992 | Acc 1.1 1993 | Acc 2.0 1994 | Acc 7.0 1995 | Acc 8.0 1997 | Acc 9.0 2000 | Acc 10.0 2002 XP f2k | Acc 10.0 2002 XP f2k2 | Acc 11.0 2003 f2k | Acc 11.0 2003 f2k2 | Acc 12.0 2007 f2k | Acc 12.0 2007 f2k2 | Acc 12.0 2007 f2k7 | Acc 14.0 2010 | Inhalt |
| Benutzt Jet | 1.0 | 1.1 | 2.0 | 3.0 | 3.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 12.0 | ? | ||||||||
| Exe -Typ Bits | 16 | 16 | 16 | 16 | 32 | 32 | 32/64 | 16 | 16 | 16 | 32 | 32 | 32 | 32 | 32 | 32 | 32 | 32 | 32 | 32 | 32/64 | |
| MSysObjects | X | X | X | X | X | X | X | Hauptobjekte + Diagramme | ||||||||||||||
| MSysColumns | X | X | X | X | Spalten | |||||||||||||||||
| MSysIndexes | X | X | X | X | Indices | |||||||||||||||||
| MSysRelationships | X | X | X | X | X | X | X | Fremdschlüssel | ||||||||||||||
| MSysTempIndexes | X | ? | ||||||||||||||||||||
| MSysQueries | X | X | X | X | X | X | Abfragen-Bestandteile | |||||||||||||||
| MSysACEs | X | X | X | X | X | X | Objekt-Zugriffsrechte | |||||||||||||||
| MSysGroups | X | X | X | X | X | ? | Gruppenkonten | |||||||||||||||
| MSysAccounts | X | X | X | X | X | ? | Benutzerkonten | |||||||||||||||
| MSysComplexColumns | X | ? | ||||||||||||||||||||
| MSysMacros | X | X | X | Makros | ||||||||||||||||||
| MSysIMEXSpecs | O | O | O | X | O | O | O | O | O | O | O | O | O | ? | Import-Export-Jobs | |||||||
| MSysIMEXColumns | O | O | O | X | O | O | O | O | O | O | O | O | O | ? | Import-Export-Spalten | |||||||
| MSysModules | X | X | Module++ | |||||||||||||||||||
| MSysToolbars | X | Symbolleisten | ||||||||||||||||||||
| MSysModules2 | X | Module++ | ||||||||||||||||||||
| MSysCmdbars | O | Symbolleisten | ||||||||||||||||||||
| MSysAccessObjects | X | X | X | X | ? | binär frm rpt mcr bas | ||||||||||||||||
| MSysAccessStorage | X | X | X | X | ? | binär frm rpt mcr bas | ||||||||||||||||
| MSysAccessXML | ? | ? | ? | ? | ? | ? | ? | |||||||||||||||
| MSysNavPaneGroupCategories | X | X | X | ? | ? | |||||||||||||||||
| MSysNavPaneGroups | X | X | X | ? | ? | |||||||||||||||||
| MSysNavPaneObjectIDs | X | X | X | ? | ? | |||||||||||||||||
| MSysNavPaneGroupToObjects | X | X | X | ? | ? | |||||||||||||||||
Legende
| ||||||||||||||||||||||
Erweiterung auf SQL-Server
Eine MDB ist als Backend für größere Datenmengen ungeeignet, da ihre Größe aktuell maximal 2 GB betragen kann und maximal 255 Benutzer gleichzeitig auf die Datenbank zugreifen können.<ref>Access-Spezifikationen. In: support.microsoft.com. Abgerufen am 19. Februar 2023.</ref> Zudem steigt die Zugriffszeit bei gleichzeitiger Benutzung von mehreren Rechnern aus erheblich.
Diesen Nachteil hat Microsoft in der Weise zu kompensieren versucht, dass ab Version 2000 die sogenannte MSDE (Microsoft Data- oder Desktop-Engine) mit Office 2000 oder Visual Studio ausgeliefert wurde, eine im Leistungsumfang beschränkte, kostenfreie Version des Microsoft SQL Server. Mit SQL Server 2005 hat Microsoft die MSDE in Express Edition umbenannt. Von Version zu Version hat Microsoft auch die Einschränkungen gelockert, die aktuelle SQL Server 2022 Express Edition unterstützt 4 Prozessorkerne, 2 GB Arbeitsspeicher (1.410 MB Pufferpool plus jeweils 352 MB für den Segmentcache und den optimierten Datenspeicher) und eine maximale Datenbankgröße von 10 GB.<ref>Randolph West et al.: Editionen und unterstützte Features von SQL Server 2022. In: learn.microsoft.com. 20. Dezember 2022, abgerufen am 19. Februar 2023.</ref>
Die Umstellung auf SQL-Server als Backend-Datenbank ist seit jeher möglich mit dem sogenannten „Upsizing-Wizard“, der ab der Version 2000 fest eingebaut ist unter Extras | Datenbank-Dienstprogramme | Upsizing-Assistent. Dieser steht seit Version 2013 nicht mehr zur Verfügung. Die Übertragung kann jedoch mit Hilfe des Microsoft SQL Server Migration Assistant 8.6 für Access (SSMA) durchgeführt werden. Eine Anleitung hierzu findet sich bei Microsoft.
Weblinks
- Tips for Microsoft Access – Allen Browne’s Database and Training.
- MDB Tools auf GitHub – Sammlung von Open-Source-Werkzeugen und Bibliotheken für Access-Datenbanken.
Einzelnachweise
<references />