Deutsch   |   English
   
 digg.com  del.icio.us 

Prozedurale Sprachen

Begriffserklärung

Prozedurale Programmierung ist der Ansatz, Computerprogramme aus kleineren Teilproblemen (oder genauer: Aufgaben), die als Prozeduren bezeichnet werden, aufzubauen.

Der kleinste und unteilbare Schritt bei diesem Verfahren ist die Anweisung.

Der Programmierer befiehlt dem Computer durch das Programm, was er in welcher Reihenfolge zu tun hat.

Bei diesem Vorgang zielt man darauf ab, Quellcode wiederverwendbar und einfach zu gestalten, was jedoch nicht immer gelingt.

[Quelle: de.wikipedia.org]

Anwendungsbereich

Im Datenbankbereich wird prozedurale Programmierung zur Implementierung der Prozesssteuerung insbesondere im ETL-Bereich verwendet. Dabei wird oft mit sog. Cursors gearbeiten, was dem Programmierer ermöglicht, für jede Zeile spezifische Anweisungen zu erstellen.

Häufig werden prozedurale Programme auch für wiederkehrende Abläufe wie zum Beispiel Benutzer anlegen, Privilegien verteilen oder ein Schema kopieren verwendet.

Darüber hinaus existieren im Data Warehousing-Bereich sehr komplexe Abfragen, die sich nicht mit Hilfe von plain SQL lösen lassen:

  • Parameterabhängige Tabellen- und Spaltennamen
  • Iterative Prozesse (konvexe Hülle, etc.)

Datenbankmanagementsysteme stellen Nutzern für diesen Zweck eine prozedurale Sprache zur Verfügung. Dabei gibt es im Unterschied zu SQL keinen Standard, vielmehr unterscheiden sich die Implementierungen sowohl syntaktisch als auch funktional:

  • Oracle: PL/SQL
  • Microsoft: T-SQL
  • IBM: DB2 SQL
  • Teradata: 'SQL'
  • MySQL: 'SQL'

Skripting in EXASolution

Eine Stored Procedure wird in EXASolution als ein 'SCRIPT' bezeichnet.

Es werden einerseits gängige Konzepte der Programmierung zur Verfügung gestellt wie Variablendeklarationen, Kontrollstrukturen, Modularisierung und das Reagieren auf Fehlerzustände. Diesbezüglich basiert die EXASOL-Sprache auf LUA (5.1).

Zusätzlich können in Skripten SQL-Befehle ausgeführt werden und ihre Ergebnisse verarbeitet werden. Dies ermöglicht eine einfache Implementierung für wiederkehrende Aufgaben, z.B. einen Benutzer mit dazugehörigen Privilegien anlegen.

Rückgabewerte von Skripten:

  • eine Zahl (ROWCOUNT),
  • eine Ergebnistabelle (ResultSet) oder
  • eine Exception

Skript-Bausteine

Scripte können enthalten:

  • Funktionen
    Mit beliebigem Inhalt, auch rekursives Aufrufen erlaubt
  • Variablen
    Global und lokal, der Typ wird vom zugewiesenen Wert bestimmt
  • Anweisungen
    Schleifen, Bedingungen, Zuweisungen, Funktionsaufrufe, Script-Aufrufe

Die Syntax wird beim Erzeugen geprüft, der Inhalt erst bei Ausführung.

Beispiel: Anzahl Zeilen aller Tabellen im aktuellen Schema

  1. create script TABLE_SIZES() returns table as
  2.     tmp1 = query(  [[select table_name
  3.                         from cat
  4.                         order by 1]] )
  5.     res = {}
  6.     for i=1, #tmp1 do
  7.       ok,tmp2 = pquery( [[select count(*)
  8.                             from ::TABLE]],
  9.                     { TABLE=quote(tmp1[i].TABLE_NAME) } )
  10.       if ok then
  11.          res[i] = { tmp1[i][1], tmp2[1][1] }
  12.       else
  13.          res[i] = { tmp1[i][1], nil }
  14.        end
  15.    end
  16. return res, "table_name varchar(40), nr_of_rows integer"
  17. /
  18.  
