Datenbank

Eine SQL -Auswahlanweisung und sein Ergebnis

Im Computer, a Datenbank ist eine organisierte Sammlung von Daten gespeichert und elektronisch abgerufen. Kleine Datenbanken können auf einem gespeichert werden Dateisystem, während große Datenbanken gehostet werden Computercluster oder Wolkenspeicher. Das Design von Datenbanken umfasst formelle Techniken und praktische Überlegungen, einschließlich Datenmodellierung, effiziente Datenrepräsentation und -speicher,, Abfragesprachen, Sicherheit und Privatsphäre von sensiblen Daten und verteiltes Computer Probleme, einschließlich Unterstützung gleichzeitig Zugang und Fehlertoleranz.

A Datenbankverwaltungssystem (DBMs) ist der Software das interagiert mit Endverbraucher, Anwendungen und die Datenbank selbst, um die Daten zu erfassen und zu analysieren. Die DBMS -Software umfasst zusätzlich die Kernfunktionen, die zur Verwaltung der Datenbank bereitgestellt werden. Die Summe der Datenbank, die DBMs und die zugehörigen Anwendungen können als a bezeichnet werden Datenbanksystem. Oft wird der Begriff "Datenbank" auch locker verwendet, um auf einen der DBMs, das Datenbanksystem oder eine Anwendung zu verweisen, die der Datenbank zugeordnet ist.

Informatiker können Datenbankverwaltungssysteme nach dem klassifizieren Datenbankmodelle dass sie unterstützen. Relationale Datenbanken wurde in den 1980er Jahren dominant. Diese Modelldaten als Reihen und Säulen in einer Reihe von Tischeund die überwiegende Mehrheit nutzte Sql zum Schreiben und Abfragen von Daten. In den 2000er Jahren wurden nicht-relationale Datenbanken populär, gemeinsam als als als bezeichnet NoSQL, weil sie anders verwenden Abfragesprachen.

Terminologie und Übersicht

Formal bezieht sich eine "Datenbank" auf eine Reihe verwandter Daten und die Art und Weise, wie sie organisiert ist. Der Zugriff auf diese Daten wird normalerweise von einem "Datenbankverwaltungssystem" (DBMS) bereitgestellt, der aus einer integrierten Computersoftware besteht, die es zulässt Benutzer Um mit einem oder mehreren Datenbanken zu interagieren und Zugriff auf alle in der Datenbank enthaltenen Daten zu ermöglichen (obwohl Beschränkungen vorhanden sind, die den Zugriff auf bestimmte Daten begrenzen). Das DBMS bietet verschiedene Funktionen, mit denen die Ein- und Ausstiegsmengen großer Informationsmengen ein- und abgerufen werden können, und bietet Möglichkeiten, wie diese Informationen organisiert sind.

Aufgrund der engen Beziehung zwischen ihnen wird der Begriff "Datenbank" häufig beiläufig verwendet, um sich sowohl auf eine Datenbank als auch auf die DBMs zu beziehen, die zur Manipulation verwendet werden.

Außerhalb der Welt des Profis Informationstechnologie, der Begriff Datenbank wird oft verwendet, um auf eine Sammlung verwandter Daten zu verweisen (wie z. Kalkulationstabelle oder ein Kartenindex) als Größe und Nutzungsanforderungen erfordern normalerweise die Verwendung eines Datenbankverwaltungssystems.[1]

Bestehende DBMS bieten verschiedene Funktionen, die die Verwaltung einer Datenbank und ihre Daten ermöglichen, die in vier Hauptfunktionsgruppen eingeteilt werden können:

  • Datendefinition - Erstellung, Änderung und Entfernung von Definitionen, die die Organisation der Daten definieren.
  • Aktualisieren - Einfügen, Änderungen und Löschen der tatsächlichen Daten.[2]
  • Abruf - Bereitstellung von Informationen in einem direkt verwendbaren Formular oder zur weiteren Verarbeitung durch andere Anwendungen. Die abgerufenen Daten können in einem Formular zur Verfügung gestellt werden, das im Grunde genommen mit der in der Datenbank gespeicherten Form oder in einem neuen Formular gespeichert ist, das durch Ändern oder Kombination vorhandener Daten aus der Datenbank erhalten wird.[3]
  • Verwaltung - Registrierung und Überwachung von Benutzern, Durchsetzung der Datensicherheit, Überwachung der Leistung, Aufrechterhaltung der Datenintegrität, der Umgang mit der Parallelitätskontrolle und der Wiederherstellung von Informationen, die von einigen Ereignissen wie einem unerwarteten Systemfehler beschädigt wurden.[4]

Sowohl eine Datenbank als auch ihre DBMs entsprechen den Prinzipien eines bestimmten Datenbankmodell.[5] "Datenbanksystem" bezieht sich gemeinsam auf das Datenbankmodell, das Datenbankverwaltungssystem und die Datenbank.[6]

Physisch Datenbank Server sind spezielle Computer, die die tatsächlichen Datenbanken enthalten und nur die DBMS und die zugehörige Software ausführen. Datenbankserver sind normalerweise Multiprozessor Computer, mit großzügiger Speicher und ÜBERFALLEN Disk -Arrays, die für den stabilen Speicher verwendet werden. Hardware-Datenbankbeschleuniger, die über einen Hochgeschwindigkeitskanal mit einem oder mehreren Servern verbunden sind, werden auch in Umgebungen mit großer Volumen-Transaktionsverarbeitungsumgebungen verwendet. DBMSS befinden sich im Herzen der meisten Datenbankanwendungen. DBMSS können um einen Brauch aufgebaut werden Multitasking Kernel mit integriert Networking Unterstützung, aber moderne DBMS stützen sich normalerweise auf einen Standard Betriebssystem diese Funktionen bereitzustellen.

Da dBMSS eine signifikante umfasst Markt, Computer- und Speicheranbieter berücksichtigen häufig die DBMS -Anforderungen in ihren eigenen Entwicklungsplänen.[7]

Datenbanken und DBMSS können gemäß den von ihnen unterstützten Datenbankmodells (n) kategorisiert werden (wie relational oder xml), die Typ (n) des Computers, auf dem sie ausgeführt werden (von einem Servercluster zu einem Mobiltelefon), der, die Abfragesprache(s) zum Zugriff auf die Datenbank (z. B. SQL oder XQuery) und ihre interne Technik, die die Leistung beeinflusst, Skalierbarkeit, Resilienz und Sicherheit.

Geschichte

Die Größen, Funktionen und Leistung von Datenbanken und ihre jeweiligen DBMS sind in Größenordnungen gewachsen. Diese Leistungssteigerungen wurden durch den technologischen Fortschritt in den Bereichen von ermöglicht Prozessoren, Computerspeicher, Computerspeicher, und Computernetzwerke. Das Konzept einer Datenbank wurde durch die Entstehung von direkten Zugriffsspeichermedien wie Magnetscheiben ermöglicht, die Mitte der 1960er Jahre weit verbreitet waren. Frühere Systeme stützten sich auf die sequentielle Speicherung von Daten auf Magnetband. Die anschließende Entwicklung der Datenbanktechnologie kann basierend auf dem Datenmodell oder der Struktur in drei ERAs unterteilt werden: Navigation,[8] Sql/relationalund post-relationale.

Die beiden wichtigsten frühen Navigationsdatenmodelle waren die Hierarchisches Modell und die Codasyl Modell (Netzwerkmodell). Diese wurden durch die Verwendung von Zeigern (oft physische Datenträger-) gekennzeichnet, um Beziehungen von einem Datensatz zum anderen zu befolgen.

Das Relationales Modell, zuerst vorgeschlagen 1970 von Edgar F. Codd, Abgewiesen von dieser Tradition, indem sie darauf bestehen, dass Anwendungen nach Daten nach Inhalten suchen sollten, anstatt durch Links zu folgen. Das relationale Modell verwendet Sätze von Tabellen im Ledger-Stil, die jeweils für eine andere Art von Entität verwendet werden. Erst Mitte der 1980er Jahre wurde die Computerhardware ausreichend ausreichend, um die breite Bereitstellung von relationalen Systemen (DBMSS plus Anwendungen) zu ermöglichen. In den frühen neunziger Jahren dominierten relationale Systeme jedoch in allen großen Maßnahmen Datenverarbeitung Anwendungen und ab 2018 Sie bleiben dominant: IBM DB2, Orakel, Mysql, und Microsoft SQL Server sind am meisten durchsucht DBMs.[9] Die dominante Datenbanksprache, standardisierte SQL für das relationale Modell, hat die Datenbanksprachen für andere Datenmodelle beeinflusst.

Objektdatenbanken wurden in den 1980er Jahren entwickelt, um die Unannehmlichkeiten von zu überwinden Objekt -Relationalimpedanz -Missverhältnis, was zur Maße des Begriffs "post-relational" und auch zur Entwicklung von Hybrid führte Objekt -relationale Datenbanken.

Die nächste Generation von postrelationalen Datenbanken in den späten 2000er Jahren wurde als bekannt als NoSQL Datenbanken, die schnelle Einführung Schlüssel -Wert -Stores und dokumentorientierte Datenbanken. Eine konkurrierende "nächste Generation" bekannt als als Newsql Datenbanken versuchten neue Implementierungen, die das relationale/SQL -Modell behielten und gleichzeitig die hohe Leistung von NOSQL im Vergleich zu im Handel erhältlichen relationalen DBMS anstrebten.

1960er Jahre, Navigations -DBMs

Grundstruktur der Navigation Codasyl Datenbankmodell

