Re: Principle of Orthogonal Design

From: paul c <toledobythesea_at_oohay.ac>
Date: Mon, 21 Jan 2008 18:23:35 GMT
Message-ID: <Hq5lj.64141\$wx.56105_at_pd7urf1no>

```>> I was wondering what your current stances towards the principle of
>> current design is cdt - info about the POOD is actually pretty sparse
>> on google, which has not helped my own understanding. I gather that
>> Date has realigned his opinion - although what to I know not - and
>> that Darwen rejected the original POOD paper outright given that
>> McGovern posits that:
>>
>> R1 { X INTEGER, Y INTEGER }
>> R2 { A INTEGER, B INTEGER }
>>
>> violates the principle, whatever the relations' attribute names.
>> Instinctively it does seem rather odd that a predicates such as:
>>
>> * on Day:X the shop had noCustomers:Y
>> * on Roll:A, the dice showed the Number:B
>>
>> cannot share the same database. Have I interpreted the debate
>> correctly? Any insights or corrections are, as ever, appreciated -
>> POOD is certainly thought provoking, and the concept that an update
>> need not require specifcation of a table name is an interesting one.
```

>
> I thought I'd work up an example that illustrates part of McGovern's
> argument (as I understand it). Comments and corrections are most
> welcome:
>
> Assuming we want to represent employees and their status as either
> salaried, commissioned, or both, we might come up with the following
> design (assuming the most obvious interpretations):
>
> Table: Emp
> Emp# IsSalaried IsCommissioned
> ==== ---------- --------------
> 1 Y N
> 2 N Y
> 3 Y Y
>
>
> Another possible design could be:
> Table: Emp
> Emp#
> ====
> 1
> 2
> 3
>
> Table: SalariedEmp (FK, Emp# references Emp.Emp#)
> Emp#
> ====
> 1
> 3
>
> Table: CommissionedEmp (FK, Emp# references Emp.Emp#)
> Emp#
> ====
> 2
> 3
>
>
> Although we can derive the same information from each design, the
> former is to be prefered because the latter violates POOD (two tables