[Robert Abitbol] 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. [Robert Abitbol] 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 differenciate between a database and a DBMS. In a database we can seperate between the meta-data which describe 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 singe enterprise, if another department already have a filled databases that serve your need, I would say it is harmful to build you own department database which 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? :^) [NEM]: Indeed, if this half-page of Tcl does the job, then great. I'd still probably use [SQLite] or [Metakit], as they are as simple to use, but quite a bit more powerful. ---- [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... ----- [Robert Abitbol] 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 better. ----- [Category Community]