Die Einführung des Begriffs Datenbank fiel ab Mitte der 1960er Jahre mit der Verfügbarkeit von Direct-Access-Speicher (Datenträger und Trommeln) zusammen. Der Begriff stellte einen Kontrast zu den bandbasierten Systemen der Vergangenheit dar, die den gemeinsamen interaktiven Gebrauch und nicht täglich ermöglichte Stapelverarbeitung. Das Oxford Englisch Wörterbuch zitiert einen Bericht der System Development Corporation von Kalifornien von 1962 als Erster, der den Begriff "Datenbasis" in einem bestimmten technischen Sinne verwendet.[10]

Als Computer an Geschwindigkeit und Fähigkeit wuchsen, entstand eine Reihe allgemeiner Datenbanksysteme. Mitte der 1960er Jahre waren eine Reihe solcher Systeme kommerziell eingesetzt. Das Interesse an einem Standard begann zu wachsen und Charles Bachman, Autor eines solchen Produkts, die Integrierter Datenspeicher (IDS), gründete die Datenbank -Aufgabengruppe innerhalb Codasyl, die Gruppe, die für die Erstellung und Standardisierung von verantwortlich ist Cobol. 1971 lieferte die Datenbank -Taskgruppe ihren Standard, der im Allgemeinen als die bekannt wurde Codasylansatzund bald traten eine Reihe von kommerziellen Produkten auf, die auf diesem Ansatz basieren.

Der Codasyl -Ansatz bot Anwendungen die Möglichkeit, um einen verknüpften Datensatz zu navigieren, der zu einem großen Netzwerk gebildet wurde. Anwendungen könnten Datensätze nach einer von drei Methoden finden:

  1. Verwendung eines Primärschlüssels (als CALC -Schlüssel bezeichnet, normalerweise implementiert von durch Hashing)
  2. Navigierende Beziehungen (genannt Sets) von einem Rekord zum anderen
  3. Scannen Sie alle Datensätze in einer sequentiellen Reihenfolge

Spätere Systeme hinzugefügt B-Bäume Alternative Zugriffswege bereitstellen. Viele Codasyl -Datenbanken fügten auch eine deklarative Abfragesprache für Endbenutzer hinzu (unterscheidet sich von der Navigations -API). CODASYL -Datenbanken waren jedoch komplex und erforderten erhebliche Schulungen und Mühe, um nützliche Anwendungen zu erstellen.

IBM hatte auch 1966 seine eigene DBMS, bekannt als als Informationsmanagementsystem (IMS). IMS war eine Entwicklung von Software, die für die geschrieben wurde Apollo -Programm auf der System/360. IMS war im Allgemeinen das Konzept wie Codasyl ähnlich, verwendete jedoch eine strenge Hierarchie für sein Modell der Datennavigation anstelle des CODASYL -Netzwerkmodells. Beide Konzepte wurden später aufgrund der Art und Weise, wie auf Daten zugegriffen wurde Turing Award Präsentation Der Programmierer als Navigator. IMS wird von IBM als a klassifiziert Hierarchische Datenbank. IDMS und Cincom -Systeme' GESAMT Datenbanken werden als Netzwerkdatenbanken eingestuft. IMS bleibt ab 2014 im Einsatz.[11]

1970er Jahre, relationale DBMs

Edgar F. Codd arbeitete bei IBM in San Jose, Kalifornien, in einem ihrer Offshoot -Büros, die hauptsächlich an der Entwicklung von beteiligt waren Festplatte Systeme. Er war unzufrieden mit dem Navigationsmodell des Codasyl -Ansatzes, insbesondere mit dem Fehlen einer "Suche" -Funktion. 1970 schrieb er eine Reihe von Papieren, die einen neuen Ansatz zur Datenbankkonstruktion beschrieben haben Ein relationales Datenmodell für große gemeinsame Datenbanken.[12]

In diesem Artikel beschrieb er ein neues System zum Speichern und Arbeiten mit großen Datenbanken. Anstatt Aufzeichnungen in irgendeiner Art gespeichert zu werden verlinkte Liste Von freien Aufzeichnungen wie in Codasyl bestand die Idee von CODD darin, die Daten als eine Reihe von "zu organisieren" zu organisieren "Tische", jede Tabelle, die für einen anderen Entitätstyp verwendet wird. Jede Tabelle würde eine feste Anzahl von Spalten enthalten, die die Attribute der Entität enthielten. Eine oder mehrere Spalten jeder Tabelle wurden als a bezeichnet Primärschlüssel durch die die Reihen der Tabelle eindeutig identifiziert werden konnten; Cross-Referenzen zwischen Tabellen verwendeten diese Primärschlüssel immer und nicht mit Festplattenadressen, und Abfragen würden Tabellen basieren, die auf diesen Schlüsselbeziehungen basieren, unter Verwendung einer Reihe von Operationen basierend auf dem mathematischen System von Relational Calculus (von dem das Modell seinen Namen hat). Aufteilung der Daten in einen Satz normalisierter Tabellen (oder Beziehungen) wollten sicherstellen, dass jede "Tatsache" nur einmal gespeichert wurde, wodurch die Aktualisierungsvorgänge vereinfacht wurden. Virtuelle Tabellen aufgerufen Ansichten Könnte die Daten für verschiedene Benutzer auf unterschiedliche Weise präsentieren, aber Ansichten konnten nicht direkt aktualisiert werden.

Codd verwendete mathematische Begriffe, um das Modell zu definieren: Beziehungen, Tupel und Domänen anstelle von Tabellen, Zeilen und Spalten. Die jetzt vertraute Terminologie stammt aus frühen Implementierungen. Codd kritisierte später die Tendenz, dass praktische Implementierungen von den mathematischen Grundlagen abweichen, auf denen das Modell basiert.

In dem Relationales Modell, Datensätze werden mit virtuellen Schlüssel "verknüpft" "verknüpft", die nicht in der Datenbank gespeichert sind, sondern nach Bedarf zwischen den in den Datensätzen enthaltenen Daten definiert sind.

Die Verwendung von Primärschlüssel (benutzerorientierte Kennungen) zur Darstellung von Cross-Tisch-Beziehungen und nicht der Festplattenadressen hatte zwei primäre Motivationen. Aus technischer Sicht konnte die Tabellen ohne teure Datenbank -Reorganisation umgesiedelt und geändert werden. CODD war jedoch mehr an dem Unterschied in der Semantik interessiert: Die Verwendung explizite Kennungen erleichterte es, Aktualisierungsvorgänge mit sauberen mathematischen Definitionen zu definieren, und ermöglichte es auch, Abfragevorgänge in Bezug auf die festgelegte Disziplin von definiert zu werden Prädikat erster Ordnung; Da diese Operationen saubere mathematische Eigenschaften aufweisen, wird es möglich, Abfragen auf nachweislich korrekte Weise neu zu schreiben, was die Grundlage für die Abfrageoptimierung ist. Es gibt keinen Ausdrucksverlust im Vergleich zu hierarchischen oder Netzwerkmodellen, obwohl die Verbindungen zwischen Tabellen nicht mehr so ​​explizit sind.

In den hierarchischen und Netzwerkmodellen durften Datensätze eine komplexe interne Struktur haben. Zum Beispiel könnte die Gehaltshistorie eines Mitarbeiters als "Wiederholungsgruppe" innerhalb des Mitarbeiteraufzeichnungen dargestellt werden. Im relationalen Modell führte der Normalisierungsvorgang dazu, dass solche internen Strukturen durch Daten ersetzt wurden, die in mehreren Tabellen gehalten wurden und nur durch logische Schlüssel verbunden waren.

Beispielsweise besteht eine gemeinsame Verwendung eines Datenbanksystems darin, Informationen über Benutzer, ihren Namen, Anmeldeinformationen, verschiedene Adressen und Telefonnummern zu verfolgen. Im Navigationsansatz würden alle diese Daten in einen einzelnen Datensatz mit variabler Länge platziert. Im relationalen Ansatz wären die Daten normalisiert in eine Benutzertabelle, eine Adresstabelle und eine Telefonnummertabelle (z. B.). Datensätze würden in diesen optionalen Tabellen nur dann erstellt, wenn tatsächlich die Adresse oder Telefonnummern angegeben würden.

Codd wurde nicht nur Zeilen/Datensätze mithilfe von logischen Kennungen anstelle von Festplatten identifiziert und änderte die Art und Weise, wie Anwendungen Daten aus mehreren Datensätzen zusammengestellt haben. Anstatt die Anwendungen zu verpflichten, Daten zu einem Zeitpunkt zu sammeln, indem sie durch die Links navigieren, würden sie eine deklarative Abfragesprache verwenden, die ausdrückte, was Daten benötigt wurden, und nicht den Zugriffspfad, nach dem sie gefunden werden sollten. Das Finden eines effizienten Zugriffspfads zur Daten wurde eher in der Verantwortung des Datenbankverwaltungssystems als für den Anwendungsprogrammierer. Dieser Prozess, der als Abfrageoptimierung bezeichnet wurde, hing davon ab, dass Abfragen in Bezug auf die mathematische Logik ausgedrückt wurden.

Codds Papier wurde von zwei Personen in Berkeley, Eugene Wong und abgeholt Michael Stonebraker. Sie starteten ein Projekt bekannt als als Ingres Verwenden von Finanzmitteln, die bereits für ein geografisches Datenbansprojekt und Student -Programmierer zur Erzeugung von Code zugewiesen worden waren. Ab 1973 lieferten Ingres seine ersten Testprodukte, die 1979 im Allgemeinen bereit waren. Ingres war ähnlich wie System r In vielerlei Hinsicht, einschließlich der Verwendung einer "Sprache" für Datenzugriff, bekannt als Quel. Im Laufe der Zeit wechselte Ingres zum aufstrebenden SQL -Standard.

