I recently saw an entry on Hacker News for BeeBase, “a programmable relational database with graphical user interface”.
It’s similar to Microsoft Access, where the database and GUI functionality is together in the same program. The data stored in SQLite, and once tables are defined, you’ll instantly have data input screens available for them. BeeBase also has its own programming language, so that more complex operations can be supported. There is also logging capability, to keep track of record changes.
Install:
Beebase is available for Windows, Mac, or Linux. I’m using Windows.
You can use either the installer EXE, or extract the ZIP file and run from a directory. I went for the ZIP, just extract to your PC.
Schema Setup:
In the extracted directory, go in the bin directory, then double-click the BeeBase.exe to start the program.
At this point. we’re ready to set up our database. On the menu bar, select Project, then Structure Editor. From here. we can create a new table by clicking New in the Tables section in the top left. I’m going to create a table with the name Customer, and then click OK.
Keeping the Customertable highlighted, I’ll then go to the Fields section in the bottom left, and click New. We can name our fields for the Customertable, as well as set a data type. We can select from a familiar group of data types, like String, Integer, Real, Date, Time, Boolean, etc. A few of the types may need some explanation:
Memo – Unlimited, multi-line strings
Choice – You can define a set list of numbers, with a string label for each. An enum type.
Reference – BeeBase’s version of a foreign key, to select a value from another table.
Virtual – A calculated value.
Button – Used to trigger execution of stored code.
Most of the data types are Nullable (Beebase uses NIL). Once a data type is set for a field, it can’t be changed. I didn’t see an option for an Identity/Auto Number field, or a way to define a primary key.
For Customer, I’ll create these fields:
ID – Integer
Name – String
CreateDate – Date
Active – Boolean – Initial Value = TRUE
Once all of the fields have been added, we can save our project (Either Ctrl + S, or go to the Menu and select Project => Save). We then exit the Structure Editor (Either ctrl + T or Project => Close structure editor).
Data Entry:
Once the Structure Editor is closed, we’ll see the data entry screen.
Before we enter any data, I’ll first set a format. On the Menu we can select Preferences, then Formats. The default format for dates is Day.Month.Year, but I’ll change that to Year-Month-Day.
We can click on the Bee icon next to the two direction arrows, and we’ll see an option for New Record (ctrl + N).
As data records are entered, the navigation arrows () can be used to move through the records.
Queries and Export:
Once we get a few records entered, we’ll need a way to retrieve them.
On the same line as the navigation buttons and the bee icon, there’s an F button. We can click on that to filter records.
If we want to write a query, we can get to the query editor from the Menu bar, Program => Queries. From here we can write SQL to select certain records.
For both Filter and Query, the WHERE condition is a little different than I’m used to. Instead of using WHERE ID = 1, we would use WHERE (= ID 1). I’ve seen this described as Polish Notation where the operator comes first, then the two values.
From the Query Editor, we can click Export to write our query results to a file.
Wrap-up:
BeeBase seems like a useful tool, a quick way to define data and have data entry screens set up. I barely got into the customizations available for the data entry screens, so I need to go back to that soon.
There are a few features I would like to see added, especially for Primary Keys and Autonumber fields. The WHERE syntax for the SQL queries wasn’t intuitive, it was different from standard SQL.
But this definitely seems like a useful tool, and I’ll definitely go further into checking it out.
Links: