Kexi/Links: Difference between revisions
Appearance
< Kexi
No edit summary |
No edit summary |
||
(163 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This page documents ideas, links to competition and competing approaches. | |||
{{TODO|Review this content for relevance and accuracy}} | |||
__TOC__ | |||
;[http://github.com/hjiang/linqxx/wikis Linq++]:A simple experimental implementation of a LINQ-like query language for C++ containers. | ;[http://github.com/hjiang/linqxx/wikis Linq++]:A simple experimental implementation of a LINQ-like query language for C++ containers. | ||
;[http://www.fmsinc.com/MicrosoftAccess/2007/Top-Features.html What users hate and what like about MSA 2k7] | ;[http://www.fmsinc.com/MicrosoftAccess/2007/Top-Features.html What users hate and what like about MSA 2k7] | ||
;[http://loxim.sourceforge.net/ LoXiM]:An experimental, an object oriented, semistructured Database Management System. | ;[http://loxim.sourceforge.net/ LoXiM]:An experimental, an object oriented, semistructured Database Management System. | ||
;[http://www.jotform.com/ JotForm]:web-based forms, compare to kexi web forms... | ;[http://www.jotform.com/ JotForm]:web-based forms, compare to kexi web forms... | ||
;[http://www.customguide.com/quick_references.htm Quick Reference Guides to Popular Software]:good idea for | ;[http://www.customguide.com/quick_references.htm Quick Reference Guides to Popular Software]:good idea for Calligra apps | ||
;[http://cia.vc/stats/project/kde/kexi/.rss?ver=2&medium=xhtml&limit= | ;[http://cia.vc/stats/project/kde/kexi/.rss?ver=2&medium=xhtml&limit= KEXI commit RSS]:Customize [http://cia.vc/stats/project/kde/kexi/.rss/customize here] | ||
;[http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/ Qt Property Browser]:Qt Solution similar to our KoProperty2. But at the time of writing the former we did not have access to LGPLed Qt Property Browser. | ;[http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/ Qt Property Browser]:Qt Solution similar to our KoProperty2. But at the time of writing the former we did not have access to LGPLed Qt Property Browser. | ||
;[http://api.kde.org/kdesupport-api/kdesupport-apidocs/grantlee/html/ Grantlee]:Open Source string template system based on the Django template system from the Django project | ;[http://api.kde.org/kdesupport-api/kdesupport-apidocs/grantlee/html/ Grantlee]:Open Source string template system based on the Django template system from the Django project | ||
;[http://users.libero.it/irwin/ uSQLite]:A network wrapper for SQLite | ;[http://users.libero.it/irwin/ uSQLite]:A network wrapper for SQLite | ||
;[http://modsqlite.sourceforge.net mod_sqlite]:An Apache 2.0 module which provides access to SQLite databases over HTTP. SQLite required that clients of the database be on the same machine as the SQLite database itself. mod_sqlite allows you to access your SQLite databases over a network. | |||
;[http://sourceforge.net/projects/tanit/ Tanit]:A set of Oracle to Kopi (a Java based framework) migration tools providing automatic translation of your Oracle PL/SQL, Forms and Reports applications. | ;[http://sourceforge.net/projects/tanit/ Tanit]:A set of Oracle to Kopi (a Java based framework) migration tools providing automatic translation of your Oracle PL/SQL, Forms and Reports applications. | ||
;[http://torasql.com TOra]:An open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle, MySQL, Postgres, and ODBC. | ;[http://torasql.com TOra]:An open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle, MySQL, Postgres, and ODBC. | ||
;[http://schemaspy.sourceforge.net/ SchemaSpy]: A Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. | ;[http://schemaspy.sourceforge.net/ SchemaSpy]: A Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. | ||
;[https://github.com/brianb/mdbtools]: A library for accessing Microsoft Access .mdb files | ;[https://github.com/brianb/mdbtools MDB Tools]: A library for accessing Microsoft Access .mdb files | ||
;[http://mdbdoc.sourceforge.net MDB Doc]: An add-in for Microsoft Access 2000, XP, 2003, 2007 and 2010 to automate the creation of database documentation in XHTML format. An older version (1.40) supports Access 97. '''Definitely a more reliable way of importing MDB/ACCDB to KEXI (planned this approach years ago).''' Extra idea is to add web service that accepts the Access files online. | |||
;[http://qooxdoo.org qooxdoo]: (pronounced ['ku:ksdu:]) is a framework for creating desktop-style web applications (rich internet applications, RIAs) for desktop and mobile clients; idea: use it for the next generation KEXI WebForms. | |||
;[http://srtools.blogspot.com/ Saint]:A suite of tools to assist in the workflow for doing bibliometric/ scientometric research, that is, research into the workings of the science system itself based on data on publications, patents and so on. [http://qt.nokia.com/qt-in-use/ambassadors/project?id=a0F20000006KgBSEA0 Qt Ambassador link], by André Somers, adds DDL and more on top of QtSQL, connects with MySQL and MSA (the latter with MS ADO); jstaniek met André at QtCS 2011; see also QtSQL discussions at [http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-May/000226.html Qt5-feedback] | |||
==Ideas== | ==Ideas== | ||
*Enable searching actions by name like on Mac [http://ignorethecode.net/blog/2009/03/21/context-menus-sub-menus/] [http://ignorethecode.net/blog_images/context_menu/crop.png] (or Plasma) | *Enable searching actions by name like on Mac [http://ignorethecode.net/blog/2009/03/21/context-menus-sub-menus/] [http://ignorethecode.net/blog_images/context_menu/crop.png] (or Plasma) | ||
Line 18: | Line 28: | ||
**Spatial menus [http://ignorethecode.net/blog_images/context_menu/context_menu_new.png] | **Spatial menus [http://ignorethecode.net/blog_images/context_menu/context_menu_new.png] | ||
*[http://localize.mozilla.org/pontoon/client/www/ Pontoon] - interesting approach to localization | *[http://localize.mozilla.org/pontoon/client/www/ Pontoon] - interesting approach to localization | ||
*Use [http://www.opendatacommons.org/licenses/odbl/ Open Database License (ODbL)] for example | *Use [http://www.opendatacommons.org/licenses/odbl/ Open Database License (ODbL)] for example KEXI databases | ||
*[http://translate.googleusercontent.com/translate_c?hl=en&ie=ISO-8859-1&sl=pl&tl=en&u=http://grzglo.jogger.pl/2009/03/05/zoho-writer-wzorowa-organizacja-paska-narzedziowego/&prev=_t&rurl=translate.google.com&twu=1&usg=ALkJrhhmbUD5fYO4rcI7UoCoPJkJ63-WxA Idea for Improvement of Tabbed Toolbars] | *[http://translate.googleusercontent.com/translate_c?hl=en&ie=ISO-8859-1&sl=pl&tl=en&u=http://grzglo.jogger.pl/2009/03/05/zoho-writer-wzorowa-organizacja-paska-narzedziowego/&prev=_t&rurl=translate.google.com&twu=1&usg=ALkJrhhmbUD5fYO4rcI7UoCoPJkJ63-WxA Idea for Improvement of Tabbed Toolbars] | ||
*[http://www.opera.com/browser/tips/?feature=visualtabs Opera visual tabs] | *[http://www.opera.com/browser/tips/?feature=visualtabs Opera visual tabs] | ||
*[http://www.odata.org OData], the Open Data Protocol, is a Web protocol for querying and updating data. Even MSA can support it. | *[http://www.odata.org OData], the Open Data Protocol, is a Web protocol for querying and updating data. Even MSA can support it. | ||
*[http://office.microsoft.com/en-us/powerpoint-help/all-about-themes-quick-styles-cell-styles-and-background-styles-HA010178624.aspx Finally add support for themes/color palettes like in MSO] | *[http://office.microsoft.com/en-us/powerpoint-help/all-about-themes-quick-styles-cell-styles-and-background-styles-HA010178624.aspx Finally add support for themes/color palettes like in MSO] | ||
*[http://www.h-online.com/open/news/item/Adobe-details-its-open-source-code-editor-for-web-developers-1626080.html Brackets] is Adobe's new open source code editor for web development using HTML, CSS and JavaScript. Idea: it's style of presenting opened documents with '<'. Maybe KEXI could drop tabs for this? | |||
*Google Labs | |||
**[http://datawiki.googlelabs.com/ Google Labs data wiki] - wiki for structured data; our old idea was similar, to implement wiki-like database creator on top of KDb | |||
**[http://labs.google.com/sets Google Labs sets] - have you ever wanted to larger test set of items from give category? E.g. animals? Google sets uses the big database and categories to discover matching set and return its items. Can be useful as a plugin for KEXI. | |||
**[http://www.google.com/fusiontables/Home/ Google Fusion Tables] - storage for KEXI? | |||
*Table Designer | |||
**How about QDBML (Qt Database Modelling Language)? That would use QML-like markup for DDL queries. See also [http://www.terrainformatica.com/2006/10/what-the-hell-is-that-json-db/ JSON-DB] and [http://gitorious.org/+qt-developers/qt/qtjsondb Qt JSON DB]. | |||
*Forms, Reports | |||
**Widget palette for Forms & Reports: Xcode does it similarly to our plans [http://groovyfrog.com/blog/assets/xcode4fig2.png] [http://www.x-dims.com/images/archscaleScreen.jpg] | |||
**Idea: display more than one form/report on the same sheet [http://groovyfrog.com/blog/assets/xcode4fig2.png]; having zoom enabled would help to navigate | |||
**Idea: display help box for form widgets/report elements [http://2.bp.blogspot.com/_J90P-hyr9o8/Sw73lS58ybI/AAAAAAAAApE/DQtSOZA_KXg/s1600/HelloXcode_02.jpg] [http://www.vellios.com/wordpress/wp-content/uploads/2010/07/Xcode4_7.png] | |||
**Idea: move "Create" tab to toolbox [http://www.codingfreaks.de/wp-content/uploads/2011/03/xcode_05.png] | |||
**Add means for styling forms using the [http://developer.qt.nokia.com/doc/qt-4.8/stylesheet-syntax.html Qt CSS] | |||
*Reuse [http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html Spatialite, Sqlite GIS extension] | |||
*Consider using [http://mapnik.org Mapnik], a mapping toolkit for desktop- and server-based map rendering, written in C++ (instead of Marble). | |||
*BOND uses [http://www.treshna.com/bond/documentation/database_design_tips/ database comments to store information about ''casual relationships''] | |||
**it's good idea to have some use/reuse of db comments in KEXI but it's not clear if it's safe to use them for metadata since users would already depend on comments for other purposes; so BOND usage of comments is a bit hacky | |||
**it's good idea to have casual (weak) relationships, it's compatible with how KDb is going to deliver relationships (i.e. both strong and casual) | |||
*[http://demo.koolphp.net/Examples/KoolGrid/index.php KoolGrid] - web grids | |||
*Explore topic of [http://en.wikipedia.org/wiki/Faceted_search Faceted search], related to "Query by example". | |||
*[http://code.google.com/apis/sql/ Google Cloud SQL] is web service that allows you to create, configure, and use relational databases with your App Engine applications. | |||
*KEXI could propose to disable or uninsatll the least used plugins, see how Thunderbird does this [http://afublog.com/2011/11/07/download-mozilla-firefox-8-final/]. | |||
*Add integration to the http://www.taskjuggler.org and Plan | |||
*Add integration to the [http://kanboard.net Kanboard]. It's based on SQLite so would be interesting. And we use it within KDE at https://todo.kde.org. | |||
*Add integration with [https://launchpad.net/percona-toolkit Percona Toolkit] for MySQL | |||
*Use [http://jackcess.sourceforge.net jackcess] instead of mdbtools. That would add java dependency but only for the driver. They beat mdbtools [http://jackcess.sourceforge.net/faq.html#mdbtools]. And are 5 times faster than original MSA. They really support many details [http://jackcess.svn.sourceforge.net/viewvc/jackcess/jackcess/trunk/src/java/com/healthmarketscience/jackcess/query/QueryFormat.java?revision=623&view=markup] | |||
**Later someone would port it back to C++ | |||
*Grouping columns of Table View as in http://stratusbase.com/demo [http://wstaw.org/m/2012/11/16/plasma-desktopoP2540.jpg] | |||
*[http://www.sql-format.com SQL Formatter] - many options/ideas for SQL formatting/prettify, can be applied to KEXI's SQL editor (and later: documentator) | |||
===KEXI-based bugzilla client=== | |||
Make KEXI useful as GUI for KDE Bugzilla. Reason: to eat our own dog food in Calligra. Use [http://www.bugzilla.org/features/#webservices bugzilla's webservices] for this. Probably separate plugin could be developed. Online/offline operations with synchronization. (discussed with Inge who likes the idea) | |||
See also: | |||
*[http://almworks.com/deskzilla/screenshots.html Deskzilla] | |||
*[http://www.mediawiki.org/wiki/Extension:BugzillaReports Bugzilla mediawiki extension] | |||
*[http://getbugbox.com/bugzilla/ bugbox mobile client] | |||
===Use Fossil DVCS to handle versioning in KEXI file db=== | |||
[http://www.fossil-scm.org Fossil] SQLite-based DVCS, so fits nicely to KEXI needs. It lacks crazy ideas of git, stability is the goal. | |||
===Test Data and Test Data Generators=== | |||
*Data | |||
**[http://books.google.com/ngrams/datasets datasets used by the Google Books Ngram Viewer] (free as beer) | |||
**Wiktionary database. It exists in MySQL format but can be [http://code.google.com/p/wikokit/wiki/SQLite converted into SQLite file]. | |||
*Generators | |||
**[https://github.com/emirozer/fake2db fake2db] generates fake but valid data filled databases for test purposes, supports sqlite, mysql, postgresql, mongodb. | |||
**Many other listed: [http://stackoverflow.com/questions/591892/tools-for-generating-mock-data] | |||
===Optimizing=== | |||
*Options for [http://componavt.livejournal.com/3393.html SQLite speedup], could be offered via KEXI | |||
*[http://vitessedata.com Vitesse Data] - compiling query into native code using LLVM. The code is optimized to move tremendous amount of data intra-CPU and to run efficiently on modern superscalar CPU. | |||
===Scripting=== | |||
*public scripting apis should be appealing to users; make them simple, e.g. like this [http://docs.phonegap.com/en/1.3.0/index.html] | |||
*javascript db APIs ideas for node.js [http://slashdot.org/topic/bi/sql-vs-nosql-which-is-better/ sql-vs-nosql-which-is-better] | |||
*[http://ipython.org IPython] provides a rich toolkit to help you make the most out of using Python, with powerful Python shells (terminal and Qt-based), etc. '''Idea: support similar interactive shell for KEXI projects.''' | |||
*[https://www.npmjs.org/package/sqlite3 sqlite3 Node.js] module: Asynchronous, non-blocking SQLite3 bindings | |||
===Data sharing=== | |||
*[http://www.omgubuntu.co.uk/2011/03/contractor-brings-seamless-file-sharing-between-apps-to-the-linux-desktop/ Contractor lets to share data between apps - ubuntu-only for now], see also http://elementaryos.org/docs/apis/contractor | |||
*[https://web.archive.org/web/20141013050151/http://en.wikipedia.org/wiki/Fielded_text Fielded Text] is a proposed standard which provides structure and schema definition to text files which contain tables of values (for example, CSV files) | |||
**Idea: when implementing KEXI CSV Importer's ''import specification'', make it compatible with the ''Fielded Text''. Support this metadata format directly is welcome. | |||
**There are many features that can be covered by the CSV Importer: http://www.xilytix.com/fieldedtext/component/features.html. | |||
*Look at [http://www.razorsql.com/docs/import.html RazorSQL's importer] for CSV import ideas (e.g. options) | |||
*[http://pandaproject.net/ PANDA] s a "data library", which means that it stores all the data you work with--voter registration records, police reports, water testing results, etc. PANDA is also a search engine. ''Useful to look at it for RESTful apis of future KEXI's 3-tier architecture.'' | |||
*Use [http://doc.qt.io/qt-5/qwebsocket.html QWebSocket] to implement KEXI's 3-tier architecture. | |||
**+Connect to websocket-enabled browser | |||
===.kexi files encryption=== | |||
*Add encryption option using the [http://sqlcipher.net/ SQLCipher]. KEXI should ask for password on opening is needed. Integration with KDE Wallet is suggested. There may be others but this is the only known, reasonable open source option. Extra TODO: evaluate possibility of encrypting only selected tables. | |||
===DB Connection proxy/pool/relay/load balance=== | |||
*[http://sqlrelay.sourceforge.net/ With SQL Relay], you can speed up database-driven web-based applications, enhance the scalability of database-driven web-based applications, distribute access to replicated databases, throttle database access, access databases from unsupported platforms and migrate applications from one database to another. | |||
===Schema Analyzer=== | |||
*[http://schemaspy.sourceforge.net/ SchemaSpy] is a tool that analyzes the meta-data of a schema in a database and generates a visual representation of it in a browser-displayable format. | |||
*[http://stackoverflow.com/questions/5900050/sqlite-table-disk-usage sqlite_anlyzer] - Idea: use it with KEXI so users can analyse the project | |||
===GUI Layout=== | |||
*From: [http://www.fastcodesign.com/3032775/a-beautiful-wikipedia-design-that-borrows-inspiration-from-ipad-apps]: | |||
**Can record editing in KEXI be like this? Can the look / feel be pluging-based? [http://a.fastcompany.net/multisite_files/fastcompany/slideshow/2014/07/3032775-slide-wikipedia-concept-1-1024x685.jpg]<br/>http://www.picresize.com/images/rsz_3032775-slide-wikipedia-concept-1-1024x685.jpg | |||
**Can the browsing in KEXI be like this? [http://d.fastcompany.net/multisite_files/fastcompany/slideshow/2014/07/3032775-slide-wikipedia-concept-4-1024x685.jpg]<br/>http://www.picresize.com/images/rsz_3032775-slide-wikipedia-concept-4-1024x685.jpg | |||
===Localization=== | |||
*Database-based i18n in [http://propelorm.org/blog/2011/01/11/propel-gets-i18n-behavior-and-why-it-matters.html Propel ORM]. | |||
*Database-based i18n in [http://www.codeproject.com/Articles/8084/Creating-multilingual-websites-Part ASP-based websites]. | |||
===Knowledge=== | |||
*[http://www.agiledata.org/essays/reporting.html Implementing Reports] (Scott Ambler) | |||
*[http://www.agiledata.org/essays/implementationStrategies.html Encapsulating Database Access: An Agile 'Best Practice'] (Scott Ambler) | |||
==Competition== | ==Competition== | ||
;[http://technet.microsoft.com/en-us/library/jj667947.aspx Microsoft Jet Database Engine Programmer's Guide]:useful when working with the MDB driver | |||
;[http://blogs.msdn.com/vcblog/archive/2009/10/01/ribbon-designer.aspx Ribbon Designer]:what's new in 'the other' GUI impl. | ;[http://blogs.msdn.com/vcblog/archive/2009/10/01/ribbon-designer.aspx Ribbon Designer]:what's new in 'the other' GUI impl. | ||
;[http://connect.microsoft.com/ThemeBuilder Theme Builder]:It would be far easier to implement ODF replacement, since | ;[http://connect.microsoft.com/ThemeBuilder Theme Builder]:It would be far easier to implement ODF replacement, since unlike MSOOXML, ODF shares more styles with the same XML markup across apps. For KEXI Forms and Reports themes is a TODO as well. | ||
;[http://msdn.microsoft.com/en-us/library/cc811599.aspx#Ac2007DevelopingSolutions_AccessFileFormats Developing Access 2007 Solutions with Native C or C++] | ;[http://msdn.microsoft.com/en-us/library/cc811599.aspx#Ac2007DevelopingSolutions_AccessFileFormats Developing Access 2007 Solutions with Native C or C++] | ||
;[http://blogs.msdn.com/access/archive/2009/08/13/access-2010-data-macros-similar-to-triggers.aspx MSA 2k10 gets a kind of triggers] | ;[http://blogs.msdn.com/access/archive/2009/08/13/access-2010-data-macros-similar-to-triggers.aspx MSA 2k10 gets a kind of triggers] | ||
;[http://img.brothersoft.com/screenshots/softimage/n/netbeans_ide-75305-1.jpeg Netbeans GUI looks similar to | ;[http://img.brothersoft.com/screenshots/softimage/n/netbeans_ide-75305-1.jpeg Netbeans GUI looks similar to KEXI 2 GUI in some aspects] | ||
;[http://fmsinc.com/MicrosoftAccess/dataanalysis/preview2010.asp Total Access Statistics 2010 for MSA 2010]:Beyond generic databases... | ;[http://fmsinc.com/MicrosoftAccess/dataanalysis/preview2010.asp Total Access Statistics 2010 for MSA 2010]:Beyond generic databases... | ||
;[http://www.devmachines.com/ | ;[http://www.devmachines.com/qtitandatagrid-features.html Qtitan DataGrid]:Ideas for grouping, totals and filtering | ||
;[http://www.4js.com/en/products/genero-rw/presentation Genero Report Writer]:Reporting tool, TODO: perform research :) | |||
;[https://cute-report.com CuteReport]:A report solution based on Qt (dual-licensed). | |||
;[https://code.google.com/p/exaro/ eXaro]:A free report engine similar with Jasper or Crystal Reports, embeddable in Qt applications. (inactive since 2010) | |||
;[http://www.kreporter.org KReporter]:Integrated reporting tools for SugarCRM. Filling the gap in SugarCRM. GPL core + commercial plugins. | |||
;[http://lifehacker.com/269235/zoho-creator-is-like-microsoft-access-online Zoho Creator]:Like MSA Online: https://www.zoho.com/creator, https://www.zoho.com/creator/migrate-msaccess-database.html | |||
;[http://office.microsoft.com/en-us/templates/CL101817133.aspx Office 2010 menu to ribbon reference workbooks]:(xlsx files) | |||
;[https://www.google.pl/search?q=Ways_to_use_Access_data_in_Excel Ways to use Access data in Excel]:Similar to plans of KEXI/Tables integration | |||
;[http://www.filemaker.com/support/product/documentation.html FileMaker's docs] | |||
;[http://www.filemaker.com/products/filemaker-go/ FileMaker Go - tablet app] | |||
;[http://www-01.ibm.com/software/lotus/products/smartsuite/approachfeatures.html Lotus Approach] | |||
;[http://server2.alphasoftware.com/products/ Alpha Five] | |||
;[http://www.glom.org/wiki/index.php?title=Development/OnlineGlom OnlineGlom] | |||
;[http://www.visualdatabasecreator.com Simple Visual Database Creator]:Let's look at its simplicity | |||
;[http://blogs.technet.com/b/office2010/archive/2009/12/11/office-2010-visuals-and-branding.aspx MSO 2k10 branding] - the modern menu is close already | |||
;[http://code.google.com/p/sqlite-manager/ firefox sqlite manager] | |||
;[http://www.limbas.org/ Limbas]:A database management system for creating web-based applications | |||
;[http://dabodev.com/about Dabo]: A 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. MIT-licensed. | |||
;[http://www.simile-widgets.org/ HTML Smile widgets]:Ideas for implementation of data widgets | |||
;[http://www.pentaho.com/explore/pentaho-business-analytics/ Pentaho Business Analytics]:Includes business intelligence, data integration and data mining capabilities | |||
;[http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework ADO.NET Entity Framework (EF)]:An object-relational mapping (ORM) framework for the .NET Framework | |||
;[http://www.caspio.com Caspio Online Database]:Allows to create online databases and complete business applications without writing code, using an app-builder. | |||
;[http://www.glabels.org gLabels]: A program for creating labels and business cards for GNOME. Idea: make KEXI reports 100% competitive to this use case. To do so, include plugin with predefined templates and an Assistant. | |||
;[http://www.access2base.com Access2Base]:An OpenOffice/LibreOffice Basic library of macros for (business or personal) application developers and advanced users. The provided macros implement a number of functionalities - directly inspired by MS Access. | |||
;[http://www.devart.com/dbforge/mysql/studio/ dbForge Studio for MySQL]:Rich GUI-based db management app. [http://www.devart.com/dbforge/mysql/studio/download.html Free] Express version available. | |||
;[http://www.microsoftaccesscloud.com Solutions for taking MSA to the cloud]:Microsoft Access Databases Online | |||
;[https://git.gnome.org/browse/gom GOM]:A DataMapper for GObject. See also SQLHeavy below. | |||
;[https://github.com/nemequ/sqlheavy SQLHeavy]:A wrapper on top of SQLite with a GObject-based interface, providing APIs for C and Vala, GObject Introspection support, and additional functionality not present in SQLite. | |||
;[http://www.python-camelot.com Camelot]:Provides components for building business applications on top of Python, SQLAlchemy and Qt. Inspired by the Django admin interface. Dually licensed (GPL/Commercial). | |||
;[http://pouchdb.com PouchDB]:"was written to help web developers build applications that work offline as well as they do online. Applications save data locally, so the user can use all the features of an app even when they're offline. Plus, the data is synchronized between clients, so the user has up-to-date data wherever they go." | |||
;[http://couchdb.apache.org CouchDB]:"is a database that completely embraces the web. Store your data with JSON documents. Access your documents and query your indexes with your web browser, via HTTP. Index, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection. [...] [http://docs.couchdb.org/en/1.6.1/intro/overview.html A CouchDB server hosts named databases, which store documents. Each document is uniquely named in the database, and CouchDB provides a RESTful HTTP API for reading and updating (add, edit, delete) database documents.]" | |||
;[https://xojo.com Xojo]:Create native cross-platform desktop, web and web-mobile apps -- ultimately similar to KEXI | |||
;[http://www.lianja.com/overview/lianja-app-builder Lianja App Builder]:Create business Apps for Desktop, Cloud and Mobile devices on Windows, Linux and OS X using NoCode, Visual FoxPro, Python, PHP, and/or HTML5 JavaScript. | |||
;[http://msofficeuser.com/pages/access/submitting-access-database-templates-to-office-online Submitting Access Database Templates to Office Online]:The ACCDT template files that are utilized by Microsoft Access allow a user to create database files with the same formatting without the need to re-create each individual file from scratch. The ACCDT files are saved in a compressed archive of XML and text files. | |||
;[http://books.google.pl/books?id=DDSi1knvVNcC&lpg=PA35&ots=lDRrbW7mYi&dq=accdt%20files&pg=PA35#v=onepage&q&f=false The Rational Guide to Microsoft Office Access 2007 Templates]:A complete book. | |||
;[http://msdn.microsoft.com/en-us/library/dd920385(v=office.12).aspx Access Template File Format]:Official specs | |||
;[http://www.axisbase.com Axisbase]:A .NET database system is comparable to other personal/office database tools like Filemaker and Microsoft Access, and it is also a database server like MySQL or Microsoft SQL Server. Many nice ideas, built as ''alternative''. | |||
;[http://www.xtuple.org/docs/openrpt OpenRPT]:A report writer, code that was forked as a base of KoReports used in KEXI Reports (now the KReport framework). | |||
;[https://www.devexpress.com/products/net/reporting/ The XtraReports Suite]:A multi-platform banded reporting library for WinForms, ASP.NET, MVC, WPF and Silverlight. | |||
;[http://www.xtuple.org/node/270 MetaSQL]:Part of OpenRPT [https://github.com/xtuple/openrpt/tree/master/MetaSQL], a scripting language developed by xTuple for use by the report writer. The language is designed to handle dynamic database queries. Don't confuse with Oracle/PeopleSoft's solution (see below). | |||
;[http://peoplesoft.wikidot.com/meta-sql PeopleSoft Meta-SQL]:"One of the most useful development shortcuts in PeopleSoft". | |||
;[http://www.eyedb.org EyeDB]:An Object Oriented Database Management System (OODBMS) based on the ODMG 3 specification. [http://www.eyedb.org/wp-content/uploads/documentation/manual/html/CplusplusBinding/node4.html Schema-Oriented Generated C++ API] is interesting. | |||
;[http://codesynthesis.com/products/odb ODB]:An object-relational mapping (ORM) system for the C++ language. It allows an application developer to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. '''There's also Qt support.''' | |||
;[http://www.lytecube.com/lyterad LyteRAD]:A simple desktop database and apps creator, Java-based. Contains wizards. | |||
;[https://github.com/timabell/msaccess-vcs-integration MS Access VCS Integration]:Synchronize your Microsoft Access Database definition with a version control system; BSD, '''reuse for KEXI MS Access integration...'''. See also [https://github.com/toddmowen/decompose-msaccess Decompose MSAccess (abandoned)]. | |||
;[https://airtable.com Airtable]: A web service that looks like a spreadsheet, but it's a relational database | |||
;[https://github.com/paulftw/hiberlite Hiberlite ORM]:A C++ object-relational mapping for SQLite with API inspired by Boost.Serialization | |||
;[http://www.heidisql.com HeidiSQL]: An open source admin tool for MySQL server, MS SQL, PostgreSQL, to browse, edit data, create and edit tables, views, procedures, triggers and scheduled events. Lost of nice GUIs. | |||
;[https://github.com/KDAB/sqlate SQLate]:A Qt based library to interact with SQL databases that uses. It uses advanced C++ templates that helps to write SQL queries in a type safe way, checked at compile time. LGPL. Good to look at these templates for KDb ideas ;) Ping KDAB! | |||
==Misc== | ==Misc== | ||
*[http://www.amazon.ca/Database-Software-Introduction-Relational-Autonumber/dp/1155935942 A book mentioning | *[http://www.amazon.ca/Database-Software-Introduction-Relational-Autonumber/dp/1155935942 A book mentioning KEXI] | ||
*kexi-project.org links: | |||
**[http://kexi-project.org/wiki/wikiview/[email protected] Related & Interesting projects] | |||
**[http://kexi-project.org/wiki/wikiview/[email protected] Related & interesting external documents] | |||
**[http://kexi-project.org/wiki/wikiview/index.php@Related%20news.html Related news & articles] | |||
***[http://www.crn.com/reviews/applications-os/205900500/review-fending-off-office-killers.htm Review in CRN (2008)] | |||
***[http://www.pcworld.com/downloads/file/fid,70235-order,1-page,1/description.html "KEXI is still a database that fills a deep hole." -- pcworld.com] | |||
***[http://www.linuxpromagazine.com/Issues/2012/138/KEXI-vs.-Glom KEXI and Glom – lean database tools compared] (Linux Magazine, May 2012) | |||
***[http://directory.fsf.org/wiki/KEXI KEXI @ Free Software Directory] | |||
**[http://kexi-project.org/wiki/wikiview/[email protected] Related pages] | |||
*[http://www.slideshare.net/pearlbear/open-source-databases-webinar-presentation "Open Source Databases" presentation]: "No proprietary options on Linux – OpenOffice.org Base or KEXI are your best bets." | |||
*[http://web.archive.org/web/19990902232257/http://support.microsoft.com/support/kb/articles/q174/4/96.asp MS strongly recommends not to use MSA on Web Server. It says that when multiple, concurrent users make requests of a Microsoft Access database, unpredictable results may occur.] | |||
*[http://doc.trolltech.com/qq/qq26-adaptivecoloring.html Adaptive Coloring for Syntax Highlighting] | |||
*[http://tpostgres.org/se tPostgres] extends core PostgreSQL with Sybase & SQL Server compatibility | |||
*Generating [http://wiki.tcl.tk/21708 SQL Syntax Diagrams] | |||
*[https://datawrapper.de/ Datawrapper], an open source tool helping anyone to create simple, correct and embeddable charts in minutes | |||
*[http://raw.densitydesign.org RAW] is an open web tool for creating custom vector-based visualizations on top of the d3.js library. Primarily conceived as a tool for designers and vis geeks, RAW aims at providing a missing link between spreadsheet applications and vector graphics editors. '''New data visualization ideas/integration for KEXI?''' | |||
*[http://d3js.org D3.js] is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS. '''New data visualization ideas for KEXI?''' | |||
*[https://en.wikipedia.org/wiki/SPSS SPSS] is a software package used for statistical analysis, it uses popular format. KEXI could support it. | |||
*[https://zint.github.io zint] is a barcode generator and library, GPL3 (note - using it in a non-GPL code only via separate process). There's also a zint-qt GUI lib. | |||
*[https://wiki.documentfoundation.org/ReportingToolset#Data Sample data sets] | |||
==Blog topics== | |||
*TODO: KDb conveniently escapes string for you thanks to prepared statements or C++ overloaded operators. See how hard is this in libgda: [http://www.murrayc.com/blog/permalink/2011/11/14/glom-avoiding-sql-injection/] [http://git.gnome.org/browse/glom/commit/?id=1950fa892b04fca1e8ffe7c364df9db3477affb0]. | |||
==Books== | |||
*[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.8.2464&rep=rep1&type=pdf Documenting Software Architecture (Book)] | |||
*[http://en.wikibooks.org/wiki/JET_Database JET Database] at wikibooks | |||
=TODO: Extra content= | |||
{{TODO| From kexi-project.org's [email protected]. Merge it with the above.}} | |||
Related & interesting projects | |||
== Projects Reused By KEXI == | |||
* KDElibs for win32 (formerly Qt-KDE Wrapper) - KEXI is the very first larger application available also '''on win32''' thans to this project. | |||
* SQLite - db engine used as embedded engine for KEXI. See also SQLite Wiki docs. | |||
== Projects Related to SQLite == | |||
* SQLite ODBC driver | |||
* Client/Server Extension for SQLite | |||
* SQLiteDBMS - a database management server for SQLite. It allows an sqlite3 process to be accessed via a TCP/IP network; provides Extended SQL, SSL, basic authentication, query caching, WebDAV, access control, and replication. '''Can bring sqlite network layer for to KEXI.''' | |||
* SQLiteServer - other server embedding SQLite engine (closed source) | |||
* SQLite Driver for OpenOffice.org - very simple implementation, compared to KexiSQL :) | |||
* SQLitePlus - commercial c++ library for SQLite | |||
* SQLiteSecure - Encryption Extension for SQLite - could be probably reused for KEXI | |||
* SQLite: Contributed Files, LiteWrap by Ben.Clewett is especially interesting as an idea. | |||
* SQLite Database Browser free, public domain, open source visual tool used to create, design and edit SQLite files. | |||
* SQLiteManager - a multilingual web based tool to manage SQLite database. Even KexiDB compatibility exists! | |||
* '''Sqliteman''' is one of the best developer's and/or admin's GUI tool for SQLite 3. | |||
* uSQLite - a network wrapper for SQLite. May be reused by KEXI. | |||
* ''Full text search for SQLite'' - the goal is to add full text index support to sqlite3 databases. Nice addition for KEXI/KexiDB. ft3 @ sourceforge, A draft onm sqlite.org, FullTextIndex @ sqlite.org | |||
* SQLite in Google Gears - Google Gears uses the open source SQLite database system. The Database module provides browser-local relational data storage to JavaScript web application. Gears also includes an SQLite extension fts2 for "Full-Text Search". | |||
* SQLite as unified storage backend for Mozilla 2 for storing and searching through data for all Mozilla components and extensions. "SQLite will be the back end for the unified store. Because it implements a SQL engine, we get querying for free, without having to invent our own query language or query execution system." | |||
* Redland RDF's (Resource Description Framework) storage (<nowiki>http://librdf.org</nowiki>) uses SQLite (among others) for persistent storage. Redland storage is used (QRDF) by Soprano, which in turn is used by NEPOMUK-KDE, part of Nepomuk Semantic Desktop project. | |||
== Projects Related to MS Access == | |||
* DBToFile - A Microsoft Access Database Backup Engine. Possible reusability for KEXI's "Total MSA Importer". However, it only reads database schema and SQL strings, not forms or reports. | |||
== Projects Related to PostgreSQL == | |||
* gppl's nest - a patch which allows PgSQL to make hierarchical queries a la Oracle do. | |||
== Database Abstraction layers == | |||
=== Relational Database Abstraction Layers === | |||
* ADOdb - DB abstraction library, for PHP, although it has some features similar to KexiDB as handling metadata. Many drivers included. | |||
* QtSQL - GUI database frontend for MySQL,PostgreSQL and ODBC databases. | |||
* Mono Database Access wiki | |||
=== Object-based Database Abstraction Layers === | |||
* SQLObject - an object-relational mapper for Python. Handles few database backends including SQLite. Interested because some sort of mapping will be performed in KEXI Scripting Engine. | |||
* db4objects - Dual licensed (GPL/Commercial) native Java or .NET open source object database engine - takes care about (de)serializing objects. | |||
* SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. | |||
** Migrate, SQLAlchemy schema change management, inspired by Ruby on Rails' migrations, provides a way to deal with database schema changes in SQLAlchemy projects. | |||
** Elixir is a declarative layer on top of SQLAlchemy. | |||
* Spring - open source web application framework for the Java platform; among others includes Data access framework: working with relational database management systems on the Java platform using JDBC and Object-relational mapping tools providing solutions to technical challenges that are reusable in a multitude of Java-based environments. | |||
== Open Source Database Connection Libraries == | |||
Things that might be useful for a KexiDB driver or Migration plugin | |||
* '''MDB Tools - tools for direct reading and writing data stored in MS Access database files, it will be good metod for extending KEXI's data-exchange capabilities. See also: Article on MDB Tools, Currently used by KEXI's MDB Migration plugin.''' | |||
* '''libpqxx - C++ client API for PostgreSQL, currently used for KexiDB PostgreSQL driver.''' | |||
* pxlib - C Library to read Paradox Database files (GPL) - usable for KEXI Paradox import/export filter | |||
* FreeTDS - libraries for Unix and Linux that allow to natively talk to MS SQL Server and Sybase databases (related to MDB Tools) | |||
* libodbc++ - c++ class library for accessing SQL databases via ODBC | |||
* Xbase - a collection of specifications, programs, utilities and a C++ class library for manipulating Xbase type datafiles and indices | |||
* UNITY - relational db in a flat file | |||
* DBTCP is a proxy server for ODBC connection, so it is possible to hide multiple virtual ODBC connections inside one physical ODBC connection (May be valuable for further KEXI research) | |||
* SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux supporting most database servers. This may be integrated with KEXI (hmm, 5.0 ? :) ) environment. | |||
* SOCI is a database access library for C++ that makes the illusion of embedding SQL queries in the regular C++ code, staying entirely within the Standard C++. Supports Oracle, PostgreSQL, MySQL, SQLite. '''Something we considered for KexiDB API'''. | |||
== Database Development/Administering Tools and Environments == | |||
=== Open Source: KDE-based === | |||
* KSqlShell - graphical MySQL and PostgreSQL database shell for KDE | |||
* KMySQLAdmin MySQL interface for KDE | |||
* KSqlAnalyzer - a tool for easy accessing the data of a MS-SQL-Database. It's a KDE GUI built on top of FreeTDS project. | |||
* KPoGre - a KDE postgresql frontend that uses libpqxx as our pgsql driver. | |||
* Rekall - a tool to extract, display and update data, it does forms and reports and scripting; GPL-ed Rekall is also available. | |||
* Umbrello UML Modeller - Unified Modelling Language diagram programme for KDE. Could be integrated with KEXI database design capatibilities, e.g. Entity Relationship designer: <nowiki>http://uml.sourceforge.net/screenshots/umbrello-entiry-relationship.png</nowiki> | |||
* DataKiosk is a JuK-like database interface tool for generic SQL databases. QUite similar interface to planned KEXI's Final Mode. | |||
* RKWard is meant to become an easy to use, transparent frontend to the R-language, a very powerful, yet hard-to-get-into scripting-language with a strong focus on statistic functions. Its capatibilities could be adopted to interoperate with KEXI data sources. | |||
=== Open Source: Qt-based === | |||
* HBasic - integrated development environment with database support. | |||
* DBACompanion - a graphical administration tool for Oracle databases. Looks like good starting point for adding db driver and import/export driver for Oracle. | |||
=== Proprietary: Qt-based === | |||
* Data Architect - a tool for designing databases | |||
=== Open Source: Other === | |||
* New GUI tools from MySQL: | |||
** MySQL Administrator | |||
** MySQL Query Browser | |||
* A great page with many *SQL-ish projects; exportSQL has a special value in KEXI context: MS Access module which exports Access Database into MySQL, mSQL and PostgreSQL. This is '''exactly''' what we have planned for KEXI migration tools suite. | |||
* IBAccess is an Interbase client application, that allows the users or administrators the use of a intuitive interface to Interbase/Firebird database servers and Interbase/Firebird database files and objects. | |||
* phpFlashMyAdmin includes all of the significant table administration features of phpMyAdmin, but without the annoyance of page refreshes (demo available). | |||
=== Open Source: GNOME === | |||
* Gnome DB Project | |||
* Glom - GNOME's FileMaker-like app for designing and editing PostgreSQL tables (Screenshots). | |||
=== Proprietary === | |||
* DBDesigner - visual database design system that integrates database design, modeling, creation and maintenance | |||
* DBManager - MySQL and PostgreSQL management win32 app, also supports SQLite | |||
* TOAD - provides Windows�based PL/SQL development and administration | |||
* Ability Database - commercial product, very MSAccess-like (Some features) | |||
* Navicat some mySQL "frontend" | |||
* OpenLink Virtuoso - CROSS PLATFORM Universal DB Server; also integrates Web and File serving. Large commercial project with interesting documentation. | |||
* DB Manager Pro - a multi-database tool with powerfull functionality. For example see Process Designer : www.dbtools.com.br/EN/dbmanagerpro/images/task_builder.png. Many ideas for KEXI! | |||
* SQL datacompare - Compare and Synchronize Database Contents. Interesing extrension, could be added for KEXI. | |||
* sqlFree - Java-based db GUI includes: Visual SQL query builder, Reverse engineering of SQL statements - the Parser, Reverse engineering of SQL statements - the Parser, Viewing returned results, DB Browser | |||
* AquaFold - Java-based database query and administration tool. Very interesting, especially built-in Visual Explain Plan | |||
* DB Visual Architect - DB Visual Architect is a single development environment which acts as a bridge between object model, data model and relational model. | |||
* DeZign for Databases - database development tool using an entity relationship diagram | |||
* Kirix Strata - commercial MSA competitor, developed using wxWidgets, has quite a few interesting ideas (eg. grouping within table view), also see their PDF guide | |||
* GUPTA Team Developer - a development tool for creation of business applications; object-oriented, COM+ object generation, integrated Web applications, native database interface for all popular databases. '''For Linux and Windows'''. | |||
* SQL Manager - database administration tools for MySQL, PostgreSQL, MSSQL, Firebird, DB2 from a nice Russian company. Rather advanced and complex GUIs. Import/Export tools. | |||
* AccessUI - MSA GUI extension | |||
* VistaDB - Data management environment, MSA competitor. | |||
* CodeCharge Studio - visually creating database-driven Web applications with minimal amount of coding. '''Idea for KEXI Web Plugin?''' | |||
* SQL_Prompt - provides Intellisense style auto-completion for MS SQL Server editors. | |||
* S�Base is a programmable, fully relational, RISC OS database management system, which allows you to develop customised data applications without any programming. '''Development stopped until recently - Qt port is in progress...''' | |||
* Active Query Builder - a visual query builder component that allows to build complex SQL queries via a visual query building interface. '''Interesting way for adding fields to the query (using checkboxes)'''. | |||
* SQL Uniform - a helper application to relational databases of various types regarding query, maintenance, data comparison, export (convert), import. | |||
* Dabble DB is a '''web-based application''' that lets you work with data on your own terms. You can import data from spreadsheets or databases � or just start from scratch. | |||
* Servoy is a cross-platform, Java-based application development and deployment environment; contains GUI designer for databases frontends, scriptable through JavaScript, allows for combining data from multiple sources; supports various servers. | |||
== Reporting Tools == | |||
=== Open Source Reporting Tools === | |||
* ReportLab - Open Source toolkit for creating good-looking reports in PDF. Let's see if this can be reused in KEXI? | |||
* Agata Report - mature reporting tool (LGPL), it's good idea to see how things are made there | |||
* NCReport - a lightweight, fast, easy to use SQL report engine written in C++ based on Qt toolkit. | |||
* OpenRPT report writer and rendering engine - let's look at it for interesting features for KEXI Reports ( PDF user manual) | |||
* Report Manager is both a print scheme designer (report) and a high level printing (reporting) engine. Also a TCP Report Server and a Web Report Server (PDF on the fly), supports Windows and Linux. Connectivity to almost all databases is provided. | |||
* Papyrus - an XML reporting engine, generates reports from a variety of different SQL databases. Reports can be generated as PDF, PS, XML, HTML, etc. | |||
* iReport is a powerful, intuitive and easy to use visual report builder/designer for JasperReports written in Java. | |||
* DataVision is an Open Source reporting tool written in Java similar to Crystal Reports. Reports can be designed using a GUI and may be run, viewed, and printed from the application or exported as HTML, XML, PDF, Excel, LaTeX2e, DocBook, or tab- or comma-delimited text files. | |||
* JOOReports, Java/OpenOffice Document and Report Generator, helps creating office documents and reports in OpenDocument Text format '''from templates that can be visually composed using the OpenOffice.org Writer'''. These documents can then optionally be converted to other formats such as PDF, Word and RTF. | |||
* JODConverter, the Java OpenDocument Converter, converts documents between different office formats. It leverages OpenOffice.org, which provides arguably the best import/export filters for OpenDocument and MSO formats. | |||
=== Proprietary Reporting Tools === | |||
* BusinessObjects - Crystal Reports and so on. | |||
* .rpt Inspector - a tool for Crystal Reports�, for editing multiple reports at once (features). | |||
* GUPTA Report Builder - client/server query and reporting tool; part of the Team Developer package, can be embedded into applications developed with GUPTA tools; also available as a standalone product. '''For Linux and Windows''' | |||
== 3rd-party Data Widgets == | |||
=== Open Source Plotting/Charting/Presentation === | |||
* kst - A GPLed plotting and data viewing program; it's display capatibilities could be reused for KEXI | |||
* Qt4Lab Data Plotter - LGPLed Data Plotting library, could be reused within KEXI. | |||
* LabPlot - another GPLed Data analysis and visualisation tool. | |||
* Qanava - a Qt-based library for graphical display of graphs and other relational structures. Qt4 support! | |||
* KGraphViewer - another graph-displaying app, supports the dot format. '''jstaniek has contacted the author: kleag at free.fr'''. | |||
=== Proprietary === | |||
* QicsTable - advanced, commercial QTable replacement from The User Interface Company, and thus KexiTableView competitor. Valuable for comparisons. | |||
* DbNetGrid - HTML db grid component (IE-only). Some good ideas for incoming KEXI Web Plugin. | |||
== Migration Tools == | |||
* MySql to Access / Access to MySql Converter; especially see Data type mapping from MySql to Access. | |||
* Sqlporter - migration of database structures and data across Oracle, IBM DB2, MS-SQL Server, Sybase ASE, MS Access and MySQL. | |||
* MS Access 2003 Conversion Toolkit - analyzes Access 97 databases for upgrade and conversion to MS Access 2003. Could KEXI gain similar tool? | |||
* MSSQL 2 MySQL - Database Converter from Microsoft SQL Server to MySQL. | |||
* Access2PostgreSQL & Access2MySQL - converter from MSA to mysql/pgsql. | |||
* Monarch Data Pump - automatically transforms unstructured data sources, such as report files and PDF files, into live, customized data; also works with structured data sources, such as databases and spreadsheets. | |||
== Database Engines == | |||
=== Open Source === | |||
* PostgreSQL | |||
* Firebird | |||
* MySQL | |||
* NoSQL | |||
* EyeDB, an Object Oriented Database Management System (OODBMS) based on the ODMG 3 specification. | |||
=== Properietary === | |||
* Worksheet-Server using OLAP - see how KEXI Web Interface could be handled)- "The Worksheet-Server combines the flexibility of Microsoft Excel with the power of todays Web technology. Simply define the desired business logic in Excel Spreadsheets and let the Worksheet-Server run these applications independently from Microsoft Excel as a true PHP-based Multi-User Web application". | |||
* SQL Server 2005 Express Edition Beta 2 | |||
* GUPTA SQLBase - a relational, embedded database engine '''for Linux and Windows''' | |||
== Scripting and Macro Engines == | |||
* Open Source VBA implementation for OO.org | |||
== Our Potential Partners == | |||
=== PostgreSQL Supporters === | |||
* Greenplum is offering of open source databases for enterprise-class Business Intelligence and Data Warehousing. | |||
* The Bizgres Project is a Greenplum sponsored and community supported open source project. The goal of Bizgres is to to build a complete, database system for business intelligence exclusively from free software. | |||
* EnterpriseDB Corporation (EDB) was founded in 2004 to bring the benefits of open source databases to enterprise customers. The EDB product set is built on top of PostgreSQL, the world's most advanced open source database. | |||
* Pervasive Postgres combines the advanced features of PostgreSQL, the world�s most advanced open source database, with Pervasive�s twenty years of experience shipping, supporting, and servicing database products. | |||
== Other == | |||
=== Other: Open Source === | |||
* PolePosition is a benchmark test suite to compare database engines and object-relational mapping technology. '''Let's use this to compare KEXI engine(s) with competition'''. | |||
* Docvert - takes word processor files (typically .doc) and converts them to OpenDocument and clean HTML. | |||
* monotone - is a free distributed version control system. it provides a simple, single-file transactional version store, with fully disconnected operation and an efficient peer-to-peer synchronization protocol. '''Idea: can be used together with KEXI to get versioning engine and still can be interoperable with kexisql'''. | |||
* GCF, a Generic Component Framework (GPL, Qt-based, a winner of the Qt Centre Contest) providing '''tabbed toolbar (menu strip) like in KEXI 2'''; ( pdf manual) | |||
=== Other: Proprietary === | |||
* ThinCAP JX - RAD for AJAX, J2EE, and Open Source. What's interesting here? Screenshots - "Domains" tree with ''Tools'' and ''Business Logic'' nodes interesting thing for KEXI. Web capatibilities are also interesting, KEXI's going to have similar (see their Demo Application). | |||
* Qt Property Browser - the framework provides a browser widget that displays the given properties with labels and corresponding editing widgets (e.g. line edits or comboboxes) | |||
* Resolver lets you create powerful solutions integrating databases, code and IT-developed components - all using your existing knowledge of spreadsheets. '''Similar to our idea of live integration of KEXI and KSpread.''' | |||
= Related & Interesting External Documents = | |||
* SQL | |||
** Information about SQL (Wikipedia) | |||
** SQL Specifications - useful for works on KexiDB, etc. | |||
** Description of SQL:2003 standard | |||
** Comparison of different SQL implementations | |||
** INFORMATION_SCHEMA - a "virtual" daabase providing database's metadata - a possible way for KEXI to deal with native databases; PostgreSQL 8.0+, MySQL 5.0.2+ | |||
** SQL recipes - resource for finding answers to common (and not so common) SQL queries for many SQL servers. | |||
** The many-to-many revolution - Advanced dimensional modeling - provided by this KEXI wish | |||
* SQLite | |||
** Sqlite Competitors - comparisons between SQLite and other database engines. | |||
** Akonadi::DataStore Class Reference, KDEPIM's file-based storage | |||
* MS Access | |||
** The Access Web - FAQ site designed to help Microsoft Access developers, maybe this could help KEXI developers avoid some mistakes? | |||
** Migrating from Microsoft Access to the MySQL database - By Paul Dubios | |||
** MS Access Tips & Tricks - many useful MS Access-related information (and some ugly patches that show what are typical users' troubles) (in polish) | |||
** Allen Browne's tips for Microsoft Access. Brief tutorials and help for beginners and database developers. Examples and solutions to implement. Bugs and traps to avoid. Sample code and utilities. | |||
** Short MSA Flash Tutorials from DataPig technologies - useful if you just want to realize what's up with a given MSA feature... | |||
** MSO Dev Center: Access | |||
*** Access Reference Documentation (downloadable) | |||
*** Developing Smart Tags with MSA (see also more generic description of Semantic links / Microformats) | |||
** A discussion of what's new in Access 12. Is MSA awake after 7 years? | |||
** MSA archives of databasejournal.com | |||
** MSA MVPs | |||
** More recent shots of MSA 12 (beta 1) | |||
** MSA's Better Navigation in Less Space - these hints are compatible with original TODOs for KEXI Project Navigator... | |||
** MSA 2007 Highlights, includes flash demo preview and guide document. | |||
** Posts about Access 2007 (MSDN) | |||
** Sample Data Models for Relational Database Design | |||
** Useful MSA links | |||
** Reverse Engineering an Access Database in MS Visio - KEXI can be even easier rev-engineered since there's rich db schema easily available; We can think about usign ODF as a format and Kivio as a viewer (other document on the topic) | |||
** Access-Freak - a website dealing with an introduction to new features added in MSA 2007 and a comparison between MSA 2003 and 2007. | |||
* Data Access with Linux - interesting document | |||
* Apple WEBObjects Documentation - a possible source of in-depth knowledge how to design WEB-enabled database structure. KEXI has some similar design principles... | |||
* Apple Remote Desktop "Providing Application Access to SQL Data in Apple Remote Desktop 2" Using a PostgreSQL database to store system configuration information for desktop management. | |||
* FoxPro Wiki | |||
* UIML - a proposal of open standard user interface description language in XML, from OASIS; a converter from KEXI's forms XML format to this may be an idea, but we're not sure yet | |||
* Oracle docs online (registration required) | |||
* Fast, Easy Database Access with Python | |||
* Database formats documentation valuable for writing KEXI import/export plugins | |||
* Information about Imaging Metadata and Standards | |||
* Draft 22: Open Document 1.0 Format for Office Applications - expecially look at '''sections 6.x: Database Fields and 11.x: Form Content''' - this is something KEXI probably will need to play with in the future. | |||
* 'Gotchas' in MySQL and Postgres | |||
* Explanation of Database File Systems | |||
* Open Source Database Feature Comparison Matrix | |||
* Comparison: PostgreSQL vs. MySQL | |||
* OpenDocument, OpenOffice.org Base And Related | |||
** OpenDocument Format for Office Applications v1.0 | |||
** OpenOffice.org Database Access - Specifications (older page) | |||
*** KDE Address Book Access | |||
** Andrew Pitonyak's Documents on Database access using OpenOffice.org - very good source of information including StarBasic scripting | |||
** Database Access chapter of ''StarOffice 8 Programming Guide for BASIC'' - interesting point of view, code samples, references to MS DAO in terms of API ('''KEXI/KexiDB developer docs could contain something similar''') | |||
** MSA-OO.org Base FAQ - insteresting list of features supported and not supported by OO.org Base | |||
* MSDN Windows GUI Guide - Dialog Boxes | |||
* Introduction to the Zope Object Database | |||
* To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem? (MS Research) | |||
* Strigi - searching files in KDE4 - aKademy 2006 slides | |||
* Library of Free Data Models from DatabaseAnswers.org | |||
* Query-by-Example (QBE) | |||
=== Wikipedia's Resources === | |||
* Multidimensional Database | |||
=== Recommended Books === | |||
* Database Design for Mere Mortals - implementation-independent look at database design art |
Latest revision as of 11:03, 27 December 2024
This page documents ideas, links to competition and competing approaches.
TODO |
---|
Review this content for relevance and accuracy |
- Linq++
- A simple experimental implementation of a LINQ-like query language for C++ containers.
- What users hate and what like about MSA 2k7
- LoXiM
- An experimental, an object oriented, semistructured Database Management System.
- JotForm
- web-based forms, compare to kexi web forms...
- Quick Reference Guides to Popular Software
- good idea for Calligra apps
- KEXI commit RSS
- Customize here
- Qt Property Browser
- Qt Solution similar to our KoProperty2. But at the time of writing the former we did not have access to LGPLed Qt Property Browser.
- Grantlee
- Open Source string template system based on the Django template system from the Django project
- uSQLite
- A network wrapper for SQLite
- mod_sqlite
- An Apache 2.0 module which provides access to SQLite databases over HTTP. SQLite required that clients of the database be on the same machine as the SQLite database itself. mod_sqlite allows you to access your SQLite databases over a network.
- Tanit
- A set of Oracle to Kopi (a Java based framework) migration tools providing automatic translation of your Oracle PL/SQL, Forms and Reports applications.
- TOra
- An open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle, MySQL, Postgres, and ODBC.
- SchemaSpy
- A Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format.
- MDB Tools
- A library for accessing Microsoft Access .mdb files
- MDB Doc
- An add-in for Microsoft Access 2000, XP, 2003, 2007 and 2010 to automate the creation of database documentation in XHTML format. An older version (1.40) supports Access 97. Definitely a more reliable way of importing MDB/ACCDB to KEXI (planned this approach years ago). Extra idea is to add web service that accepts the Access files online.
- qooxdoo
- (pronounced ['ku:ksdu:]) is a framework for creating desktop-style web applications (rich internet applications, RIAs) for desktop and mobile clients; idea: use it for the next generation KEXI WebForms.
- Saint
- A suite of tools to assist in the workflow for doing bibliometric/ scientometric research, that is, research into the workings of the science system itself based on data on publications, patents and so on. Qt Ambassador link, by André Somers, adds DDL and more on top of QtSQL, connects with MySQL and MSA (the latter with MS ADO); jstaniek met André at QtCS 2011; see also QtSQL discussions at Qt5-feedback
Ideas
- Enable searching actions by name like on Mac [1] [2] (or Plasma)
- Menu ideas [3]:
- Pontoon - interesting approach to localization
- Use Open Database License (ODbL) for example KEXI databases
- Idea for Improvement of Tabbed Toolbars
- Opera visual tabs
- OData, the Open Data Protocol, is a Web protocol for querying and updating data. Even MSA can support it.
- Finally add support for themes/color palettes like in MSO
- Brackets is Adobe's new open source code editor for web development using HTML, CSS and JavaScript. Idea: it's style of presenting opened documents with '<'. Maybe KEXI could drop tabs for this?
- Google Labs
- Google Labs data wiki - wiki for structured data; our old idea was similar, to implement wiki-like database creator on top of KDb
- Google Labs sets - have you ever wanted to larger test set of items from give category? E.g. animals? Google sets uses the big database and categories to discover matching set and return its items. Can be useful as a plugin for KEXI.
- Google Fusion Tables - storage for KEXI?
- Table Designer
- How about QDBML (Qt Database Modelling Language)? That would use QML-like markup for DDL queries. See also JSON-DB and Qt JSON DB.
- Forms, Reports
- Widget palette for Forms & Reports: Xcode does it similarly to our plans [6] [7]
- Idea: display more than one form/report on the same sheet [8]; having zoom enabled would help to navigate
- Idea: display help box for form widgets/report elements [9] [10]
- Idea: move "Create" tab to toolbox [11]
- Add means for styling forms using the Qt CSS
- Reuse Spatialite, Sqlite GIS extension
- Consider using Mapnik, a mapping toolkit for desktop- and server-based map rendering, written in C++ (instead of Marble).
- BOND uses database comments to store information about casual relationships
- it's good idea to have some use/reuse of db comments in KEXI but it's not clear if it's safe to use them for metadata since users would already depend on comments for other purposes; so BOND usage of comments is a bit hacky
- it's good idea to have casual (weak) relationships, it's compatible with how KDb is going to deliver relationships (i.e. both strong and casual)
- KoolGrid - web grids
- Explore topic of Faceted search, related to "Query by example".
- Google Cloud SQL is web service that allows you to create, configure, and use relational databases with your App Engine applications.
- KEXI could propose to disable or uninsatll the least used plugins, see how Thunderbird does this [12].
- Add integration to the http://www.taskjuggler.org and Plan
- Add integration to the Kanboard. It's based on SQLite so would be interesting. And we use it within KDE at https://todo.kde.org.
- Add integration with Percona Toolkit for MySQL
- Use jackcess instead of mdbtools. That would add java dependency but only for the driver. They beat mdbtools [13]. And are 5 times faster than original MSA. They really support many details [14]
- Later someone would port it back to C++
- Grouping columns of Table View as in http://stratusbase.com/demo [15]
- SQL Formatter - many options/ideas for SQL formatting/prettify, can be applied to KEXI's SQL editor (and later: documentator)
KEXI-based bugzilla client
Make KEXI useful as GUI for KDE Bugzilla. Reason: to eat our own dog food in Calligra. Use bugzilla's webservices for this. Probably separate plugin could be developed. Online/offline operations with synchronization. (discussed with Inge who likes the idea)
See also:
Use Fossil DVCS to handle versioning in KEXI file db
Fossil SQLite-based DVCS, so fits nicely to KEXI needs. It lacks crazy ideas of git, stability is the goal.
Test Data and Test Data Generators
- Data
- datasets used by the Google Books Ngram Viewer (free as beer)
- Wiktionary database. It exists in MySQL format but can be converted into SQLite file.
- Generators
Optimizing
- Options for SQLite speedup, could be offered via KEXI
- Vitesse Data - compiling query into native code using LLVM. The code is optimized to move tremendous amount of data intra-CPU and to run efficiently on modern superscalar CPU.
Scripting
- public scripting apis should be appealing to users; make them simple, e.g. like this [17]
- javascript db APIs ideas for node.js sql-vs-nosql-which-is-better
- IPython provides a rich toolkit to help you make the most out of using Python, with powerful Python shells (terminal and Qt-based), etc. Idea: support similar interactive shell for KEXI projects.
- sqlite3 Node.js module: Asynchronous, non-blocking SQLite3 bindings
Data sharing
- Contractor lets to share data between apps - ubuntu-only for now, see also http://elementaryos.org/docs/apis/contractor
- Fielded Text is a proposed standard which provides structure and schema definition to text files which contain tables of values (for example, CSV files)
- Idea: when implementing KEXI CSV Importer's import specification, make it compatible with the Fielded Text. Support this metadata format directly is welcome.
- There are many features that can be covered by the CSV Importer: http://www.xilytix.com/fieldedtext/component/features.html.
- Look at RazorSQL's importer for CSV import ideas (e.g. options)
- PANDA s a "data library", which means that it stores all the data you work with--voter registration records, police reports, water testing results, etc. PANDA is also a search engine. Useful to look at it for RESTful apis of future KEXI's 3-tier architecture.
- Use QWebSocket to implement KEXI's 3-tier architecture.
- +Connect to websocket-enabled browser
.kexi files encryption
- Add encryption option using the SQLCipher. KEXI should ask for password on opening is needed. Integration with KDE Wallet is suggested. There may be others but this is the only known, reasonable open source option. Extra TODO: evaluate possibility of encrypting only selected tables.
DB Connection proxy/pool/relay/load balance
- With SQL Relay, you can speed up database-driven web-based applications, enhance the scalability of database-driven web-based applications, distribute access to replicated databases, throttle database access, access databases from unsupported platforms and migrate applications from one database to another.
Schema Analyzer
- SchemaSpy is a tool that analyzes the meta-data of a schema in a database and generates a visual representation of it in a browser-displayable format.
- sqlite_anlyzer - Idea: use it with KEXI so users can analyse the project
GUI Layout
- From: [18]:
Localization
- Database-based i18n in Propel ORM.
- Database-based i18n in ASP-based websites.
Knowledge
- Implementing Reports (Scott Ambler)
- Encapsulating Database Access: An Agile 'Best Practice' (Scott Ambler)
Competition
- Microsoft Jet Database Engine Programmer's Guide
- useful when working with the MDB driver
- Ribbon Designer
- what's new in 'the other' GUI impl.
- Theme Builder
- It would be far easier to implement ODF replacement, since unlike MSOOXML, ODF shares more styles with the same XML markup across apps. For KEXI Forms and Reports themes is a TODO as well.
- Developing Access 2007 Solutions with Native C or C++
- MSA 2k10 gets a kind of triggers
- Netbeans GUI looks similar to KEXI 2 GUI in some aspects
- Total Access Statistics 2010 for MSA 2010
- Beyond generic databases...
- Qtitan DataGrid
- Ideas for grouping, totals and filtering
- Genero Report Writer
- Reporting tool, TODO: perform research :)
- CuteReport
- A report solution based on Qt (dual-licensed).
- eXaro
- A free report engine similar with Jasper or Crystal Reports, embeddable in Qt applications. (inactive since 2010)
- KReporter
- Integrated reporting tools for SugarCRM. Filling the gap in SugarCRM. GPL core + commercial plugins.
- Zoho Creator
- Like MSA Online: https://www.zoho.com/creator, https://www.zoho.com/creator/migrate-msaccess-database.html
- Office 2010 menu to ribbon reference workbooks
- (xlsx files)
- Ways to use Access data in Excel
- Similar to plans of KEXI/Tables integration
- FileMaker's docs
- FileMaker Go - tablet app
- Lotus Approach
- Alpha Five
- OnlineGlom
- Simple Visual Database Creator
- Let's look at its simplicity
- MSO 2k10 branding - the modern menu is close already
- firefox sqlite manager
- Limbas
- A database management system for creating web-based applications
- Dabo
- A 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. MIT-licensed.
- HTML Smile widgets
- Ideas for implementation of data widgets
- Pentaho Business Analytics
- Includes business intelligence, data integration and data mining capabilities
- ADO.NET Entity Framework (EF)
- An object-relational mapping (ORM) framework for the .NET Framework
- Caspio Online Database
- Allows to create online databases and complete business applications without writing code, using an app-builder.
- gLabels
- A program for creating labels and business cards for GNOME. Idea: make KEXI reports 100% competitive to this use case. To do so, include plugin with predefined templates and an Assistant.
- Access2Base
- An OpenOffice/LibreOffice Basic library of macros for (business or personal) application developers and advanced users. The provided macros implement a number of functionalities - directly inspired by MS Access.
- dbForge Studio for MySQL
- Rich GUI-based db management app. Free Express version available.
- Solutions for taking MSA to the cloud
- Microsoft Access Databases Online
- GOM
- A DataMapper for GObject. See also SQLHeavy below.
- SQLHeavy
- A wrapper on top of SQLite with a GObject-based interface, providing APIs for C and Vala, GObject Introspection support, and additional functionality not present in SQLite.
- Camelot
- Provides components for building business applications on top of Python, SQLAlchemy and Qt. Inspired by the Django admin interface. Dually licensed (GPL/Commercial).
- PouchDB
- "was written to help web developers build applications that work offline as well as they do online. Applications save data locally, so the user can use all the features of an app even when they're offline. Plus, the data is synchronized between clients, so the user has up-to-date data wherever they go."
- CouchDB
- "is a database that completely embraces the web. Store your data with JSON documents. Access your documents and query your indexes with your web browser, via HTTP. Index, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection. [...] A CouchDB server hosts named databases, which store documents. Each document is uniquely named in the database, and CouchDB provides a RESTful HTTP API for reading and updating (add, edit, delete) database documents."
- Xojo
- Create native cross-platform desktop, web and web-mobile apps -- ultimately similar to KEXI
- Lianja App Builder
- Create business Apps for Desktop, Cloud and Mobile devices on Windows, Linux and OS X using NoCode, Visual FoxPro, Python, PHP, and/or HTML5 JavaScript.
- Submitting Access Database Templates to Office Online
- The ACCDT template files that are utilized by Microsoft Access allow a user to create database files with the same formatting without the need to re-create each individual file from scratch. The ACCDT files are saved in a compressed archive of XML and text files.
- The Rational Guide to Microsoft Office Access 2007 Templates
- A complete book.
- Access Template File Format
- Official specs
- Axisbase
- A .NET database system is comparable to other personal/office database tools like Filemaker and Microsoft Access, and it is also a database server like MySQL or Microsoft SQL Server. Many nice ideas, built as alternative.
- OpenRPT
- A report writer, code that was forked as a base of KoReports used in KEXI Reports (now the KReport framework).
- The XtraReports Suite
- A multi-platform banded reporting library for WinForms, ASP.NET, MVC, WPF and Silverlight.
- MetaSQL
- Part of OpenRPT [21], a scripting language developed by xTuple for use by the report writer. The language is designed to handle dynamic database queries. Don't confuse with Oracle/PeopleSoft's solution (see below).
- PeopleSoft Meta-SQL
- "One of the most useful development shortcuts in PeopleSoft".
- EyeDB
- An Object Oriented Database Management System (OODBMS) based on the ODMG 3 specification. Schema-Oriented Generated C++ API is interesting.
- ODB
- An object-relational mapping (ORM) system for the C++ language. It allows an application developer to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. There's also Qt support.
- LyteRAD
- A simple desktop database and apps creator, Java-based. Contains wizards.
- MS Access VCS Integration
- Synchronize your Microsoft Access Database definition with a version control system; BSD, reuse for KEXI MS Access integration.... See also Decompose MSAccess (abandoned).
- Airtable
- A web service that looks like a spreadsheet, but it's a relational database
- Hiberlite ORM
- A C++ object-relational mapping for SQLite with API inspired by Boost.Serialization
- HeidiSQL
- An open source admin tool for MySQL server, MS SQL, PostgreSQL, to browse, edit data, create and edit tables, views, procedures, triggers and scheduled events. Lost of nice GUIs.
- SQLate
- A Qt based library to interact with SQL databases that uses. It uses advanced C++ templates that helps to write SQL queries in a type safe way, checked at compile time. LGPL. Good to look at these templates for KDb ideas ;) Ping KDAB!
Misc
- A book mentioning KEXI
- kexi-project.org links:
- "Open Source Databases" presentation: "No proprietary options on Linux – OpenOffice.org Base or KEXI are your best bets."
- MS strongly recommends not to use MSA on Web Server. It says that when multiple, concurrent users make requests of a Microsoft Access database, unpredictable results may occur.
- Adaptive Coloring for Syntax Highlighting
- tPostgres extends core PostgreSQL with Sybase & SQL Server compatibility
- Generating SQL Syntax Diagrams
- Datawrapper, an open source tool helping anyone to create simple, correct and embeddable charts in minutes
- RAW is an open web tool for creating custom vector-based visualizations on top of the d3.js library. Primarily conceived as a tool for designers and vis geeks, RAW aims at providing a missing link between spreadsheet applications and vector graphics editors. New data visualization ideas/integration for KEXI?
- D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS. New data visualization ideas for KEXI?
- SPSS is a software package used for statistical analysis, it uses popular format. KEXI could support it.
- zint is a barcode generator and library, GPL3 (note - using it in a non-GPL code only via separate process). There's also a zint-qt GUI lib.
- Sample data sets
Blog topics
- TODO: KDb conveniently escapes string for you thanks to prepared statements or C++ overloaded operators. See how hard is this in libgda: [22] [23].
Books
- Documenting Software Architecture (Book)
- JET Database at wikibooks
TODO: Extra content
TODO |
---|
From kexi-project.org's [email protected]. Merge it with the above. |
Related & interesting projects
Projects Reused By KEXI
- KDElibs for win32 (formerly Qt-KDE Wrapper) - KEXI is the very first larger application available also on win32 thans to this project.
- SQLite - db engine used as embedded engine for KEXI. See also SQLite Wiki docs.
Projects Related to SQLite
- SQLite ODBC driver
- Client/Server Extension for SQLite
- SQLiteDBMS - a database management server for SQLite. It allows an sqlite3 process to be accessed via a TCP/IP network; provides Extended SQL, SSL, basic authentication, query caching, WebDAV, access control, and replication. Can bring sqlite network layer for to KEXI.
- SQLiteServer - other server embedding SQLite engine (closed source)
- SQLite Driver for OpenOffice.org - very simple implementation, compared to KexiSQL :)
- SQLitePlus - commercial c++ library for SQLite
- SQLiteSecure - Encryption Extension for SQLite - could be probably reused for KEXI
- SQLite: Contributed Files, LiteWrap by Ben.Clewett is especially interesting as an idea.
- SQLite Database Browser free, public domain, open source visual tool used to create, design and edit SQLite files.
- SQLiteManager - a multilingual web based tool to manage SQLite database. Even KexiDB compatibility exists!
- Sqliteman is one of the best developer's and/or admin's GUI tool for SQLite 3.
- uSQLite - a network wrapper for SQLite. May be reused by KEXI.
- Full text search for SQLite - the goal is to add full text index support to sqlite3 databases. Nice addition for KEXI/KexiDB. ft3 @ sourceforge, A draft onm sqlite.org, FullTextIndex @ sqlite.org
- SQLite in Google Gears - Google Gears uses the open source SQLite database system. The Database module provides browser-local relational data storage to JavaScript web application. Gears also includes an SQLite extension fts2 for "Full-Text Search".
- SQLite as unified storage backend for Mozilla 2 for storing and searching through data for all Mozilla components and extensions. "SQLite will be the back end for the unified store. Because it implements a SQL engine, we get querying for free, without having to invent our own query language or query execution system."
- Redland RDF's (Resource Description Framework) storage (http://librdf.org) uses SQLite (among others) for persistent storage. Redland storage is used (QRDF) by Soprano, which in turn is used by NEPOMUK-KDE, part of Nepomuk Semantic Desktop project.
Projects Related to MS Access
- DBToFile - A Microsoft Access Database Backup Engine. Possible reusability for KEXI's "Total MSA Importer". However, it only reads database schema and SQL strings, not forms or reports.
Projects Related to PostgreSQL
- gppl's nest - a patch which allows PgSQL to make hierarchical queries a la Oracle do.
Database Abstraction layers
Relational Database Abstraction Layers
- ADOdb - DB abstraction library, for PHP, although it has some features similar to KexiDB as handling metadata. Many drivers included.
- QtSQL - GUI database frontend for MySQL,PostgreSQL and ODBC databases.
- Mono Database Access wiki
Object-based Database Abstraction Layers
- SQLObject - an object-relational mapper for Python. Handles few database backends including SQLite. Interested because some sort of mapping will be performed in KEXI Scripting Engine.
- db4objects - Dual licensed (GPL/Commercial) native Java or .NET open source object database engine - takes care about (de)serializing objects.
- SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
- Migrate, SQLAlchemy schema change management, inspired by Ruby on Rails' migrations, provides a way to deal with database schema changes in SQLAlchemy projects.
- Elixir is a declarative layer on top of SQLAlchemy.
- Spring - open source web application framework for the Java platform; among others includes Data access framework: working with relational database management systems on the Java platform using JDBC and Object-relational mapping tools providing solutions to technical challenges that are reusable in a multitude of Java-based environments.
Open Source Database Connection Libraries
Things that might be useful for a KexiDB driver or Migration plugin
- MDB Tools - tools for direct reading and writing data stored in MS Access database files, it will be good metod for extending KEXI's data-exchange capabilities. See also: Article on MDB Tools, Currently used by KEXI's MDB Migration plugin.
- libpqxx - C++ client API for PostgreSQL, currently used for KexiDB PostgreSQL driver.
- pxlib - C Library to read Paradox Database files (GPL) - usable for KEXI Paradox import/export filter
- FreeTDS - libraries for Unix and Linux that allow to natively talk to MS SQL Server and Sybase databases (related to MDB Tools)
- libodbc++ - c++ class library for accessing SQL databases via ODBC
- Xbase - a collection of specifications, programs, utilities and a C++ class library for manipulating Xbase type datafiles and indices
- UNITY - relational db in a flat file
- DBTCP is a proxy server for ODBC connection, so it is possible to hide multiple virtual ODBC connections inside one physical ODBC connection (May be valuable for further KEXI research)
- SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux supporting most database servers. This may be integrated with KEXI (hmm, 5.0 ? :) ) environment.
- SOCI is a database access library for C++ that makes the illusion of embedding SQL queries in the regular C++ code, staying entirely within the Standard C++. Supports Oracle, PostgreSQL, MySQL, SQLite. Something we considered for KexiDB API.
Database Development/Administering Tools and Environments
Open Source: KDE-based
- KSqlShell - graphical MySQL and PostgreSQL database shell for KDE
- KMySQLAdmin MySQL interface for KDE
- KSqlAnalyzer - a tool for easy accessing the data of a MS-SQL-Database. It's a KDE GUI built on top of FreeTDS project.
- KPoGre - a KDE postgresql frontend that uses libpqxx as our pgsql driver.
- Rekall - a tool to extract, display and update data, it does forms and reports and scripting; GPL-ed Rekall is also available.
- Umbrello UML Modeller - Unified Modelling Language diagram programme for KDE. Could be integrated with KEXI database design capatibilities, e.g. Entity Relationship designer: http://uml.sourceforge.net/screenshots/umbrello-entiry-relationship.png
- DataKiosk is a JuK-like database interface tool for generic SQL databases. QUite similar interface to planned KEXI's Final Mode.
- RKWard is meant to become an easy to use, transparent frontend to the R-language, a very powerful, yet hard-to-get-into scripting-language with a strong focus on statistic functions. Its capatibilities could be adopted to interoperate with KEXI data sources.
Open Source: Qt-based
- HBasic - integrated development environment with database support.
- DBACompanion - a graphical administration tool for Oracle databases. Looks like good starting point for adding db driver and import/export driver for Oracle.
Proprietary: Qt-based
- Data Architect - a tool for designing databases
Open Source: Other
- New GUI tools from MySQL:
- MySQL Administrator
- MySQL Query Browser
- A great page with many *SQL-ish projects; exportSQL has a special value in KEXI context: MS Access module which exports Access Database into MySQL, mSQL and PostgreSQL. This is exactly what we have planned for KEXI migration tools suite.
- IBAccess is an Interbase client application, that allows the users or administrators the use of a intuitive interface to Interbase/Firebird database servers and Interbase/Firebird database files and objects.
- phpFlashMyAdmin includes all of the significant table administration features of phpMyAdmin, but without the annoyance of page refreshes (demo available).
Open Source: GNOME
- Gnome DB Project
- Glom - GNOME's FileMaker-like app for designing and editing PostgreSQL tables (Screenshots).
Proprietary
- DBDesigner - visual database design system that integrates database design, modeling, creation and maintenance
- DBManager - MySQL and PostgreSQL management win32 app, also supports SQLite
- TOAD - provides Windows�based PL/SQL development and administration
- Ability Database - commercial product, very MSAccess-like (Some features)
- Navicat some mySQL "frontend"
- OpenLink Virtuoso - CROSS PLATFORM Universal DB Server; also integrates Web and File serving. Large commercial project with interesting documentation.
- DB Manager Pro - a multi-database tool with powerfull functionality. For example see Process Designer : www.dbtools.com.br/EN/dbmanagerpro/images/task_builder.png. Many ideas for KEXI!
- SQL datacompare - Compare and Synchronize Database Contents. Interesing extrension, could be added for KEXI.
- sqlFree - Java-based db GUI includes: Visual SQL query builder, Reverse engineering of SQL statements - the Parser, Reverse engineering of SQL statements - the Parser, Viewing returned results, DB Browser
- AquaFold - Java-based database query and administration tool. Very interesting, especially built-in Visual Explain Plan
- DB Visual Architect - DB Visual Architect is a single development environment which acts as a bridge between object model, data model and relational model.
- DeZign for Databases - database development tool using an entity relationship diagram
- Kirix Strata - commercial MSA competitor, developed using wxWidgets, has quite a few interesting ideas (eg. grouping within table view), also see their PDF guide
- GUPTA Team Developer - a development tool for creation of business applications; object-oriented, COM+ object generation, integrated Web applications, native database interface for all popular databases. For Linux and Windows.
- SQL Manager - database administration tools for MySQL, PostgreSQL, MSSQL, Firebird, DB2 from a nice Russian company. Rather advanced and complex GUIs. Import/Export tools.
- AccessUI - MSA GUI extension
- VistaDB - Data management environment, MSA competitor.
- CodeCharge Studio - visually creating database-driven Web applications with minimal amount of coding. Idea for KEXI Web Plugin?
- SQL_Prompt - provides Intellisense style auto-completion for MS SQL Server editors.
- S�Base is a programmable, fully relational, RISC OS database management system, which allows you to develop customised data applications without any programming. Development stopped until recently - Qt port is in progress...
- Active Query Builder - a visual query builder component that allows to build complex SQL queries via a visual query building interface. Interesting way for adding fields to the query (using checkboxes).
- SQL Uniform - a helper application to relational databases of various types regarding query, maintenance, data comparison, export (convert), import.
- Dabble DB is a web-based application that lets you work with data on your own terms. You can import data from spreadsheets or databases � or just start from scratch.
- Servoy is a cross-platform, Java-based application development and deployment environment; contains GUI designer for databases frontends, scriptable through JavaScript, allows for combining data from multiple sources; supports various servers.
Reporting Tools
Open Source Reporting Tools
- ReportLab - Open Source toolkit for creating good-looking reports in PDF. Let's see if this can be reused in KEXI?
- Agata Report - mature reporting tool (LGPL), it's good idea to see how things are made there
- NCReport - a lightweight, fast, easy to use SQL report engine written in C++ based on Qt toolkit.
- OpenRPT report writer and rendering engine - let's look at it for interesting features for KEXI Reports ( PDF user manual)
- Report Manager is both a print scheme designer (report) and a high level printing (reporting) engine. Also a TCP Report Server and a Web Report Server (PDF on the fly), supports Windows and Linux. Connectivity to almost all databases is provided.
- Papyrus - an XML reporting engine, generates reports from a variety of different SQL databases. Reports can be generated as PDF, PS, XML, HTML, etc.
- iReport is a powerful, intuitive and easy to use visual report builder/designer for JasperReports written in Java.
- DataVision is an Open Source reporting tool written in Java similar to Crystal Reports. Reports can be designed using a GUI and may be run, viewed, and printed from the application or exported as HTML, XML, PDF, Excel, LaTeX2e, DocBook, or tab- or comma-delimited text files.
- JOOReports, Java/OpenOffice Document and Report Generator, helps creating office documents and reports in OpenDocument Text format from templates that can be visually composed using the OpenOffice.org Writer. These documents can then optionally be converted to other formats such as PDF, Word and RTF.
- JODConverter, the Java OpenDocument Converter, converts documents between different office formats. It leverages OpenOffice.org, which provides arguably the best import/export filters for OpenDocument and MSO formats.
Proprietary Reporting Tools
- BusinessObjects - Crystal Reports and so on.
- .rpt Inspector - a tool for Crystal Reports�, for editing multiple reports at once (features).
- GUPTA Report Builder - client/server query and reporting tool; part of the Team Developer package, can be embedded into applications developed with GUPTA tools; also available as a standalone product. For Linux and Windows
3rd-party Data Widgets
Open Source Plotting/Charting/Presentation
- kst - A GPLed plotting and data viewing program; it's display capatibilities could be reused for KEXI
- Qt4Lab Data Plotter - LGPLed Data Plotting library, could be reused within KEXI.
- LabPlot - another GPLed Data analysis and visualisation tool.
- Qanava - a Qt-based library for graphical display of graphs and other relational structures. Qt4 support!
- KGraphViewer - another graph-displaying app, supports the dot format. jstaniek has contacted the author: kleag at free.fr.
Proprietary
- QicsTable - advanced, commercial QTable replacement from The User Interface Company, and thus KexiTableView competitor. Valuable for comparisons.
- DbNetGrid - HTML db grid component (IE-only). Some good ideas for incoming KEXI Web Plugin.
Migration Tools
- MySql to Access / Access to MySql Converter; especially see Data type mapping from MySql to Access.
- Sqlporter - migration of database structures and data across Oracle, IBM DB2, MS-SQL Server, Sybase ASE, MS Access and MySQL.
- MS Access 2003 Conversion Toolkit - analyzes Access 97 databases for upgrade and conversion to MS Access 2003. Could KEXI gain similar tool?
- MSSQL 2 MySQL - Database Converter from Microsoft SQL Server to MySQL.
- Access2PostgreSQL & Access2MySQL - converter from MSA to mysql/pgsql.
- Monarch Data Pump - automatically transforms unstructured data sources, such as report files and PDF files, into live, customized data; also works with structured data sources, such as databases and spreadsheets.
Database Engines
Open Source
- PostgreSQL
- Firebird
- MySQL
- NoSQL
- EyeDB, an Object Oriented Database Management System (OODBMS) based on the ODMG 3 specification.
Properietary
- Worksheet-Server using OLAP - see how KEXI Web Interface could be handled)- "The Worksheet-Server combines the flexibility of Microsoft Excel with the power of todays Web technology. Simply define the desired business logic in Excel Spreadsheets and let the Worksheet-Server run these applications independently from Microsoft Excel as a true PHP-based Multi-User Web application".
- SQL Server 2005 Express Edition Beta 2
- GUPTA SQLBase - a relational, embedded database engine for Linux and Windows
Scripting and Macro Engines
- Open Source VBA implementation for OO.org
Our Potential Partners
PostgreSQL Supporters
- Greenplum is offering of open source databases for enterprise-class Business Intelligence and Data Warehousing.
- The Bizgres Project is a Greenplum sponsored and community supported open source project. The goal of Bizgres is to to build a complete, database system for business intelligence exclusively from free software.
- EnterpriseDB Corporation (EDB) was founded in 2004 to bring the benefits of open source databases to enterprise customers. The EDB product set is built on top of PostgreSQL, the world's most advanced open source database.
- Pervasive Postgres combines the advanced features of PostgreSQL, the world�s most advanced open source database, with Pervasive�s twenty years of experience shipping, supporting, and servicing database products.
Other
Other: Open Source
- PolePosition is a benchmark test suite to compare database engines and object-relational mapping technology. Let's use this to compare KEXI engine(s) with competition.
- Docvert - takes word processor files (typically .doc) and converts them to OpenDocument and clean HTML.
- monotone - is a free distributed version control system. it provides a simple, single-file transactional version store, with fully disconnected operation and an efficient peer-to-peer synchronization protocol. Idea: can be used together with KEXI to get versioning engine and still can be interoperable with kexisql.
- GCF, a Generic Component Framework (GPL, Qt-based, a winner of the Qt Centre Contest) providing tabbed toolbar (menu strip) like in KEXI 2; ( pdf manual)
Other: Proprietary
- ThinCAP JX - RAD for AJAX, J2EE, and Open Source. What's interesting here? Screenshots - "Domains" tree with Tools and Business Logic nodes interesting thing for KEXI. Web capatibilities are also interesting, KEXI's going to have similar (see their Demo Application).
- Qt Property Browser - the framework provides a browser widget that displays the given properties with labels and corresponding editing widgets (e.g. line edits or comboboxes)
- Resolver lets you create powerful solutions integrating databases, code and IT-developed components - all using your existing knowledge of spreadsheets. Similar to our idea of live integration of KEXI and KSpread.
Related & Interesting External Documents
- SQL
- Information about SQL (Wikipedia)
- SQL Specifications - useful for works on KexiDB, etc.
- Description of SQL:2003 standard
- Comparison of different SQL implementations
- INFORMATION_SCHEMA - a "virtual" daabase providing database's metadata - a possible way for KEXI to deal with native databases; PostgreSQL 8.0+, MySQL 5.0.2+
- SQL recipes - resource for finding answers to common (and not so common) SQL queries for many SQL servers.
- The many-to-many revolution - Advanced dimensional modeling - provided by this KEXI wish
- SQLite
- Sqlite Competitors - comparisons between SQLite and other database engines.
- Akonadi::DataStore Class Reference, KDEPIM's file-based storage
- MS Access
- The Access Web - FAQ site designed to help Microsoft Access developers, maybe this could help KEXI developers avoid some mistakes?
- Migrating from Microsoft Access to the MySQL database - By Paul Dubios
- MS Access Tips & Tricks - many useful MS Access-related information (and some ugly patches that show what are typical users' troubles) (in polish)
- Allen Browne's tips for Microsoft Access. Brief tutorials and help for beginners and database developers. Examples and solutions to implement. Bugs and traps to avoid. Sample code and utilities.
- Short MSA Flash Tutorials from DataPig technologies - useful if you just want to realize what's up with a given MSA feature...
- MSO Dev Center: Access
- Access Reference Documentation (downloadable)
- Developing Smart Tags with MSA (see also more generic description of Semantic links / Microformats)
- A discussion of what's new in Access 12. Is MSA awake after 7 years?
- MSA archives of databasejournal.com
- MSA MVPs
- More recent shots of MSA 12 (beta 1)
- MSA's Better Navigation in Less Space - these hints are compatible with original TODOs for KEXI Project Navigator...
- MSA 2007 Highlights, includes flash demo preview and guide document.
- Posts about Access 2007 (MSDN)
- Sample Data Models for Relational Database Design
- Useful MSA links
- Reverse Engineering an Access Database in MS Visio - KEXI can be even easier rev-engineered since there's rich db schema easily available; We can think about usign ODF as a format and Kivio as a viewer (other document on the topic)
- Access-Freak - a website dealing with an introduction to new features added in MSA 2007 and a comparison between MSA 2003 and 2007.
- Data Access with Linux - interesting document
- Apple WEBObjects Documentation - a possible source of in-depth knowledge how to design WEB-enabled database structure. KEXI has some similar design principles...
- Apple Remote Desktop "Providing Application Access to SQL Data in Apple Remote Desktop 2" Using a PostgreSQL database to store system configuration information for desktop management.
- FoxPro Wiki
- UIML - a proposal of open standard user interface description language in XML, from OASIS; a converter from KEXI's forms XML format to this may be an idea, but we're not sure yet
- Oracle docs online (registration required)
- Fast, Easy Database Access with Python
- Database formats documentation valuable for writing KEXI import/export plugins
- Information about Imaging Metadata and Standards
- Draft 22: Open Document 1.0 Format for Office Applications - expecially look at sections 6.x: Database Fields and 11.x: Form Content - this is something KEXI probably will need to play with in the future.
- 'Gotchas' in MySQL and Postgres
- Explanation of Database File Systems
- Open Source Database Feature Comparison Matrix
- Comparison: PostgreSQL vs. MySQL
- OpenDocument, OpenOffice.org Base And Related
- OpenDocument Format for Office Applications v1.0
- OpenOffice.org Database Access - Specifications (older page)
- KDE Address Book Access
- Andrew Pitonyak's Documents on Database access using OpenOffice.org - very good source of information including StarBasic scripting
- Database Access chapter of StarOffice 8 Programming Guide for BASIC - interesting point of view, code samples, references to MS DAO in terms of API (KEXI/KexiDB developer docs could contain something similar)
- MSA-OO.org Base FAQ - insteresting list of features supported and not supported by OO.org Base
- MSDN Windows GUI Guide - Dialog Boxes
- Introduction to the Zope Object Database
- To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem? (MS Research)
- Strigi - searching files in KDE4 - aKademy 2006 slides
- Library of Free Data Models from DatabaseAnswers.org
- Query-by-Example (QBE)
Wikipedia's Resources
- Multidimensional Database
Recommended Books
- Database Design for Mere Mortals - implementation-independent look at database design art