IBM selbst hat eine Testimplementierung des relationalen Modells durchgeführt, PRTVund eine Produktion, Geschäftssystem 12beide sind jetzt eingestellt. Honeywell schrieb Mrds zum MehrheitUnd jetzt gibt es zwei neue Implementierungen: Alphora Datapher und Rel. Die meisten anderen DBMS -Implementierungen, die normalerweise genannt werden relational sind tatsächlich SQL DBMSS.

1970 begann die University of Michigan mit der Entwicklung der Micro Information Management System[13] bezogen auf D.L. Kind'Set-theoretisches Datenmodell.[14][15][16] Micro wurde verwendet, um sehr große Datensätze von der zu verwalten US -Arbeitsministerium, das US -Umweltschutzbehördeund Forscher aus dem Universität von Alberta, das Universität von Michigan, und Wayne State University. Es lief auf IBM Mainframe Computern mit der Michigan Terminalsystem.[17] Das System blieb bis 1998 in Produktion.

Integrierter Ansatz

In den 1970er und 1980er Jahren wurden Versuche unternommen, Datenbanksysteme mit integrierter Hardware und Software zu erstellen. Die zugrunde liegende Philosophie war, dass eine solche Integration eine höhere Leistung zu geringeren Kosten liefern würde. Beispiele waren IBM System/38, das frühe Angebot von Teradata, und die Britton Lee, Inc. Datenbankmaschine.

Ein weiterer Ansatz zur Hardware -Unterstützung für das Datenbankverwaltung war ICL's CAFs Accelerator, ein Hardware -Festplattencontroller mit programmierbaren Suchfunktionen. Langfristig waren diese Bemühungen im Allgemeinen erfolglos, da spezielle Datenbankmaschinen mit der raschen Entwicklung und dem Fortschritt von allgemeinen Computern nicht Schritt halten konnten. Daher sind die meisten Datenbanksysteme heutzutage Softwaresysteme, die auf allgemeiner Hardware ausgeführt werden, wobei der allgemeine Computerdatenspeicher verwendet wird. Diese Idee wird jedoch in bestimmten Anwendungen von einigen Unternehmen wie immer noch verfolgt Metezza und Oracle (Exadata).

Ende der 1970er Jahre, SQL DBMS

IBM begann, an einem Prototypsystem zu arbeiten, das lose auf Codds Konzepten als basierte System r In den frühen 1970er Jahren. Die erste Version war 1974/5 fertig und begann dann mit mehreren Tischsystemen, in denen die Daten aufgeteilt werden konnten Single Large "Chunk". Nachfolgende Multi-Benutzer-Versionen wurden 1978 und 1979 von den Kunden getestet. Abfragesprache - SQL - war hinzugefügt worden. Die Ideen von Codd bestand darin SQL/DS, und später, Datenbank 2 (IBM DB2).

Larry EllisonDie Oracle -Datenbank (oder einfacher, Orakel) startete aus einer anderen Kette, basierend auf den Papieren von IBM zu System R. Obwohl Oracle V1 1978 abgeschlossen war, erstreckte er sich erst bei Oracle Version 2, als Ellison 1979 auf IBM auf dem Markt schlug.[18]

Stonebraker wandte die Lektionen von Ingres an, um eine neue Datenbank zu entwickeln, Postgres, die heute als bekannt ist PostgreSQL. PostgreSQL wird häufig für globale missionskritische Anwendungen verwendet (die Registrien .org und .Info-Domainnamen verwenden sie als primär Datenspeicher, ebenso wie viele große Unternehmen und Finanzinstitute).

In Schweden wurde auch Codds Papier gelesen und Mimer SQL wurde Mitte der 1970er Jahre um entwickelt Uppsala Universität. 1984 wurde dieses Projekt in ein unabhängiges Unternehmen zusammengefasst.

Ein anderes Datenmodell, das Entität und Beziehung, entstand 1976 und wurde beliebt für Datenbank Design wie es eine bekanntere Beschreibung betonte als das frühere relationale Modell. Später wurden Entität und Beziehung Konstrukte als nachgerüstet als a Datenmodellierung Konstrukt für das relationale Modell und der Unterschied zwischen beiden ist irrelevant geworden.

1980er Jahre auf dem Desktop

Die 1980er Jahre leiteten das Zeitalter von Desktop Computing. Die neuen Computer befugten ihre Benutzer mit Tabellenkalkulationen wie Lotus 1-2-3 und Datenbanksoftware wie dbase. Das DBase -Produkt war leicht und einfach für jeden Computerbenutzer, das nicht über die Box verstanden wurde. C. Wayne Ratliff, der Schöpfer von DBase, erklärte: "DBase war anders als Programme wie Basic, C, Forran und COBOL, da ein Großteil der schmutzigen Arbeiten bereits erledigt war. Die Datenmanipulation erfolgt von DBase anstelle des Benutzers. Der Benutzer kann sich auf das konzentrieren, was er tut, anstatt sich mit den schmutzigen Details des Öffnens, Lesens und Schließens von Dateien und der Verwaltung der Speicherplatzzuweisung anlegen zu müssen. "[19] DBase war in den 1980er und frühen 1990er Jahren einer der meistverkauften Software -Titel.

1990er Jahre, objektorientiert

In den 1990er Jahren zusammen mit einem Aufstieg ein Objekt orientierte Programmierung, sah ein Wachstum bei der Umgang mit Daten in verschiedenen Datenbanken. Programmierer und Designer begannen, die Daten in ihren Datenbanken als zu behandeln Objekte. Das heißt, wenn sich die Daten einer Person in einer Datenbank befanden, wurden die Attribute dieser Person, wie ihre Adresse, Telefonnummer und Alter, jetzt als zu dieser Person angesehen, anstatt fremde Daten zu sein. Dies ermöglicht die Beziehungen zwischen Daten, die mit Objekten und ihren in Beziehung stehen Attribute und nicht zu einzelnen Feldern.[20] Der Begriff "Objekt -Relationalimpedanz -Missverhältnis"beschrieben die Unannehmlichkeiten der Übersetzung zwischen programmierten Objekten und Datenbanktabellen. Objektdatenbanken und Objekt -relationale Datenbanken Versuchen Sie, dieses Problem zu lösen, indem Sie eine objektorientierte Sprache (manchmal als Erweiterungen für SQL) bereitstellen, die Programmierer als Alternative zu rein relationalem SQL verwenden können. Auf der Programmierseite, Bibliotheken als bekannt als als Objekt -Relationale Mappings (ORMs) Versuchen Sie, das gleiche Problem zu lösen.

2000er Jahre, NoSQL und Newsql

XML -Datenbanken sind eine Art strukturierter dokumentorientierter Datenbank, die das Abfragen basierend auf ermöglicht Xml Dokumentattribute. XML -Datenbanken werden hauptsächlich in Anwendungen verwendet, in denen die Daten bequem als eine Sammlung von Dokumenten angesehen werden, wobei eine Struktur von den sehr flexiblen bis hochstarren variieren kann: Beispiele umfassen wissenschaftliche Artikel, Patente, Steueranmeldungen und Personalaufzeichnungen.

NoSQL Datenbanken sind oft sehr schnell, erfordern keine festen Tabellenschemata. Vermeiden Sie die Verbindungsvorgänge durch Speichern Denormalisiert Daten und sind darauf ausgelegt horizontal skalieren.

In den letzten Jahren gab es eine starke Nachfrage nach massiv verteilten Datenbanken mit hoher Partitionstoleranz, aber laut dem Cap -Theorem, es ist unmöglich für a verteiltes System gleichzeitig bereitstellen Konsistenz, Verfügbarkeits- und Partitionstoleranzgarantien. Ein verteiltes System kann zwei dieser Garantien gleichzeitig erfüllen, jedoch nicht alle drei. Aus diesem Grund verwenden viele NoSQL -Datenbanken das, was genannt wird eventuelle Konsistenz Sowohl für Verfügbarkeits- als auch Partitionstoleranzgarantien mit einer verringerten Datenkonsistenz.

Newsql ist eine Klasse moderner relationaler Datenbanken, die darauf abzielt, die gleiche skalierbare Leistung von NoSQL-Systemen für die Workloads (Online-Transaktionsverarbeitung) zu liefern, während sie weiterhin SQL verwenden und die Wartung der Wartung verwenden. SÄURE Garantien eines herkömmlichen Datenbanksystems.

Anwendungsfälle

Datenbanken werden verwendet, um interne Operationen von Organisationen zu unterstützen und Online -Interaktionen mit Kunden und Lieferanten zu untermauern (siehe Unternehmenssoftware).

Datenbanken werden verwendet, um administrative Informationen und speziellere Daten wie technische Daten oder Wirtschaftsmodelle aufzunehmen. Beispiele sind computergestützt Bibliothek Systeme, Flugreservierungssysteme, computerisiert Teile -Inventarsysteme, und viele Content -Management -Systeme Dieser Laden Websites als Sammlungen von Webseiten in einer Datenbank.

Einstufung

