Formalmente, una función agregada toma como entrada un conjunto , un multiconjunto (bolsa) o una lista de algún dominio de entrada I y genera un elemento de un dominio de salida O. [1] Los dominios de entrada y salida pueden ser los mismos, como para SUM, o pueden ser diferentes, como para COUNT.
La listaggfunción, tal como se define en el estándar SQL:2016 [2],
agrega datos de varias filas en una única cadena concatenada.
En el diagrama de relación de entidad , la agregación se representa como se ve en la Figura 1 con un rectángulo alrededor de la relación y sus entidades para indicar que se trata como una entidad agregada. [3]
Algunas funciones agregadas se pueden calcular calculando el agregado de subconjuntos y luego sumando estos agregados; los ejemplos incluyen COUNT, MAX, MINy SUM. En otros casos, el agregado se puede calcular calculando números auxiliares para subconjuntos, sumando estos números auxiliares y finalmente calculando el número total al final; los ejemplos incluyen AVERAGE(seguimiento de la suma y el recuento, división al final) y RANGE(seguimiento del máximo y mínimo, resta al final). En otros casos, el agregado no se puede calcular sin analizar todo el conjunto de una vez, aunque en algunos casos se pueden distribuir las aproximaciones; los ejemplos incluyen DISTINCT COUNT( problema de conteo distinto ), MEDIANy MODE.
Estas funciones se denominan funciones de agregación descomponibles [4] o funciones agregadas descomponibles . Las más simples pueden denominarse funciones de agregación autodescomponibles , que se definen como aquellas funciones f tales que hay un operador de fusión tal que
, lo que significa que fusionar es simplemente una suma.
COUNT:
,
.
MAX:
,
.
MIN:
, [2]
.
Tenga en cuenta que las funciones de agregación autodescomponibles se pueden combinar (formalmente, tomando el producto) aplicándolas por separado, de modo que, por ejemplo, se pueden calcular SUMy COUNTal mismo tiempo, siguiendo dos números.
De manera más general, se puede definir una función de agregación descomponible f como aquella que puede expresarse como la composición de una función final g y una función de agregación autodescomponible h ,. Por ejemplo, = / y = − .AVERAGESUMCOUNTRANGEMAXMIN
En el marco de MapReduce , estos pasos se conocen como InitialReduce (valor en un registro individual/conjunto único), Combine (fusión binaria en dos agregaciones) y FinalReduce (función final en valores auxiliares), [5] y mueven la agregación descomponible antes de Shuffle. La fase se conoce como paso InitialReduce, [6]
Las funciones de agregación descomponibles son importantes en el procesamiento analítico en línea (OLAP), ya que permiten que las consultas de agregación se calculen sobre los resultados precalculados en el cubo OLAP , en lugar de sobre los datos base. [7] Por ejemplo, es fácil admitir COUNT, MAX, MINy SUMen OLAP, ya que estos pueden calcularse para cada celda del cubo OLAP y luego resumirse ("acumularse"), pero es difícil admitir MEDIAN, ya que debe calcularse para cada vista por separado.
Otras funciones agregadas descomponibles
Para calcular el promedio y la desviación estándar de los datos agregados, es necesario tener disponible para cada grupo: el total de valores (Σx i = SUMA(x)), el número de valores (N=COUNT(x)) y el total de cuadrados de los valores (Σx i 2 =SUM(x 2 )) de cada grupo. [8]
AVG :
o
o, sólo si COUNT(X)=COUNT(Y) : La suma de los cuadrados de los valores es importante para calcular la desviación estándar de los grupos :
Para una población finita con iguales probabilidades en todos los puntos, tenemos tener [9] [ referencia circular ] SUM(x2) STDDEV
Esto significa que la desviación estándar es igual a la raíz cuadrada de la diferencia entre el promedio de los cuadrados de los valores y el cuadrado del valor promedio.
^ ab Winand, Markus (15 de mayo de 2017). "Grandes noticias en bases de datos: nuevo estándar SQL, Cloud Wars y ACIDRain (primavera de 2017)". Zona D. Archivado desde el original el 27 de mayo de 2017 . Consultado el 10 de junio de 2017 . En diciembre de 2016, ISO lanzó una nueva versión del estándar SQL. Introduce nuevas funciones como coincidencia de patrones de filas, listagg, formato de fecha y hora y compatibilidad con JSON.
^ Elmasri, Ramez (2016). Fundamentos de los sistemas de bases de datos. Sham Navathe (Séptima ed.). Hoboken, Nueva Jersey. pag. 133.ISBN978-0-13-397077-7. OCLC 913842106.{{cite book}}: CS1 maint: location missing publisher (link)
^ Jesús, Baquero y Almeida 2011, 2.1 Funciones descomponibles, págs.
Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Funciones de agregación . Enciclopedia de Matemáticas y sus Aplicaciones. vol. 127. Cambridge: Prensa de la Universidad de Cambridge . ISBN 978-0-521-51926-7. Zbl 1196.00002.
Funciones agregadas de Oracle: ejemplos MAX, MIN, COUNT, SUM, AVG
Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Agregación distribuida para computación paralela de datos: interfaces e implementaciones. ACM SIGOPS 22º simposio sobre principios de sistemas operativos. ACM . págs. 247–260. doi :10.1145/1629575.1629600.
Jesús, Paulo; Baquero, Carlos; Almeida, Paulo Sergio (2011). "Una encuesta sobre algoritmos de agregación de datos distribuidos". arXiv : 1110.0725 [cs.DC].
Zhang, Chao (2017). Función agregada simétrica y asimétrica en computación masivamente paralela (informe técnico).