Relational database management systems (RDBMS) implement the relational model of tables and relationships.
Background on Database Management Systems
The term DBMS has been around since the 1960s when IBM developed the first DBMS model called Information Management System, in which data were stored in a computer in a hierarchical tree structure. Individual pieces of data were connected only between parent and child records. The next generation of databases were network DBMS systems, which tried to solve some of the limitations of the hierarchical design by incorporating a one-to-many relationship between data. This took us into the 1970s when IBM’s Edgar F. Codd established the relational database model, the precursor to that we know today.
Features of the Modern Relational DBMS
Relational database management systems implement the relational model of tables and relationships. The primary design challenge of today’s relational DBMSs is to maintain data integrity, which protects the accuracy and consistency of the data, through a series of constraints and rules on the data to avoid duplication or data loss. DBMSs also control access to the database through authorization, implemented at various levels. For example, managers or administrators might have access to data that is not visible to other employees, or they may have the authorization to edit the data while some users can only view it.
Examples of DBMSs
Choosing which database you need is a complex task. Oracle, Microsoft SQL Server, and IBM DB2 dominate the high-end relational DBMS market and are all reasonable choices for complex and large data systems. For small organizations or home use, popular DBMSs are Microsoft Access and FileMaker Pro. More recently, other nonrelational DBMSs have grown in popularity. These are the NoSQL flavor, in which a more flexible structure replaces the rigidly defined schema of the RDBMs. These are useful for storing and working with very large datasets comprising a wide range of data types. Major players in this space include MongoDB, Cassandra, HBase, Redis, and CouchDB.