Eine Möglichkeit, Datenbanken zu klassifizieren, umfasst den Typ ihres Inhalts, zum Beispiel: bibliographisch, Dokumenttext-, statistische oder Multimedia-Objekte. Ein anderer Weg ist in ihrem Anwendungsbereich, zum Beispiel: Buchhaltung, Musikkompositionen, Filme, Bankwesen, Fertigung oder Versicherung. Ein dritter Weg ist ein technischer Aspekt, wie z. B. die Datenbankstruktur oder die Schnittstellentyp. In diesem Abschnitt werden einige der Adjektive aufgeführt, mit denen verschiedene Arten von Datenbanken charakterisiert wurden.

  • Ein In-Memory-Datenbank ist eine Datenbank, die in erster Linie in der Haupterinnerung, wird aber in der Regel durch nichtflüchtige Computerdatenspeicher unterstützt. Hauptspeicherdatenbanken sind schneller als Festplattendatenbanken, und daher werden häufig verwendet, wenn die Reaktionszeit kritisch ist, z. B. in Telekommunikationsnetzwerkgeräten.
  • Ein Aktive Datenbank Enthält eine ereignisgesteuerte Architektur, die sowohl innerhalb als auch außerhalb der Datenbank auf Bedingungen reagieren kann. Mögliche Verwendungszwecke umfassen Sicherheitsüberwachung, Alarmierung, statistische Sammlung und Genehmigung. Viele Datenbanken liefern aktive Datenbankfunktionen in Form von Datenbankauslöser.
  • A Cloud -Datenbank beruht auf Cloud -Technologie. Sowohl die Datenbank als auch die meisten ihrer DBMs befinden sich remote "in der Cloud", während ihre Anwendungen sowohl von Programmierern entwickelt als auch von Endbenutzern durch a gepflegt und verwendet werden Webbrowser und Offene APIs.
  • Data Warehouse Archivdaten aus operativen Datenbanken und häufig aus externen Quellen wie Marktforschungsunternehmen. Das Lager wird zur zentralen Datenquelle für die Verwendung von Managern und anderen Endnutzern, die möglicherweise keinen Zugriff auf Betriebsdaten haben. Zum Beispiel können Verkaufsdaten zu wöchentlichen Gesamtsummen aggregiert und von internen Produktcodes umgewandelt werden UPCS damit sie verglichen werden können Acnielsen Daten. Einige grundlegende und wesentliche Komponenten der Data Warehousing umfassen das Extrahieren, Analysieren und Analyse und Bergbau Daten, Transformieren, Laden und Verwalten von Daten, um sie zur weiteren Verwendung zur Verfügung zu stellen.
  • A deduktive Datenbank Kombinieren Logikprogrammierung mit einer relationalen Datenbank.
  • A verteilte Datenbank ist eine, in der sowohl die Daten als auch die DBMs mehrere Computer umfassen.
  • A dokumentorientierte Datenbank ist für das Speichern, Abrufen und Verwalten von dokumentorientierten oder halb strukturierten Informationen entwickelt. Dokumentorientierte Datenbanken sind eine der Hauptkategorien von NoSQL-Datenbanken.
  • Ein eingebettete Datenbank System ist ein DBMS, das eng in eine Anwendungssoftware integriert ist, die den Zugriff auf gespeicherte Daten so erfordert, dass das DBMS vor den Endbenutzern der Anwendung verborgen ist und wenig oder gar nicht laufende Wartung erfordert.[21]
  • Endbenutzerdatenbanken bestehen aus Daten, die von einzelnen Endnutzern entwickelt wurden. Beispiele hierfür sind Sammlungen von Dokumenten, Tabellenkalkulationen, Präsentationen, Multimedien und anderen Dateien. Es gibt mehrere Produkte, um solche Datenbanken zu unterstützen. Einige von ihnen sind viel einfacher als vollwertige DBMS, mit mehr elementarer DBMS-Funktionalität.
  • A Federated Database System Enthält mehrere unterschiedliche Datenbanken mit jeweils eigenem DBM. Es wird als einzelne Datenbank von einem Verbund -Datenbankverwaltungssystem (FDBMS) behandelt, das transparent mehrere autonome DBMS integriert, möglicherweise von verschiedenen Typen (in diesem Fall wäre es auch ein Heterogenes Datenbanksystem) und bietet ihnen eine integrierte konzeptionelle Sichtweise.
  • Manchmal der Begriff Multi-Daten wird als Synonym für die föderierte Datenbank verwendet, obwohl sie sich möglicherweise auf eine weniger integrierte (z. B. ohne FDBMS und eine verwaltete integrierte Schema) Gruppe von Datenbanken bezieht, die in einer einzelnen Anwendung kooperieren. In diesem Fall normalerweise Middleware wird zur Verteilung verwendet, die typischerweise ein Atom -Commit -Protokoll (ACP) enthält, z. B. die Zweiphasen-Commit-Protokoll, erlauben verteilte (globale) Transaktionen über die teilnehmenden Datenbanken.
  • A Grafikdatenbank ist eine Art NoSQL -Datenbank, die verwendet Grafikstrukturen mit Knoten, Kanten und Eigenschaften, um Informationen darzustellen und zu speichern. Allgemeine Diagrammdatenbanken, die alle Grafiken speichern können Triplestores und Netzwerkdatenbanken.
  • Ein Array DBMS ist eine Art NoSQL-DBMS, das Modellierung, Speicherung und Abrufen von (normalerweise großem) mehrdimensionalem (normalerweise groß) ermöglicht Arrays wie Satellitenbilder und Klimassimulationsausgabe.
  • In einem Hypertext oder Hypermedia Datenbank, jedes Wort oder ein Textstück, das ein Objekt darstellt, z. B. ein anderer Textstück, ein Artikel, ein Bild oder ein Film können sein hyperlinks zu diesem Objekt. Hypertextdatenbanken sind besonders nützlich, um große Mengen unterschiedlicher Informationen zu organisieren. Zum Beispiel sind sie für die Organisation nützlich Online -Enzyklopädien, wo Benutzer bequem um den Text springen können. Das Weltweites Netz ist somit eine große verteilte Hypertextdatenbank.
  • A Wissensbasis (abgekürzt KB, KB oder δ[22][23]) ist eine besondere Art von Datenbank für Wissensmanagementdie Mittel für die computergestützte Sammlung, Organisation und Bereitstellung Abruf von Wissen. Auch eine Sammlung von Daten, die Probleme mit ihren Lösungen und verwandten Erfahrungen darstellen.
  • A Mobile Datenbank kann aus einem mobilen Computergerät übertragen oder synchronisiert werden.
  • Betriebsdatenbanken Speichern Sie detaillierte Daten über den Betrieb einer Organisation. Sie verarbeiten in der Regel relativ hohe Aktualisierungsvolumina mithilfe Transaktionen. Beispiele beinhalten Kundendatenbanken Diese Aufzeichnungskontakt-, Kredit- und demografische Informationen über die Kunden eines Unternehmens, Personaldatenbanken, die Informationen wie Gehalt, Vorteile, Fähigkeiten über Mitarbeiter enthalten, enthalten. Unternehmensressourcenplanung Systeme, die Details zu Produktkomponenten, Teileninventar und finanziellen Datenbanken aufzeichnen, die das Geld, die Buchhaltung und die finanziellen Geschäfte des Unternehmens verfolgen.
  • A Parallele Datenbank versucht, die Leistung durch zu verbessern Parallelisierung Für Aufgaben wie das Laden von Daten, das Erstellen von Indizes und die Bewertung von Abfragen.
Die wichtigsten parallelen DBMS -Architekturen, die durch die zugrunde liegenden induziert werden Hardware- Architektur sind:
  • Shared Memory Architecture, wo mehrere Prozessoren den Hauptspeicherraum sowie andere Datenspeicher teilen.
  • Shared Disk Architecture, wobei jede Verarbeitungseinheit (normalerweise aus mehreren Prozessoren) einen eigenen Hauptspeicher hat, aber alle Einheiten den anderen Speicher teilen.
  • Shared-Nothing Architecture, wo jede Verarbeitungseinheit einen eigenen Hauptspeicher und einen anderen Speicher hat.
  • Probabilistische Datenbanken beschäftigen Fuzzy Logic Schlussfolgerungen aus ungenauen Daten zu ziehen.
  • Echtzeitdatenbanken Verarbeiten Sie Transaktionen schnell genug, damit das Ergebnis sofort zurückkommt und sofort bearbeitet wird.
  • A räumliche Datenbank Kann die Daten mit mehrdimensionalen Funktionen speichern. Die Abfragen zu solchen Daten umfassen standortbasierte Abfragen wie "Wo ist das nächstgelegene Hotel in meiner Gegend?".
  • A Zeitliche Datenbank hat integrierte Zeitaspekte, zum Beispiel ein zeitliches Datenmodell und eine zeitliche Version von Sql. Insbesondere die zeitlichen Aspekte umfassen normalerweise eine gültige und Transaktionszeit.
  • A Terminologie-orientierte Datenbank baut auf einem auf objektorientierte Datenbankoft für ein bestimmtes Feld angepasst.
  • Ein unstrukturierte Daten Die Datenbank soll in überschaubarer und geschützter Weise verschiedene Objekte speichern, die nicht auf natürliche und bequeme Datenbanken passen. Es kann E -Mail -Nachrichten, Dokumente, Zeitschriften, Multimedia -Objekte usw. enthalten. Der Name kann irreführend sein, da einige Objekte stark strukturiert werden können. Die gesamte mögliche Objektsammlung passt jedoch nicht in einen vordefinierten strukturierten Rahmen. Die meisten etablierten DBMS unterstützen jetzt unstrukturierte Daten auf verschiedene Weise, und es entstehen neue dedizierte DBMS.

Datenbankverwaltungssystem

