Re: does a table always need a PK?

From: Heikki Tuuri <Heikki.Tuuri_at_innodb.com>
Date: Wed, 27 Aug 2003 18:07:51 GMT
Message-ID: <Xr63b.703$n62.374_at_read3.inet.fi>


Tony,

"Tony Douglas" <tonyisyourpal_at_netscape.net> kirjoitti viestissä news:bcb8c360.0308270954.52398488_at_posting.google.com...
> Hello,
>
> "Heikki Tuuri" <Heikki.Tuuri_at_innodb.com> wrote in message
news:<a613b.352$n62.327_at_read3.inet.fi>...
> > please give a formal definition of a "DBMS". In the style of
mathematics. It
> > is like writing a formal definition what an "operating system" is. Or a
> > formal definition what a "horse" is.
> >
> Hmmm... I have issues with that as an answer.
>
> - A definition of a DBMS in the style of mathematics. Or, put another
> way, a formal mathematical definition of Oracle. An interesting
> project, that. (This immediately makes me think of continuation
> semantics, to handle the time progression side of things.) Not a
> trivial undertaking, but one that may be well worth someone's while
> doing. It would also be one heck of a long post.
>
> - Formal definitions of operating systems... There was a fair bit of
> work done on this in the mid- to late-1980s, ISTR. Handling time
> properly was a real issue. One thesis I know of that started off as a
> formal def'n of an operating system had a six month diversion into
> representing and handling time turn into a thesis about representing
> and handling time, put it that way. The next problem is that operating
> systems work in the world of side effects when you're at the device
> driver level, and mathematics doesn't have a lot useful to say about
> that (hence monads in Haskell and the imperative bits of Standard ML
> to deal with I/O amongst other things). Maybe someone out there has an
> interesting pointer into the world of operational semantics for such
> things ?
>
> - Wouldn't the formal definition of horse simply make reference to the
> genetic make-up of an equine beast :) ?
>
> OTOH, if we're given a mathematically sound definition of what a
> relation is, and what the operators on relations do, then we at least
> have a starting point for what an RDBMS is (that is, a system which
> manages databases consisting of relations - weak but accurate) Of
> course, things get hairier when we go with multiple concurrent
> updating users and we have to worry about synchronising access to
> shared resources, deadlock management, transaction handling (spit),
> etc. etc. Given all the effort that would go into those things, you'd
> think we'd save ourselves some effort by sticking with those ol'
> mathematically defined relations & relational operators rather than
> reinventing that wheel too, wouldn't you ?

yes, you understood what I meant. It is rather easy to formalize that the query language must be able to perform the operations of the relational algebra, since the relational algebra is a simple mathematical system. But a DBMS is a kind of operating system, too. And it is hard to define formally what required concurrency, backup, sysadmin, communications, etc. handling capabilities are for a program to be called a DBMS.

About the horse: if we genetically engineer a horse and add DNA from a frog, at what point does the creature transform from a horse to a froghorse?

> - Tony

Best regards,

Heikki Tuuri
Innobase Oy
http://www.innodb.com
Foreign keys, transactions, and row level locking for MySQL InnoDB Hot Backup - a hot backup tool for MySQL Received on Wed Aug 27 2003 - 20:07:51 CEST

Original text of this message