Re: Why relational division is so uncommon?

From: paul c <toledobythesea_at_oohay.ac>
Date: Fri, 27 Apr 2007 01:34:41 GMT
Message-ID: <RqcYh.132205$DE1.59908_at_pd7urf2no>


V.J. Kumar wrote:

> paul c <toledobythesea_at_oohay.ac> wrote in
> news:0nbYh.133230$aG1.39278_at_pd7urf3no: 
> 
> 

>>V.J. Kumar wrote:
>>
>>>paul c <toledobythesea_at_oohay.ac> wrote in
>>>news:zpaYh.131992$6m4.9100_at_pd7urf1no:
>>>
>>>
>>>
>>>>Vadim Tropashko wrote:
>>>>...
>>>>
>>>>
>>>>>>I notice also that the example doesn't suggest a lot of activity,
>>>>>>other than bureaucratic activity, this company might go out of
>>>>>>business soon if there is no "sales" or "orders" or "inventory"
>>>>>>relations. Lots of other useful queries would then arise, "who has
>>>>>>paid all their invoices on time?", "which students have passed all
>>>>>>course exams?".
>>>>>
>>>>>
>>>>>Quite an interesting perspective. Although, the query "who has paid
>>>>>all their invoices
>>>>>on time?" doesn't seem to be a relational division (what relation
>>>>>are you dividing into?)
>>>>>...
>>>>
>>>>Customers?
>>>>
>>>>p
>>>>
>>>
>>>
>>>It's not a situation where division could/should be used. There are
>>>many ways to answer the question. One might be just to subtract
>>>those who did not pay from all the customers:
>>>
>>>Invoice: <invoice_id, customer_id, paid>
>>>
>>>Project(Invoice, customer_id) MINUS
>>>Project_customer_id(Select(Invoice, paid = false, customer_id))
>>>
>>>vj
>>>
>>
>>What if Invoice had no "paid" attribute?
> 
> 
> Then there is no way to determine whether or not it was paid and your
> question cannot be answered in principle !  Of course, you can use some
> other attribute name to reflect the invoice status,  like 'status' for
> example. 
> 
> vj
> 
> 

If Invoice had no "paid" attribute, I presume there would be a Payments relation.

p Received on Fri Apr 27 2007 - 03:34:41 CEST

Original text of this message