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. 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 ...