I'm working on an application which stores data in tables, similar to an RDBMS. I'm looking for a way to let my users query this data using SQL. Ideally, I'd like to do this without having to implement my own SQL parser, query optimizer, etc. So far, ripping parts out of something like Apache Derby is looking like the best option, but I'm wondering if there's an easier way.
I think I need:
- A SQL parser (JavaCC?)
- A query optimizer
- A way to execute the optimized queries
Alternatively, does anyone know any open source databases where I can replace the data store with my own files/data format?
One last note, I don't really need transactions, primary keys, foreign keys, constraints, etc. Thanks!
Clarifications
- This won't be exposed via the web. It will only ever be used by trained, trusted users (who have many other, easier, ways at their disposal to destroy the data in question)
- The optimization stage is fairly important, as we're talking potentially hundreds of gigabytes of data in the various tables
- This is intended to be an extension to an existing system. I can't change the data format, and there's no option to throw away the existing system and replace it with a traditional RDBMS.
- Java-based solutions are preferred :)
Thanks for the responses, guys!