Español

Tupla

Una tupla, en matemáticas, es una secuencia ordenada de objetos, esto es, una lista con un número limitado de objetos (una secuencia infinita se denomina en matemática como una familia). Las tuplas se emplean para describir objetos matemáticos que tienen estructura, es decir que son capaces de ser descompuestos en un cierto número de componentes. Por ejemplo, un Grafo dirigido se puede definir como una tupla de (V, E) donde V es el conjunto de nodos y E es el subconjunto de V × V que denota los vértices del grafo.

Origen del concepto [editar]

El término tupla se generó sencillamente de una abstracción de la secuencia siguiente: dupla, tripla, cuádrupla, quíntupla, ... n-tupla. Una tupla de longitud n se describe generalmente como una n-tupla. Una 2-tupla, por ejemplo, se denomina un par o dupla; una 3-tupla una tripla o tripleta (en Latinoamérica también se usa terna o triada). El prefijo n puede ser por generalización cualquier número entero positivo; se puede por ejemplo denominar un cuaternión mediante la representación de una 4-tupla, y continuar generando nombres sucesivamente, tales como una octupla, pero muchos matemáticos prefieren la denominación rápida y sencilla de escribir de una "8-tupla" incluso si se pronunciara como "octupla".

Definiciones formales [editar]

Las principales propiedades que distinguen a una tupla de, por ejemplo un conjunto, es que:

  1. Un objeto puede contener internamente (por agregación) a otros objetos.
  2. Los objetos aparecen obligatoriamente representados en un orden dado.

Es de notar que la primera de las características distingue de un conjunto ordenado y la segunda de los que se denomina unmulticonjunto. Esto se puede formalizar dando la siguiente regla de identidad para dos n-tuplas:

(a1, a2, ...,an) = (b1, b2, ..., bn) si y sólo si a1 = b1, a2 = b2 y así sucesivamente.

Otra forma de formalizar tuplas es mediante asociación biyectiva entre la definición de una tupla y una construcción más primitiva en lateoría de conjuntos tal y como pares ordenados. Por ejemplo, una n-tupla (con n> 2) se puede definir como un par ordenado de su primera entrada y (n−1)-tupla que contenga el resto de las entradas, de tal forma que:

(a1, a2, ..., an) = (a1, (a2, ..., an))

Empleando la definición más corriente dentro de la teoría de conjuntos para un par ordenado y dejando que el conjunto vacío represente la tupla vacía, se puede obtener un resultado correcto empleando una definición por inductiva:

  1. La 0-tupla (por ejemplo la tupla vacía) se representa por ∅
  2. Si x es una n-tupla entonces {{a}, {a, x}} es una (n + 1)-tupla.

Empleando esta definición, la 3-tupla (1,2,2) podría ser:

(1,(2,(2,()))) = (1,(2, {{2}, {2, ∅}} )) = (1, {{2}, {2, {{2}, {2, ∅}}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, ∅}}}}}}

Existe una similaridad importante aquí con la forma en que se describen objetos en algunos lenguajes informáticos, tales como Lisp en los que generalmente se emplea un par ordenado, y se emplea esta abstracción para iterar todos los elementos de de la estructura deln-tupla, para ello se procede de la siguiente forma:

  1. Un símbolo especial, tal y como NIL representa a una lista vacía
  2. Si X es una lista y A es un valor arbitrario, entonces el par (A, X) respresenta una lista con la cabecera(es decir el primer elemento) A y la cola (es decir el resto de la estructura) X.

Usos [editar]

Uso en las ciencias de computación [editar]

En las ciencias de la computación una tupla puede tener dos significados distintos. Generalmente en los lenguajes de programación funcional y en otros lenguajes de programación, una tupla es un objeto que bien puede tener datos o diversos objetos, de forma similar a una tupla definida matemáticamente. Un objeto de este tipo es conocido también como record.

Una definición más formal del anterior párrafo sería: Conjunto de elementos de distinto tipo que se guardan de forma consecutiva en memoria.

En algunos lenguajes y especialmente en la teoría de bases de datos, una tupla se define como una función finita que mapea (asocia unívocamente) los nombres con algunos valores. Su propósito es el mismo que se definió en las matemáticas.

Un pequeño ejemplo puede ilustrar esto:

( jugador : "Luis", puntuación : 25 )

En este caso se trata de una función que mapea el campo "jugador" con la cadena "Luis" y el campo "puntuación" al número entero 25. Es de notar que el orden de los componentes no es relevante, de esta forma la misma tupla puede ser re-escrita como: ( puntuación : 25, jugador : "Luis" ). En un modelo relacional tal y como se define en las tuplas, se suele representar una proposición simple, en este caso existe un jugador con el nombre "Luis" y que posee una puntuación de 25.

En los lenguajes de programación las tuplas se suelen usar para formar estructuras de datos. Por ejemplo, lo siguiente podría ser una definición de una estructura de datos para una lista enlazada:

( value : 16, previous-node : 1174782, next-node : 1174791 )

Lenguajes de marcado [editar]

Se suele emplear las tuplas en la definición de ciertos elementos en los lenguajes de marcado, tales como XML. En particular forma parte muy importante en parte del diseño de Taxonomías en el lenguaje XBRL para describir informes financieros.

Cálculo relacional [editar]

Las tuplas encuentran cabida en el estudio teórico de las bases de datos sobre todo en el campo del cálculo relacional ya que proporcionan una notación básica para formular la definición de la relación en términos de las relaciones de la base de datos. En el cálculo relacional se emplea el cálculo orientado a tuplas, frente al orientado a dominio. Se emplea muy a menudo en la definición a gran nivel de las definiciones de los pares atributo-valor.

Véase también [editar]

Categorías: Teoría de conjuntos | Bases de datos | Sistemas de coordenadas