views:

14064

answers:

31

Consider the need to develop a lightweight desktop DB application on the Microsoft platforms.

It could be done fairly easily with MS Access but I'd like to be able to distribute it to others and I don't want to pay for a runtime license.

Requirements:

  • easy distribution to others
  • no runtime licensing issues

Considerations and Candidates:

  • Base from the OpenOffice suite. My concerns were around its stability.
  • MySQL + writing custom DB code in C++ or Python or whatever seems like a rather heavy-handed solution.

Question: What are the low cost or free database alternatives to MS Access?


See Also: Open Source Reporting Engines


+41  A: 

SQLlite,
Firebird,
VistaDB (not free),
and SQL Server Compact Edition (not Express)
all come to mind.

Another thought: while the original question does ask about desktop databases, its likely some people will land here looking for a database to use with a web site. It's important to remember that these are all in-process databases, and as such are rarely if ever appropriate for use on the web. If you want to build a web site, you really need a database server engine, like MS SQL, MySQL, Oracle, or their brethren. At the same time, those server engines are rarely if ever appropriate for a single-user desktop application.

Joel Coehoorn
...except for Firebird, which straddles the boundary and can be used in either scenario. Good points, though.
SQLite, I love it.
Alix Axel
+6  A: 

You may want to look into SQLite (http://sqlite.org/). All depends on your usage though. Concurrency for example is not its greatest virtue. But for example Firefox uses it to store settings etc..

Till
A: 

This sounds like what you need. SQL Lite

Dan Blair
A: 

See if you can find a solution here.

EDIT:I would second SQLite.

EBGreen
+40  A: 

Are you aware that the Access 2007 runtime can be downloaded for free?

http://www.microsoft.com/downloads/details.aspx?familyid=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed&displaylang=en

Remou
I'm pretty sure the Access 2003 runtime licenses weren't free... but yeah... with Access 2007 you don't have to pay for licenses.
Brett G
+1  A: 

What about Microsoft's Visual Studio Express? http://www.microsoft.com/express/default.aspx SQL Server Express is also at that link...

Raintree
+1  A: 

@Remou,

No I was unaware that the MS Access 2007 runtime is free; thanks for pointing that out. The last time I'd bothered to investigate it (I don't remember when it was) I think it was a fairly expensive license for the runtime because I think they were trying to sell it to Corporate IT departments.

And thanks to everyone else who responded as well; I was completely unaware of those other options you all pointed out.

Onorio Catenacci
A: 

for sqlite, check out the firefox extension. It offers a serviceable GUI.

Christopher Mahan
Isn't this just going to let you manage the database and not actually create a "lightweight Desktop application"?
Jeff O
True, but I think the questioner was asking for the database and not the lightweight desktop application. MSAccess is pretty good at that, harder to replace.
Christopher Mahan
@Christopher Mahan: were exactly do you get the idea from the original questioner's repeated assertions that he's asking about the whole package (particularly front-end development), that he "was asking for the database and not the lightweight desktop application"? The question is quite clear that it's the whole package, so any answer that's database-only is completely wrong for the question.
David-W-Fenton
@David:You're right, of course. I've built many many dbs with access. That was my full-time job in 1997-1999. I remember building a module function to automatically relink tables based on the network neighborhood.
Christopher Mahan
+58  A: 

When people ask about a replacement for Access a lot of people only think about the database, but what people are really asking about are all the other features. They usually don't care what database Access is using.

I don't know of any free alternatives to Access. There are several options that cost a lot of money. Any free options require you combining something like SQL-Lite and a development language.

Some of the functionality provided by Access are: Forms, Query Building, Reports, Macros, Database Management, and some kind of language when you need to go beyond what the wizards provide.

SQL-Lite, MySQL, FireBird do not have those functions built into them.

There really isn't a non-Access for free with minimum runtime requirements option. I wish there was.

Probably the best free option would be SQL-Lite and Visual Basic 2008 or C# 2008 Express Edition. This would have a heavy runtime dependency, so installing on a bare client could take quite the installer.

I'll be interested in hearing if anybody knows any good alternatives.

bruceatk
+3  A: 

@Bruceatk,

Yes you hit on some of the reasons I'd considered MS Access in the first place--that is, it's fairly easy to build data entry forms with validation of the data being entered, it's got a decent report engine and it's pretty easy to define tables and relationships. And I think you're correct; I don't think there is really a good, free replacement for the entire "development stack" for MS Access. I wish I could say that Base in the OpenOffice.org suite were a little more mature because it's about the closest thing I know of to a one for one replacement but it's not quite mature enough yet to replace MS Access.

