WHAT’S A TUPLE?

Is this a tuple?—

SNO | CHAR

SNAME | CHAR

STATUS | INTEGER

CITY | CHAR

S1

Smith

20

London

Well, no, it isn’t—it’s a picture of a tuple, not a tuple as such (and note that for once I’ve included the type names in that picture as well as the attribute names). As we saw in Chapter 1, there’s a logical difference between a thing and a picture of a thing, and that difference can be very important. For example, tuples have no left to right ordering to their attributes, and so the following is an equally good (bad?) picture of the very same tuple:

STATUS | INTEGER

SNAME | CHAR

CITY | CHAR

SNO | CHAR

20

Smith

London

S1

Thus, while I’ll certainly be showing many pictures like these in the pages to follow, please keep in mind that they’re only pictures, and they can sometimes suggest some things that aren’t true.

With that caveat out of the way, I can now say exactly what a tuple is:

Definition: Let T1, T2, ..., Tn (n ≥ 0) be type names, not necessarily all distinct. Associate with each Ti a distinct attribute name, Ai; each of the n attribute-name/type-name combinations that results is an attribute. Associate with each attribute an attribute value, vi, of type Ti; each of the n attribute/value combinations that results is a component. Then the set of all n components thus defined, t say, is a tuple value (or just a tuple for short) over the attributes A1, A2, ..., An. The value n is the degree of t; a tuple of degree one is unary, a tuple of degree two is binary, a tuple of degree three is ...

Get SQL and Relational Theory, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.