Types of Database Management Systems and Their Amazing Benefits

Types of Database Management Systems and their Benefits
A database is used to collect, store, and group data. A good database management system (DBMS) ensures an efficient management of the stored data by allowing users and the administrator to access it, while also maintaining data security. Buzzle enlists the different types of database management systems and their benefits.
Simply Put
A database management system or database manager is a set of computer programs that allow users to create and access data, and provide them with ways to retrieve and modify it.
A database organizes related data such that it can be accessed by users. A DBMS is designed to manage this data, which includes managing user access rights for viewing, adding, deleting, and modifying records. IBM's Information Management System (IMS) was one of the first database management systems to be used.

A database handles user requests and maintains data integrity. It means that the data is protected, though always open for access.

Based on the number of users supported, database management systems can be classified as single-user and multi-user. A single-user database supports only one user at a time, which means that other users have to wait till the first one has finished accessing it. A multi-user database, as its name implies, lets multiple users access the data simultaneously, but with limited rights given to each user.

Database systems can also be classified as centralized and distributed. A centralized database system consists of a CPU which handles multiple storage devices together. While the data is accessed from multiple sites, the database is maintained at a central location. A distributed database has the data distributed over multiple computers or networks. The database may or may not be at a central location. Security is achieved by maintaining a master database with copies of the data on other locations. The data is periodically synchronized so that changes made on one location are reflected on the others.

This Buzzle article tells you about the different types of database management systems and their benefits.
Flat File
A flat-file model is simple. Each line of text holds a single record usually separated by commas. Other delimiters could also be used. The database can contain records with no link between them. It cannot hold multiple tables like a relational database. A spreadsheet or word processor is used to implement a flat file. Examples of flat file database systems include MS Excel and FileMaker.
► All records are stored at one place. The structure is simple.

► It works well for small databases and has minimum software and hardware requirements.
A hierarchical database consists of records that are linked to each other. Every record is a collection of fields, each of which contains a single value. A hierarchical database follows a parent-child relationship. For a better understanding, think of it as an upside-down tree.

A hierarchical database is represented in the form of boxes. The relationships between a parent and a child can be one-to-one or one-to-many. A parent may or may not have an arrow pointing to the child but a child must have an arrow pointing towards its parent. A hierarchical database can't handle many-to-many relationships like relational databases. Examples of hierarchical database systems include ADABAS (Adaptable DAta BAse System).
► Since most of the relationships are one-to-one, the database structure is easy to understand even for non-programmers. After finding the first record, you don't need to do an index scan. You just follow the parent pointer directing you towards the next record.

► As data is stored in a common database, it becomes easier to view it. Modifications, if any, can be made easily in the file by replacing the existing data.

► It becomes easy for the administrator to maintain the database by changing the records in their respective fields.
A network database was created for representing complex data more effectively. It is similar to the hierarchical model but in this case, a child can have multiple parents and vice versa. It forms a general graph or a network of hierarchies.

The schema, subschema, and the data management language are the key components of this database. The schema is the conceptual representation of the database while the subschema comprises the data within the database. The data management language defines the data characteristics and structure in order to manipulate the data. It was eventually replaced by the relational model which made it easier to store and change data at the same time. Examples of network database systems include Integrated Data Store (IDS) and Integrated Database Management System (IDMS).
► Like a hierarchical database, the components of a network database can have multiple parent-child relationships. Its capacity to maintain data is more than that of the hierarchical model.

► Since there's always a link between a parent and a child, the integrity of the data is maintained.

► The database has to spend less time maintaining records due to the elimination of redundant tables, which improves efficiency and the overall performance.
A relational database is a collection of data items organized in tables consisting of rows called records and columns called fields from which data can be accessed any time. A relational database can be accessed using query languages such as SQL. Queries are used to create, modify, or retrieve data. Access rights are better managed.

Generally, data is stored in the form of tables. Every table has a primary key column. A primary key is used as a unique identifier for each record. No two records can have the same primary key. The concept of foreign keys is used to establish relations between two or more tables. A foreign key is a field in one table that uniquely identifies a row of another table. It is used for cross-referencing and linking data between tables. Examples of relational database systems include MySQL and Microsoft SQL Server.
► User rights can be restricted depending on what data should be made visible or modifiable to which users. This allows for greater security.

► With a hierarchical database, you need to access the root and work your way down. As against that, a relational database gives you flexibility of access.

► Duplication of data is avoided, thus keeping the size of the database down. This reduces its memory requirement and also increases efficiency.
As the name implies, it's a database consisting of objects as used in object-oriented programming. These databases work well with object-oriented languages such as Perl, C++, Java, Smalltalk, and others.

Similar objects are grouped into a class and every object of a particular class is called its instance. Classes allow a programmer to define data that is not included in the program. Since a class only defines the data it needs to be concerned with, if an object of that class is run, it won't be able to access other data, thus avoiding data corruption and ensuring security. Classes exchange data between themselves through the use of messages called methods. They have a property called inheritance, which means that if a class is defined, a subclass can inherit its properties without defining its own methods. This means that a subclass can implement the same code. This speeds up program development. Examples of object-oriented database systems include Versant.
► Classes allow the grouping of objects having similar features. A superclass can be created combining all classes. This leads to reduced data redundancy and class reusability, thereby allowing easier maintenance of data.

► The database is capable of storing different types of data such as audio, video, pictures, etc.

► A query language may not be needed, as all the transactions take place by accessing objects transparently.
A multidimensional database is closely related to online analytical processing which is a part of business intelligence and data warehousing. Online analytical processing (OLAP) makes it easy to extract and view data through different points of view. It can be used to access multidimensional data. Multidimensional databases can be visualized as data cubes that represent different dimensions of the available data. It combines the advantages of hierarchical and relational databases. Examples of multidimensional databases include Oracle Essbase and Microsoft SAS.
► It answers queries quicker than relational databases because of multidimensional indexing and optimized storage.

► The output of multidimensional databases has a spreadsheet-like view which is not achievable in case of relational databases.
An object-relational database offers the best of both worlds. It has a relational database combined with object-oriented concepts like objects, classes, inheritance, and polymorphism. It functions in a manner similar to relational databases. Examples include IBM's DB2.
► It can fetch data easily through polymorphism. Reusing the data becomes easier.

► Since it encompasses the best of relational and object-oriented databases, scalability is not an issue. Huge volumes of data can be stored inside classes.
Basically, a hybrid system is a combination of two or more databases. Hybrids are used when one type of database isn't sufficient to handle all the queries. It supports both on-disk and in-memory storage. An in-memory database uses the main memory for data storage, while a disk-resident database uses disk-based storage. In-memory databases rank higher on performance, while on-disk databases are more durable and cost-saving. A hybrid database combines the advantages of the two. Examples include ALTIBASE HDB.
► A hybrid design is meant to reap the advantages of the two or more database types that it is composed of.

► Retrieving data from memory instead of the disk, makes the operations faster. This makes a hybrid database score high on performance.
These were the different types of database management systems. Each type has its own benefits, but deciding the one which is best-suited for a particular organization depends on the nature and amount of data that it needs to handle.