I guess I should also see what ever became of Paradox. I used to develop for Paradox back in the DOS days and while it certainly lacked some things that I couldn't live without now (it's hard to believe they completely left out transactions) it was good enough for small database development.

Onorio Catenacci
+3  A: 

In the context of a programming forum, we don't usually think of the programmer also needing the application portion of the database. Normally a programmer wants to use their own development environment for the business logic and front end, and just use the store, query, retrieval, and data processing capabilities of the database.

If you really want all those other things, then you're talking about a much larger and more complicated run time environment. You're not going to find anything that's 'lightweight' any more. Even MS Access itself no longer qualifies, because it's hardly light weight. It's just lucky in that a lot of users might already have it, making it appear to be light weight.

This doesn't mean you won't find anything. Just that it's not likely to have the same level of maturity or distribution as Access, especially since the underlying access engine is already baked into Windows.

Joel Coehoorn
+3  A: 

VistaDB has an express version which is free to use and is syntax and driver compatible with SQL Server. VistaDB is a single file and only requires their driver .dll to work in your asp.net or winforms project.

Since it is syntax and datasource compatible you can upgrade to SQL Server if needed.

from their site:

VistaDB is a fully managed and typesafe ASP.NET and WinForms applications using C#, VB.NET and other CLR-compliant languages.

VistaDB.net

Brian Boatright
+1  A: 

Are you referring to the concept of a free database to distribute with an application, or an Access-like "single file, no installation" database?

As in, things like SQL Server Express Edition require things like runtimes to be installed, databases to be created and mounted, entries on people's Start menus that they won't recognize (my wife asked why SQL Server was on her laptop the other day) whereas an Access database can be run in a single file.

I guess what I'm asking is do you want to think of the database as a document you write to or as an instance of something on someone else's machine?

Schnapple
+1  A: 

@Schnapple

Bruceatk kind of hit on what I'm thinking of; it's not so much the DB engine as I want the other niceties that Access brings to the party. The nice form designer, the nice reporting engine etc. But you do raise a very good point about the installation footprint. I had considered that but I've not made any firm decisions about which way I'm going with this yet anyway. It'll probably be something fairly lightweight anyway and a small installation footprint would definitely be a plus.

Onorio Catenacci
A: 

@brian

Thanks for the additional suggestion.

Onorio Catenacci
+1  A: 

I think the database included with OpenOffice.org has the form designer in it. I've never tried writing code for it though. A forum post I saw had a link to a tutorial they said had some code in it.

I started to set up a database for my wife and the interface was coming out pretty good as far as I could tell.

oooForum.org tutorial

Knobloch
I would love to use the stuff included in OO.0 but the last time I checked it, it was just too primitive to use.
Onorio Catenacci
+29  A: 

Schnapple asks:

Are you referring to the concept of a free database to distribute with an application, or an Access-like "single file, no installation" database?

Er, nobody who has any competence with Access application development would ever distribute a single MDB/ACCDB as application/data store. Any non-trivial Access application needs to be split into a front end with the forms/queries/reports (i.e., UI objects) and a back end (data tables only).

It's clear that what is needed here is a database application development tool like Access. None of the database-only answers are in any way responsive to that.

Please learn about Access before answering Access questions:

  • Access is a database application development tool that ships with a default database engine called Jet.

  • But an Access application can be built to work with data in almost any back end database, as long as there's an ISAM, or an ODBC or OLEDB driver for that database engine.

Microsoft itself has done a good job of obfuscating the difference between Access (development tool) and Jet (database engine), so it's not surprising that many people don't recognize the difference. But developers ought to use precise language, and when you mean the database engine, use "Jet", and when you mean the front-end development platform, use "Access".

--
David W. Fenton
David Fenton Associates