Connolly und BEGG Define Database Management System (DBMS) als "Softwaresystem, mit dem Benutzer den Zugriff auf die Datenbank definieren, erstellen, verwalten und steuern können".[24] Beispiele für DBMs umfassen Mysql, PostgreSQL, Microsoft SQL Server, Oracle -Datenbank, und Microsoft Access.

Das DBMS -Akronym wird manchmal erweitert, um das zugrunde liegende anzuzeigen Datenbankmodell, mit RDBMs für die relational, Oodbms für die objektorientierter) und ordbms für die Objekt -Relational -Modell. Andere Erweiterungen können einige andere Merkmale wie DDBMS für ein verteiltes Datenbankmanagementsystem anzeigen.

Die von einem DBMS bereitgestellte Funktionalität kann enorm variieren. Die Kernfunktionalität ist der Speicher, Abruf und Aktualisierung von Daten. Codd schlug die folgenden Funktionen und Dienstleistungen vor, die ein vollwertiger Allzweck-DBMS bereitstellen sollte:[25]

  • Datenspeicher, Abrufen und Update
  • Benutzer zugänglicher Katalog oder Datenwörterbuch Beschreibung der Metadaten
  • Unterstützung für Transaktionen und Parallelität
  • Einrichtungen zur Wiederherstellung der Datenbank sollten sie beschädigt werden
  • Unterstützung für die Genehmigung des Zugriffs und die Aktualisierung von Daten
  • Zugang zur Unterstützung von Remote -Standorten von Remote -Standorten
  • Durchsetzung von Einschränkungen, um Daten in der Datenbank zu gewährleisten

Es ist im Allgemeinen auch zu erwarten, dass die DBMs eine Reihe von Versorgungsunternehmen für Zwecke bereitstellen, die erforderlich sind, um die Datenbank effektiv zu verwalten, einschließlich Import-, Export-, Überwachungs-, Defragmentierungs- und Analyse -Versorgungsunternehmen.[26] Der Kernteil des DBMS, der zwischen der Datenbank und der Anwendungsschnittstelle interagiert, wird manchmal als die bezeichnet Datenbankmotor.

Oft haben DBMS Konfigurationsparameter, die statisch und dynamisch abgestimmt werden können, beispielsweise die maximale Menge des Hauptspeichers auf einem Server, die die Datenbank verwenden kann. Der Trend besteht darin, die Menge der manuellen Konfiguration und für Fälle wie z. B. zu minimieren Eingebettete Datenbanken Die Notwendigkeit, auf Null-administration abzielen, ist von größter Bedeutung.

Die großen DBMS der großen Enterprise haben in der Regel von Größe und Funktionalität zunehmen und können während ihres gesamten Lebens Tausende von menschlichen Entwicklungsanstrengungen verbunden haben.[a]

Frühe Multi-Benutzer-DBMs erlaubten in der Regel nur, dass die Anwendung auf demselben Computer mit Zugriff via wohnt Terminals oder Terminalemulationssoftware. Das Kunden -Server -Architektur war eine Entwicklung, bei der sich die Anwendung auf einem Client -Desktop und der Datenbank auf einem Server befand, sodass die Verarbeitung verteilt wird. Dies entwickelte sich zu a Multitier Architektur Einbau Anwendungsserver und Webserver mit der Endbenutzerschnittstelle über a Webbrowser mit der Datenbank nur direkt mit der benachbarten Stufe verbunden.[27]

Ein allgemeines DBMS wird öffentlich zur Verfügung stellen Anwendungsprogrammierschnittstellen (API) und optional ein Prozessor für Datenbanksprachen wie zum Beispiel Sql Damit Anwendungen geschrieben werden können, um mit der Datenbank zu interagieren und zu manipulieren. Ein spezieller Zweck für DBMs kann eine private API verwenden und speziell angepasst und mit einer einzelnen Anwendung verknüpft werden. Zum Beispiel eine Email Das System erfüllt viele Funktionen eines allgemeinen DBMS wie Nachrichteninsertion, Nachrichtenlöschung, Anhangsbehandlung, Blocklisten-Suche, Zusammenarbeit mit Nachrichten eine E-Mail-Adresse usw., aber diese Funktionen sind auf das beschränkt, was für die Verarbeitung von E-Mails erforderlich ist.

Anwendung

Die externe Interaktion mit der Datenbank erfolgt über ein Anwendungsprogramm, das mit den DBMs übergeht.[28] Dies kann von a reichen Datenbank -Tool Dadurch können Benutzer SQL -Abfragen text oder grafisch auf eine Website ausführen, die eine Datenbank zum Speichern und Durchsuchen von Informationen verwendet.

Anwendungsprogrammschnittstelle

A Programmierer Wille Code Interaktionen in die Datenbank (manchmal als als als bezeichnet als als Datenquelle) über an an Anwendungsprogrammschnittstelle (API) oder über a Datenbanksprache. Die bestimmte API oder Sprache muss von DBMS unterstützt werden, möglicherweise indirekt über a Präprozessor oder eine Überbrückungs -API. Einige API zielen darauf ab, Datenbankunabhängige zu sein, ODBC ein allgemein bekanntes Beispiel sein. Andere gemeinsame API sind einzuziehen JDBC und Ado.net.

Datenbanksprachen

Datenbanksprachen sind Spezialsprachen, die eine oder mehrere der folgenden Aufgaben ermöglichen, die manchmal als unterschieden werden Sublanguages:

Datenbanksprachen sind spezifisch für ein bestimmtes Datenmodell. Bemerkenswerte Beispiele sind:

  • SQL kombiniert die Rollen von Datendefinition, Datenmanipulation und Abfrage in einer einzigen Sprache. Es war eine der ersten kommerziellen Sprachen für das relationale Modell, obwohl es in gewisser Hinsicht von abgab das relationale Modell, wie von Codd beschrieben (Zum Beispiel können die Zeilen und Spalten einer Tabelle bestellt werden). SQL wurde ein Standard der American National Standards Institute (ANSI) im Jahr 1986 und der Internationale Standardisierungsorganisation (ISO) im Jahr 1987. Die Standards wurden seitdem regelmäßig verbessert und werden (mit unterschiedlichem Konformitätsgrad) von allen kommerziellen Mainstream -kommerziellen relationalen DBMS unterstützt.[29][30]
  • Oql ist ein Objektmodellsprachstandard (aus dem Objektdatenverwaltungsgruppe). Es hat das Design einiger neuerer Abfragesprachen wie Jdoql und beeinflusst Ejb ql.
  • XQuery ist eine Standard -XML -Abfragesprache, die von XML -Datenbanksystemen wie z. B. implementiert wird Marklogic und existieren, durch relationale Datenbanken mit XML-Funktionen wie Oracle und DB2 sowie durch In-Memory-XML Sachsen.
  • SQL/XML Kombinieren XQuery mit SQL.[31]

Eine Datenbanksprache kann auch Funktionen enthalten wie:

  • DBMS-spezifische Konfiguration und Speichermotormanagement
  • Berechnungen zur Änderung von Abfrageergebnissen wie Zählen, Summieren, Mitteln, Sortieren, Gruppieren und Querverweis
  • Einschränkung der Durchsetzung (z. B. in einer Automobildatenbank, so dass nur ein Motortyp pro Auto zulässig ist)
  • Anwendungsprogrammierschnittstellenversion der Abfragesprache für Programmierer Bequemlichkeit

Lagerung

