Datenbank

Eine Datenbank ist im weitesten Sinne eine geordnete Ansammlung von Daten. In EDV-gestützten Systemen ist eine Datenbank eine Gruppe aufeinander bezogener Tabellen und der damit verbundenen Dateien,  die ein Verfahren zum Verwalten und zur Speicherung von grossen Datenmengen bereitstellen.

Datenbanksystem
Das Datenbanksystem (DBS, ~ Gesamtsystem)  einer elektronischen Datenverwaltung beinhaltet das Datenbankmanagementsystem (DBMS), die zentrale Verwaltungsstelle eines Datenbanksystems, die eigentliche DataBase (Datenbasis), welche die physikalischen Strukturen der Datensammlungen  darstellt und die dritte Komponente, die Kommunikationsschnittstelle (Data-Base-Communication-Interface), welche dem Benutzer den Dialog mit dem Datenbanksystem erlaubt. Zu den wesentlichen Aufgaben eines Datenbanksystems  gehört die strukturierte Erfassung von Informationen in vielen Bereichen der Wissenschaft, Wirtschaft und Verwaltung. 

Datenbankmanagementsystem (DBMS)
Das Datenbankmanagementsystem kümmert sich im Speziellen um die Erstellung, Editierung und Verknüpfung der Datenfelder. Weiterhin  ermöglicht es dem Anwender unterschiedliche Sichten (Views) auf die Datensätze zu erstellen durch Filterung und Sortierung der Daten (komplexe Suchanfragen). Weitere Aufgaben sind das Transaktionsmanagement zur  Verhinderung von INSERT-, UPDATE- und DELETE-Anomalien oder zur Verhinderung eines Deadlocks.

Datenbanktypen
Die bekanntesten Datenbanktypen sind: Hierarchische DatenbankNetzwerkdatenbank und die heute am meisten verbreitete Relationale Datenbank. Darüber hinaus erfreut sich die Objektrelationale Datenbank (ORDB) einer wachsenden Beliebtheit. Für spezielle Anwendungen mit vielen, großen Transaktionen sind NoSQL  Datenbanken sinnvoll.

Relationale Datenbanken
Relationale Datenbanken werden durch das Entity-Relationship-Modell (ERM) modelliert. Sie liegen in Tabellenform vor und sind untereinander durch Relationenalgebra verknüpfbar.  Redundanzen werden durch die Normalenformen vermieden. Um das Datenbankmanagement kümmert sich das RDBMS (Relationales Datenbankmanagementsystem). Bei  Objektrelationalen Datenbanken entsprechend das ORDBMS (Objektrelationales - Datenbankmanagementsystem).

Normierungsgremien für Datenbanken
Normierungsgremien für Datenbanken sind: 
CODASYL (Conference on Data Systems Languages)
ANSI-SPARC  (American National Standards Institute - Standards Planning and Requirements Committee).

Die ANSI-SPARC-Architektur
Die ANSI-SPARC-Architektur (auch 3-Schema-Architektur) definiert 3 Ebenen zur Beschreibung eines Datenbankschemas:  Interne Ebene (auch physische Ebene): beschreibt die Art und Weise wie Daten an welchen Orten gespeichert sind.  Design-Ziel der Internen Ebenenbeschreibung ist die Leistungsoptimierung. Konzeptuelle Ebene: beschreibt welche Daten gespeichert sind und die Beziehungen der Daten untereinander. Design-Ziel des Konzeptuellen Datenbankschemas ist  die redundanzfreie Speicherung der Daten. Die Externe Ebene soll verschiedene Sichten (Views) auf die Daten bereitstellen. Es werden verschiedene Masken und Schnittstellen angeboten.                         
Siehe auch:    1-1-Verbindung   1-n-Verbindung   Normalform   Schlüssel   Referentielle-Integrität   Transaktion   Konsistenz   NoSQL   Google-BigTable   Verteilte-Datenbank


  Es wurden weitere Begriffe gefunden:


  MySQL
