Comments wanted on database design

From: Joerg Schoen <JoergSilkeSchoen_at_t-online.de>
Date: Sat, 21 Jul 2001 23:32:36 GMT
Message-ID: <3oqih9.999.ln_at_obelix.local>


I have written a SQL data base and would like comments on it before releasing it (GPL). Let me describe the system roughly bottom up and then ask some questions.

  • It runs under LINUX/UNIX. Multi-user ability is achieved via shared memory and semaphores. The shared memory is used like a "cache", i. e. tables are loaded page wise into it and shared among processes. Semaphores control concurrent access. Locking is standard fcntl style locking. Indices are B-Tree type.
  • Each table is represented by two disk files (data and indices). Fixed and variable size records exist. New types can be easily added by providing a few C functions (import/export/compare).
  • Besides a low-level C interface which is limited to access one table at a time, an SQL interface exists. It supports most standard SQL constructs, including joining tables, grouping, having, grant and revoke etc. Cursors are also supported. Things missing from SQL are: sub queries, outer joins.
  • The SQL language is enhanced to include variables (global and local), conditionals (if), loops (for, while), procedures and functions. The difference between functions and procedures is that functions can be used in expressions, whereas procedures not. Functions can not contain arbitrary other commands (this is to prevent a pathological situation where a select expression contains a function which deletes the underlying table or modifies it).
  • A shell like front end for this SQL interface exists that can be used as a powerful report generator. A server/client like setup is under construction. Additional tools are a table checker (like "fsck") and dumper.
  • A graphical interface using QT 2.* exists. It is basically the command line interface with one additional command: The "send" command sends strings to the graphical front end for execution. The commands can create menues on the fly, arbitrary forms for data entry, scrollable tables, progress bars etc. With the help of the SQL cursors, the graphical front end can present a large table to the user for viewing without having to load the whole table.
  • The program has already been used successfully for an address managing program, a payroll system and an accounting system.

Questions:

  • Would anybody be interested in it or do I merely reproduce existing features? [One reason for me to write it was that -to my knowledge- none of the existing "free" data bases has all the above mentioned features - tell me if I am wrong!]
  • Where to upload it for easy general access? I have a home page with T-Online. Is that suitable?

Thanks in advance for all input.

        Joerg Schoen Received on Sun Jul 22 2001 - 01:32:36 CEST

Original text of this message