database MS Access 的良好免费替代品
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29044/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Good Free Alternative To MS Access
提问by Onorio Catenacci
Consider the need to develop a lightweight desktop DB application on the Microsoft platforms.
考虑在 Microsoft 平台上开发轻量级桌面 DB 应用程序的需求。
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.
使用 MS Access 可以很容易地完成,但我希望能够将其分发给其他人,而且我不想为运行时许可证付费。
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.
- 来自 OpenOffice 套件的基础。我担心的是它的稳定性。
- MySQL+ 用 C++ 或 Python 编写自定义数据库代码或任何看起来相当笨拙的解决方案。
Question: What are the low cost or free database alternatives to MS Access?
问题:MS Access 的低成本或免费数据库替代品有哪些?
See Also:Open Source Reporting Engines
另请参阅:开源报告引擎
@Schnapple
@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.
Bruceatk 有点符合我的想法;与其说是数据库引擎,不如说是我想要 Access 为聚会带来的其他好处。漂亮的表单设计器,漂亮的报告引擎等。但是您确实提出了关于安装足迹的一个很好的观点。我已经考虑过这一点,但无论如何我还没有就我将要采取的方式做出任何坚定的决定。无论如何,它可能会相当轻巧,并且安装空间小肯定是一个加分项。
@Remou,
@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.
不,我不知道 MS Access 2007 运行时是免费的;感谢您指出了这一点。上次我费心调查它时(我不记得是什么时候了)我认为这是一个相当昂贵的运行时许可证,因为我认为他们试图将它出售给企业 IT 部门。
And thanks to everyone else who responded as well; I was completely unaware of those other options you all pointed out.
并感谢其他所有回复的人;我完全不知道你们指出的其他选项。
采纳答案by Joel Coehoorn
One thing to keep in mind here is the MS Access product is much more than just the raw database engine. It provides a full application development platform, including form and menu designer, client application language and environment (VBA), and report designer. When you take all those things together, MS Access really has no peer.
这里要记住的一件事是 MS Access 产品不仅仅是原始数据库引擎。它提供了一个完整的应用程序开发平台,包括表单和菜单设计器、客户端应用程序语言和环境 (VBA) 以及报表设计器。当你把所有这些东西放在一起时,MS Access 真的没有同行。
But for the scope of this question, we're concerned with the raw database engine. With that in mind:
但是对于这个问题的范围,我们关心的是原始数据库引擎。考虑到这一点:
SQLlite,
Firebird,
VistaDB(not free),
SQL Server Compact Edition(not Express)
and now SQL Server LocalDB
all come to mind.
SQLlite、
Firebird、
VistaDB(非免费)、
SQL Server Compact Edition(非 Express)
和现在的 SQL Server LocalDB
都浮现在脑海中。
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-processdatabases, and as such are rarely if ever appropriate for use on the web. If you want to build a web site, where it's common to need to support significant concurrent access, you generally want a database serverengine, like MS SQL, Postgresql, MySQL, Oracle, or their brethren. At the same time, those serverengines are rarely if ever appropriate for a single-user desktop application.
另一个想法:虽然最初的问题确实询问了桌面数据库,但很可能有些人会在这里寻找与网站一起使用的数据库。重要的是要记住,这些都是进程内数据库,因此很少适合在 Web 上使用。如果您想构建一个网站,通常需要支持大量并发访问,您通常需要一个数据库服务器引擎,如 MS SQL、Postgresql、MySQL、Oracle 或它们的兄弟。同时,这些服务器引擎很少适用于单用户桌面应用程序。
回答by bruceatk
When people ask about a replacement for Access, a lot of them only think about the database, but what they are really asking about are all of the other features in Access. They usually don't care what database Access is using.
当人们询问 Access 的替代品时,他们中的很多人只考虑数据库,但他们真正询问的是 Access 中的所有其他功能。他们通常不关心 Access 正在使用什么数据库。
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.
Access 提供的一些功能包括:表单、查询构建、报告、宏、数据库管理,以及当您需要超越向导提供的功能时的某种语言。
SQLite, MySQL, and FireBird are free database back ends. They do not have those additional Access functions built into them. Any free alternatives to Access require you combining something like SQLiteand a development language.
SQLite、MySQL 和 FireBird 是免费的数据库后端。他们没有内置这些额外的访问功能。Access 的任何免费替代品都需要您将SQLite 之类的东西与开发语言相结合。
Probably the best free option would be SQLiteand 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.
最好的免费选项可能是SQLite和Visual Basic 2008 或 C# 2008 Express Edition。这将具有严重的运行时依赖性,因此在裸客户端上安装可能需要相当多的安装程序。
There really isn't a non-Access option for free with minimum runtime requirements. I wish there was.
确实没有具有最低运行时要求的免费非访问选项。我希望有。
I'll be interested in hearing if anybody knows any good alternatives.
如果有人知道任何好的选择,我会很想听听。
回答by Fionnuala
Are you aware that the Access 2007 runtimecan be downloaded for free?
您知道可以免费下载Access 2007 运行时吗?
Links for newer versions:
新版本的链接:
回答by David-W-Fenton
Schnapple asks:
Schnapple 问:
Are you referring to the concept of a free database to distribute with an application, or an Access-like "single file, no installation" database?
您指的是随应用程序一起分发的免费数据库的概念,还是类似于 Access 的“单个文件,无需安装”数据库的概念?
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).
呃,对Access应用程序开发有任何能力的人都不会分发单个MDB/ACCDB作为应用程序/数据存储。任何非平凡的 Access 应用程序都需要分成带有表单/查询/报告(即 UI 对象)的前端和后端(仅数据表)。
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.
很明显,这里需要的是像 Access 这样的数据库应用程序开发工具。仅数据库的答案都没有以任何方式对此做出响应。
Please learn about Access before answering Access questions:
在回答 Access 问题之前,请先了解 Access:
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.
Access 是一种数据库应用程序开发工具,附带一个名为 Jet 的默认数据库引擎。
但是,可以构建 Access 应用程序以处理几乎任何后端数据库中的数据,只要该数据库引擎有 ISAM、ODBC 或 OLEDB 驱动程序即可。
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".
微软本身在混淆Access(开发工具)和Jet(数据库引擎)的区别方面做得很好,所以很多人不认识这个区别也就不足为奇了。但是开发者应该使用精确的语言,当你说数据库引擎时,用“Jet”,当你说前端开发平台时,用“Access”。
回答by Pawel Wawrzyniak
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.
老实说 - 没有任何免费的 MS Access 替代品。至少如果您指的是数据库开发工具(表单、报告、查询、VBA 支持等)。如果您将 MS Access 视为数据库引擎(实际上是指 MS Jet 或 ACE),那么是的 - 您有很多可能性。有很多免费的数据库引擎——最受欢迎的是 MySQL 和 PostgreSQL。我可以推荐两者 - 这取决于你想做什么。
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).
对于编写数据库前端,C++ 是最糟糕的选择之一。您应该考虑 MS Visual C#、MS Visual Basic .NET 或...甚至 Java/Swing(如果我们谈论的是桌面应用程序)。如果您考虑启用 Web 的前端 - 考虑 PHP(后端带有 MySQL 或 PostgreSQL)或 ASP.NET(后端带有 MSSQL Server)。
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.
我强烈建议您不要将 C++ 用于此类工作。这种语言非常高效和灵活,但使用 C++ 进行高级数据库前端开发并不是最好的主意。C++ 在系统编程、游戏开发、数学和物理模拟方面非常棒,在效率是关键的任何地方——比如实时应用程序等。前端不必是速度的守护进程——它们应该看起来不错并且拥有高级的最终用户功能(如排序、着色等)。如果您正在寻找免费工具 - 也许 C# Express 或 Visual Basic.NET Express 2008 是正确的选择?或者 Java/Swing(检查 NetBeans IDE)?也许SharpDevelop?但不是 C++... 将 C++ 留给它最适合的东西。
回答by Toni Ru?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.
几年前我做了一个相当复杂的 GIS 应用程序作为实验(数据库、复杂的 gui、报告、客户端/服务器)。这是一次愉快的经历(除了一些文档问题......),我很快就变得富有成效。
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.
- 这不是真正的通用目的
- 它不是跨平台的(仅限 Windows)
- 我决定停止探索外来技术,专注于更主流的东西。
回答by akaihola
Of the Free Software alternatives these haven't been mentioned yet:
在自由软件替代品中,这些还没有被提及:
- Bond
- Rekall(not sure about the status of the Windows version currently though)
- Glom(Windows version under development)
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.
我还将密切关注 Flex/Air 社区提出的 DB RAD 工具,因为使用这些工具可以获得统一的桌面和 Web 界面。
回答by Matthew Watson
Oracle XE With Application Express.
带有 Application Express 的 Oracle XE。
- 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
- 有一个不错的基于网络的 gui,
- 是一个“真实”的数据库
- 将扩展到单个桌面之外
- 提供超越小团队的清晰规模路径
- 应用程序基于网络,易于访问。
- 可以将 Excel 电子表格转换为应用程序
回答by Till
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..
您可能想查看 SQLite ( http://sqlite.org/)。不过,一切都取决于您的使用情况。例如,并发不是它最大的优点。但是例如 Firefox 使用它来存储设置等。
回答by C Keene
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.
问题是寻找 MS Access 的替代方案,其中包括可视化、拖放式开发环境和“合理”的数据库,可以免费部署整个套件和组合。
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.
我的第一个建议是查看这个非常完整的 MS Access 替代品列表(其中许多是免费的),然后查看 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,它是一种适用于云的开源 PowerBuilder(免责声明:我在那里工作,因此不应被视为公正的信息来源;-)
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.
WaveMaker 将拖放 IDE 与开源 Java 后端相结合。它在 Apache 许可下获得许可,并拥有 15,000 名强大的开发人员社区。