What is a Database Management System? (DBMS)

  • Databases, on their own, are pretty pedestrian things. Few people talk about them or get excited about them. So few, in fact, that most people do not even realize what their database is and mistake the database for the application that manages access to the database – a database management system. When we talk about “what database do you use?” it is the DBMS that we are almost invariably discussing. Common DBMS include the following: MySQL, MariaDB, Oracle, Microsoft SQL Server, PostgreSQL, Sybase, IBM DB2, Informix, Redis, MongoDB, CouchDB, LevelDB, etc.

    If a pure database is the “data” equivalent to block storage, then a DBMS is the equivalent to a file server or NAS. It is a higher level of logic that provides additional services, primarily around multi-access, to the more basic underlying storage or data.

    A single DBMS may talk to one or more databases or database types. Most can handle many individual databases. Some, like MySQL, can talk to many databases through a variety of database engines. MySQL is famous for using both the MyISAM and InnoDB database engines under the single MySQL DBMS umbrella. And it can use many other database engines as well, those two are just the ones that are most widely used and well known.

    Unlike databases, DBMS are actually applications that we run. So these are the processes that we watch to see about memory consumption, CPU utilization and such.

    DBMS are what allow many applications or users to connect simultaneously to a single database “file” and access information at the same time. For example, one instance of MySQL will talk to a single MyISAM table file on disk but allow many WordPress applications to talk to it at once without causing data corruption because the DBMS handles locking, integrity and access controls. It is the DBMS that handles security, permissions, logging and other functions.

    Databases on their own are very useful, but DBMS take them to a completely different level. Just as hard drives are very useful on their own, file servers make them so much better at sharing data between many users and many different computers.

  • Interesting, I didn't know that a DBMS ever supported more than one type of DB. Though I suppose there is no technical reason why it couldn't.

  • @Dashrender said:

    Interesting, I didn't know that a DBMS ever supported more than one type of DB. Though I suppose there is no technical reason why it couldn't.

    Many only have one, although fewer and fewer. It is by adding more engines that MS SQL Server has been able to add new pure memory database features, for example. It allows you to chose a different engine under the hood. MySQL is the most famous, though, as if has like a dozen well known engines that plug into it and at least four of which are commonly used. So working with MySQL you are constantly dealing with switching engines, asking which one is in use, etc.

  • They work very differently too. MySQL's features vary significantly based on which engine is in use. They perform differently, have different relational abilities, store differently on disk (MyISAM is one file per table, InnoDB is one file for everything) and use different tools.