Tupla

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: Un obxecto pode conter internamente (por agregación) outros obxectos.
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: (a1, a2, .. ., an)
(b1, b2, .. ., bn) si e só si a1
b1, a2 b2 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: (a1, a2, .. ., an) (a1, (a2, .. ., 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: A 0-tupla (por exemplo a tupla baleira) represéntase por ∅
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: Un símbolo especial, tal e como NIL representa a unha lista baleira
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.