Anar al contingut

Funció definida per l'usuari

De L'Enciclopèdia, la wikipedia en valencià

Una funció definida per l'usuari és una funció proporcionada per l'usuari d'un programa o entorn, en un context a on la suposició habitual és que les funcions estan incloses en el programa o entorn.

Llenguage BASIC

[editar | editar còdic]

En algunes implementacions antigues del llenguage de programació BASIC, les funcions definides per l'usuari estan definides utilisant el "DEF FN" sintaxis. Dialectes més moderns de BASIC estan influïts pel paradigma de programació estructurat, a on la majoria o tot del còdic està escrit com a funcions definides per l'usuari o procediments, i el concepte es torna pràcticament redundante.

Bases de senyes

[editar | editar còdic]

En bases de senyes de SQL, una funció definida per l'usuari proporciona un mecanisme per a estendre la funcionalitat del servidor de base de senyes afegint una funció que pot ser evaluat en declaracions de SQL. L'estàndart de SQL distinguix entre escalar i funcions de taula. Una funció escalar torna únicament només un valor simple (o NULL), mentres que una funció de taula retorna una taula(relacional) somet comprendre zero o més files, cada fila en un o més columnes.

Usuari-definides; les funcions en SQL estan declarades utilisant la declaració CREATE FUNCTION. Per eixemple, una funció que convertix Celsius a Fahrenheit podria ser declarat aixina:

CREATE FUNCTION dbo.CtoF(Celsius FLOAT)
  RETURNS FLOAT
  RETURN (Celsius * 1.8) + 32

Una volta creada, una funció definida per l'usuari pot ser utilisada en expressions en declaracions de SQL. Per eixemple, puga ser invocat on la majoria atres funcions intrínseques estan deixades. Açò també inclou declaracions SELECT, a on la funció pot ser utilisada contra les senyes varen almagasenar en taules en la base de senyes. Conceptualment, la funció està evaluada una volta per fila en tal us. Per eixemple, supondre una taula va nomenar ELEMENTOS, en una fila per a cada element químic sabut. La taula té una columna va nomenar BoilingPoint per al punt de hervir d'aquell element, en Celsius. La consulta

SELECT Name, CtoF(BoilingPoint)
  FROM Elements

Recuperaria el nom i el punt de hervir de cada fila. Invoca el CtoF funció definida per l'usuari quan va declarar damunt per a convertir el valor en la columna a un valor en Fahrenheit.

Cada funció definida per l'usuari du certes característiques o propietats. L'estàndart de SQL definix les propietats següents:

  • Llenguage - definix el llenguage de programació en quina el funció definida per l'usuari està implementada; els eixemples inclouen SQL, C, C# i Java.
  • Estil de paràmetro - definix les convencions que sol passe els paràmetros de funció i resultats entre l'implementació de la funció i el sistema de base de senyes (únic aplicable si la llengua no és SQL).
  • Nom concret - un nom per a la funció que és únic dins de la base de senyes. Nota que el nom de funció no té que ser únic, considerant va sobrecarregar funcions. Algunes implementacions de SQL requerixen aquells noms de funció són únics dins d'una base de senyes, i va sobrecarregar les funcions no són deixades.
  • Determinisme - especifica si la funció és determinista o no. La característica de determinisme té una influència en la consulta optimizer quàn compilando una declaració de SQL.
  • SQL-accés de senyes - diu el sistema d'administració de la base de senyes si la funció conté cap declaracions de SQL (NINGÚN SQL), conté declaracions de SQL pero no accedix qualsevol taules o vistes (CONTIENE SQL), llig senya de taules o vistes (LEE DATO de SQL), o de fet modifica senya en la base de senyes (MODIFICA DATO de SQL).

Les funcions definides per l'usuari no tindrien que ser confoses en procediments almagasenats. Els procediments almagasenats permeten a l'usuari agrupar un conjunt d'órdens de SQL. Un procediment pot acceptar paràmetros i eixecutar les seues declaracions de SQL que depenen d'aquells paràmetros. Un procediment no és una expressió i, aixina, no pot ser utilisat com a funció definida per l'usuari.

Alguns sistemes d'administració de la base de senyes permeten la creació de funcions definides per l'usuari en llenguages distints a SQL. SQL Server de Microsoft, per eixemple, deixa l'usuari per a utilisar .Les llenguages .NET que inclouen C# per a este propòsit. DB2 i Oracle soporten funcions definides per l'usuari d'escrites en llenguages de programació C o Java .

Apache Hive

[editar | editar còdic]

Apache Hive definix, ademés de les funcions d'usuari regulars, també definix funcions d'agregació definides per l'usuari (en anglés user-defined aggregate functions, UDAF) i funcions que generen taules (table-generation funcions,UDTF).[1] Hive habilita dona els esarrolladores per a crear les seues pròpies funcions en Java.[2]


Referències

[editar | editar còdic]