EXTEND

You might have noticed that the algebra as I’ve described it so far in this book doesn’t have any conventional computational capabilities. Now, SQL does; for example, we can write queries in SQL along the lines of SELECT A + B AS C ... (for example). However, as soon as we write that “+” sign, we’ve gone beyond the bounds of the algebra as originally defined. So we need to add something to the algebra in order to provide this kind of functionality, and that’s what EXTEND is for. By way of example, suppose part weights (in relvar P) are given in pounds, and we want to see those weights in grams. There are 454 grams to a pound, and so we can write:

image with no caption

Given our usual sample values, the result looks like this:

PNO

PNAME

COLOR

WEIGHT

CITY

GMWT

P1

Nut

Red

12.0

London

5448.0

P2

Bolt

Green

17.0

Paris

7718.0

P3

Screw

Blue

17.0

Oslo

7718.0

P4

Screw

Red

14.0

London

6356.0

P5

Cam

Blue

12.0

Paris

5448.0

P6

Cog

Red

19.0

London

8626.0

Important: Relvar P is not changed in the database! EXTEND is not an SQL-style ALTER TABLE; the EXTEND expression is just an expression, and like any expression it simply denotes a value. In particular, therefore, it can be nested inside other expressions. Here’s an example (the query is “Get part number and gram weight for parts with gram weight greater than 7000 grams”):

image with no caption

As you can see, there’s an interesting ...

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.