| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: RM formalism supporting partial information
On Nov 17, 4:02 pm, paul c <toledobythe..._at_ooyah.ac> wrote:
> David BL wrote:
> > On Nov 17, 8:18 am, paul c <toledobythe..._at_ooyah.ac> wrote:
> ...
> > r' =
> > {
> > (names={fred, bill}, cars={c1}),
> > (names={}, cars={c2}),
> > (names={joe}, cars={c2})
> > }
> > ...
>
> > > > >
>
> > person(fred).
> > person(bill).
> > person(joe).
> > owns_car(fred,c1).
> > owns_car(bill,c1).
> > owns_car(joe,c2).
> > car(c1).
> > car(c2).
>
>> > be removed without affecting the meaning.
> > Note that the tuple (names={}, cars={c2}) in r' is redundant and could
>
>
> r''=
> {
> (names={fred, bill}, cars={c1}),
> (names={joe}, cars={c2})
> }
>
If you're working directly with the tuples, then in a way you're working at a more physical level than if you're using a difference operator to remove information. The removal of that tuple corresponds to removal of all the following propositions
1 person(joe).
2 car(c2).
3 owns_car(joe,c2).
At a more logical level it makes sense to be able to specify removal of either
(1,2 and 3) or
(1 and 3) or
(2 and 3) or
For example I defined a difference operator that could remove only proposition 3. This would result in
r''' =
{
(names={fred, bill}, cars={c1}),
(names={joe}, cars={})
(names={}, cars={c2})
I guess it is not generally clear how one would actually edit such partial information. Is it reasonable to treat the relation like an ADT and only use operators to view its content or add and remove information? Also, what about integrity constraints and in particular the conventional idea that one needs at least one key to be able to identify a tuple? That may not be necessary because an interpretation can meet the stronger integrity constraints. Received on Sat Nov 17 2007 - 16:10:31 CST
![]() |
![]() |