Re: 4NF and 5NF
Date: 5 Jan 2005 07:54:48 -0800
Message-ID: <1104940488.918072.284480_at_c13g2000cwb.googlegroups.com>
> HouseNotes > buyer seller lender > ================================== > Smith Jones National Bank > Smith Wilson Home Bank > Nelson Jones Home Bank
Script below shows an alternate solution using an eXperimental Db:
// Create persons
CREATE *person.item ~in = dir; CREATE *smith.cls = person; CREATE *nelson.cls = person; CREATE *jones.cls = person; CREATE *wilson.cls = person;
// Create buyers
CREATE *buyer.item ~in = dir;
CREATE smith.cls = buyer;
CREATE nelson.cls = buyer;
// Create sellers
CREATE *seller.item ~in = dir;
CREATE jones.cls = seller;
CREATE wilson.cls = seller;
// Create banks
CREATE *bank.item ~in = dir; CREATE *national bank.cls = bank; CREATE *home bank.cls = bank;
// Create lenders
CREATE *lender.item ~in = dir;
CREATE national bank.cls = lender;
CREATE home bank.cls = lender;
// Create house notes
CREATE *house note.item ~in = dir;
// Create 1st note
CREATE *;
CREATE it.cls = house note; CREATE it.buyer = smith; CREATE it.seller = jones; CREATE it.lender = national bank;
// Create 2nd note
CREATE *;
CREATE it.cls = house note; CREATE it.buyer = smith; CREATE it.seller = wilson; CREATE it.lender = home bank;
// Create 3rd note
CREATE *;
CREATE it.cls = (%.name=house note & %.item~in=dir); CREATE it.buyer = (%.name=nelson & %.cls=buyer); CREATE it.seller = (%.name=jones & %.cls=seller); CREATE it.lender = (%.name=home bank & %.cls=lender);
// Find a note where buyer is smith,
// seller is wilson and lender is home bank.
// Finds 2nd house note.
SELECT %.cls=house note & %.buyer=smith & %.seller=wilson &
%.lender=home bank;
Received on Wed Jan 05 2005 - 16:54:48 CET