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: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?
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