<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: Databases: was Re: skill system --> <!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> --> <!--X-Date: Thu, 25 Jun 1998 23:45:50 -0700 --> <!--X-Message-Id: 199806251933.MAA02936#under,engr.sgi.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199806250550.AAA27698@dfw-ix8.ix.netcom.com --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Re: Databases: was Re: skill system</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:claw#under,engr.sgi.com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg01211.html">Previous</a> | <a href="msg01213.html">Next</a> ] Thread: [ <a href="msg01200.html">Previous</a> | <a href="msg01265.html">Next</a> ] Index: [ <A HREF="author.html#01212">Author</A> | <A HREF="#01212">Date</A> | <A HREF="thread.html#01212">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Re: Databases: was Re: skill system</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] Re: Databases: was Re: skill system </LI> <LI><em>From</em>: J C Lawrence <<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>></LI> <LI><em>Date</em>: Thu, 25 Jun 1998 12:33:17 -0700</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On Thu, 25 Jun 1998 01:51:25 -5 Jon A Lambert<jlsysinc#ix,netcom.com> wrote: > It is particularly important to develop unique OIDs (object IDs) to > use as keys in the design of tables. If you are implementing > concurrency or a distributed environment, the mechanism for > assigning OIDs needs to be even more robust. Using anything from > the problem domain (i.e. user name, etc.) as table keys creates a > mess of maintainence and access problems. > Object attributes can be mapped to SQL-RDBMS columns. But since > RBMS usually only allow data primitives, sometimes it makes better > sense to map nested structures/ADTs to one-to-one table associations > and sometimes fold them into the class table. It depends. Systemically the question of dynamically added and removed columns would seem a problem. > One can map objects directly to classes and instances to rows, or > joined rows as with ADTs, there are some other ways to implement > inheritence. For instance you can map entire class heirarchies to a > single table. This becomes difficult with multiple inheritance. Heck, most things become difficult with MI, and this is merely one example. > The method I like best is the direct class to table approach since > it preserves the spirit of OO. However, the ease and speed of > access is directly related to the depth of your inheritence tree. :( Not knowing how the performance metrics of databases are related to table count (what happens when you start having thousands or tens of thousands of tables?), as well as table size (what impact does the row count have on performance, especially when compared to the percentage of "interesting" rows? (eg which is better: a single 10,000 row table with 20 interesting rows, or a hundred 100 row tables each of which has small chance of having anything interesting?)), I've been playing with abstracting the internal logical relationships from the DB entirely, and almost using the DB only for access and storage, and leaving the logical interpretion of that storage to the internal language. Don't know if its a useful approach (remember, I've been out of the DB world for nigh on 10 years now). but the basic idea would be to have one table which held only ObjectID's (a system-wide primary key) and a deleted/live status for that object). Another table would hold tuples of ObjectID's and method definitions (soft code and byte code). Potentially each method definition would be its own table with one row per referencing object, and one collumn per internal state variable (and two for the code representations). Another table would hold tuples of parent and child inheritance ObjectID's. Etc etc etc. All very very simplistic. An entire object definition (which would enclude its state) would be the product of the orws from a very large number of tables. The actual intelligence of the DB in regard to processing object characteristics doesn't get used at all -- that's all abstracted into the internal language which maintains the sense of the structure in its own logical constructions. I'm not even going to comment on search/access overheads for the above as I haven't even tried it yet. This of courses raises a fundamental design point: To what extent should the DB be a reflection of, or should support and or directly represent the logical construction of the soft code language? A persistent store is the ultimate in tieing the DB side to the logical structure yada yada of the language. The standard MUSH/Tiny-*/Cold dbm approach is far out at the other end of the scale in making the DB represenation opaque in its relation to the language internal structure. I realise that the above is heavily counter to the "heavy DB" model of the universe. Still wondering why I should care however. Note: Metrics on MySQL performance can be found at: URL:<A HREF="http://www.mysql.com/benchmark.html">http://www.mysql.com/benchmark.html</A> -- J C Lawrence Internet: claw#null,net (Contractor) Internet: coder#ibm,net ---------(*) Internet: claw#under,engr.sgi.com ...Honourary Member of Clan McFud -- Teamer's Avenging Monolith... </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="01265" HREF="msg01265.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong> <ul compact><li><em>From:</em> "Jon A. Lambert" <jlsysinc#ix,netcom.com></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="01200" HREF="msg01200.html">[MUD-Dev] Re: Databases: was Re: skill system</A></STRONG> <UL><LI><EM>From:</EM> "Jon A. Lambert" <jlsysinc#ix,netcom.com></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg01211.html">[MUD-Dev] Re: Databases: was Re: skill system</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg01213.html">[MUD-Dev] Re: WIRED: Kilers have more fun</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg01200.html">[MUD-Dev] Re: Databases: was Re: skill system</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg01265.html">[MUD-Dev] Re: Databases: was Re: skill system</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#01212"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#01212"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: Databases: was Re: skill system</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="01081" HREF="msg01081.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 16 Jun 1998, 18:44 GMT </LI> </ul> </ul> <LI><strong><A NAME="01152" HREF="msg01152.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 20 Jun 1998, 08:20 GMT <UL> <LI><strong><A NAME="01153" HREF="msg01153.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, Adam J. Thornton <a href="mailto:adam#phoenix,Princeton.EDU">adam#phoenix,Princeton.EDU</a>, Sat 20 Jun 1998, 13:41 GMT <UL> <LI><strong><A NAME="01200" HREF="msg01200.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 25 Jun 1998, 05:52 GMT <UL> <LI><strong><A NAME="01212" HREF="msg01212.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Fri 26 Jun 1998, 06:45 GMT <UL> <LI><strong><A NAME="01265" HREF="msg01265.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Tue 30 Jun 1998, 06:56 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> <LI><strong><A NAME="01188" HREF="msg01188.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, s001gmu <a href="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</a>, Wed 24 Jun 1998, 04:45 GMT <UL> <LI><strong><A NAME="01199" HREF="msg01199.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 25 Jun 1998, 05:50 GMT </LI> <LI><strong><A NAME="01280" HREF="msg01280.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 01:42 GMT </LI> </UL> </LI> </UL> </LI> </ul> </ul> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>