Kexi: Comparisons to other database applications
maintaned by: jstaniek
This document is by no means complete. More comparisons will be published here in the future to make it more complete and objective. Feel free to contact the Kexi Team and send proposals for new areas of comparison.
Please help to eliminate Kexi's drawbacks by contributing or sponsoring the project.
1. General differences
- Kexi supports native, dedicated, database connections for MySQL and PostgreSQL. Thus it can take advantage of engine-specific features as specifica way of handling sequences (autonumbers) or showing human-readable status messages of the recent operation.
Competition like Microsoft Access and OpenOffice.org Base depend on ODBC (or JDBC) connectors that have limited functionality being "common denominator" of most engines.
- Lack of ODBC support in Kexi. Althought it is planned, Kexi cannot take advantage of a large number of ODBC drivers available. Other database applications like Microsoft Access and OpenOffice.org Base support ODBC because it is their main method for performing database connections.
2. Microsoft Access
More info about Microsoft Access: http://office.microsoft.com/access/
Kexi drawbacks compared to MS Access
- MS Access is far more mature and feature-rich, its development consumed dozens of man-years.
- MS Access has established a large and active user base and support web sites. Kexi is a startup in this area.
Kexi advantages over MS Access
- Unlike MS Access:
- Kexi is Open Source, patent-free software, created using open development processes. The www.kexi-project.org web site is also a part of the process.
- Kexi is basically free of charge
- Kexi is openly deployed using Linux package management
- Kexi is Multiplatform software (works on all intel 32- and 64- bit hardware; Windows 2000 or newer, Mac OS X and most Linux or BSD distributions). MS Access is 32-bit Intel-compatible Windows-only application, moreover newer version of MS Access only work on Windows XP or newer. (from Wikipedia: Access' Jet Database Engine will remain 32-bit for the foreseeable future; Microsoft has no plans to natively support Jet under 64-bit versions of Windows)
- Kexi defines open file formats (open for everyone to use). It imports closed file formats for easier interoperability (for now, MS Access' .mdb/.mde files are partially supported). MS Access does not support Kexi nor similar application's file formats even partially.
- Database projects created with Kexi does not limit users and developers to a single language that comes with operations system. On MS Access side, there are difficulties with working with databases created for example using German version of the application if a user switched to, say, Polish version of the application. This is not always acceptable in the Internet era.
- Kexi was designed in 21st century for current hardware and operating system's concepts in mind. MS Access was designed in the beginning of 90's, with Intel 386 hardware in mind.
- Kexi is designed to be largely GUI-independent (although current release does not fully expose this feature). MS Access is tied to single-task processing utilizing the MS Windows GUI.
- Kexi is designed to be largely database-backend-independent. In addition to file-based SQLite database backed, Kexi currently supports MySQL and PostreSQL backends. Firebird support is in progress.
- (databases stored in a file) A single ms Access' record can only store up to 2000 bytes. Kexi database file format (SQLite-based) can store up to 1GB of data (2^30). See more SQLite parameters.
- (databases stored in a file) Access' Memo (long text) field type supports up to 64000 bytes. This was large chunk of data in 1992 but now as we may want to store e.g. a web page in the long text field, 64000 is not enough. Kexi does not set limits for number of characters that can be put into a long text field.
More information about MS Access' drawbacks
More info about OpenOffice.org Base: http://www.openoffice.org/product/base.html
Kexi advantages over OpenOffice.org Base
- Installation & Requirements
- OpenOffice.org Base is bundled with the almost 100MB OpenOffice.org package, which makes it harder to download or fit on CD/DVD if size is important. Kexi is provided as separate packages. Even if it's organized within the Calligra Suite, user can decide not to download other Calligra applications.
- OpenOffice.org Base requires Java Runtime Environment (JRE) to operate properly. The problem is that Sun's JRE is not available on special platforms like Linux on PowerPC architecture. Thus, OpenOffice.org is not as widely available as Kexi.
- Database Engines
- File-based databases are far more robust and less memory-hungry than in OpenOffice.org Base. OpenOffice.org Base uses Java-based HSQL engine, introducing dependency for multimegabyte Java package and increasing its startup time.
- OpenOffice.org Base utilizes one of the slowest possible way to store its File-based data: compressed directory XML files. A need for compressing and decompressing of the data decreases application's startup speed even more. One of directories inside database OpenOffice.org Base's file called script contains compressed, readable SQL DDL statements that define the database and its tables. The script file is executed when starting the database. This increases the application's startup time.
- Kexi bundles its own version of the small, well documented and efficient SQLite file-based engine. The database is always opened in constant time independent of the size of data. The file itself can be 2 tibibytes large (2^41 bytes). See http://www.sqlite.org for more information.
- External data handling
- Kexi can import (insert) external data from a CSV file or from the system clipboard directly into a database table.
- Regardless of the operating system it is running on, Kexi supports partial importing MS Access database files (.MDB) - schema and data from tables is imported with proper character encoding. OpenOffice.org Base depends on proprietary MS Window-only to perform access to .MDB files, so the feature is unavailable on other operating systems.
- OpenOffice.org Base does not allow to import MS Access data into a separate database for later MS Access-independent use.
- Forms in OpenOffice.org Base are based on OpenOffice.org Writer application. Thus these are behaving not as users may expect, in particulat preventing subsequend editing of a form design.
4. Knoda, Rekall
Update (2012): Both applications are no longer maintained.
More info about Knoda: http://www.knoda.org/
More info about Rekall: http://www.rekallrevealed.org/
Differences between Kexi and these applications
Kexi is a bit younger project than these (even if the gap becomes smaller every week, as Kexi is intensively developed),
Kexi drawbacks compared to Knoda, Rekall
Knoda and Rekall are more feature rich products.
Kexi Advantages over Knoda, Rekall
One of important differences is that Kexi is built on the KDE technologies in mind, from scratch, and it's developed within KDE Office Suite Project, Calligra. Thus Kexi often presents better experience and integration.
On the other hand (partially due to historical reasons) both Knoda and Rekall are adopted from custom, Qt-only environment.
More info about DataKiosk: http://extragear.kde.org/apps/datakiosk/
Differences between both applications
Kexi can (or will be) used for developing database apps, while it looks like that DataKiosk is provided rather for making data views for existing database projects. As we can read on the DataKiosk home page: DataKiosk is a JuK-like database interface tool for generic SQL databases.
This is in fact a coparison between database abstraction layers: Kexi's KexiDB and Microsoft's ADO.NET, a part of .NET framework.
- Availability and portability: ADO.NET is available on one platform (Windows) and it's proven to be covered by patents. This make what makes it hard or impossible to implement the libon other platforms independently from Microsoft. For example on platforms like Linux, Mono project does not deliver ADO.NET implementation making the .NET database applications not portable.
KexiDB database framework on the other hand is designed and implemented with portability and interpoerability in mind.
- Database drivers (on ADO.NET, it's called "providers"). Both frameworks offer to write drivers/providers by ISVs, thus extending the functionality. KexiDB deffers from ADO.NET in that KexiDB offers richer API allowing to fine-tune behaviour when we deal with data sources and cover differences between particular types of them. It contains the migration framework automating migration process by using its migration API.
7. Coming Next
- "speed and memory usage" benchmarks
- "limitations" table
8. See Also