Normal Forms: Are They Actually Used?

by Alexandru Lungu 4. September 2010 14:26


I’ve been designing databases for more than half my life. And I never thought about normal forms. Actually I’ve heard about normal forms in my 2nd year in college; and I was so surprised that someone actually wasted his time writing about something so obvious. And because I had to learn them I took a little time to look deep into them. A few hours later I reached a conclusion (And I remember the exact words I told to a colleague): A useless set of rules that make me design a database 20 times slower than I normally do. Of course, I was ending up with identical design in both situations.

But, during times, I’ve seen a lot of bad database design; and if asked why it is bad I found to be easier to send the asker to read about the normal forms than to try to explain myself. 

The other days I saw a teacher with more than 30 years teaching experience looking at a small database, taking every table, column, checking dependencies to see if it is in the 3rd form. It took him about 10 minutes to reach my 30 seconds conclusion.

So, why I don’t think “normal forms”? I think that the way I learned programming and databases influences the way I reason.

I began my programming journey with Pascal in 9th grade. Very soon advanced to OOP and I also started creating application that were solving real life problems and of course get to wonder how to store data. I had objects and looking for a way to store them with minimum redundancy.  And I used what Pascal knew - sequential files based on which I created some sort of primitive databases. With Main Key,  Field Key, Link Key with the equivalent of Primary Key, Index, Foreign Key. That’s because I had absolutely no idea about the existence of databases so I had to create my own notions. Keep in mind that I was living in a small city where no computer science book could be found; we had no internet; half of the school year we had no teacher because no computer science teacher could be found; in the end we got an engineer that learned 25 years ago something with punch-cards and didn’t work in the same domain since. Therefore, the teacher was learning at the same time with us. (and the rest of the class were all pupils.) This happens when you’re born in a god forgotten city in a god forgotten country. But our lab had some i386 laptops donated by a US company that didn’t need them anymore as they bought the new i486.

About a year later a colleague came with a treasure: FoxPro and a few month later I went to Bucharest (yes, that’s the capital) where I spent all the money (saved in about a year) on computer science books (actually after looking in more than a dozen bookstores I found a book on FoxPro.

Soon I mastered the FoxPro and this got me a job during high school.

So, how do I conceive my tables? Well, I think it all has to do with objects; as in high school I start thinking of objects and then transform them into tables. Simple; effective; obvious; natural way (for me).

Do you use normal forms?




R.I.P. VistaDb?

by Alexandru Lungu 11. July 2010 13:39


VistaDb is closing their office as its founder states here.

I was one of the many that wasn’t seduced by VistaDb. I did take it into consideration along SqlCe and SQLite for an application. Though I was impressed the most by SQLite I end up using SqlCE because of better date/time manipulation and it was integrated in Visual Studio; also because I anticipated a better implication of Microsoft in the forthcoming releases as it will be a necessary piece in the battle to occupy the mobile devices software.

At that time VistaDB had the worst stats in benchmarks, wasn’t free like the others, and it was at its infancy. So it had no chance in choosing it.

Looking now at their features (if they really work as advertised), it is an impressive piece of software that probably took a lot of development time – mostly high quality development time (building something like VistaDB this is not the same thing as dragging and dropping a few controls on the form and binding them to a data source). 

And since it is closing down it can be purchased for almost nothing.

Therefore I think that there will be a buyer. And VistaDB will not Rest In Peace; at least not so soon.

Tags: ,


Powered by BlogEngine.NET
Original Design by Laptop Geek, Adapted by onesoft