We start to use LDAP and I wonder why LDAP is not that popular? I read that it has faster reads than database, however slower writes.
EDIT:
Its the first time i use LDAP and i have been programming in enterprise for sometime now. That is the reason why i thought its not popular, plus i never heard about it at school.
I think the OP was referring to the use of LDAP-type data (read: hierarchical databases), as a storage mechanism for application data.
While its quite obvious that most network logons are based on LDAP under the covers, it is true that a huge majority of business systems are based on the relational-data model, and very few are based on a hierarchical-data model.
Assuming this is the real question here :), I would provide a few partial answers, that together probably fully answer your question:
- Complexity and high bar of entry (as @Elijah mentioned)
- As you mentioned, it's not usually taught in school - and thus is not familiar to many, and therefore not commonly used (Is this recursion, or self-fulfulling prophecy?)
- Hierarchical datamodels are by design optimized to find specific data, and very costly to write or update new data. Most common business applications are OLTP (transaction) based, and require a large amount of writes (except BI-type apps, will relate to that in a moment).
- More specifically, hierarchical models are built to find specific elements of data, and not perform JOINs, mass SELECTs, GROUP BYs etc.(I mean this in a logical PoV, regardless of specific context).
- Most data IS relational, or can fit a relational model most easily. Especially for BI, where you want to see large swaths of data, perform comparisons, etc.
- Even for data that is not relational, our minds seem to be trained to think "relational-model" easier than hierarchical (though this might be a result of my second point - we were mostly taught this). It's just "easier" to categorize the data in neat rows and columns...