Updating intersections

Can sometimes need corrections—

In this chapter and the next two, I turn my attention to intersection, union, and difference views. Of course, I’ve already said something in Chapter 6 about intersection views in particular (the subject of the present chapter)—recall that intersection is a special case of one to one join—but there’s quite a lot more to be said on the subject.

First I need to say something about the structure of the chapter. Let *DB1* and *DB2* be a set of base relvars and a set of views, respectively. Now, in the last few chapters, on restriction, projection, and join views, I proceeded in general terms as follows: First, I considered a particular *DB1*; then I considered a particular *DB2* that was information equivalent to that *DB1*; finally, I considered another *DB2* that wasn’t information equivalent to that *DB1* but involved some information hiding instead. But that approach doesn’t work very well for intersection views.^{[100]} The reason is this: Suppose *DB1* consists of base relvars *A* and *B* (only) and *DB2* consists of view *V* only, defined as the intersection of *A* and *B* (i.e., *V* = *A* INTERSECT *B*). *Then DB2* will be information equivalent to *DB1* only if *A* = *B*—in which case (as I hinted in a footnote near the end of Chapter 6) there’s not much point in defining view *V* in the first place.

So there’s not much point in considering the case in which *A* and *B* are equal. What’s more, there’s also not much point in considering ...

Start Free Trial

No credit card required