http://www.perlmonks.org?node_id=379301


in reply to OO concepts and relational databases

Your Perl-Objects-mapped-to-attribute-table design has already been implemented as OOPS. I wrote about it recently.

However, I think you underestimate the cost of decomposing table records into instance/attribute/value tuples. There's a reason that large databases have nice records... you tend to fetch the values in those records in clusters, and it makes sense for the database to be aware of that, instead of managing lots and lots of little individual values.

Certainly, there's a programmer time savings to have a transparent Object backing store. But for a large heavy application, having a proper DBA design a proper RDBMS will still be a win with existing popular technology.

There is research work going on about OO storage, but nothing that is well deployed or available, as far as I know. And it won't be about mapping that to an RDBMS. Proper paradigms are required.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.


update: Ouch, and after reading another response in this thread, I realized I had completely forgot about typing! A real DBA-designed record contains typing and constraints that ensure data integrity. An ad-hoc system that is merely providing backing store for Perl-side objects will not have any of that meta-information available, and must rely on the Perl side to manage any data integrity and typing rules.
  • Comment on •Re: OO concepts and relational databases

Replies are listed 'Best First'.
Re^2: "OOPS" should describe its license, not its namespace
by Ovid (Cardinal) on Aug 02, 2004 at 18:26 UTC

    Out of curiosity, what did you think about the license of OOPS? While I can understand the author's intent, the license is a bit, er, cumbersome. Actually, let me be blunt: the license is bloody awful and there is simply no way I would ever use that software. For example, why are "Internet Journals" excluded from the license? Does that mean they don't have to abide by it or does it mean that author doesn't want them using the code? Also, I can't use it if I've applied for a software patent, unless such application is a "defensive move." Well fine. I'll simply announce that all of patents (if I had any) are "defensive moves."

    And while we're at it, what's this bit about "Entities that share a 5% or more common ownership interest with an excluded entity are also excluded from this license." So if I own a mutual fund and the fund manager temporarily bumps me over the threshhold I'm not allowed to use the code? Or does "excluded from the license" mean I don't have to abide by it?

    One of the core principles of economics (something that many economists seem to forget) is that there is a tradeoff between efficiency and fairness. Trying to go too far to either extreme tends to be a bad idea. In this case, while I laud the author's intent, the implementation of the license is terrible and, I'm sure, unenforceable. However, it's bizarre and restrictive enough that I simply can't use that code.

    Cheers,
    Ovid

    New address of my CGI Course.

      Personally, I find this part the most confusing/disturbing:

      IV. All useful modifications to this software must be licensed back to the original licensor such that the original licensor can relicense the modifications to third parties under terms of their own choosing with no restrictions whatsoever and no need to even acknowledge the origin of such modifications. There are two easy ways to accomplish this: put all such modifications into the public domain or assign the copyright to the original licensor.
      This is basically saying, if you do anything useful with his stuff, he wants it back, and wants to own it (at least the rights to it). But yet he in no way is offering to pay for (or even just give credit for) your time/effort. Why would I want to do that?

      From my (limited) understanding, putting something in the public domain is not the same as releasing something open source. When you release it open source (say under the GPL), you are saying, anyone can use it for free, just as long as I retain credit for it (after all I did the work). But releasing into the public domain does not have the same "restrictions", its basically just releaseing it for anyone to do anything too.

      I agree with you on this Ovid, I would be very hesitant to use this software, if at all.

      -stvn

      This bit:

      Should any part be deemed invalid or otherwise contradicted, the entire license is invalidated and no right to use, copy, modify or redistribute exists.

      Likely means that nobody has the right to do anything with OOPS software, since there are some pretty clear legal problems with this license.

      I also like the preamble:

      I wish to let people use this software for free as long as they don't abuse the free software community or Internet in particular ways.

      Both the Free Software movement (as defined by the FSF) and the Open Source movement (as defined by the OSI) would not like this license. Both groups explictly forbid licenses from excluding specific groups, whereas this license spends sections 5-11 doing exactly that. The author seems to be giving lip service to Free Software while not understanding its fundamental points.

      ----
      send money to your kernel via the boot loader.. This and more wisdom available from Markov Hardburn.

      Out of curiosity, what did you think about the license of OOPS?

      It sucks. A demonstration of why lawyers are useful. Almost every clause wrong in so many interesting ways.