Datenbankspeicher ist der Container der physikalischen Materialisierung einer Datenbank. Es umfasst das intern (physisch) eben in der Datenbankarchitektur. Es enthält auch alle erforderlichen Informationen (z. B.,, Metadaten, "Daten über die Daten" und intern Datenstrukturen) um das zu rekonstruieren konzeptionelle Ebene und externe Ebene von der internen Ebene bei Bedarf. Datenbanken als digitale Objekte enthalten drei Informationsebenen, die gespeichert werden müssen: die Daten, die Struktur und die Semantik. Für die Zukunft ist eine ordnungsgemäße Speicherung aller drei Schichten erforderlich Erhaltung und Langlebigkeit der Datenbank.[32] Das Einlegen von Daten in eine dauerhafte Speicherung liegt im Allgemeinen in der Verantwortung der Datenbankmotor a.k.a. "Storage Engine". Obwohl in der Regel von einem DBMS über das zugrunde liegende Betriebssystem zugegriffen (und häufig die Betriebssysteme verwenden " Dateisysteme Als Zwischenprodukte für das Speicherlayout) sind Speichereigenschaften und Konfigurationseinstellungen für den effizienten Betrieb der DBMs äußerst wichtig und werden daher von Datenbankadministratoren eng verwaltet. Ein DBMs im Betrieb hat immer seine Datenbank in verschiedenen Speichertypen (z. B. Speicher und externer Speicher). Die Datenbankdaten und die zusätzlichen benötigten Informationen, möglicherweise in sehr großen Mengen, werden in Bits codiert. Daten befinden sich in der Regel im Speicher in Strukturen, die sich vollständig von der Art und Weise unterscheiden, wie die Daten die konzeptionellen und externen Ebenen betrachten, jedoch auf eine Weise, die versucht, (das bestmögliche) die Rekonstruktion dieser Ebenen bei Bedarf auch von Benutzern und Programmen zu optimieren. Wie für die Berechnung zusätzlicher Arten von benötigten Informationen aus den Daten (z. B. beim Abfragen der Datenbank).

Einige DBMSs unterstützen die Angabe, welche Zeichenkodierung wurde verwendet, um Daten zu speichern, sodass in derselben Datenbank mehrere Kodierungen verwendet werden können.

Verschiedene niedrige Niveau Datenbankspeicherstrukturen werden von der Speicher -Engine verwendet, um das Datenmodell zu serialisieren, damit es auf das Medium der Wahl geschrieben werden kann. Techniken wie die Indexierung können verwendet werden, um die Leistung zu verbessern. Die konventionelle Speicherung ist zeilenorientiert, aber es gibt auch Säulenorientiert und Korrelationsdatenbanken.

Materialisierte Aussichten

Oft wird eine Speicherreduktion eingesetzt, um die Leistung zu steigern. Ein häufiges Beispiel ist die Aufbewahrung materialisierte Aussichten, was aus häufig benötigter bestehen externe Ansichten oder Abfragenergebnisse. Das Speichern solcher Ansichten spart das teure Computer jedes Mal, wenn sie benötigt werden. Die Nachteile materialisierter Ansichten sind der Overhead, der bei der Aktualisierung entstanden ist, um sie mit ihren ursprünglichen aktualisierten Datenbankdaten und den Kosten für die Speicherreduktion synchronisiert zu halten.

Reproduzieren

Gelegentlich verwendet eine Datenbank die Speicher-Redundanz nach Datenbankobjekte Replikation (mit einem oder mehreren Kopien), um die Datenverfügbarkeit (sowohl zur Verbesserung der Leistung des gleichzeitigen Zugriff eine verteilte Datenbank). Aktualisierungen eines replizierten Objekts müssen über die Objektkopien synchronisiert werden. In vielen Fällen wird die gesamte Datenbank repliziert.

Sicherheit

Datenbanksicherheit befasst sich mit allen verschiedenen Aspekten beim Schutz des Datenbankinhalts, seiner Eigentümer und seiner Benutzer. Es reicht vom Schutz vor absichtlichen nicht autorisierten Datenbank bis hin zu unbeabsichtigten Datenbankzugriffe durch nicht autorisierte Entitäten (z. B. eine Person oder ein Computerprogramm).

Die Datenbankzugriffskontrolle befasst sich mit der Steuerung der WHO (eine Person oder ein bestimmtes Computerprogramm) dürfen auf die Informationen in der Datenbank zugreifen. Die Informationen können spezifische Datenbankobjekte (z. B. Datensatztypen, spezifische Datensätze, Datenstrukturen), bestimmte Berechnungen über bestimmte Objekte (z. B. Abfragetypen oder spezifische Abfragen) oder die Verwendung spezifischer Zugriffspfade zu ersteren umfassen (z. B. unter Verwendung spezifischer Indizes verwenden oder andere Datenstrukturen, um auf Informationen zuzugreifen). Datenbankzugriffskontrollen werden von speziellen autorisierten Personal (vom Datenbankbesitzer) festgelegt, das dedizierte, geschützte Sicherheits -DBMS -Schnittstellen verwendet.

Dies kann direkt auf individueller Basis oder durch die Zuordnung von Einzelpersonen und direkt verwaltet werden Privilegien an Gruppen oder (in den aufwändigsten Modellen) durch die Zuordnung von Einzelpersonen und Gruppen zu Rollen, denen Ansprüche erteilt werden. Die Datensicherheit verhindert, dass nicht autorisierte Benutzer die Datenbank anzeigen oder aktualisieren. Verwenden von Kennwörtern dürfen Benutzer Zugriff auf die gesamte Datenbank oder Teilmengen von IT "Subschemas" bezeichnen. Beispielsweise kann eine Mitarbeiterdatenbank alle Daten über einen einzelnen Mitarbeiter enthalten, aber eine Gruppe von Benutzern kann autorisiert sein, nur Lohn- und Gehaltsabrechnungsdaten anzuzeigen, während andere Zugriff auf nur Arbeitsgeschichte und medizinische Daten zulassen. Wenn das DBMS eine Möglichkeit bietet, die Datenbank interaktiv einzugeben und zu aktualisieren, sowie sie abfragen, ermöglicht diese Fähigkeit die Verwaltung persönlicher Datenbanken.

Datensicherheit Im Allgemeinen befasst sich mit dem Schutz spezifischer Datenbrocken sowohl physisch (d. H. vor Korruption oder Zerstörung oder Entfernung; z. B. siehe physische Sicherheit) oder die Interpretation von ihnen oder Teile von ihnen zu sinnvollen Informationen (z. B. durch Betrachtung der Saiten von Bits, die sie umfassen, abschließend spezifische gültige Kreditkartennummern; z. B. siehe siehe Datenverschlüsselung).

Ändern und Zugriff auf Protokollierungsdatensätze, auf die auf die Attribute zugegriffen wurde, was geändert wurde und wann es geändert wurde. Protokollierungsdienste ermöglichen eine Forensik Datenbankprüfung Später, indem Sie eine Aufzeichnung von Zugriffsereignissen und Änderungen beibehalten. Manchmal wird Code auf Anwendungsebene verwendet, um Änderungen aufzuzeichnen, anstatt dies in der Datenbank zu lassen. Die Überwachung kann eingerichtet werden, um zu versuchen, Sicherheitsverletzungen zu erkennen. Daher müssen Unternehmen aufgrund der vielen Vorteile, die sie bietet, die Datenbanksicherheit ernst nehmen. Organisationen werden vor Sicherheitsverletzungen und Hacking -Aktivitäten wie Firewall -Intrusion, Virus -Spread und Ransom Ware geschützt. Dies hilft beim Schutz der wesentlichen Informationen des Unternehmens, die aus irgendeinem Grund nicht mit Außenstehenden geteilt werden können.[33]

Transaktionen und Parallelität

Datenbanktransaktionen kann verwendet werden, um ein gewisses Maß an einzuführen Fehlertoleranz und Datenintegrität Nach der Genesung von a Absturz. Eine Datenbanktransaktion ist eine Arbeitseinheit, die typischerweise eine Reihe von Vorgängen über eine Datenbank zusammenfasst (z. B. Lesen eines Datenbankobjekts, Schreibens, Erfassen oder Freisetzung a sperrenusw.), eine in der Datenbank und auch andere Systeme unterstützte Abstraktion. Jede Transaktion hat gut definierte Grenzen in Bezug auf welche Programm-/Code -Ausführungen in dieser Transaktion enthalten sind (bestimmt vom Programmierer der Transaktion über spezielle Transaktionsbefehle).

Das Akronym SÄURE beschreibt einige ideale Eigenschaften einer Datenbank -Transaktion: Atomizität, Konsistenz, Isolation, und Haltbarkeit.

Migration

Eine mit einem DBM erstellte Datenbank ist nicht für ein anderes DBMS tragbar (d. H. Die anderen DBMs können sie nicht ausführen). In einigen Situationen ist es jedoch wünschenswert, eine Datenbank von einem DBM zum anderen zu migrieren. Die Gründe sind in erster Linie wirtschaftlich (verschiedene DBMS können unterschiedlich sein Gesamtkosten des Eigentums oder TCOs), funktional und operativ (verschiedene DBMS können unterschiedliche Fähigkeiten haben). Die Migration umfasst die Transformation der Datenbank von einem DBMS -Typ zum anderen. Die Transformation sollte (wenn möglich) die von der Datenbank verwandte Anwendung (d. H. Alle verwandten Anwendungsprogramme) intakt verwalten. Somit sollte die konzeptionelle und externe architektonische Ebenen der Datenbank in der Transformation aufrechterhalten werden. Es kann erwünscht werden, dass auch einige Aspekte der internen Ebene der Architektur beibehalten werden. Eine komplexe oder große Datenbankmigration kann ein kompliziertes und kostspieliges (einmaliges) Projekt für sich sein, das in die Entscheidung zur Migration berücksichtigt werden sollte. Dies ist trotz der Tatsache, dass Tools existieren können, um die Migration zwischen bestimmten DBMS zu unterstützen. In der Regel bietet ein DBMS -Anbieter Tools zum Importieren von Datenbanken aus anderen beliebten DBMS.

Gebäude, Wartung und Tuning

Nach dem Entwerfen einer Datenbank für eine Anwendung erstellt die nächste Stufe die Datenbank. In der Regel kann ein geeignetes allgemeines DBMs ausgewählt werden, um für diesen Zweck verwendet zu werden. Ein DBMS liefert die erforderlichen Benutzeroberflächen von Datenbankadministratoren verwendet werden, um die Datenstrukturen der erforderlichen Anwendung innerhalb des jeweiligen Datenmodells des DBMS zu definieren. Andere Benutzeroberflächen werden verwendet, um die erforderlichen DBMS -Parameter auszuwählen (z.

Wenn die Datenbank fertig ist (alle Datenstrukturen und andere benötigte Komponenten sind definiert), wird sie normalerweise mit den Daten der ersten Anwendung (Datenbankinitialisierung, die normalerweise ein unterschiedliches Projekt ist; in vielen Fällen mit speziellen DBMS -Schnittstellen, die die Bulk -Insertion unterstützen) vorgeschlagen werden es operativ machen. In einigen Fällen wird die Datenbank operativ, während sie leer von Anwendungsdaten sind, und die Daten werden während ihres Betriebs akkumuliert.

Nachdem die Datenbank erstellt wurde, initialisiert und besiedelt wurde, muss sie beibehalten werden. Verschiedene Datenbankparameter müssen möglicherweise geändert werden, und die Datenbank muss möglicherweise abgestimmt werden ((Stimmung) für eine bessere Leistung; Die Datenstrukturen der Anwendung können geändert oder hinzugefügt werden. Neue verwandte Anwendungsprogramme können geschrieben werden, um die Funktionalität der Anwendung hinzuzufügen usw.

Sichern und Wiederherstellen

Manchmal ist es erwünscht, eine Datenbank in einen früheren Zustand zurückzubringen (aus vielen Gründen, z. B. Fälle, in denen die Datenbank aufgrund eines Softwarefehlers beschädigt ist oder wenn sie mit fehlerhaften Daten aktualisiert wurde). Um dies zu erreichen, erfolgt ein Sicherungsvorgang gelegentlich oder kontinuierlich, wobei jeder gewünschte Datenbankzustand (d. H. Die Werte seiner Daten und deren Einbettung in die Datenbankstrukturen der Datenbank) in dedizierten Sicherungsdateien aufbewahrt werden (um dies effektiv zu tun). Wenn es von einem Datenbankadministrator entschieden wird, die Datenbank in diesen Status zurückzubringen (z. B. durch Angabe dieses Zustands durch einen gewünschten Zeitpunkt, in dem sich die Datenbank in diesem Status befand), werden diese Dateien verwendet, um diesen Status wiederherzustellen.

Statische Analyse

Statische Analysetechniken zur Softwareverifizierung können auch im Szenario von Abfragsprachen angewendet werden. Insbesondere das *Abstrakte Interpretation Das Framework wurde auf das Gebiet der Abfragsprachen für relationale Datenbanken ausgedehnt, um Klangannäherungstechniken zu unterstützen.[34] Die Semantik von Abfragsprachen kann nach geeigneten Abstraktionen des konkreten Datenbereichs eingestellt werden. Die Abstraktion von relationalen Datenbanksystemen hat viele interessante Anwendungen, insbesondere für Sicherheitszwecke, wie z. B. feinkörnige Zugangskontrolle, Wasserzeichen usw.

Verschiedene Merkmale

Andere DBMS -Funktionen umfassen möglicherweise:

  • Datenbankprotokolle - Dies hilft, eine Geschichte der ausgeführten Funktionen zu halten.
  • Grafikkomponente zum Erstellen von Grafiken und Diagrammen, insbesondere in einem Data Warehouse -System.
  • Frage Optimierer - führt die Abfrageoptimierung bei jeder Abfrage aus, um eine effiziente Auswahl zu erhalten Abfrageplan (Eine Teilreihenfolge (Baum) von Operationen), um das Abfrageergebnis zu berechnen. Kann spezifisch für eine bestimmte Speichermotor sein.
  • Tools oder Hooks für Datenbankdesign, Anwendungsprogrammierung, Anwendungsprogrammwartung, Datenbankleistungsanalyse und -überwachung, Datenbankkonfigurationsüberwachung, DBMS -Hardwarekonfiguration (DBMS und zugehörige Datenbank können möglicherweise Computer, Netzwerke und Speichereinheiten sparen) und zugehörige Datenbank -Mapping (insbesondere auf ein verteiltes DBMS), Speicherzuweisung und Datenbanklayoutüberwachung, Speichermigration usw.

Zunehmend gibt es ein einzelnes System, das alle diese Kernfunktionalitäten in denselben Build-, Test- und Bereitstellungsframework für Datenbankverwaltung und Quellensteuerung einbezieht. Ausleihen von anderen Entwicklungen in der Softwarebranche, einige vermarkten Angebote wie "wie"DevOps für Datenbank ".[35]

Design und Modellierung

Process of database design v2.png

Die erste Aufgabe eines Datenbankdesigers besteht darin, a zu produzieren Konzeptioneller Datenmodell Dies spiegelt die Struktur der Informationen wider, die in der Datenbank enthalten sind. Ein häufiger Ansatz dazu besteht darin, eine zu entwickeln Entität und Beziehungoft mit Hilfe von Zeichenwerkzeugen. Ein weiterer beliebter Ansatz ist der Einheitliche Modellierungssprache. Ein erfolgreiches Datenmodell spiegelt genau den möglichen Zustand der modellierten externen Welt wider: Wenn Menschen beispielsweise mehr als eine Telefonnummer haben können, können diese Informationen erfasst werden. Das Entwerfen eines guten konzeptionellen Datenmodells erfordert ein gutes Verständnis der Anwendungsdomäne. In der Regel stellen Sie tiefe Fragen zu den Dingen, die für eine Organisation von Interesse sind, z. B. "Kann ein Kunde auch ein Lieferant sein?" Oder "Wenn ein Produkt mit zwei verschiedenen Verpackungsformen verkauft wird, sind diese das gleiche Produkt oder verschiedene Produkte? "oder" Wenn ein Flugzeug über Frankfurt von New York nach Dubai fliegt, ist das ein oder zwei Fluge (oder vielleicht sogar drei)? " Die Antworten auf diese Fragen stellen Definitionen der Terminologie fest, die für Unternehmen (Kunden, Produkte, Flüge, Flugsegmente) sowie ihre Beziehungen und Attribute verwendet werden.

Das Erstellen des konzeptionellen Datenmodells beinhaltet manchmal Eingaben von Geschäftsprozesseoder die Analyse von Arbeitsablauf in der Organisation. Dies kann helfen, festzustellen, welche Informationen in der Datenbank benötigt werden und was ausgelassen werden kann. Beispielsweise kann es helfen, zu entscheiden, ob die Datenbank sowohl historische Daten als auch aktuelle Daten enthalten muss.

Nach einem konzeptionellen Datenmodell, mit dem Benutzer zufrieden sind Schema Dies implementiert die relevanten Datenstrukturen in der Datenbank. Dieser Prozess wird oft als logisches Datenbankdesign bezeichnet, und die Ausgabe ist a Logisches Datenmodell ausgedrückt in Form eines Schemas. Während das konzeptionelle Datenmodell (zumindest theoretisch) unabhängig von der Auswahl der Datenbanktechnologie ist, wird das logische Datenmodell in Bezug auf ein bestimmtes Datenbankmodell ausgedrückt, das von den ausgewählten DBMs unterstützt wird. (Die Begriffe Datenmodell und Datenbankmodell werden oft austauschbar verwendet, aber in diesem Artikel verwenden wir Datenmodell für das Design einer bestimmten Datenbank und Datenbankmodell Für die Modellierungsnotation, die verwendet wird, um dieses Design auszudrücken).

Das beliebteste Datenbankmodell für allgemeine Datenbanken ist das relationale Modell oder genauer gesagt das relationale Modell, das durch die SQL-Sprache dargestellt wird. Der Prozess des Erstellens eines logischen Datenbankdesigns mit diesem Modell verwendet einen methodischen Ansatz, der als bekannt ist Normalisierung. Das Ziel der Normalisierung ist es, sicherzustellen, dass jede elementare "Tatsache" nur an einem Ort aufgezeichnet wird, so dass Insertionen, Aktualisierungen und Löschungen automatisch die Konsistenz aufrechterhalten.

Die letzte Phase des Datenbankdesigns besteht darin, die Entscheidungen zu treffen, die die Leistung, Skalierbarkeit, Wiederherstellung, Sicherheit und dergleichen beeinflussen, die von den jeweiligen DBMs abhängen. Dies wird oft genannt Physikalisches Datenbankdesignund die Ausgabe ist die Physikalisches Datenmodell. Ein wichtiges Ziel in dieser Phase ist Datenunabhängigkeit, was bedeutet, dass die Entscheidungen für die Leistungsoptimierungszwecke für Endbenutzer und Anwendungen unsichtbar sein sollten. Es gibt zwei Arten von Datenunabhängigkeit: physikalische Datenunabhängigkeit und logische Datenunabhängigkeit. Das physische Design wird hauptsächlich von Leistungsanforderungen angetrieben und erfordert ein gutes Wissen über die erwarteten Arbeits- und Zugriffsmuster sowie ein tiefes Verständnis der von den ausgewählten DBMs angebotenen Funktionen.

Ein weiterer Aspekt des physischen Datenbankdesigns ist die Sicherheit. Es beinhaltet beide definiert Zugangskontrolle Datenbankobjekte sowie das Definieren von Sicherheitsstufen und -methoden für die Daten selbst.

Modelle

Collage von fünf Arten von Datenbankmodellen

Ein Datenbankmodell ist eine Art von Datenmodell, die die logische Struktur einer Datenbank bestimmt und auf welche Weise grundlegend bestimmt Daten Kann gelagert, organisiert und manipuliert werden. Das beliebteste Beispiel für ein Datenbankmodell ist das relationale Modell (oder die SQL-Näherung von Relational), das ein Tabellenbasis verwendet.

Zu den gängigen logischen Datenmodellen für Datenbanken gehören:

Eine Objekt -relationale Datenbank kombiniert die beiden verwandten Strukturen.

Physikalische Datenmodelle enthalten:

Andere Modelle sind:

Spezialmodelle sind für bestimmte Datenarten optimiert:

Externe, konzeptionelle und interne Ansichten

Traditionelle Ansicht von Daten[36]

Ein Datenbankverwaltungssystem enthält drei Ansichten der Datenbankdaten:

  • Das externe Ebene Definiert, wie jede Gruppe von Endnutzern die Organisation von Daten in der Datenbank sieht. Eine einzelne Datenbank kann eine beliebige Anzahl von Ansichten auf externer Ebene haben.
  • Das konzeptionelle Ebene vereint die verschiedenen externen Ansichten in eine kompatible globale Sichtweise.[37] Es bietet die Synthese aller externen Ansichten. Es ist nicht im Rahmen der verschiedenen Datenbankend-Benutzer und ist für die Datenbankanwendungsentwickler und Datenbankadministratoren eher interessant.
  • Das interne Ebene (oder Physische Ebene) ist die interne Organisation von Daten in einem DBMS. Es geht um Kosten, Leistung, Skalierbarkeit und andere betriebliche Angelegenheiten. Es befasst sich mit dem Speicherlayout der Daten unter Verwendung von Speicherstrukturen wie z. B. Indizes Leistung zu verbessern. Gelegentlich speichert es Daten von individuellen Ansichten (materialisierte Aussichten), berechnet aus generischen Daten, wenn die Leistungsbegründung für eine solche Redundanz vorhanden ist. Es gleicht alle Leistungsanforderungen der externen Ansichten aus, möglicherweise widersprüchlich, um die Gesamtleistung über alle Aktivitäten hinweg zu optimieren.

Während es normalerweise nur eine konzeptionelle (oder logische) und physische (oder interne) Ansicht der Daten gibt, kann es eine beliebige Anzahl verschiedener externer Ansichten geben. Auf diese Weise können Benutzer Datenbankinformationen eher geschäftsbezogene Weise als aus technischer Sicht auf verarbeitende Sichtweise sehen. Zum Beispiel benötigt eine Finanzabteilung eines Unternehmens die Zahlungsdetails aller Mitarbeiter im Rahmen der Ausgaben des Unternehmens, benötigt jedoch keine Details zu Mitarbeitern, die im Interesse des Interesses sind Humanressourcen Abteilung. Somit brauchen verschiedene Abteilungen unterschiedlich Ansichten der Datenbank des Unternehmens.

Die dreistufige Datenbankarchitektur bezieht sich auf das Konzept von Datenunabhängigkeit Dies war eine der wichtigsten ansteigigen Antriebskräfte des relationalen Modells. Die Idee ist, dass Änderungen, die auf einer bestimmten Ebene vorgenommen wurden, die Sicht auf einer höheren Ebene nicht beeinflussen. Beispielsweise beeinflussen Änderungen auf der internen Ebene keine Anwendungsprogramme, die mit konzeptionellen Schnittstellen geschrieben wurden, wodurch die Auswirkungen der physischen Änderungen zur Verbesserung der Leistung verringert werden.

Die konzeptionelle Sichtweise bietet eine Indirektion zwischen intern und extern. Einerseits bietet es eine gemeinsame Ansicht der Datenbank, unabhängig von verschiedenen externen Ansichtsstrukturen, und andererseits werden Details davon abtraht, wie die Daten gespeichert oder verwaltet werden (interne Ebene). Grundsätzlich kann jede Ebene und sogar jede externe Ansicht durch ein anderes Datenmodell dargestellt werden. In der Praxis verwendet ein gegebenes DBMS normalerweise das gleiche Datenmodell für externe und konzeptionelle Ebenen (z. B. relationales Modell). Die interne Ebene, die in den DBMs versteckt ist und von seiner Implementierung abhängt, erfordert eine andere Detailebene und verwendet seine eigenen Arten von Datenstrukturarten.

Trennen die extern, konzeptionell und intern Levels war ein Hauptmerkmal der relationalen Datenbankmodellimplementierungen, die Datenbanken des 21. Jahrhunderts dominieren.[37]

Forschung

Die Datenbanktechnologie ist seit den 1960er Jahren ein aktives Forschungsthema, beide in Akademie und in den Forschungs- und Entwicklungsgruppen von Unternehmen (zum Beispiel IBM -Forschung). Forschungstätigkeit umfasst Theorie und Entwicklung von Prototypen. Bemerkenswerte Forschungsthemen haben eingeschlossen Modelle, das Atomtransaktionskonzept, verwandt Parallelitätskontrolle Techniken, Abfragesprachen und Abfrageoptimierung Methoden, ÜBERFALLEN, und mehr.

Der Datenbankforschungsbereich hat mehrere engagierte Fachzeitschriften (zum Beispiel, ACM -Transaktionen auf Datenbanksystemen-Tods, Daten- und Wissenstechnik-Dke) und einjährig Konferenzen (z.B., ACM Sigmod, ACM Schoten, Vldb, IEEE ICDE).

Siehe auch

Anmerkungen

  1. ^ Dieser Artikel zitiert eine Entwicklungszeit von 5 Jahren, an denen nur 750 Personen für DB2 Release 9 beteiligt sind. ((Chong et al. 2007)

Verweise

  1. ^ Ullman & Widom 1997, p. 1.
  2. ^ "Update-Definition des Updates von Merriam-Webster". Merriam-webster.com.
  3. ^ "Abruf-Definition des Abrufs von Merriam-Webster". Merriam-webster.com.
  4. ^ "Verwaltung-Definition der Verwaltung durch Merriam-Webster". Merriam-webster.com.
  5. ^ Tsichizris & Lochovsky 1982.
  6. ^ Beynon-Davies 2003.
  7. ^ Nelson & Nelson 2001.
  8. ^ Bachman 1973.
  9. ^ "Topdb Top -Datenbankindex". pypl.github.io.
  10. ^ "Datenbank, n". OED online. Oxford University Press. Juni 2013. Abgerufen 12. Juli, 2013. (Abonnement erforderlich.)
  11. ^ IBM Corporation (Oktober 2013). "IBM Information Management System (IMS) 13 Transaktions- und Datenbankserver liefert hohe Leistung und niedrige Gesamtbetriebskosten". Abgerufen 20. Februar, 2014.
  12. ^ Codd 1970.
  13. ^ Hershey & Easthope 1972.
  14. ^ Nord 2010.
  15. ^ Childs 1968a.
  16. ^ Childs 1968b.
  17. ^ M. A. Kahn; D.L. Rumelhart; B.L. Bronson (Oktober 1977). Micro Information Management System (Version 5.0) Referenzhandbuch. Institut für Arbeits- und Industriebeziehungen (ILIR), Universität von Michigan und Wayne State University.
  18. ^ "Oracle 30. Jubiläumszeitleiste" (PDF). Abgerufen 23. August 2017.
  19. ^ Interview mit Wayne Ratliff. Die Foxpro -Geschichte. Abgerufen am 2013-07-12.
  20. ^ Entwicklung eines objektorientierten DBMs; Portland, Oregon, Vereinigte Staaten; Seiten: 472–482; 1986; ISBN0-89791-204-7
  21. ^ Gräber, Steve. "COTS -Datenbanken für eingebettete Systeme" Archiviert 2007-11-14 bei der Wayback -Maschine, Embedded Computing Design Magazin, Januar 2007. Abgerufen am 13. August 2008.
  22. ^ Argumentation in künstlicher Intelligenz von Iyad Rahwan, Guillermo R. Simari
  23. ^ "Owl DL Semantik". Abgerufen 10. Dezember 2010.
  24. ^ Connolly & Begg 2014, p. 64.
  25. ^ Connolly & Begg 2014, S. 97–102.
  26. ^ Connolly & Begg 2014, p. 102.
  27. ^ Connolly & Begg 2014, S. 106–113.
  28. ^ Connolly & Begg 2014, p. 65.
  29. ^ Chapple 2005.
  30. ^ "Structured Query Language (SQL)". Internationale Geschäftsmaschinen. 27. Oktober 2006. Abgerufen 2007-06-10.
  31. ^ Wagner 2010.
  32. ^ Ramalho, J.C.; Faria, L.; Helder, S.; Coutada, M. (31. Dezember 2013). "Datenbank -Konservierungs -Toolkit: Ein flexibles Tool zum Normalisieren und Zugriff auf Datenbanken.". Biblioteca Nacional de Portugal (BNP). Universität von Minho.
  33. ^ David Y. Chan; Victoria Chiu; Miklos A. Vasarhelyi (2018). Kontinuierliche Prüfung: Theorie und Anwendung (1. Aufl.). Bingley, Großbritannien. ISBN 978-1-78743-413-4. OCLC 1029759767.
  34. ^ Halder & Cortesi 2011.
  35. ^ Ben Linders (28. Januar 2016). "Wie die Datenbankverwaltung in DevOps passt". Abgerufen 15. April, 2017.
  36. ^ itl.nist.gov (1993) Integrationsdefinition für Informationsmodellierung (iDEFIX) Archiviert 2013-12-03 bei der Wayback -Maschine. 21. Dezember 1993.
  37. ^ a b Datum 2003, S. 31–32.

Quellen

Weitere Lektüre

  • Ling Liu und Tamer M. Özsu (Hrsg.) (2009). "Enzyklopädie von Datenbanksystemen, 4100 p. 60 Illus. ISBN978-0-387-49616-0.
  • Gray, J. und Reuter, A. Transaktionsverarbeitung: Konzepte und Techniken, 1. Ausgabe, Morgan Kaufmann Publishers, 1992.
  • Kroenke, David M. und David J. Auer. Datenbankkonzepte. 3. Aufl. New York: Prentice, 2007.
  • Raghu Ramakrishnan und Johannes Gehrke, Datenbankmanagementsystem
  • Abraham Silberschatz, Henry F. Korth, S. Sudarshan, Datenbanksystemkonzepte
  • Lightstone, S.; Teorey, T.; Nadeau, T. (2007). Physikalisches Datenbankdesign: Der Leitfaden des Datenbankprofis zur Nutzung von Indizes, Ansichten, Speicher und mehr. Morgan Kaufmann Press. ISBN 978-0-12-369389-1.
  • Teorey, T.; Lightstone, S. und Nadeau, T. Datenbankmodellierung & Design: logisches Design, 4. Auflage, Morgan Kaufmann Press, 2005. ISBN0-12-685352-5

Externe Links