Unha **tupla**, en matemáticas, é unha secuencia *finita* ordenada de obxectos, isto é, unha lista cun número limitado de obxectos (unha secuencia *infinita* denomínase en matemática unha familia).

As tuplas empréganse para describir obxectos matemáticos que teñen estrutura, é dicir, que poden descompoñerse nun certo número de compoñentes. Por exemplo, un grafo dirixido pódese definir como unha tupla de (*V*, *E*), onde *V* é o conxunto de nodos e *E* é o subconxunto de *V* × *V* que denota os vértices do grafo.

Orixe do concepto
-----------------

O termo *tupla* xerouse sinxelamente por unha xeneralización da secuencia seguinte: *dupla*, *tripla*, *cuádrupla*, *quíntupla*, ... *n-tupla*. Unha tupla de lonxitude *n* descríbese xeralmente como unha ***n*-tupla**. Unha 2-tupla, por exemplo, denomínase un *par* ou *dupla*; unha 3-tupla, unha *tripla* ou *tripleta*. O prefixo *n* pode ser por xeneralización calquera número enteiro positivo; pódese por exemplo denominar un cuaternión mediante a representación dunha 4-tupla, e continuar xerando nomes sucesivamente, tales como unha *óctupla*, pero moitos matemáticos prefiren a denominación rápida e sinxela de escribir "8-tupla", incluso de pronunciarse como "óctupla".

Definicións formais
-------------------

As principais propiedades que distinguen unha tupla de, por exemplo, un conxunto, é que: 

1. Un obxecto pode conter internamente (por agregación) outros obxectos.
2. Os obxectos aparecen obrigatoriamente representados nunha orde dada.

Cómpre notar que a primeira das características distingue dun conxunto ordenado e a segunda do que se denomina un multiconxunto. Isto pódese formalizar dando a seguinte regra de identidade para dúas *n*-tuplas:

(*a*1, *a*2, ...*an*) = (*b*1, *b*2, ... *bn*) si e só si *a*1 = *b*1, *a*2 = *b*2 e así sucesivamente.
Outra forma de formalizar tuplas é mediante asociación bixectiva entre a definición dunha tupla e unha construción máis primitiva na teoría de conxuntos tal e como pares ordenados. Por exemplo, unha *n*-tupla (con *n*> 2) pódese definir como un par ordenado da súa primeira entrada e (*n*−1)-tupla que conteña o resto das entradas, de tal forma que:

(*a*1, *a*2, ... *an*) = (*a*1, (*a*2, ... *an*))
Empregando a definición máis corrente dentro da teoría de conxuntos para un par ordenado e deixando que o conxunto baleiro represente a tupla baleira, pódese obter un resultado correcto empregando unha definición indutiva:

1. A 0-tupla (por exemplo a tupla baleira) represéntase por ∅
2. Se *x* é unha *n*-tupla entón {{*a*}, {*a*, *x*}} é unha (*n* + 1)-tupla.

Empregando esta definición, a 3-tupla (1,2,2) podería ser:

(1,(2,(2,()))) = (1,(2, {{2}, {2, ∅}} )) = (1, {{2}, {2, {{2}, {2, ∅}}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, ∅}}}}}}
Existe unha similitude importante aquí coa forma en que se describen obxectos nalgunhas linguaxes informáticas, tales como Lisp nas que xeralmente se emprega un par ordenado, e emprégase esta abstracción para iterar todos os elementos da estrutura da *n*-tupla; para iso procédese da seguinte forma:

1. Un símbolo especial, tal e como *NIL* representa a unha lista baleira
2. Se *X* é unha lista e *A* é un valor arbitrario, entón o par (*A*, *X*) representa unha lista co *cabezallo* (é dicir, o primeiro elemento) *A* e a *cola* (é dicir, o resto da estrutura) *X*.

Usos
----

### Uso nas ciencias de computación

Nas ciencias da computación unha tupla pode ter dous significados distintos. Xeralmente nas linguaxes de programación funcional e noutras linguaxes de programación, unha tupla é un obxecto que ben pode ter datos ou diversos obxectos, de forma similar a unha tupla definida matematicamente. Un obxecto deste tipo coñécese tamén como ***record***.

Unha definición máis formal do anterior parágrafo sería: conxunto de elementos de distinto tipo que se gardan de forma consecutiva en memoria.

Nalgunhas linguaxes e especialmente na teoría de bases de datos, unha tupla defínese como unha función finita que *mapea* (asocia univocamente) os nomes con algúns valores. O seu propósito é o mesmo que se definiu nas matemáticas.

Un pequeno exemplo pode ilustrar isto:

( xogador : "Luís", puntuación : 25 )
Neste caso trátase dunha función que mapea o campo "xogador" coa cadea "Luís" e o campo "puntuación" ao número enteiro 25. Débese notar que a orde dos compoñentes non é relevante, e desta forma a mesma tupla pode ser re-escrita como: ( puntuación : 25, xogador : "Luís" ). Nun modelo relacional tal e como se define nas tuplas, adoita representar unha proposición simple, neste caso existe un xogador co nome "Luís" e que posúe unha puntuación de 25.

Nas linguaxes de programación as tuplas adoitan usarse para formaren estruturas de datos. Por exemplo, o seguinte podería ser unha definición dunha estrutura de datos para unha lista enlazada:

( value : 16, previous-node : 1174782, next-node : 1174791 )
### Linguaxes de marcado

Adoitan empregarse as tuplas na definición de certos elementos nas linguaxes de marcado, tales como XML. En particular, é moi importante en parte do deseño de taxonomías na linguaxe XBRL para describir informes financeiros.

### Cálculo relacional

As tuplas teñen cabida no estudo teórico das bases de datos, sobre todo no campo do cálculo relacional, xa que proporcionan unha notación básica para formular a definición da relación en termos das relacións da base de datos. No cálculo relacional emprégase un cálculo orientado a tuplas, fronte ao orientado a dominio.

Emprégase frecuentemente na definición a gran nivel das definicións dos pares atributo-valor.

Véxase tamén
------------

### Bibliografía

* Bourbaki, Nicolas (2006): *Eléments de mathématique. Première partie: Les strurures fondamentales de l’analyse. Livre I. Théorie des ensembles*. Berlin: Springer ISBN 3-540-34034-3.
* Devlin, Keith (1993): *The Joy of Sets*. Springer Verlag, 2ª ed. ISBN 0-387-94094-4
* Takeuti, G. & Zaring W. M. (1971): *Introduction to Axiomatic Set Theory*. Springer Verlag. ISBN 978-0-387-90024-7
* Tourlakis, George J. (2003): *Lectures in Logic and Set Theory. Volume 2: Set theory*. Cambridge University Press. ISBN 978-0-521-75374-6

### Outros artigos

* Produto cartesiano.

### Ligazóns externas

* Encyclopaedia of Mathematics. Springer. *Tuple* *(en inglés)*.

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q600590
* GND: 4660884-9
* MAG: 118930307

 |