Eine MySQL Datenbank wird hier über die serverseitige Scriptsprache PHP angesprochen. Eine MySQL Datenbank wird hier über die serverseitige Scriptsprache PHP angesprochen.
MySQL ist ein freies Datenbanksystem auf SQL (Structured Query Language) Basis, lizenziert durch die GPL, auch eine kommerzielle Lizenzierung ist möglich (Duales Lizenzsystem). 1994 entwickelt durch Michael (Monty) Widenius, David Axmark  und Alan Larsson als Weiterentwicklung einer selbstentwickelten ISAM-Engine wird MySQL heute von der schwedischen Firma MySQL AB, die von den Entwicklern gegründet wurde, weiterentwickelt. MySQL ist das populärste Open Source Datenbanksystem und  arbeitet gut mit der Scriptsprache PHP zusammen. Unterstützt werden die Betriebssysteme Unix, Linux, Windows, Mac OS X, Open VMS und i5/OS. Es werden auch i.V.m. mit dem Apache Server ganze Installationspakete angeboten (XAMPP (WAMPP, LAMPP, MAMPP)  je nach OS. 2003 wurde MySQL in SAP integriert (MaxDB). In PHP ist auch das MySQL Administrationsprogramm phpMyAdmin geschrieben.

Storage-Engines
MySQL unterstützt mehrere Storage-Engines: MyISAM, Berkeley DB, InnoDB, MEMORY, DB2 unter i5/OS,  MERGE, BLACKHOLE, FEDERATED, ARCHIVE, NDB (Network Data Base) und Falcon. MyISAM ist eine Weiterentwicklung von ISAM und verfügt über schnelle Zugriffe auf Tabellen und Indizes sowie über Volltextsuche. Die Transaktionssicherung wurde weggelassen;  MyISAM unterstützt keine referentielle Integrität und keinen Rollback. Referentielle Integrität und Rollbacks werden hingegen von InnoDB unterstützt. InnoDB (Innobase Oy) genügt weitesgehend den ACID Kriterien und ist in der  Lage, Fremdschlüssel-Beziehungen zu überprüfen. ORACLE hat Innobase Oy 2005 übernommen. Die NDB-Implementierung ist eine kommerzielle Implementierung der MySQL-Cluster Technologie (NDB-Cluster). Mit ARCHIVE sollen  grosse Tabellen und Datenmengen unterstützt werden. Indizes werden nicht unterstützt um Speicherplatz zu sparen, ebenso werden nur SELECT und INSERT Abfragen unterstützt. Einzufügende Daten werden zunächst in einem Kompressionspuffer  zwischengespeichert und vor der INSERT Operation mit dem ermittelten optimalen Kompressionsalgorithmus komprimiert. Die FEDERATED Variante ermöglicht die transaktionssichere Speicherung von Daten auf einem anderen Server.  Das Prinzip Föderativer Informationssystem kommt zur Anwendung: der Server, von dem die Operationen abgeschickt werden, fungiert als Client und hat über die FEDERATED-Engine Zugriff auf den (Remote) Server,  auf dem auf FEDERATED-Tabellen ebenfalls zugegriffen werden kann. Die Berkeley DB (BDB) wurde von Sleepycat Software entwickelt (Sleepycat wurde 2006 ebenfalls von ORACLE aufgekauft) und bietet DB-APIs zu C, C++, Java, Python, Perl sowie der  Tool Command Language (TCL), einer Open Source Scriptsprache und weiteren Programmiersprachen. Die BDB ist eine eingebettete (embedded) DB-API-Sammlung und bietet Transaktionssicherheit sowie die Möglichkeit sehr grosse  Datensätze (bis zu 4 GByte) und Tabellen (bis zu 256 Terabyte) zu erstellen, da die Datenzugriffe ähnlich wie bei einem Dateisystem funktionieren und somit keinerlei Beschränkung bezüglich der Speicherungsart unterliegen.  BDB bietet weiterhin Möglichkeiten des Daten-Recovery (Hot-Backups (Backups zur Laufzeit), Replikation (Datenspeicherung auf verschiedenen Servern zur gleichen Zeit)) sowie Locking-Mechanismen. Durch das  Berkeley XML Interface können XML Dokumente geparst werden: damit sind die XML Abfragesprachen XQuery und XPath für Datenbankabfragen einsetzbar. Die BLACKHOLE-Engine dient zur Überprüfung der SQL-Syntax und zum Schreiben eines Binär-Logs.  Da die Daten nicht gespeichert werden, können Syntaxprüfungen ohne Belegung von zusätzlichem Speicherplatz durchgeführt werden. BLACKHOLE wird daher eingesetzt zur Syntaxprüfung von  MySQL-Dumps, zum Vergleich von Binärlogs auf den Master- und Slave Servern bei einer Datenreplikation und zur Zeitmessungen für das Schreiben eines Binär-Logs. Mit der MERGE-Engine kann man mehrere MyISAM Tabellen mit derselben Stuktur  zusammenfassen und Transaktionen darauf ausführen. Bei DB/2 unter dem IBM System i5 fungiert DB/2 als Datenbank-Engine für MySQL.

Falcon-Storage-Engine
Ab MySQL 6.0 wird mit Falcon eine neue MySQL-Storage-Engine erscheinen, die u.a.  Transaktionssicherheit verspricht. Falcon wird entwickelt von Jim Starkey (InterBase) und seiner Firma Netfastructure, die zu diesem Zweck von MySQL AB aufgekauft wurde. Dabei wird besonders an Web 2.0 Anwendungen gedacht.

MVCC
Falcon unterstützt  MultiVersion Concurrency Control (MVCC), was es erlaubt, Datensätze ohne Row-Level-Locking zu aktualisieren. Falcon ist geeignet für transaktionsbasierte Anwendungen mit hohem Datenverkehr. MVCC ist eine effiziente Methode, um bei einer  relationalen Datenbank viele gleichzeitige Zugriffe zu ermöglichen, ohne die Datenkonsistenz zu gefährden oder in eine Deadlock-Situation zu geraten. Um das zu realisieren verwendet MVCC Zeitstempel und sich automatisch erhöhende Transaktions-IDs:  dadurch werden Transaktionen serialisiert und keine Transaktion muss auf die andere warten. Die verschiedenen Objektversionen von einer Transaktion mit dem entsprechendem Zeitstempel werden von der DB-Engine nach einem ausgeklügeltem System verwaltet.  Beim Row Level Locking wird nur ein Teil einer Datenbank während einer Transaktion gesperrt. Dadurch können sich mehrere Benutzer einen Teil der Datenbank teilen. Dies hat Vorteile bei hohen Benutzerzahlen. Row-Level Locking benötigt ein gutes  Transaktionssystem, da es sonst zu viele Row-Level Locks (respektive Column Level Locks) gibt, welche die Performance der DB herabsetzen. Das Transaktionsmanagement hat die Aufgabe, die Schreibzugriffe zu verzögern und zu sammeln, um sie dann  "in einem Rutsch" in die DB zu schreiben. Falcon benötigt dann dank MVCC kein Locking während einer Update- oder Insert-Operation. Weiterhin verwendet Falcon erweiterte B-Baum-Indizes sowie Kompressionsalgorithmen zur Speicherung.  Die Kompression und Dekompression zur Speicherung der Daten auf der Festplatte erfolgt im Speichervorgang selber ("On-the-Fly"). Durch Verwendung eines Caches für Daten und Indizes besteht keine Notwendigkeit,  Index-Daten von der Festplatte zu laden. Falcon ist speziell für 64-Bit Prozessoren ausgelegt, die mit vielen Threads, CPU-Kernen oder Arbeitsspeicher umgehen können.

B-Baum-Indize
Ein B-Baum-Indize ist eine Daten- und Indexstruktur die oft in  Datenbanken und Dateisystemen verwendet wird. Es handelt sich um einen immer vollständig balancierten Baum, der Daten sortiert nach Schlüsseln speichert. MySQL Tabellen können mit unterschiedlichen Verfahren partitioniert werden:  Range-, List-, Key- und Hash-Partitionierung sowie die Bildung von Unterpartitionen (Subpartitions).

MySQL und Google, Übernahme durch Sun
Google will ab Ende 2008 MySQL-Eigenentwicklungen in das MySQL-Projekt zurückfliessen lassen: Google  setzt MySQL auf tausenden seiner Server ein und hat vor allem Funktionen zur Replikation optimiert und Tools entwickelt, die eine grosse Anzahl von Instanzen überwachen. MySQL wurde 2008 von Sun für 1 Mrd. $ übernommen, bleibt jedoch Open Source.
Siehe auch:    Falcon-Storage-Engine   My-SQL-6   MySQL-Cluster   Open-Source   InnoDB   MyISAM   Multiversion-Concurrency-Control   Referentielle-Integrität   PHP   NoSQL

  DNS-Datenbank
Namensauflösung Namensauflösung
Die DNS-Datenbank liegt in Form einer baumförmigen Struktur vor. Es handelt sich um eine verteilte Datenbank (Distributed Database) welche auf mehrere Server im ganzen Internet verteilt ist (Internet-DNS).  Diese Datenbanken sind im Internet durch Verweise (Delegationen) verknüpft. Die Nameserver verwalten die Zonendateien, welche die notwendigen Daten zur Navigation im Internet enthalten.  Die Zonendateien werden intern durch eine Liste von Resource Records repräsentiert. Man unterscheidet grundsätzlich 2 Ausprägungen von Resource Records: 

1. Der A Resource Record: hier findet die Datendefinition statt. Einem Domain-Namen wird eine IPv4 bzw. IPv6 Adresse zugewiesen. 

2. Der NS-Record, Nameserver Record: er enthält die Delegationen (Verknüpfungen der Server untereinander). Der NS-Record definiert also die Zuständigkeit von Nameservern für ihre Zone und weiterhin verkettet der NS-Resource Record  (NS-RR) die Zonen zu einem Zonen-Baum. 
Weiterhin benötigt werden der SOA Resource Record, welcher Informationen zur Zonenverwaltung und zum Zonentransfer (RFC 1035) enthält. Der Start of Authority (SOA) ist ein bedeutender Bestandteil einer Zonendatei des Domain Name System.  Der strukturelle Aufbau und ein Beispiel für einen Nameserver Resource Record (NS-RR) sind:

IN NS <nameserver-name>, wobei nameserver-name eine FQDN ist.

Beispiel: IN NS dns1.beispiel.com. IN NS dns2.beispiel.com.
 
Dasselbe für einen A Resource Record:

<host> IN A <IP-address>
Beispiel: server1 IN A 10.0.1.3 IN A 10.0.1.5 für die beispiel.com Zonen-Datei, d.h. Anfragen für beispiel.com weisen auf 10.0.1.3 oder 10.0.1.5.
 
Der CNAME Record (Canonical-Name) ordnet Namen einander zu (Alias):

<alias-name> IN CNAME <real-name>

server1 IN A 10.0.1.5 www IN CNAME server1
 

"named" wird angewiesen, dass alle Anfragen, die an den <alias-name> gesendet werden, auf den Host <real-name> zeigen. 

CNAME-Records werden oft eingesetzt, um auf Dienste zu verweisen, die ein allgemeines Namensschema für den entsprechenden Host, wie www für Web-Server, verwenden.  In den Zonendateien muss mindestens ein Nameserver-Resource Record vorhanden sein, aus dem zu entnehmen ist, welcher Nameserver für diese Zone autoritativ ist. Die entsprechenden Nameserver-Resource Records sind normalerweise am Beginn  einer Zonendatei unmittelbar hinter dem SOA-Resource Record zu finden. Die NS Resource Records (NS RR) geben nicht Preis, welcher Nameserver Primary Nameserver und welcher Nameserver Secondary Nameserver ist.  Aus dem SOA Resource Record kann man den Primary Resource Record ablesen. Die restlichen NS-RR Einträge verweisen auf Secondary Resource Records.  Nameserver-Resource Records können Verweise zu Subdomänen beinhalten. Die betreffende Subdomäne wird aus dem Zonenfile ausgelagert.  Der Nameserver-Resource Record dient somit als Pointer und verweist auf einen anderen Nameserver bzw. auf ein anderes Zonenfile auf demselben Server. Dies wird dann "Delegation" genannt. Delegation bedeutet, daß Anfragen an einen Resolver an einen  weiteren Nameserver delegiert werden.

Ein Beispiel für eine Namensauflösung wäre:
linux37:~ # cat /etc/hosts
# Syntax:
#
# IP-Address Full-Qualified-Hostname Short-Hostname

127.0.0.1 localhost

217.89.70.36 linux36.amov.de linux36 klaus
217.89.70.37 linux37.amov.de linux37 willi 
217.89.70.38 linux38.amov.de linux38 petra
217.89.70.39 linux39.amov.de linux39 ludwig
217.89.70.40 linux40.amov.de linux40 ines

217.89.70.38 mail.amov.de mail
 

Die ursprüngliche Form der Namensauflösung ist die Datei /etc/hosts. Es wird eine Tabelle eingesetzt, in der die IP-Nummer, der FQDN (Fully Qualified Domain Name) und verschiedene Alias-Namen stehen.  Eine Zeile steht für eine Kombination aus IP-Nummer und FQDN. Die IP-Nummer kann mehrfach vorkommen. Am Anfang jeder dieser Zeilen steht die IP-Adresse, danach folgt die FQDN.  Im Anschluß an den FQDN können mehrere Alias-Namen für den Rechner vergeben werden. Wie funktioniert eine Namensauflösung am Beispiel des Befehls "ping"? 

linux37:~ # ping linux37.amov.de
PING linux37.amov.de (217.89.70.37) 56(84) bytes of data. 

linux37:~ # ping linux37
PING linux37.amov.de (217.89.70.37) 56(84) bytes of data. 

linux37:~ # ping willi
PING linux37.amov.de (217.89.70.37) 56(84) bytes of data.
  Anhand des FQDN oder eines Alias-Namen wird der entsprechende Eintrag identifiziert, die passende IP-Nummer und der FQDN ermittelt. Dies können Sie schön im folgenden Beispiel sehen. 

linux37:~ # ping manuela
PING linux38.amov.de (217.89.70.38) 56(84) bytes of data.

linux37:~ # ping mail
PING mail.amov.de (217.89.70.38) 56(84) bytes of data.
 

Es gibt nicht nur eine Namensauflösung für Hostnamen sondern auch eine Namensauflösung für Netzwerkadressen. Jede Zeile bezeichnet eine Verbindung zwischen Netzwerkname und Netzwerkadresse.

linux37:~ # cat /etc/networks 
loopback 127.0.0.0

amov 217.89.70.0
sub1.amov 217.89.70.32
sub2.amov 217.89.70.64


Quellenangaben: http://www.redhat.com/docs/manuals
http://www.fibel.org/linux/lfo-0.6.0/node483.html
Siehe auch:    Domain-Name-System   Nameserver   Resolver   Start-of-Authority   Nameserver-Record   A-Resource-Record   Hostname   

  WHOIS

Über das WHOIS-Protokoll können auf einer verteilten Datenbank Daten über Internet-Domains, IP-Adressen und den Domain-Inhabern (Owner-C) bzw. den Admin-C (Administrativer Kontakt), Tech-C (Technischer Kontakt)  oder den Zonenverwalter (Zone-C) abgefragt werden.  Die Abfrage kann über spezielle Clients oder Whois-Proxy-Dienste erfolgen. Die umfangreichen Angaben des Protokolls sind allerdings nicht relevant,  sofern lediglich die Verfügbarkeit einer Domain geprüft werden soll.  Dies ist bei den meisten Webhosting-Anbietern direkt über die Internetseite möglich,  weitere Programme sind dazu nicht erforderlich.  Sofern die gewünschte Webadresse noch zu haben ist, können direkt die passenden Hosting-Pakete gebucht werden,  wobei die Registrierung der Domain durch den jeweiligen Anbieter vorgenommen wird.                                           
Siehe auch:    datenbank   protokoll   DENIC   InterNIC   ICANN   Domain-Name-System   DNS-Server   Domain   IP-Adresse   

  MyISAM

MyISAM (My Indexed Sequential Access Method) ist ein gängiger Tabellentyp der Open Source Datenbank MySQL. MyISAM ist eine Weiterentwicklung von ISAM und ist um einige Erweiterungen ergänzt.  Es unterstützt in der aktuellen Version von MySQL (Version 5.0) die Volltextsuche.  MyISAM verfügt über schnelle Zugriffe auf Tabellen und Indizes. Dies funktioniert, da die Transaktionssicherung weggelassen wurde.  Im Gegenzug unterstützt MyISAM keine referentielle Integrität und keinen Rollback. Referentielle Integrität und Rollbacks werden hingegen von InnoDB unterstützt.  Es werden für jede MyISAM Tabelle 3 Dateien angelegt: .frm für die Tabellendefinition, MYI für den Index (MyIndex), .MYD für die Daten (MyData).                                                 
Siehe auch:    ISAM   datenbank   MySQL   InnoDB   Referentielle-Integrität   Transaktion   

  Referentielle-Integrität

Die Referentielle Integrität stellt die Datenkonsistenz und Datenintegrität sicher. Auch nach Änderungen der Daten dürfen keine Integritätsverletzungen auftreten. Die referentielle Integrität bezeichnet die  Integrität auf Beziehungsebene. Daneben gibt es noch die Wertebereichsintegrität (Integrität auf Datenfeldebene) und die Datenintegrität auf Datensatzebene. Die referentielle Integrität stellt die Konsistenz der Beziehungen zwischen Attributen von  Relationen her, und sichert die Einhaltung der Eindeutigkeit ihrer Schlüssel. Das Datenbankmanagementsystem stellt sicher, dass es zu keinen INSERT-, UPDATE- oder DELETE-Anomalien kommt. Dies wird durch Fremdschlüsselbeziehungen  zwischen zwei Relationen erreicht. Zwei Relationen besitzen ein gemeinsames Attribut. Dies ist in der Quellrelation der Primärschlüssel. Die andere Relation verweist bzw. referenziert über den Fremdschlüssel auf eben diesen Primärschlüssel.  Das Datenbankmanagementsystem überprüft die Existenz des Primärschlüssels und stellt sicher, dass die betreffende Relation nur gemeinsam mit dem Fremdschlüssel geändert oder gelöscht werden kann.  Transaktionen müssen komplett stimmig sein, sonst werden sie zurückgefahren (Rollback).                                               
Siehe auch:    Konsistenz   Schlüssel   Normalform   Integrität   Transaktion   ACID   Constraints   datenbank   Deadlock   Rollback

  InnoDB

InnoDB ist ein Tabellenformat von Innobase Oy für die Open Source Datenbank MySQL. Gegenüber der Standard-Tabelle MyISAM bietet InnoDB Transaktionen und ist damit rollbackfähig. Ausserdem sind Commit-Fähigkeiten  integriert sowie Fremdschlüssel Constraints und eine verbesserte Performance. Weiterhin bietet InnoDB Row Level Locking (Schreibvorgänge innerhalb einer Transaktion bewirken eine Schreibsperre der jeweiligen Datensätze für alle anderen Transaktionen)  und Referenzielle Integrität über Fremdschlüssel. Lesezugriffe, die wiederholt vorkommen, werden von Schreibzugriffen anderer Transaktionen nicht beeinträchtigt. Dies entspricht einer der Forderungen aus dem ACID-Katalog (Atomicity,  Consistency, Isolation, Durability), einem Forderungskatalog für erwünschte Eigenschaften von Transaktionen bei Datenbanken. Zusätzlich bieten InnoDB Tabellen ein Consistent Read und MultiVersion Concurrency Control (MVCC). Dadurch kann man  beispielsweise Datenbanken in eine Datei exportieren, ohne dass die Notwendigkeit besteht, einzelne Tabellen zu sperren. Die Crash Recovery Funktion erspart die Reparatur einzelner Tabellen im Falle eines Absturtzes des Datenbank-Servers. Es besteht  grundsätzlich keine Grössenbeschränkung für InnoDB Dateien. InnoDB Oy wurde 2005 von Oracle Systems übernommen.                                               
Siehe auch:    MyISAM   ISAM   MySQL   ACID   GPL   datenbank   Open-Source   Referentielle-Integrität   Transaktion   Multiversion-Concurrency-Control

  Microsoft-Access

MS Access ist eine relationale Datenbank von Microsoft, die es nur für Windows gibt und meist im Microsoft Office System enthalten ist. Microsoft Access ermöglicht auch die Entwicklung und Verwaltung von Datenbankanwendungen.  MS Access eignet sich zur Verwaltung kleinerer und mittlerer Datenbanken.  Für grössere Firmendatenbanken sind mächtigere Produkte die richtige Wahl: DB2 (IBM), Sybase ASE, ORACLE, ADABASE (Software AG), Informix u.a. MS Access speichert (im *.mdb Format) neben den Datenbanktabellen auch  die Oberfläche mit ab. Front-End (Oberfläche) und Back-End (Tabellendefinitionen und Daten) können separat gespeichert werden. Über die ODBC Schnittstelle können beim Einbinden externer Formate auch MS Access-fremde Formate einbezogen werden. Mittels  der ODBC-API kann auf MS Access Datenbanken auch extern zugegriffen werden. Neuere MS-Access Schnittstellen sind: Data Access Objects (DAO) sowie Remote Data Objects (RDO) für relationale Datenbanken, ActiveX Data Objects (ADO) für alle  Datentypen. Durch ADO kann man auf MS-Access mit weiteren Programmiersprachen, wie z. B. Visual Basic oder Delphi zugreifen. Dies geht auch ohne Installation. Die Jet-Engine ist das Back-End von MS Access.  Die Microsoft Joint Engine Technology Engine ist seit 1992 eine relationale Datenbank-Engine für die Windows-Plattform. Sie wurde in 2 verschiedenen Versionen ausgeliefert: Jet Red und Jet Blue.  Die Jet Red Engine ist ein RDBMS (Relationales Datenbankmanagementsystem) für Desktopdatenbanken. Die Jet Blue Engine ist auch  ein RDBMS, das aber auf Grundlage eines Write Ahead Logging (WAL) mit einem 2 Phasen Commit Protokoll (2 Phase Commit, 2PC) arbeitet. Dies dient u.a. zur Wahrung der ACID-Eigenschaften, insbesondere bei verteilten Datenbanken. Jet Blue eignet sich  für semistrukturierte Daten. Ab Version 2000 wird auch der Microsoft SQL-Server mitausgeliefert. Durch visuelle Programmierobjekte können schnell Anwendungen gebaut werden. Mit Visual Basic for Application (VBA) können umfangreiche Anwendungen  programmiert werden. ADO-Nachfolger ist ADO.NET. ADO.NET läuft in der .NET Framework 3.0 Entwicklungsumgebung und stellt eine Sammlung von Klassen dar. ADO.NET ist für alle Datentypen geeignet, speziell für relationale Datenbanken und  ist durch den Namespace System.Data innerhalb der Framework Class Library (FCL) repräsentiert.                                   
Siehe auch:    Microsoft-Office   Visual Basic   datenbank   ACID   Normalform   Transaktion   Update-Befehl   Referentielle-Integrität   Write-Ahead-Logging   2-Phase-Commit

  1-n-Verbindung

Eine 1:n Verbindung ist eine Verbindung (Relation) eines Datenbanksystems, bei der zu jedem Datensatz der Haupt-Tabelle (Mastertabelle) mehrere entsprechende Datensätze in der Detailtabelle verknüpft sind.  Eine 1:n-Verbindung liegt vor, wenn im Verbindungsfeld der übergeordneten Tabelle nur Unikate, im Verbindungsfeld der untergeordneten Tabelle dagegen auch Duplikate (gleiche Werte) enthalten sind.  Bei einer 1:n Beziehung müssen die verknüpften Felder der Mastertabelle als Primärschlüssel definiert sein.                                                     
Siehe auch:    datenbank   1-1-Verbindung   ACID   Referentielle-Integrität   Schlüssel   Normalform   Rollback   Deadlock