home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.databases
- Path: sparky!uunet!usc!sdd.hp.com!zaphod.mps.ohio-state.edu!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!math.fu-berlin.de!unidui!rrz.uni-koeln.de!Germany.EU.net!mcsun!chsun!bernina!neptune!nugget.inf.ethz.ch!marti
- From: marti@nugget.inf.ethz.ch (Robert Marti)
- Subject: Re: Normalizing 2NF -> 3NF
- Message-ID: <1992Nov17.081019.12300@neptune.inf.ethz.ch>
- Sender: news@neptune.inf.ethz.ch (Mr News)
- Nntp-Posting-Host: nugget.inf.ethz.ch
- Organization: Dept. Informatik, Swiss Federal Institute of Technology (ETH), Zurich, CH
- References: <1992Nov15.163413.17527@news.uiowa.edu> <1992Nov15.223825.16263@odin.diku.dk> <1992Nov16.103334.15543@neptune.inf.ethz.ch> <1992Nov16.135135.3108@odin.diku.dk>
- Date: Tue, 17 Nov 1992 08:10:19 GMT
- Lines: 34
-
- In article <1992Nov16.135135.3108@odin.diku.dk>, elgaard@diku.dk
- (Niels Elgaard Larsen) writes:
- |> marti@nugget.inf.ethz.ch (Robert Marti) writes:
- |> >[...] Yhe solution with R'(A*,B) and R"(B*,C) is much better than
- |> >the other one with R'(A*,B) and R"(A*,C). Why? Well, if you
- |> >perceive an FD B -> C in the real world, you probably would
- |> >like your system to enforce this integrity constraint. [...] The
- |> >simplest (and in some systems still the _only_) way to enforce an
- |> >FD is to make its left hand side a key for a relation consisting of
- |> >the attributes listed on both its left and right hand side.
- |>
- |> Yes, but this might not be efficient. Fx, if there are two groups of users
- |> that wants to see an (A,B) and an (A,C) view resp., it requires a lot of
- |> unnecessary joins. Eg, (A,B,C) == (Name,Address,Phone#). You typically look up
- |> addresses from names and phone-numbers from names---not phone# from addresses.
- |>
- |> A DBMS should be able to check other integrity constraints than primary keys.
-
- Agreed, they _should_. But like I said, many (still) don't. And
- since you raise the issue of efficiency, I'd just like to point out
- that the R'(A*,B), R"(A*,C) solution requires that you join R' and R"
- in order to check the FD B -> C which in turn is much more expensive
- than a solution with a unique index. So it all boils down on the
- access patterns. (I know, you siad this yourself in your earlier
- posting.
-
- Finally, I'd be very surprised if the FD Address -> Phone# held indeed
- in Denmark. It certainly doesn't in Switzerland.
-
- --
- Robert Marti | Phone: +41 1 254 72 60
- Informationssysteme | FAX: +41 1 262 39 73
- ETH-Zentrum | E-Mail: marti@inf.ethz.ch
- CH-8092 Zurich, Switzerland |
-