Katalog archivischer Dateiformate Version 5.0, Juli 2016

SQL Script


Kategorie

Strukturierte Daten aus Datenbanken

Abkürzung

.sql

Titel

Scripting Database

Versionen

Es handelt sich hier nicht um ein Dateiformat, sondern um eine Methode zum Erzeugen einer relationalen Datenbank aus einer Script-Datei (Textdatei) und vice versa. Die Textdatei enthält eine Menge von SQL-Befehlen. Diese SQL-Befehle müssen in ihrer Syntax einer bestimmten SQL-Version folgen (z.B. SQL-92).
SQL ist von ANSI und ISO standardisiert.

Beschreibung

Die Methode, eine Datenbank mit all ihren Datenbankobjekten aus einer Menge von SQL-Scripten aufzubauen, wird in der Regel im Datenbank-Developmentbereich, bei der Datenbankerzeugung mit CASE-Tools, für Dokumentationszwecke und bei der Datensicherung eingesetzt.
Eine Menge von DDL (Data Definition Language)-Befehlen erzeugt die Struktur bzw. Objekte der Datenbank. Mit DML (Data Manipulation Language)-Befehlen werden anschliessend die Datenbankobjekte/Tabellen mit Daten gefüllt. Alle diese Befehle sind sequentiell in einer Datei angeordnet, werden vom SQL-Interpreter ausgeführt und generieren ein Datenbankschema und füllen Daten in die Tabellen. Zur Erzeugung der Scripts stehen verschiedene Tools zu Verfügung. Bestimmte Datenbanken haben diese Tools auch bereits eingebaut (SQL-Server: "Generate SQL Script wizard", PostgreSQL: "SQL Manager" etc.)
Mit dieser Methode werden, wie übrigens auch bei SQLX oder SIARD, nur die Struktur und der Inhalt der Datenbank archiviert, die applikatorische Logik, die allenfalls einen bedeutenden Beitrag zum Verständnis einer Fachapplikation beiträgt, bleibt unberücksichtigt

Bewertung



Offenheit 3

Wenn im Script die Syntax einer bestimmten SQL-Version befolgt wird, ist eine Offenheit in hohem Grade gegeben. Viele Tools generieren jedoch Scripts für eine spezielle Datenbank und verwenden dabei, besonders im DDL-Bereich, datenbankspezifische Befehle, die nicht dem SQL-Standard entsprechen.

Lizenzfreiheit 4

Es bestehen keine lizenzrechtliche Einschränkungen für SQL Scripts.

Verbreitung 1

Hauptverbreitung sind die Bereiche Datenbank-Development, Datenbankerzeugung aus CASE-Tools und Datenbank-Dokumentation. Für die Datenbankarchivierung wird dieser Weg eher selten eingesetzt.

Funktionalitaet 4

Aus der archivierten SQL-Script-Datei kann ein Datenbankschema mit all seinen Objekten wieder vollständig hergestellt werden. Die Datenbank ist von der Originaldatenbank in logischen Belangen nicht zu unterschieden.

Implementierung 3

Es gibt eine grosse Zahl auch von Datenbankherstellern unabhängige Scripting Tools. Ein Scripting Tool kann zudem vollständig in SQL beschrieben oder implementiert werden.

Speicherdichte 1

Durch die SQL-Befehle in den Scripts entsteht eine enorme Aufblähung der Datenmenge. Deshalb wird dieser Weg selten zu Archivierungszwecken beschritten. (SQL-Loader generiert deshalb zwar DDL-Befehle im Header, schreibt die Daten aber anschliessend als CSV-Datei.)

Verifizierbarkeit 2

Es ist nur eine unspezifische Formaterkennung über die Dateinamenserweiterung möglich.

Best Practice 1

Diese Methode besitzt im Augenblick praktisch keine Bedeutung für die Archivierung von Datenbanken. Sie ist aber die Grundlage von archivisch interessantern oder weiter verbreiteten Ansätzen wie etwa SIARD und SQLX.

Perspektive 1

Wegen der grossen Datenredundanz (Wiederholung der immer gleichen DML-Befehle) ist nicht zu erwarten, dass sich diese Methode für die Archivierung von strukturierten Daten aus Datenbanken durchsetzen wird.

Formatklasse: n/a



Fazit

Die Methode ist aus theoretischer Sicht interessant, da alle verwendeten Schritte dem SQL-Standard unterworfen sind. Die Scripting-Datei kann vollständig mit einem SQL-Script generiert werden und stellt wiederum ein SQL-Script dar. SQL (Structured Query Language) hat auch eine lange und stabile Entwicklung als Sprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken und besitzt also so gesehen eine hohe Archivtauglichkeit. Der Umstand, dass die archivierten Daten nur komprimiert sinnvoll bewirtschaftet werden können, wirkt sich aber negativ aus.

Referenz

Ein Überblick über die SQL-Normen
http://www.techstreet.com/features/ISO_IEC_9075.tmpl
http://wwwai.wu-wien.ac.at/~wyk/dbs/pdf/SQL-DIN-Mitt-4-2004.pdf

Literatur

Wikipedia: SQL
http://de.wikipedia.org/wiki/Sql
Microsoft.com (ed.), Documenting and Scripting Databases
http://msdn2.microsoft.com/en-us/library/ms191299.aspx
The Code Project, Generate SQL Insert statements for your SQL Server 2000 Database
http://www.codeproject.com/dotnet/ScriptDatabase.asp
SQLScripter
http://www.sqlscripter.com/
PostgreSQL, EMS SQL Manager 2005 for PostgreSQL ver.3.6 released!
http://www.postgresql.org/about/news.570

Verbindungen

Eine funktionelle Beziehung besteht zu CSV und SIARD.
last update: georg.buechler - Thu, 24 Jan 2013 [09:39:58]
Copyright © by Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen
Copyright © by Centre de coordination pour l'archivage à long terme de documents électroniques