Suchen

Definition Was ist eine User Defined Function?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Eine User Defined Function (UDF) ist eine vom Anwender selbst erstellte Funktion. Verschiedene Programmierumgebungen und Datenbankmanagementsysteme erlauben die Definition und Nutzung von User Defined Functions. Die Funktionen müssen der Syntax der zugrundeliegenden Programmierumgebung entsprechen. Häufig werden UDFs beispielsweise in SQL-Datenbankumgebungen genutzt.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com )

Eine User Defined Function ist eine vom Anwender selbst definierte Funktion. Der deutsche Begriff lautet benutzerdefinierte Funktion. Oft wird die User Defined Function mit UDF abgekürzt. User Defined Functions sind in verschiedenen Programmierumgebungen und Datenbankmanagementsystemen möglich. Sie müssen immer der Syntax der zugrundeliegenden Umgebung entsprechen. Je nach Umgebung werden sie mit verschiedenen Programmiersprachen wie C, Java oder .NET erstellt.

Die UDF stellt eine neue Funktion in der Programmierumgebung zur Verfügung oder übernimmt eine bestimmte Aufgabe. Sie lässt sich für Programme oder Abfragen nutzen. Die Programmierung wird vereinfacht, da die UDF nur einmal definiert werden muss und dann beliebig oft über einen einfachen Befehl aufgerufen werden kann. Vergleichbar ist die UDF mit einem einfachen Makro. Allerdings wird sie als Funktion aufgerufen und liefert immer nur einen spezifischen Rückgabewert.

Umgebungen, in denen User Defined Functions zum Einsatz kommen, sind beispielsweise Programmiersprachen wie Basic, Skriptsprachen wie PHP oder Datenbanksprachen wie SQL. Für eine UDF dürfen vorhandene Standardfunktionen der jeweiligen Umgebung genutzt und miteinander kombiniert werden. Eine SQL-UDF ist zum Beispiel innerhalb von SQL-Abfragen nutzbar.

User Defined Functions in den verschiedenen Umgebungen

User Defined Functions kommen in Sprachen zum Einsatz wie:

  • in der Programmiersprache BASIC
  • in der Programmiersprache Visual Objects
  • in der Skriptsprache PHP
  • in der Datenbanksprache SQL

Details zu User Defined Functions in SQL-Datenbankumgebungen

Eine wichtige Rolle nehmen User Defined Functions in SQL-Datenbankumgebungen ein. Mithilfe der UDFs lassen sich neue Funktionen bereitstellen oder vorhandene Funktionen anwendungsspezifisch erweitern. Wie die Funktionen in einer Programmiersprache akzeptieren SQL-UDFs verschiedene Eingabeparameter. Sie verarbeiten diese Parameter und führen datenbankspezifische Funktionen aus. Das Ergebnis kann ein einzelner skalarer Wert oder ein Ergebnis-Set in Form von Tabellen-Spalten oder -Zeilen sein. Die User Defined Functions lassen sich in SQL-Abfragen einbinden. Für das Anlegen einer UDF ist in SQL der Befehl „Create Function“ nutzbar. Jede UDF besitzt bestimmte Eigenschaften. Im SQL-Standard sind unter anderem Eigenschaften vorgesehen wie:

  • Language: die zur Implementierung der UDF genutzte Programmiersprache wie SQL, Java, .NET, C# oder C. Je nach SQL-Datenbankumgebung und -Server sind bestimmte von SQL abweichende Sprachen erlaubt.
  • Parameter Style: nur für nicht per SQL implementierte UDFs. Konventionen für die Übergabe von Funktionsparametern und -ergebnissen zwischen der Implementierung und dem Datenbanksystem.
  • Name: eindeutiger Name der User Defined Function, über die sich die Funktion aufrufen lässt.

Eine UDF grenzt sich eindeutig von einer gespeicherten SQL-Prozedur ab. Gespeicherte SQL-Prozeduren beinhalten mehrere SQL-Befehle und akzeptieren ebenfalls Parameter. Allerdings sind sich nicht als Funktion aufrufbar.

Die verschiedenen Typen der User Defined Function in SQL

Grundsätzlich sind User Defined Functions im SQL-Umfeld abhängig von den Rückgabewerten in folgende drei Typen unterteilbar:

  • User Defined Function mit skalarer Rückgabe
  • User Defined Function mit tupelwertiger Rückgabe
  • User Defined Function mit tabellenwertiger Rückgabe

Vorteile durch das Erstellen und Nutzen von User Defined Functions

Durch das Erstellen und Nutzen von User Defined Functions ergeben sich in den verschiedenen Programmier- und Datenbankumgebungen viele Vorteile. Die Funktionen lassen sich in Programme einbinden und machen sie leichter zu verstehen und zu debuggen. Da die User Defined Function nur einmal angelegt werden muss und anschließend beliebig oft mit einem einfachen Befehl aufrufbar ist, reduziert sich die Größe des Programmcodes. Komplexe Strukturen innerhalb eines Programms lassen sich vereinfachen, indem einzelne hierfür geeignete Unteraufgaben durch UDFs ersetzt werden.

Programmierer können eine komplette Bibliothek an User Defined Functions anlegen, mit der sie schnell auf die jeweils benötigten Funktionen zugreifen, ohne sie jedes Mal neu erstellen zu müssen. Es entsteht die Möglichkeit einer modularen Programmierung. Einzelne Funktionen sind bei Bedarf veränderbar oder anpassbar, ohne dass der Programmcode selbst davon betroffen ist. Ein weiterer Vorteil ist, dass sich die Geschwindigkeit der Ausführung der Programme steigern lässt, indem bestimmte Zustände und Ergebnisse der UDFs mithilfe von Caching-Methoden vorgehalten und nicht immer neu berechnet werden.

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 46489640)

Über den Autor