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