Domain: dbforums.com
Stories and comments across the archive that link to dbforums.com.
Comments · 7
-
Re:Semi-On-Topic Question for Database Mavens
Here are some interesting links :
http://en.wikipedia.org/wiki/Data_model
http://en.wikipedia.org/wiki/Database
http://en.wikipedia.org/wiki/Entity-relationship_m odel
http://dmoz.org/Computers/Software/Databases/Relat ional/Model/
http://www.dbasupport.com/
http://www.datamodel.org/
http://dbforums.com/
http://sqlzoo.net/
http://databases.about.com/library/glossary/blglos sary.htm
and finally I stumbled upon these db design *useful* tips :
http://www.republicoftech.com/aic/dbclass/db_desig n.html
just my 2 halalas,
Obad -
No data integrityThe problem with MUMPS is the data integrity issue. As essentially a collective of hashed indexes where nodes can contain both data and more branches, it sucks for *any* kind of serious data retrieval. You basically have to create and maintain your own indexes, unless you go with Fileman, which is a massively moby hack, but a hack nonetheless.
The idea of the relational model is simple: it is based on set theory, which has a strong mathematical model. There is no equivelent model for object databases, nor for tree-based databases like MUMPS. There is no strong mathematical basis by which you can judge the integrity of your data.
Cache', by Intersystems (a Post-Relational Database!) is based on MUMPS. You've seen their adverts here on Slashdot. They claim to be object-relational, but they are no such thing: they are MUMPS. They went on a buying spree and purchased up most of the failing MUMPS vendors (DSM, MSM, etc), and now they are the big guys in the M world.
They have some pretty nify hacks which compiles their "object-oriented MUMPS" programming language (I forget what it's called) into straight M. Fun. Doesn't stop it from sucking hard.
MUMPS is, at best, a fairly bizarre language with persistent storage of global arrays.
MUMPS drives me nuts. It uses whitespace for blocking just like Python, but they had so much trouble with it, they eventually allowed a '.' to replace the whitespace, so you end up with code like this:S node=""
(I stole that from this duscussion.)
F S node=$O(^ZZZYYY(node)) D
.. Q:node=""
.. W "^ZZZYYY(node)=",node,!
.. R Pause
(Sidenote: I have to admit, my exposure to MUMPS is one of the primary reasons I despise Python's whitespace-as-blocking. It seems replaces the poor aesthetics of brace-blocking with something more error-prone and stupid-looking, though more aesthetically pleasing. But all that's just opinion. I'm sure Python is a good language, just as I'm sure MUMPS is not.) -
Why am I responding to flamebait?First of all, I want to note that OS X is one of the sexiest, sleekest, user-friendliest environments ever created.
But here's a short, unofficial, quick point by point comparison of OS X vs. linux that may be insightful [yeah mods, i'm talking to you!]
1) Flexibility
OS X will run on ppc architectures, and that's it, while linux can run on just about any architecture.
2) Usabilitiy
OS X is much easier to install than most linux distros (especially gentoo), and provides a consistent, pretty user interface. Linux can be setup to be just as usable, but it takes quite a bit of work (again, i'm only talking about gentoo).
3) Drivers
OS X has all the drivers it needs because hardware manufacturers create the drivers themselves, whereas only a few hardware manufacturers create drivers for linux, although many wonderful hackers have created fully functional drivers. Linux drivers still are almost always at least a few months later than windows and mac drivers.
4) Security
Because OS X is a *BSD, it is presumably just as secure as linux.
5) Cost
Upgrading from 10.2 to 10.3: $129 [1]
Upgrading from anything to linux: free (if you use a cdrw) or the cost of a cdr.
6) Speed
I don't know where you got this information that OS X works exponentially better and is way faster. The only info I can find is in [2] where linux performed better on a mysql benchmark suite.
7) Stability
the gentoo linux version is still in beta, so presumably OS X is much more stable. exponentially better? debatable.
8) Philosophy
there are mac zealots and gentoo zealots alike - do you think cocoa is the best gui environment ever created? do you think portage is the best package management ever created? Do you think software should be free, or do you think you should support quality software/hardware with a reasonable [or reasonably expensive] cost?
9) Software
Without a doubt, OS X has better, more professional software. In terms of f/oss, i believe linux has better software, although they're pretty close. the more people that use linux, and submit feature requests/bug reports, however, will undoubtedly increase the quality of linux software.
[1] - Apple How-To Upgrade
[2] - Benchmark -- note the slower processor for the linux box. -
Re:Programming Questions?(Posting as AC to avoid cancelling my comment moderation)
Learning more math won't help much for understanding the concept of pointers. However, I would definitely recommend a course (or reading a book) about microprocessors, how they work, how they deal with memory access/mapping and stuff. That would probably help you understand that a pointer is not a "physical" object or a value or a string, but simply a reference to this object/value/string in memory. If this reference is erroneous (points to a bad place in memory) then you are in trouble if you try to read from the pointer or write to it.
The most common misunderstanding about pointers is that when you have declared a pointer like this
:int *pMyPtr;
you think you can immediately do something like this:*pMyPtr = 5;
This is wrong. Why ? Because the only thing that exists here is the pointer, pMyPtr, which is an integer containing an address to some place in memory. It has to be initialized to the address of an existing place in order to be useful. You can do this in different ways :int Value;
For more information, try this link and this discussion which may be helpful too. /* This value is allocated in memory; its contents is not defined yet. */
int Table[10]; /* This table is allocated and exists in memory. Its contents is not initialized. */
int *pMyPtr; /* This is a pointer. It contains an uninitialized address to somewhere in memory. */
/* ... */
pMyPtr = &Value; /* pMyPtr points to the address of Value. Therefore *pMyPtr==Value. */
pMyPtr = &Table[5]; /* pMyPtr points to Table[5], therefore *pMyPtr==Table[5]. */
pMyPtr = Table; /* pMyPtr points to Table[0], therefore *pMyPtr==Table[0]. */ -
Re:It's called the trickle down effect.
There was a Dilbert comic not too long ago about that:
Dilbert enters PHB's (Pointy-Haired Boss) office shuffling papers:
Dilbert: "I have some disturbing news."
Dilbert: "We outsourced our customer-service function to India a few years
ago."
PHB: "So?"
Dilbert: "Apparently, they sub-contracted the job to Mexico."
Dilbert: "Then Mexico sub-contracted the job to Vietnam who sub-contracted
to the Philippines."
Dilbert: "Who subcontracted it to us."
Dilbert: "It turns out we're the lowest-cost provider because we lie about
our hold times."
Dilbert: "In summary, we pay ourselves to hose ourselves."
Dilbert: "Are you thinking what I'm thinking?"
PHB: "We should raise our prices?" -
Re:Nice press release
In defense of slashdot, this project is interesting, but like everyone else has been saying, these guys need some serious PR lessons. And while our behaviour might not be all that dignified, it's only in reaction to their blatant and shameless over-hyping which clouds any technical value their product actually has.
What's more is that the project lead has unsuccessfully trolled dbforums before. Here's some nice quotes:
Some people like tables, some people like objects. Were you at least convinced that Prevayler is an ORDERS OF MAGNITUDE faster and simpler OBJECT persistence mechanism than using ANY relational database for that?
Prevayler - TRANSPARENT persistence for Java. 9983 TIMES faster than ORACLE. 3251 TIMES faster than MySQL. I would not believe it if I were you. But I would take a look: http://www.prevayler.org
You can probably google him and find more.
Probably seems ad hominem to point out someone's trolling tendencies, but read some of the threads he's participated in and the responses point out that Prevayler is nothing but a persistent object store with a transaction log all stored in RAM for speed. Does this replace an RDBMS? No. As said many times here, they each serve different purposes and each have different features and drawbacks. Promoting either as a THE data solution is foolish. RDBMS's give you advantages like physical and logical data independence, full transactional support and unlike Prevayler, include a query language to access and modify your data. If you need any of these features, then go with RDBMS. Prevayler mainly gives you a natural (from an oop view) and quick way of having objects persist, and using it as a simpler model than the relational one to build an OO app around, with the drawbacks that things like referential integrity and queries are largely for you to handle.
That said, what of your questions has remained unanswered?
- Is anyone currently using this non-database solution in production? I'd say the lack of comments answering in the positive would make that a no, or at most possibly yes, but it's a secret.
- Was there a significant learning curve to speak of? That's difficult when it's tied to the above. Although the Zodb thread gives hints on the learning curve of doing queries over the object store.
- Is anyone considering using it in a transactional environment where speed is the paramount need? Again, silence says no.
- And, are there any objections to using Prevayler that haven't been answered at the Prevayler wiki? Google is your friend, but if not then try this advogato article here that covers some nice discussion about Prevayler, although a little outdated.
... Is Prevayler a better way? Again, as its been said many times already, it depends on your app. However it's notable that OO to relational are not as disparate as one might believe, see here. Enterprise Objects are a good counter-example, but by all means probably not the only one to your statement.
-
Re:OpenUNIX 8 and Linux
Wasn't OpenUNIX 8 (the rename of UnixWare 7, A.K.A. SVR5 UNIX) supposed to meld a lot of Linux and UNIX things. I don't think they violated any copyrights but it does show that SCO/Caldera was deep in the Linux world for a long time. How they just recently came up with this realization is still a mystery.
Yep, they wrote a linux personality toolkit (as someone else mentioned), but they say it was done using a cleanroom approach.
article at elreg
They are changing their story hour by hour. First they said that it was IBM who had used SCOs IP (used in the development of Monterey) to improve Linux, now they are expanding their claim to cover large portions of the 2.4 kernel, going back years, they must have known, they were developing monterey and one of their employees at least must have looked at the kernel source out of curiosity.
Somone mentioned that Christoph Hellwig is an ex SCO employee (don't know how true that is) but their's an interesting thread here.
This company has a one way ticket, when it's over I bet they wish they took the blue pill
:).