In meiner Vorlesung "Datenbanken" erwähnte der Lehrer, dass SQL nicht nur eine Datendefinitionssprache (DDL), eine Datenmanipulationssprache (DML) und eine Ansichtsdefinitionssprache (VDL) ist, sondern auch eine Speicherdefinitionssprache (SDL). Die letzte Verwendung enthält keine weiteren Erklärungen oder Beispiele.
Die Suche nach zusätzlichen Informationen im Internet zur Verwendung von SQL als SDL liefert keine relevanten Ergebnisse. Könnte jemand ein Beispiel für die Verwendung von SQL als Speicherdefinitionssprache geben ?
Bearbeiten:
Würde eine Spezifikation wie die von MySQL SET storage_engine=MYISAM;
als Speicherdefinition gelten ? Es bezieht sich nicht wirklich auf die gespeicherten Daten, sondern darauf, wie sie gespeichert werden.
database-theory
terminology
Andrei Bârsan
quelle
quelle
CREATE TABLE
Anweisung bezieht , die die physikalischen Eigenschaften einer Tabelle und / oder die verschiedenen Arten von Indizes für eine Tabelle beschreiben. Ich habe den Begriff noch nie zuvor gehört, aber ich kann sehen, wie ein Akademiker in Bezug auf Spaltenattribute differenzieren möchte. Ich wollte dies zu einer Antwort machen, bin mir aber nicht sicher, ob dies eine gültige SO-Frage ist (obwohl interessant).SET storage_engine=MYISAM
ist ein MySQL-spezifisches Beispiel für SDL'.Antworten:
Möglicherweise möchten Sie Ihren Lehrer bitten, "SDL" zu definieren. Ich glaube nicht, dass der Begriff im SQL-Standard vorkommt. Ich habe diese Referenz gefunden (siehe Seite 3) und bin anderer Meinung: SQL definiert nicht die physische Struktur, die physischen Bytes pro Feld, die Reihenfolge der physischen Felder, die physische Sortierung oder "gemischte Datensätze", was auch immer dies bedeuten mag. SQL definiert überhaupt keine Felder oder Datensätze oder sagt nichts darüber aus, wie die Daten auf der Festplatte gespeichert werden, wenn sie auf der Festplatte gespeichert sind.
Allerdings bietet jeder Anbieter dem Administrator einige Möglichkeiten, um zu definieren, wo die Daten aufbewahrt werden sollen, und viele bieten unterschiedliche Kontrollmöglichkeiten für physische Speicheraspekte (z. B. ISAM, Clustered-Indizes). AFAIK all das Zeug liegt außerhalb des SQL-Standards. Ich habe DBMS verwendet, die SQL DML verstehen, aber völlig getrennte Mechanismen zum Definieren von Tabellen und Speicher.
quelle
Ich kenne dieses Akronym als Schema-Definitionssprache - Manipulationssprache für Schemas (Metadaten) http://docs.sqlalchemy.org/en/rel_0_9/core/schema.html
quelle
Aus den Grundlagen von Datenbanksystemen (7. Ausgabe) 7. Ausgabe (S. 39)
Dieselbe Quelle fährt fort, auf Seite 201,
Es scheint, dass diese Begriffe VDL und SDL aus dem Drei-Schema stammen , eine Idee in den 1970er Jahren. Laut diesem Autor wurden sie mehr oder weniger in SQL zusammengeführt, einer umfassenden Sprache, die versucht, all diese Probleme zu lösen.
Ich glaube, sie werden auch in A Preliminary Architectural Design für die funktionale Hierarchie des INFOPLEX-Datenbankcomputers referenziert. (1980) als "Database Sublanguage Faculty" und "View Translation Layer". In den späten 70ern und frühen 80ern fand ich zahlreiche Hinweise auf Modellsprachen und Speichersprachen.
Ein Beispiel nehmen
CREATE TABLE f (x int, y varchar(25));
. Hier definieren Sieint, varchar(25)
.f(x,y)
ein relationales Tupel mit zwei Slots.Zusätzlich zu den Dingen, die sich mit dem Speicher zu überschneiden scheinen, erweitern die meisten Datenbanken die Spezifikation, um über Indizes und Speicher-Backends zu sprechen, die sich absolut vom konzeptionellen Modell unterscheiden und sich auf das spezifische Speichermodell .
Sie können dies unter Datenbankverwaltungssysteme: Grundlegendes zur und Anwenden der Datenbanktechnologie (S. 210) als "Data Storage Definition Language (DSDL)" erneut sehen. Es wird viel über CODASYL, RDL (Relational Data Language), NDL (Network Data Language) und IRDIS (Information Resource Dictionary System) gesprochen.
quelle