Sie kommen nicht weiter?
Lassen Sie sich EXASolution vorführen!
Referenzen
  • AHOOLY
  • COOP
  • „Mit EXASolution sind wir für zukünftiges Datenwachstum bestens gerüstet. Dadurch, dass wir jetzt Geodaten verarbeiten, sprich die Dimension des Raumbezugs mit auswerten können, bieten wir unseren Kunden ganz neue Analysemöglichkeiten und noch umfassendere Marktübersichten. Wir sind sehr zufrieden mit der neuen Lösung, können flexibel auf zukünftige Anforderungen reagieren und trotzdem unsere Total Cost of Ownership reduzieren, da der so gewählte BI-Stack unsere Vision eines „Lean-BI“ in vollem Umfang unsterstützt.“

    Guido Niermann, IT-Leiter, Dataforce GmbH

    Dataforce
  • "Durch die Einbindung von EXASOL können wir unseren Kunden ein ganz neues Erlebnis bezüglich der explorativen Datenanalyse bieten… Neben der Technologie waren wir vor allem mit der Pre-Sales Beratung und dem Support während der Integration äußerst zufrieden."

     Martin Heink
    Geschäftsführer und Inhaber, econda GmbH 

    Econda
  • "Entscheidend für die IMS Health war insbesondere, dass wir uns durch einen sehr schnell aufgesetzten Proof of Concept von der Leistungsfähigkeit von EXASolution direkt überzeugen konnten."

     Michael Kempke
    Director Data Collection Global Operations, IMS Health GmbH & Co. OHG

    IMS
  • "Mit der innovativen Datenbank von EXASOL können wir komplexe Berechnungen genauer und umfangreicher durchführen. Das gibt uns einen signifikanten Technologievorsprung gegenüber der Konkurrenz."

     Tobias Kiessling
    CTO, intelliAd 

    Intelliad
  • "Die durchgängig hohe Leistung und die Möglichkeit, Echtzeitanalysen fahren zu können, waren für uns ausschlaggebend bei der Wahl von EXASolution."

     Tobias Kroha, Geschäftsführer der für das m-pathy-Projekt verantwortlichen seto GmbH

    m-pathy
  • Media Control
  • Olympus
  • "Wir haben uns für EXASolution entschieden, da die Hochleistungsdatenbank mit den zu erwartenden großen Datenmengen sehr gut umgehen kann und optimale Flexibilität bietet."

     Dr. Michael Röbbecke
    (ehem.) Geschäftsführer, RatePAY 

    RatePAY
  • "Mit EXASolution können wir unsere Geschäftsprozesse deutlich optimieren." 

     Gerhard Zapf
    Projektleiter, Semikron 

    Semikron
  • "Ein zuverlässiger und schneller Support, eine bessere Kundenbetreuung sowie eine bewiesene Fachkompetenz…"

     David Hodge
    IT Director, Sony Music Entertainment Germany 

    Sony Music
  • SOQUERO
  • SponsorPay
  • Stayfriends
  • "Die Datenbank von EXASOL ist Technik made in Germany, auf die wir uns langfristig verlassen können. Da sie bei steigendem Datenvolumen selbstständig skaliert und auch physisch beliebig erweitert werden kann, wächst unsere Datenbank mit unserem Unternehmen, und wir können auch in Zukunft flexibel und schnell auf neue Anforderungen reagieren."

     Heinrich Zetlmayer
    Geschäftsführer, Turtle Entertainment 

    Turtle Entertainment
  • United Internet Dialog
  • "Mit EXASolution haben wir eine Lösung erworben, die unsere hohen Leistungsansprüche komplexer Analysen bei steigenden Datenmengen für unsere Kunden optimal erfüllt." 

     Christian Sauer
    Geschäftsführer, Webtrekk GmbH 

    Webtrekk
  • "Wir haben uns nach einem ausgiebigen Benchmark-Test für die Lösung von EXASOL entschieden. Die hohe Performance des Systems, das Preis-/Leistungs-Verhältnis und der Service haben uns vollauf überzeugt"

    Dr. Ulrich Fricke
    Leiter Business Intelligence, XING AG 

    Xing
  • "Neben Wirtschaftlichkeit, Geschwindigkeit und hoher Leistungsfähigkeit war Flexibilität eines der entscheidenden Kriterien bei der Wahl unserer Datenbank… Die neue Datenbank bietet uns diese Skalierbarkeit bei reduzierten Total Cost of Ownership. So können wir auch in Zukunft immer die optimale Analyseleistung für unsere Kunden erbringen…"

     Sebastian Hoop
    Head of Operations, xplosion interactive gmbh 

    Xplosion
  • Zalando