Free database for windows ?

  • Thread starter Thread starter Søren Reinke
  • Start date Start date
S

Søren Reinke

Hi there

I am working on a divelogbook program, at the moment i read in an XML file
containing all the dive data and samples of depth during the dive.

At the moment my XML files has 307 dives (consists of 45 fields) and about
37000 samples (consists of 12 fields).

But i know some dives have 10 times, that amount of dives, so the XML file
will be very big, and the dataset it is read into will be huge.
Therefore i would like to use a database system instead, but my program is
100% open source and free, and the database should be free as well (open
source does not matter).

Could anybody suggest any systems i could use ? Or have another solution ?

Maybe another sollution than a DB is even better.

What i need is people to be able to download my program and install it with
DB and everything.

I hope you can help.

Best regards
Søren Reinke
 
Hi Søren,

You may want to look at Microsofts SQL Server 2000 Desktop Engine

http://www.microsoft.com/sql/msde/

There are some limitations you need to be aware of, and using a database
system complicates your program.
Then again, what you feel as a huge file may be quite acceptable in these
days where hundreds of GB disk space isn't uncommon.
 
Hi,

We use MySQL, which is completely free, and there are others around (Google
for them). Like the other poster said, DBs are not trivial and asking an end
user to install one just to run a program won't go down very well. If I were
you I'd have a hunt around for lightweight database-like code that can use,
say, an XML file as its storage and provides some of the functionality (main
inserts and quesries I suppose) of a full DB, but without the installation
and maintenance woes.

Maybe you should think about how things will get and how you'll manipulate
all this data - there's no way you can expect to display all that
information at once, so it may be the case that your storage system doesn't
need to be that rapid at looking stuff up.

Good luck!

Steve
 
Hi Morten
You may want to look at Microsofts SQL Server 2000 Desktop Engine

http://www.microsoft.com/sql/msde/

That might work, but it sure is a big product :)
There are some limitations you need to be aware of, and using a database
system complicates your program.

Don't worry i am use to working with MsSQL and MySQL database systems, but i
wanted something i could distribute easily together with the software and
easy to install for the end user.
Then again, what you feel as a huge file may be quite acceptable in these
days where hundreds of GB disk space isn't uncommon.

Thats true, my main concern is not the actual file size, but the amount of
memory it would use, if i just did a 'ReadXML(filename)' on the dataset. It
could end up using a large of memory.

Might you now of some classes that i can freely use to sort of emulate DB
functionality on the XML files directly ? I need to be able to do queries
like:
select diveID,diveDate from DiveDate where diveLocation like '%shark%'
or:
select depth,time from DiveSamples where diveID=17

So only simple queries, it doesnt matter if i can't make join's views or
stuff like that.

Most of the time it is simply selecting data from the XML file, with a few
simple criterias.

Best regards
Søren Reinke
 
Hi Steve
We use MySQL, which is completely free, and there are others around
(Google for them). Like the other poster said, DBs are not trivial and
asking an end user to install one just to run a program won't go down very
well. If I were

I agree completly.
you I'd have a hunt around for lightweight database-like code that can
use, say, an XML file as its storage and provides some of the
functionality (main inserts and quesries I suppose) of a full DB, but
without the installation and maintenance woes.

Sounds like an excellent idea, might you know of such code ?
I have google'ed a bit but not really found any.
Maybe you should think about how things will get and how you'll manipulate
all this data - there's no way you can expect to display all that
information at once, so it may be the case that your storage system
doesn't need to be that rapid at looking stuff up.

Very true.

Most of the times it is 'list all my dives from Egypt in 2003 going deeper
than 22 meter' and stuff like that.
No join's or anything 'advanced'

Best regards
Søren Reinke
 
Søren Reinke said:
Hi there

I am working on a divelogbook program, at the moment i read in an XML file
containing all the dive data and samples of depth during the dive.

At the moment my XML files has 307 dives (consists of 45 fields) and about
37000 samples (consists of 12 fields).

But i know some dives have 10 times, that amount of dives, so the XML file
will be very big, and the dataset it is read into will be huge.
Therefore i would like to use a database system instead, but my program is
100% open source and free, and the database should be free as well (open
source does not matter).

Could anybody suggest any systems i could use ? Or have another solution ?

