Katalog archivischer Dateiformate (
KaD, v2)
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
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.
Es bestehen keine lizenzrechtliche Einschränkungen für SQL Scripts.
Hauptverbreitung sind die Bereiche Datenbank-Development, Datenbankerzeugung aus CASE-Tools und Datenbank-Dokumentation. Für die Datenbankarchivierung wird dieser Weg eher selten eingesetzt.
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.
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.
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).
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.
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. Auch wirkt der Umstand, dass die archivierten Daten wie ein Programm aussehen, für Nichtinformatiker eher abschreckend.
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.