On 26/09/2021 10.07, Stefan Ram wrote: > "Michael F. Stemper" <michael.stem...@gmail.com> writes: >> fitting hierarchical >> data into rows/columns just seems wrong > > There were hierarchical database management systems like > IMS by IBM based on that point of view. Today, almost all > hierarchical data that is stored in databases is stored > in relational databases. Maybe, the relational model has > proven superior to the hierarchical data model after all.
Back in the days of mainframes (and when the Flintstones was 'filmed before a live studio audience') hierarchical DBs were considerably faster than RDBMS. Because of this, we used to take a daily 'snapshot' of the transaction DBs (in IMS) and make a 'copy' as DB2 relational DBs, which were (supposedly) used for MIS (Management Information Systems - as distinct from TPS (Transaction Processing Systems)). These days RDBMS are (a lot!) faster - much of which would be better expressed as: the hardware these days is a lot faster. Therefore an RDBMS is sufficiently responsive, and we no-longer need to maintain separate, 'parallel' systems (and multiple mainframes)! Cue: NoSQL justifications... Today's best example of an hierarchical DB is probably LDAP. It is most commonly used within the 'directory' of communications systems, eg email. Such waters muddied considerably by MSFT's attempts to 'improve' international 'standards' and integrate AD with Exchange (so don't go there!). There have been some well-engineered systems based on LDAP, eg organisational/personnel and part/component break-downs. That said, unless looking at something such as just-mentioned, overlaying hierarchy onto 3NF and using an RDBMS would be my first thought - but because of the recursive JOINs, I recommend something more capable than SQLite. -- Regards, =dn -- https://mail.python.org/mailman/listinfo/python-list