David-W-Fenton
I voted your answer up because it is a good answer to the question but whether you meant to or not (and I'll assume you didn't) your response comes across as a bit harsh.
Onorio Catenacci
I have a short fuse for all the people who badmouth Access who can't even distinguish between Access and Jet. My apologies for being blunt, but I fear it's necessary to gain respect from those who are proud of their ignorance.
David-W-Fenton
Access blows. Nyah.
Will
Will, you're quite an adult, I see.
David-W-Fenton
It would be helpful if questions like, "How do I connect to an .mdb file using Program 'X'?" were not tagged as Access.
Jeff O
Yes, but the JET tag overlaps with other programs and is not used by very many people. I think things have gotten better since I first started reading StackOverflow. I hope I had something to do with that.
David-W-Fenton
@David W. Fenton: "developers ought to use precise language" -- indeed. The precise term is 'Access database engine'. This is a collective term for the old Jet and the new ACE plus, I suppose, any other default engine choice for Access that may appear in the future. I suppose you could be really wordy and enumerate this each time but your usage of "Jet" to refer to the Access database engine (or the collection of Access database engines, if you prefer) is imprecise.
onedaywhen
@Guiness: David should know but compare and contrast the Access2003 Help CONSTRAINT clause (http://office.microsoft.com/en-gb/access/HP010322141033.aspx) "The Microsoft Jet database engine does not support..." with the Access2007 Help CONSTRAINT clause (http://office.microsoft.com/en-gb/access/HA012314371033.aspx) "The Microsoft Access database engine does not support..."
onedaywhen
The term "Access database engine" did not exist until the introduction of Access 2007. It is a "new" database engine, but it is Jet under the hood. The problem with terminology is that many of the people in these forums fail to distinguish Access the application development tool with the database engine, regardless of what it's called.
David-W-Fenton
+8  A: 

Check out suneido.

I made a fairly complicated GIS app as an experiment with it some years ago (database, complex gui, reports, client/server). It was a pleasant experience (apart from some documentation issues...) and I became productive with it very fast.

I don't use it anymore mainly because:

  • it's not really general purpose
  • it's not cross platform (windows only)
  • I decided to stop exploring exotic technologies and specialize in something more mainstream... like python ;)
Toni Ruža
Thanks Toni. That's a very good link.
Onorio Catenacci
+3  A: 

The Access runtime license has never been all that expensive -- the cost for the developer tools/extensions has been around $300 as long as I can remember (which would be as far back to the Access 2 Developers Toolkit, or ADT), but that gives you the ability to distribute your app with the runtime to an unlimited number of users. As long as your runtime app was used by three or more users, you'd have been saving money (assuming a cost of $100/user to install a full copy of Access).

The runtime for Access 2007 is completely free, but really, the cost before that was not all that great.

Marc Gravell added (in what should have been a comment, in my opinion):
Being free, though, is certainly an encouragement for people to try it out which the $300 price really would have discouraged.

David-W-Fenton
+2  A: 

What about r:Base? Way back in the day r:Base was a very robust DOS (then Windows) RDMBS and this is pre-Access / pre-Paradox days. Its closest competitor was dBase but that wasnt fully relational, at the time. I developed some very nice r:Base applications AND, like Access today, had a built in report generator, forms facility, queries and table manipulation.. To my surprise, its still alive! http://www.rbase.com/ Its got all that access offers, it seems. Might be something for you to consider.

Optimal Solutions
Wow I thought r:Base was gone too. Good link Optimal.
Onorio Catenacci
+3  A: 

Oracle XE With Application Express.

  • Has a nice web based gui,
  • Is a "Real" database
  • Will scale beyond a single desktop
  • Offers a clear scale path beyond a small team
  • Applications as web based, easily accessible.
  • Can convert Excel spread sheets into Applications
Matthew Watson
+2  A: 

Kexi 2007.1.1 may be what you are looking for.

Its express version is free but DB size limited. Full version cost $72.

The description from its home page: Kexi is an easy to use application for visual database design for Linux and MS Windows. Kexi competes with MS Access, FoxPro, Oracle Forms and FileMaker.

Visit http://www.kexi.pl/en/Start for details.

+6  A: 

Of the Free Software alternatives these haven't been mentioned yet:

I'd also keep an eye on what DB RAD tools the Flex/Air community is coming up with, since with those tools it's possible to get unified desktop and web interfaces.

akaihola
+1  A: 

Apache Derby is a nice db alternative.

Joshua
Thanks for the pointer. If anyone wants a link: http://db.apache.org/derby/
Onorio Catenacci
A: 

