web-dev-qa-db-fra.com

Que signifie le terme "tuple" dans les bases de données relationnelles?

S'il vous plaît expliquer ce que l'on entend par tuples en sql? Merci ..

58
Warrior

La plupart des réponses ici sont sur la bonne voie. Cependant, une ligne n'est pas un tuple . Les tuples * Sont non ordonnés ensembles de valeurs connues avec des noms. Ainsi, les nuplets suivants sont la même chose (j'utilise une syntaxe imaginaire de Tuple puisqu'un Tuple relationnel est en grande partie une construction théorique):

(x=1, y=2, z=3)
(z=3, y=2, x=1)
(y=2, z=3, x=1)

... en supposant bien sûr que x, y et z sont tous des entiers. Notez également qu’il n’existe pas de tuple "dupliqué". Ainsi, non seulement le précédent est égal, mais le même chose. Enfin, les n-uplets ne peuvent contenir que des valeurs connues (donc pas de null).

Une ligne ** Est un ensemble ordonné de valeurs connues ou inconnues avec des noms (même si elles peuvent être omises). Par conséquent, les comparaisons suivantes renvoient false en SQL:

(1, 2, 3) = (3, 2, 1)
(3, 1, 2) = (2, 1, 3)

Notez qu'il existe des moyens de "simuler" bien. Par exemple, considérons cette déclaration INSERT:

INSERT INTO point VALUES (1, 2, 3)

En supposant que x est le premier, y est le deuxième et z est le troisième, cette requête peut être réécrite comme ceci:

INSERT INTO point (x, y, z) VALUES (1, 2, 3)

Ou ca:

INSERT INTO point (y, z, x) VALUES (2, 3, 1)

... mais tout ce que nous faisons, c'est modifier l'ordre plutôt que de le supprimer.

Et notez également qu'il peut y avoir des valeurs inconnues. Ainsi, vous pouvez avoir des lignes avec des valeurs inconnues:

(1, 2, NULL) = (1, 2, NULL)

... mais notez que cette comparaison donnera toujours UNKNOWN. Après tout, comment savoir si deux valeurs inconnues sont égales?

Enfin, les lignes peuvent être dupliquées. En d'autres termes, (1, 2) Et (1, 2) Peuvent être comparés pour être égaux, mais cela ne signifie pas nécessairement qu'ils sont identiques.

Si ce sujet vous intéresse, je vous recommande vivement de lire SQL et théorie relationnelle: comment écrire un code SQL précis par CJ Date.

* Notez que je parle des n-uplets tels qu'ils existent dans le modèle relationnel, ce qui est un peu différent des mathématiques en général.

** Et juste au cas où vous vous le demanderiez, à peu près tout en SQL est une ligne ou une table. Par conséquent, (1, 2) Est une ligne, tandis que VALUES (1, 2) est une table (avec une ligne).

[~ # ~] update [~ # ~] : J'ai développé un peu cette réponse dans un article de blog ici .

80
Jason Baker

C'est un raccourci "N-Tuple "(comme dans quadruple, quintuple etc.)

C'est une ligne d'un ensemble de lignes prise dans son ensemble.

Si vous publiez:

SELECT  col1, col2
FROM    mytable

, le résultat entier sera un ROWSET, et chaque paire de col1, col2 sera un Tuple.

Certaines bases de données peuvent fonctionner avec un tuple dans son ensemble.

Comme, tu peux faire ça:

SELECT  col1, col2
FROM    mytable
WHERE   (col1, col2) =
        (
        SELECT  col3, col4
        FROM    othertable
        )

, qui vérifie que tout un Tuple d’un rowset correspond à un entier Tuple d’un autre rowset.

14
Quassnoi

Dans bases de données relationnelles , les tables sont relations (en mathématiques signification) . Les relations sont des ensembles de tuples. Ainsi, la ligne de table dans la base de données relationnelle est Tuple en relation.

Wiki sur les relations:

En mathématiques (plus particulièrement en théorie des ensembles et en logique), une relation est une propriété qui attribue des valeurs de vérité à des combinaisons (k-tuples) de k individus. Généralement, la propriété décrit une connexion possible entre les composants d’un k-Tuple. Pour un ensemble donné de k-tuples, une valeur de vérité est attribuée à chaque k-Tuple selon que la propriété est valide ou non.

4
vartec

Quelle que soit son utilisation en mathématiques, un tuple dans un SGBDR est généralement considéré comme une ligne dans une table ou un ensemble de résultats. Dans un SGBDR, un tuple est non ordonné. Un tuple dans un MDDBMS est l'instance de données dans une cellule avec ses instances de dimension associées (membres).

Qu'est-ce que le tuple dans un magasin de données de familles de colonnes?

3
user3177983

Tuple = 1 enregistrement; n-Tuple = liste ordonnée des 'n' enregistrements; Livre Elmasri Navathe (page 198 3ème édition).

record = soit ordonné soit non ordonné.

2

Si je comprends bien, une table a un ensemble K de clés et une fonction de frappe T avec le domaine K. Une ligne ou "Tuple" de la table est une fonction r avec le domaine K tel que r(k) est un élément de T(k) pour chaque clé k. La terminologie est donc trompeuse dans la mesure où un "tuple" ressemble plus à un tableau associatif.

0

ligne d'une table de base de données

0
Chand

Tuple est utilisé pour faire référence à une ligne dans un modèle de base de données relationnelle. Mais Tuple a peu de différence avec row.

0
rashedcs