ON VIEWS AND 5NF
with C. J. Date

 

 

 

From: OF

To: Editor

Date: 14 Apr 2004

 

I have a question about views and the fifth normal form. Using the example found in Mr. Date’s Book AN INTRODUCTION TO DATABASE SYSTEMS, to explain 5NF, I mean suppliers, parts and projects. If I have these three relvars:

 

 R1 (S#, P#)

 R2 (P#, J#)

 R3 (S#, J#)

 

Then I create a view that joins R1, R2 and R3, I obtain R (S#, P#, J#), another relvar, considering the predicate for updatable join views, I mean:

 

PR1(a) and PR2(b) and PR3(c)

 

This relvar R has the tuples (S1, P1, J2), (S1, P2, J1) and (S2, P1, J1), then R should include (S1, P1, J1). You got the point, R1, R2 and R3 are in 5NF but not R. Then we get back the problems found when that relvar was not in 5NF. What to do?

 

 

C. J. Date Responds:

 

1.      The problems that occur with a non5NF join of three 5NF relvars are not different in principle from those that occur in connection with a non3NF joins of two 3NF relvars. There’s nothing special to say about 5NF in this regard, as far as I can see.

 

2.      As you will recall from the class in Los Angeles, I currently don’t have a full solution to the view updating problem (I thought I did one year ago, but I was wrong). At the time of writing, therefore, I don’t fully understand what’s involved in updating any join, regardless of what level of normalization it’s in. I’m still trying to get down to working on this issue again, but I’ve had a series of interruptions for the last few weeks. Watch this space.

 

 

Ed. Note: The old solution for several kinds of views is is available on this site. Most of it still holds, but some needs updating.

 

UPDATING VIEWS PART 1: UNION, INTERSECTION, AND DIFFERENCE

UPDATING VIEWS PART 2: UNION, INTERSECTION, AND DIFFERENCE

UPDATING VIEWS PART 3: UNION, INTERSECTION, AND DIFFERENCE

UPDATING VIEWS PART 4: JOINS AND OTHER VIEWS

UPDATING VIEWS PART 5: JOINS AND OTHER VIEWS

UPDATING VIEWS PART 6: JOINS AND OTHER VIEWS

 

 

Posted 07/16/04