VistaDB is the only alternative if you going to run your website at shared hosting (almost all of them won't let you run your websites under Full Trust mode) and also if you need simple x-copy deployment enabled website.

Koistya Navin
+1  A: 

Gambas

fortran
+2  A: 

You mentioned Python, have you considered Dabo?

http://dabodev.com/

That would avoid much of the grunt work in a custom app.

styro
+1  A: 

When I viewed the MS information, the claim was always "free download", not "free license".

I am assessing alternatives for Access in a corporate environment. If we stay with Access, we will want to make the run-time part of our "standard workstation build", to put it onto ALL our workstations, in anticipation of in-house applications making use of it as we upgrade existing applications and create new ones.

Comments in some MS Access web pages and blogs explicitly state that the prior need to purchase a development tool was gone, and that developers would not have to pay redistribution rolyalties. However, I did not see anything explicit stating that organizations with umbrella contracts could deploy the run-time for free.

Can anyone verify THROUGH EXPERIENCE that the Access 2007 runtime can be deployed throughout a corporation without that corporation having to pay a license fee?

BigLar
Experience no. But i do understand what you mean by "free download" and the fine print states "$95 to purchase." See Access 2007 Developer Extensions and Runtime http://msdn.microsoft.com/en-us/office/bb229700.aspx. Down a ways it states "Download the Access 2007 Developer Extensions - Free packaging and deployment tools and licensing and distribution agreements." Thus I'd suggest reading the licensing yourself.
Tony Toews
Let me also add that you never had to pay redistribution royalties in any previous Access runtime. Just the one time purchase.
Tony Toews
+5  A: 

To be honest - there aren't any free alternatives to MS Access. At least if you mean database development tool (forms, reports, queries, VBA support etc.). If you think about MS Access as a database engine (you mean MS Jet or ACE in fact) then yes - you have a lot of possibilities. There are a lot of free database engines - the most popular are MySQL and PostgreSQL. I can recommend both - it depends what you want to do.

For writing database frontends C++ is one of the worst choices. You should consider MS Visual C#, MS Visual Basic .NET or... Even Java/Swing (if we are talking about desktop application). If you think about the web-enabled frontend - consider PHP (with MySQL or PostgreSQL on the backend) or ASP.NET (with MSSQL Server at the backend).

I strongly recommend you not to use C++ for such job. This language is very efficient and flexible, but advanced database frontend development with C++ is not the best idea. C++ is great in system programming, games development, maths and physics simulations, everywhere where efficiency is the key - like real-time applications etc. Frontends don't have to be daemons of speed - they should look nice and have advanced end-user features (like sorting, coloring etc.). If you are looking for free tools - maybe C# Express or Visual Basic.NET Express 2008 would be the proper choice? Or maybe Java/Swing (check the NetBeans IDE)? Maybe SharpDevelop? But not C++... Leave C++ for the things it suits the best.

Regards,
Pawel Wawrzyniak
--
http://dcserwis.pl

Pawel Wawrzyniak
+1  A: 

The issue is finding an alternative to MS Access that includes a visual, drag and drop development environment with a "reasonable" database where the whole kit and caboodle can be deployed free of charge.

My first suggestion would be to look at this very complete list of MS Access alternatives (many of which are free), followed by a gander at this list of open source database development tools on osalt.com.

My second suggestion would be to check out WaveMaker, which is sort of an open source PowerBuilder for the cloud (disclaimer: I work there so should not be considered to be an unbiased source of information ;-)

WaveMaker combines a drag and drop IDE with an open source Java back end. It is licensed under the Apache license and boasts a 15,000-strong developer community.

C Keene
I find the evaluations at the cited URL to be quite charitable to the the Access alternatives. None of them really comes very close at all to replicated the feature set of Access. That doesn't mean they are great choices for any number of projects, just that they can't replace everything that Access does. The only platform I know of that comes close is FileMaker, and that is comparatively weak in scripting and data connectivity.
David-W-Fenton
That's a good link @C Keene. Thanks for sharing it.
Onorio Catenacci
I agree with you @David Fenton - MS Access is a very mature and full-featured product. If you want something that does *everything* MS Access does, then MS Access is the only product that fits the bill. The "right answer" comes down to what particular compromises you are willing to make (e.g., limited scripting or reporting) and what other benefits you get from the new platform (e.g., open source, Java-based etc)
C Keene
It's probably overkill but I also wrote a blog post on this [Free Alternatives to Microsoft Access](http://freealternativemsaccess.blogspot.com/2010/05/free-alternative-to-microsoft-access.html "MS Access Replacements") - sigh...need to consider getting a life.
C Keene
+1  A: 

I'd the same problem of you. I had a MS access application but I wanted to go to a web application accessible to everybody and without paying money to MS. So I decided to use MySql and Wavemaker (open source) to get the scope..I'm very happy of this decision. and that's the result http://www.mara-database.org/

Aurelio
I don't think you're answering the question that was asked.
David-W-Fenton