2. (Multiattribute PACK): Let relation r have interval attributes A1, A2, ..., An (n > 1). Then (and only then) the expression PACK r ON (A1, A2, ..., An) denotes the packing of r on A1, A2, ..., An, in that order, and it’s equivalent to the following—

PACK ( ... ( PACK ( PACK r′ ON ( A1 ) ) ON ( A2 ) ) ... ) ON ( An )

—where r′ is the fully unpacked form of r (in other words, r′ is the relation denoted by the expression UNPACK r ON (A1, A2, ..., An)). 3. (Nullary PACK) Let r be a relation. Then (and only then) the expression PACK r ON ( ) denotes the packing of r on no attributes, and it returns relation r itself.

Examples: 1. Let relation r be as follows:

┌─────┬─────────── SNO DURING    ├═════┼═══════════ S2   [d02:d04] S2   [d03:d05] S4   [d02:d05] S4   [d04:d06] S4   [d09:d10] └─────┴───────────

Then packing r on DURING yields:

┌─────┬─────────── SNO DURING    ├═════┼═══════════ S2   [d02:d05] S4   [d02:d06] S4   [d09:d10] └─────┴───────────

2. Let relation r be as follows:

┌─────────┬─────────── A1       A2        ├═════════┼═══════════ [P2:P4] [d01:d04] [P3:P5] [d01:d04] [P2:P4] [d05:d06] [P2:P4] [d06:d09] └─────────┴───────────

Then packing r on (A1,A2) yields:

┌─────────┬─────────── A1       A2        ├═════════┼═══════════ [P2:P5] [d01:d04] [P2:P4] [d05:d09] └─────────┴───────────

By contrast, packing r on (A2,A1) yields:

┌─────────┬─────────── A1       A2        ├═════════┼═════

Get The New Relational Database Dictionary 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.