The Data Blog
Each type of database and database management system has its associated advantages and disadvantages, but when should you use one over the other? Is there a certain situation that one of these will be much more beneficial than another, or is the reverse true where using one will make it even harder for you to store and retrieve data?
Database management systems alike allow user access and data manipulation within a database but the way users actually interact with each database differs per usage of the DMS. For example, in a relational database management system typically users will use SQL for data manipulation and the process is inherently easy, making RDBMS' historically very popular. However, relational database management systems are not without their limits; it is hard to scale relational databases horizontally, or adding more to machines to your resources to allow for faster processing. As such, you may want to look into a different type of database management system if your work will involve horizontal scaling opposed to vertical scaling, the upgrading of system hardware.
So what other types of database management systems can one use? NoSQL databases such as graph databases and key-value store databases use document store objects to match a certain key to its one to one value such as integers, strings, and JSON objects. As opposed to relational databases, NoSQL databases tend to be highly scalable while also being quite efficient. Typically they are used for session management, account creation and set-up, and message-queuing. NoSQL databases are not without their disadvantages however; their 'eventual consistency' as part as their BASE structure as opposed to ACID results in some periods of time without updates rather than on the fly updates every time a change is made. Additionally, there isn't much of a standard in terms of uniformity for many NoSQL databases yet.
Network database management systems, invented by Charles Bachman, use network structures to define relationships between different entities, typically on larger networks of hardware. In network database management systems, parent nodes can relate to "member" or children nodes through many-to-many relationships. Thus, each node can connect with another making the database structurally simple and easy to follow. Consequently, this structure is difficult to change because of how connected each node is to one another and therefore one change can affect the whole database. Network database models are most commonly used when one needs a flexible way to represent entity relationships but not necessarily modify them.
There are many other types of database management systems one can use to interact with their database, and each have distinct advantages and disadvantages, Thus, it's always important to carefully examine your database, your goals for it, and how you'd like to interact with it to establish which database management system is right for you.