I was extremely intrigued a few days ago when I read on this very wiki that using homemade databases is to be preferred to using others' databases: SQL for example.
I cannot find the exact location of this statement. I believe it is in a page on databases obviously.
Now, why would a homemade database be better than an SQL database for example? Anyone has an idea?
NEM Depends on what you mean by "database". You almost certainly don't want to implement your own RDBMS(or other database management system). You may well want to write your own database, though (which is the collection of data that you want a RDBMS to manage). SQL is a language for specifying queries: it is neither a database nor a DBMS.
unperson I believe what the t'cler had in mind was an RDBMS tailor-made for a specific project: perhaps a simple text database with all sorts of field indicators, trails, etc.
He implied that this was the best tool for a specific project. Is it?
SYStems First we must differentiate between a database and a DBMS. In a database we can seperate the meta-data that describes the data model and the data itself.
A NOT homemade database in this case would mean a database designed and filled by others, like the yellow pages. And in this case I don't see much harm using such databases; actually I would argue it's how we may want to exploit the internet, using other people's databases whenever possible.
Same logic goes within a single enterprise; if another department already has a filled databases that serves your need, I would say it is harmful to build you own department database that would just duplicate the work and create redundancy.
So my answer is, no, a homemade database is not necessarely the best database.
RS: I'd say the best database is the one that matches the requirements with minimal hassle and resource consumption. So it all depends on the requirements. Maybe A simple database was the page mentioned above? Or Another simple database? A little database API? These are all "home-made", require only Tcl, and can be shrink-wrapped to match one's requirements exactly. I'm not all against using powerful database engines with hundreds of features (and voluminous documentation, hopefully), but if half a page of Tcl code does the job too, why bother? :^)
LV One of the disadvantages of using homemade solutions is that they need to be home-coded, home-debugged, and home-supported, whereas if you use something that was written elsewhere, there is some hope that, with more users of the code, more debugging will occur, and more enhancements without taking you away from the very real effort of solving problems. Of course, if you are not solving problems, just looking for code to write, then writing your own database is as good a thing to do as writing your own object oriented tcl package or your own Tcl-based text editor...
unperson Very interesting comments!
I'll go along with what RS has written: the best database is the one that matches the requirements with minimal hassle and resource consumption. So it all depends on the requirements.
The problem is how do we know which fits the bill, matches the requirements other than by shopping around and trying a few?
For the translator, we have worked with text-based databases for many years; more precisely with comma delimited databases, and the results are so great it will be hard to change. As the precept goes: if it works, why change it?
RS has over and over (almost every week-end) coded amazing stuff with a few lines of code, and I tend to think like him: the smallest the best.
(Daniel) on 2007-3-14 Any thoughts on which SQL database is the easiest to install? AET 15mar07 SQLite.