1. Column names. SQL is very flexible so you can do things like SELECT * from joined tables. Perhaps a bit sloppy, but not bizarre IMO.
2. NULL. This is purely a performance optimization. You can have a optional foreign key to another table, without introducing an entirely new table.
3. ISBL and BS12 were obscure and had proprietary IBM baggage.
If you want to use a SQL DBMS will unique column name and no NULL, you can.
If I were going to write an article, I would include a legit deficiency, like no convenient anti-join.
1. Column names. SQL is very flexible so you can do things like SELECT * from joined tables. Perhaps a bit sloppy, but not bizarre IMO.
2. NULL. This is purely a performance optimization. You can have a optional foreign key to another table, without introducing an entirely new table.
3. ISBL and BS12 were obscure and had proprietary IBM baggage.
If you want to use a SQL DBMS will unique column name and no NULL, you can.
If I were going to write an article, I would include a legit deficiency, like no convenient anti-join.