Maybe another sollution than a DB is even better.

What i need is people to be able to download my program and install it with
DB and everything.

Have you checked out MSFT Visual Foxpro DBC's? They are quite advaced
these days for a file based database engine and using the OLEDB provider
you would have no problems implementing this.
 
Hi Eugene
Have you checked out MSFT Visual Foxpro DBC's? They are quite advaced
these days for a file based database engine and using the OLEDB provider
you would have no problems implementing this.

Are they easy to install for the end user as well ? And free of charge ?

Any link is appriciated :)

Best regards
Søren Reinke
 
Mark Rae said:
Why not just use a Jet (aka Access) database and connect to it via
System.Data.OleDb?

That might be a sollution to.

Have i understood it correct, that i design the database setup in Access,
and then just distribute a empty database to the users, and then they can
fill it with data, without having Access installed at all ?

Best regards
Søren Reinke
 
Have i understood it correct, that i design the database setup in Access,
and then just distribute a empty database to the users, and then they can
fill it with data, without having Access installed at all ?

Absolutely!

It's important to understand that there's actually no such thing as an
"Access database" per se. Access is a database application development tool
which uses the Jet database file format - the same database used by lots of
Microsoft products. Access itself isn't free just as VB or Visual Studio.NET
aren't, but you are allowed to distribute applications which use this
desktop database file format free of charge.

Typically, your application will interface with the Jet database using ADO
if it's written in Visual Studio 6, or ADO.NET if it's written in Visual
Studio.NET. Of course, your users will need to have the .NET Framework
installed on their PC in order to run .NET solutions, but that's available
free for download from Microsoft. This will install MDAC 2.x (depending on
the version) which includes the Jet OleDb provider which you will need.

The Jet database file format has been around in its various versions since
1992, and is excellent for single-user desktop apps which don't require huge
amounts of data storage. It can also be used in a multi-user networked
environment, but does not perform well with more than around 20 concurrent
users. If this is your environment, consider a server-based RDBMS such as
SQL Server instead.

As an aside, you can distribute runtime Access applications as well -
there's an Office utility which will do this for you - which will allow
users to run the Access application without a copy of Access installed on
their PC.
 
And lastly, there is always FireBird, which has an Embedded client db
component that is supposed to leave a really small footprint with
nothing that the end user has to install (oh yeah, it's also Open Source
:) )

Check out http://firebird.sourceforge.net/

HTH,
~d
 
You can also create Access databases with ADOX. If you create them that way you
don't even have to own Access. You can also do it with DAO, which works just
fine in .NET.
Absolutely!

It's important to understand that there's actually no such thing as an
"Access database" per se. Access is a database application development tool
which uses the Jet database file format - the same database used by lots of
Microsoft products. Access itself isn't free just as VB or Visual Studio.NET
aren't, but you are allowed to distribute applications which use this
desktop database file format free of charge.

Typically, your application will interface with the Jet database using ADO
if it's written in Visual Studio 6, or ADO.NET if it's written in Visual
Studio.NET. Of course, your users will need to have the .NET Framework
installed on their PC in order to run .NET solutions, but that's available
free for download from Microsoft. This will install MDAC 2.x (depending on
the version) which includes the Jet OleDb provider which you will need.

The Jet database file format has been around in its various versions since
1992, and is excellent for single-user desktop apps which don't require huge
amounts of data storage. It can also be used in a multi-user networked
environment, but does not perform well with more than around 20 concurrent
users. If this is your environment, consider a server-based RDBMS such as
SQL Server instead.

As an aside, you can distribute runtime Access applications as well -
there's an Office utility which will do this for you - which will allow
users to run the Access application without a copy of Access installed on
their PC.

Otis Mukinfus
http://www.otismukinfus.com
 
Mark said:
Absolutely!

It's important to understand that there's actually no such thing as an
"Access database" per se. Access is a database application development tool
which uses the Jet database file format - the same database used by lots of
Microsoft products. Access itself isn't free just as VB or Visual Studio.NET
aren't, but you are allowed to distribute applications which use this
desktop database file format free of charge.

Hi Mark

Thanks for the clarification :)

What is important to me is that people can use the program without
owning the Office software.

Back to development :)
 
Back
Top