I have to admire some of the design principles being followed by the development team. Things like
- never optimize early - currently, the product is written in java to maximize platform breadth without killing the small team with multiple build environments. The plan is to port the project to C or some other low level language after it is complete to gain performance.
- free and open source - need I say more.
- rel is essentially a working prototype for the real product(s) that come after. It's the design spec for those products that actually works.
- there are no nulls - you can do this with sql products, but it can be very painful. You wind up with lots and lots of tables and joins
- there is no autonumber feature - complete reliance on candidate keys.
- attributes(columns) do not have a specific order. No commands rely on the position of an attribute in a relation (table)
- there is no restriction on what may go into an attribute. You can define whatever types you need, although you may have to drop out into a different language to do that. Even other tables can be contained in an attribute of a tuple (row)
You can visit the Rel site here.