On 07/05/15 16:14, Kevin Powick wrote:
> On Thursday, 7 May 2015 07:03:05 UTC-4, Wol wrote:
>
>
> MV enforces object integrity by default. It does not enforce arbitrary
> policy integrity. Imho, that's an advantage, in that we better match
> the
> real world.
>
>
> Please. What does this even mean? MV doesn't enforce anything by
> default. And neither does a RDBMS.
In an RDBMS the data about a car, let's say, is spread across multiple
tables. If you want to delete that car from the DB you have to delete a
whole bunch of rows across a whole bunch of tables. This is where RDBMS
referential integrity shines - cascading deletes, can't create a row
here without a row there, enforcing foreign keys blah blah blah. All
totally unnecessary in the MV world, because in an RDBMS it's quite easy
to have half a car because somebody forgot to create a bunch of rows in
the relevant tables.
In MV, if your FILE matches a real-world object, that can't happen.
Either you've got a record that references the car, or you haven't.
In other words, just like RDBMSs can't live without query optimisers,
that are a waste of space in the MV world, RDBMSs can't live without
Referential Integrity enforcement, *most* of which is also a waste of
space in the MV world.
Think about my comment about a car having an owner. In the real world,
they are two separate objects, with distinct and separate lifetimes. In
an RDBMS, it would be normal to require that a car has an owner, which
leads to referential NON-integrity (certainly as far as the real world
is concerned) should an event such as the owner dying occur. And the
possibility might not even cross an RDBMS programmer's mind, whereas to
an MV guy it's obvious.
Cheers,
Wol