Tupel


Le terme tupel (ou uplet) provient de la mathématique et désigne une collection ordonnée d'objets qui sont résumés et représentés d'une certaine manière, par exemple sous forme de listes avec des champs de données. Contrairement à un ensemble dont les éléments ne sont pas ordonnés, les tupels apparaissent dans une suite séquentielle. Si la suite n'a pas d'importance dans les ensembles, c'est par contre primordial dans les tupels, puisqu'il se crée alors un ordre. Ces propriétés mathématiques sont la raison pour laquelle on emploie les tupels en informatique, car ces derniers peuvent être perçus comme des listes ordonnées si leur ordre ou le fameux ensemble d'index est précisément défini. Dans les bases de données relationnelles, les structures d'index et en programmation, les tupels servent de base théorique pour la construction de structures de données spécifiques.

Informations générales[modifier]

Un uplet se définit comme une paire ordonnée écrite dans des parenthèses et séparée par des virgules ou points-virgules : 2-uplet = (1,2) ou 3-uplet = (1,2,3). Les objets se trouvant entre parenthèses sont appelés composantes. Dans ce cas, il ne s'agit que de deux ou trois composantes qui se suivent numériquement. Mais les uplets peuvent aussi contenir plusieurs composantes, 3-uplet étant un triplet, 4-uplet un quadruplet et 5-uplet un quintuplet. Au fond, avec cette notation, on peut aussi écrire des uplets qui contiennent des composantes n : n-uplet = (1,...,n), ce qu'on désigne en informatique comme flux.

Cette définition mathématique abstraite des tupels est censée illustrer le fait que chaque composante d'un tupel peut être clairement attribuée à un jeu de données avec lequel il est relié. Autrement, il ne serait pas possible d'accéder à une telle structure de données. Si un utilisateur veut consulter un jeu de données à partir d'une base de données relationnelles, ce jeu de données doit être ordonné d'une certaine manière. C'est justement ce que les tupels exécutent – en gardant à l'esprit qu'il existe différents schémas d'ordre et que les tupels en informatique sont plutôt appelés avec les désignations des structures de données individuelles, comme un tableau, une liste ou un flux. Les tupels constituent les structures sur lesquelles se fondent ces types ou modèles de données.

Fonctionnement[modifier]

En informatique, le terme uplet décrit un résumé ordonné de valeurs qu'on peut aussi qualifier d'attributs ou de champs de données. Chaque champ de données est caractérisé par son contenu atomique. Cela signifie que ce qui se trouve dans le champ de données ne doit pas être un contenu complexe et ne peut ainsi pas être décomposé davantage. Dans l'uplet suivant, les valeurs telles que le nom ou l'adresse ne devraient donc pas être décomposées davantage, car chaque valeur constitue exactement un jeu de données :

Entrée dans la base de données 1 = (nom, adresse, e-mail, numéro de téléphone)

La suite est importante aussi bien lors de la sauvegarde d'un nouveau jeu de données que lors de l'appel d'un ancien jeu de données. Certes, on peut rechercher et lire les champs de données individuels, mais ceci n'est possible que parce qu'ils présentent une certaine suite qui est donnée par l'entrée dans la base de données 1 à n. Il en va de même pour la sauvegarde : chaque nouveau jeu de données est clairement attribué aux entrées par cette suite. L'entrée dans la base de données est désignée comme une clé. Chaque clé n'apparaît qu'une seule fois.

Si les champs de données doivent être décomposés, ceci sera réglé par la structure de données et le nombre de clés, car les uplets peuvent parfaitement contenir d'autres listes, strings ou types de données – mais seulement dans d'autres tables dont l'attribution par une clé est sans équivoque. Les bases de données relationnelles ont justement l'avantage qu'elles sont ordonnées d'une certaine manière par les clés (l'ensemble d'index également). La plupart des bases de données relationnelles travaillent à cet effet avec une notation d'attribut : cela veut dire que chaque uplet est défini par l'indication des paires clé/valeur, que l'on appelle aussi attributs. Un tableau a alors une suite de clés dont les champs de données sont composés des indications d'attributs et des propriétés. De cette façon, l'entrée dans la base de données 1 peut être étendue comme suit :

Entrée dans la base de données 1 = (nom = Martin, adresse = adresse témoin, e-mail = martin@temoin.fr, numéro de téléphone = 017012345)

Le problème dans cette notation est qu'aucun champ de données ou paire attribut-valeur ne doit apparaître deux fois. Cela entraînerait une ambiguïté. Les relations entre les entrées dans la base de données et les paires attribut-valeur ne seraient plus clairement déterminées et le système de traitement émet des résultats qui peuvent se contredire.

Toutefois, de tels problèmes peuvent être évités grâce à une structure de données claire et vaste convenant aux données à sauvegarder. Cela signifie concrètement qu'il est tout à fait possible de choisir le nombre de champs de données, de façon à éviter efficacement des entrées contradictoires ou doubles. Par exemple, les entrées dans la base de données peuvent s'étendre à d'autres paires attribut-valeur comme la ville, la rue, l'âge, le numéro client ou à d'autres données. La suite des clés joue à cet égard un rôle primordial : elle ne doit pas changer, afin que les relations entre les entrées dans la base de données 1 à n et les champs de données en liaison avec elles soient clairement déterminées.

Exemples[modifier]

L'utilisation des uplets dans les structures de données dépend souvent du paradigme de programmation utilisé. Dans la plupart des langages de programmation fonctionnels et impératifs, on emploie des uplets ; dans la programmation orientée objet par contre, les objets peuvent souvent être décrits comme des uplets. Un choix d'exemples :

  • Dans le langage de base de données SQL, les uplets forment une structure de données qu'on peut utiliser dans la définition, la sauvegarde et les différentes requêtes. Les tables constituent notoirement la base des tupels et ils sont le type de données de base dans SQL.
  • Les tupels sont utilisés dans beaucoup de langages de programmation comme type de données et de requêtes – tout comme les tables. Par exemple dans Haskell, Prolog, Python, Java, C++ ou Lisp.
  • Dans les bibliothèques de programmation standard ou les cadres tels que .NET ou Ruby, les tupels sont également offerts comme type de données.

Importance pour la programmation[modifier]

L’importance des tupels pour la programmation est énorme. Un avantage majeur des tupels et de la représentation des informations comme tables réside dans l'option de reproduire des données et sujets complexes de sorte que les requêtes liées à la technique d'information puissent avoir lieu dans ces données. Dès lors que des données peuvent être sauvegardées dans des relations ou des tupels, il est possible d'extraire ces informations par ordinateur et de transmettre, par exemple, les données à une partie de programme afin d'effectuer une certaine action. La logique bivalente en informatique exige des structures de données pouvant être sauvegardées de manière binaire. Les tables, tupels, tableaux et matrices remplissent cette condition.

Liens web[modifier]