tiny footprint database alternatives to MDB?

T

Timo

I would be grateful for suggestions for tiny footprint ADO.NET compatible
database alternatives to Access MDB files, supporting XCOPY installation. We
have very simple query needs and no need for JOIN support. Our basic need is
to quickly select from a table containing ~200,000 rows all rows where
category = {some value}.
Thanks
Timo
 
R

Robbe Morris [C# MVP]

Assuming you don't need to update the data from web site user interaction,
wouldn't it make sense to use the DataSet.WriteXml for every category and
put it in its own file. Then, when the user wants that single category or
categories,
you'd just read the xml file from disk?

Again, this suggestion is based on your sole require to perform a single
query for a static list of records.

--
2004 and 2005 Microsoft MVP C#
Robbe Morris
http://www.masterado.net

Earn $$$ money answering .NET Framework
messageboard posts at EggHeadCafe.com.
http://www.eggheadcafe.com/forums/merit.asp
 
T

Timo

Thanks for the suggestion. It is read-only, as you assumed. I thought of
XML, but don't have any experience using it as a datastore. Wouldn't we have
to read the entire XML document into memory? That would be 200,000 rows data
length (average 100 bytes per record) plus the bytes overhead of the XML
markup itself. Is there a way to quickly scan the XML document's nodes to
find the one(s) we wanted, without reading the whole XML document into RAM?
Timo
 
W

William \(Bill\) Vaughn

If you're running a Tablet or hand-held PC, you can use SQL CE...
I agree... there needs to be a tiny DBMS as you describe that still protects
your data--even when you shut down ungracefully. I'm lobbying to get the SQL
CE engine ported to "regular" PC platforms. If enough people ask for it, it
will happen (or at least that's what MS said).

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
 
C

Chad Z. Hower aka Kudzu

Timo said:
I would be grateful for suggestions for tiny footprint ADO.NET
compatible database alternatives to Access MDB files, supporting XCOPY
installation. We have very simple query needs and no need for JOIN
support. Our basic need is to quickly select from a table containing
~200,000 rows all rows where category = {some value}.

http://firebird.sourceforge.net/

This meets all of your requirements - just use the embedded version. And its free.
 
C

Chad Z. Hower aka Kudzu

Timo said:
Thanks for the suggestion. It is read-only, as you assumed. I thought
of XML, but don't have any experience using it as a datastore.
Wouldn't we have to read the entire XML document into memory? That

XML is a very bad choice based on your criteria.
 
R

Robbe Morris [C# MVP]

If I understood your requirements clearly. You would return 100%
of the rows found for each category. That said, you could create
a small little admin app to pre-generate xml files from the DataSet
(look up the .WriteXml and .ReadXml methods) to individual files
to disk. Then, deploy them instead of the database.

At runtime, you could simply load the file named by the category
selected into a DataSet/DataTable, XmlReader, or some other
container.

You could go so far as to cache those categories that were
used most often.

What is unclear is how many different categories you have
and how evenly spread across your 200,000 they are.

--
2004 and 2005 Microsoft MVP C#
Robbe Morris
http://www.masterado.net

Earn $$$ money answering .NET Framework
messageboard posts at EggHeadCafe.com.
http://www.eggheadcafe.com/forums/merit.asp
 
T

Timo

Robbe,
You hit the nail on the head when you write:
What is unclear is how many different categories you have
and how evenly spread across your 200,000 they are.

We have, unfortunately, very many categories. "Category" is really a
misnomer on my part. I was focusing on the parent-child aspect, and
"category" was a bad choice of real-world column-name. To get a better sense
of the ratio of category to child items, I would say to think of category
as "Surname" and item as "Phone number". We have almost as many
'categories' as a phone book has surnames.

Regards
Timo
 
T

Timo

Lloyd,
SQLite looks very promising! My thanks also to those who seconded this
suggestion.
Timo
 
C

Chad Z. Hower aka Kudzu

Peter Bromberg said:
As another poster responded, I agree that SQLite is currently the best
"no deployment", "tiny footprint", "open source" database engine

Im not trying to start a flame war - but why would you consider SQL Lite to be better than Firebird in
this case?

Firebird is a full and mature database, with versioning, transactions, joins, SQL 92, multi user,
multi platform, and ADO.NET provider. Its embedded version is a very small footprint and requires
no deployment other than to copy the DLL.

It also has wide support in case tools, adminsitrative tools, and more.
 
L

Lloyd Dupont

Im not trying to start a flame war - but why would you consider SQL Lite
to be better than Firebird in
this case?

probably because SQLite is only a 241kb DLL.
you put it into your project, and that's it! and it has very small
footprint.
 
C

Chad Z. Hower aka Kudzu

Lloyd Dupont said:
probably because SQLite is only a 241kb DLL.
you put it into your project, and that's it! and it has very small
footprint.

FB isnt very large either, and you put it in your project and thats it (Embedded version). And SQL Lite
does not even enforce NOT NULL, among a dozen other standard DB things according to their page,
while FB is a fullly featured DB.

Im not knocking SQL lite, but there is little difference in deployment (just a difference in size,
and not noticable in most deployments) and there are big differences in features, even ones I
consider to be pretty basic and routine in a DB.
 
C

Chad Z. Hower aka Kudzu

Lloyd Dupont said:
probably because SQLite is only a 241kb DLL.
you put it into your project, and that's it! and it has very small
footprint.

I didnt check to see if it supports transactions either - but thats pretty important in any DB I'd use.
 
L

Lloyd Dupont

BTW, a few weeks ago, I discovered Kudzu!!
Now I discover your call center adventure!
Lots of fun stuff hey!

But I don't quite understand... are you living in Russia or America?
Everything tells America but your article aout Earthlink.... :/
 
C

Chad Z. Hower aka Kudzu

Lloyd Dupont said:
of course it does! ;-)

Here is what turned me off. No Foreign key support, and a bunch of others:
http://www.sqlite.org/omitted.html

Firebird supports everything. If Firebird wasnt free, Id be willing to give up some things maybe, but
both are free, and both are just a DLL (FB embedded version). FB can also be scaled to a full
server and runs on Unix + Windows.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top