- They abstract data the way that we would store them without a database. A ledger is like a table, an invoice is a one-to-many relationship. They are easy to understand and apply to real life situations.
- They are structured. Since each row in a table has the same structure, you only have to write one 'piece' of code to deal with it. Less code means faster development times, and less bugs.
- Static Data Types. Each column has a static data type (Or should anyway) so programs don't have to worry about data validation when retrieving data. This means less code too.
- SQL. They all run a dialect of SQL which cuts down on the programming learning curve.
- They are reliable. ACID transaction handling means that there is less chance of data corruption. And we all know corruption is bad.
- They are mature. Oracle and DB2 have been around for over 30 years, SQL Server for more than 20, PosgressSQL more than 15. Most of the bugs are out of the system, and there is a lot of documentation available.
Don't jump into the NoSQL pool, unless you need too. SQL RDBMS's still provide the an excellent solution to most data storage and retrieval issues.