A quick review of the present need to store massive chunks of data relevant to multiple related or unrelated categories, reveals that databases must be highly effective at what they are designed to do.
This is not only because of the amount of data being continuously revised or modified that we are dealing with; the dynamics of it isn’t of sole interest anymore. Its because of the social value that every individual has assigned to them: databases are the literal backbone of a client’s lifestyle or a business’ worth.
Designing different types of databases lie at the core of the functionality that they provide to the users. Since data is a dynamic entity, the way it is stored varies alot. It is also the reason behind companies designing their own types of databases which comply with their needs.
In this article we shall be looking at the most commonly used databases. They are namely:
- Hierarchichal databases
- Network databases
- Object oriented databases
- Relational databases
- NoSQL databases
1. Hierarchical Databases :
Just as in any hierarchy, this database follows the progression of data being categorized in ranks or levels, wherein data is categorized based on a common point of linkage. As a result, two enitities of data will be lower in rank and the commonality would assume a higher rank. Refer to the diagram below:
Do note how Departments and Administration are entirely unlike each other and yet fall under the domain of a University. They are elements which form this hierarchy.
Another perspective advises visualizing the data being organized in a parent-child relationship, which upon addition of multiple data elements would resemble a tree. The child records are linked to the parent record using a field, and so the the parent record is allowed multiple child records. However, the vice versa is not possible.
Notice that due to such a structure, hierarchical databases are not easily salable; addition of data elements requires a lengthy traversal through the database.
2. Network Databases :
In Layman terms, a network database is a hierarchical databases, but with a major tweek. The child records are given the freedom to associate with multiple parent records. As a result a network or net of database files linked with multiple threads is observed. Notice how the Student, Faculty and Resources elements each have two parent records, which are Departments and Clubs.
Certainly, a complex framework, network databases are more capable of representing two directional relationships. Also the conceptual simplicity favors the utilization of a simpler database management language.
The disadvantage lies in the inability to alter the structure due to its complexity and also in it being highly structurally dependent.
3. Object Oriented Databases :
Those familiar with the Object Oriented Programming Paradigm would be able to relate to this model of databases easily. Information stored in a database is capable of being represented as an object which responds as an instance of the database model. Therefore, the object can be referenced and called without any difficulty. As a result the workload on the database is substantially reduced.
In the chart above, we have different objects linked to one another using methods; one can get the address of the Person (represented by the Person Object) using the livesAt() method. Furthermore, these objects have attributes which are in fact the data elements that need to be defined in the database.
An example of such models is the Berkeley DB software library which uses the same conceptual background to deliver quick and highly efficient responses to database queries from the embedded database.
4. Relational Databases :
Considered the most mature of all databases, these databases lead in the production line along with their management systems. In this database every piece of information has a relationship with every other piece of information. This is on account of every data value in the database having a unique identity in the form of a record.
Note that all data is tabulated in this model. Therefore, every row of data in the database is linked with another row using a primary key. Similarly every table is linked with another table using foreign key.
Refer to the diagram below and notice how the concept of ‘Keys’ is used to link two tables.
Due to this introduction of tables to organise data, it has become exceedingly popular. In consequence, they are widely integrated into Web-Ap interfaces to serve as ideal repositories for user data. What makes it further interesting is the ease in mastering it, since the language used to interact with the database is simple (SQL in this case) and easy to comprehend.
It is also worth being aware of the fact that in Relational databases, scaling and traversing through data is quite a light-weighed task in comparison to Hierarchical Databases.
5. NoSQL Databases :
A NoSQL originally referring to non SQL or non relational is a database that provides a mechanism for storage and retrieval of data. This data is modeled in means other than the tabular relations used in relational databases.
A NoSQL database includes simplicity of design, simpler horizontal scaling to clusters of machines and finer control over availability. The data structures used by NoSQL databases are different from those used by default in relational databases which makes some operations faster in NoSQL. The suitability of a given NoSQL database depends on the problem it should solve. Data structures used by NoSQL databases are sometimes also viewed as more flexible than relational database tables.
MongoDB falls in the category of NoSQL document based database.
Advantages of NoSQL –
There are many advantages of working with NoSQL databases such as MongoDB and Cassandra. The main advantages are high scalability and high availability.
Disadvantages of NoSQL –
NoSQL has the following disadvantages.
- NoSQL is open-source database.
- GUI is not available
- Backup is a weak point for some NoSQL databases like MongoDB.
- Large document size.
These are but a few types of database structures which represent the fundamental concepts extensively used in the industry. However, as mentioned earlier, client’s tend to focus on creating databases which would suit their own needs; to store data in a schema which showcases a variable functionality based on its blueprint. Hence, the scope for development in reference to databases and database management systems is bright.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Indexing in Databases | Set 1
- Denormalization in Databases
- Introduction to Graph Databases
- Horizontal and Vertical Scaling In Databases
- Active Databases
- Concepts of Distributed databases
- How to Store and Extract XML Documents from Databases
- Clausal Form in Deductive Databases
- Horn Clauses in Deductive Databases
- Primary Indexing in Databases
- Top 10 Open-Source NoSQL Databases in 2020
- Types of Keys in Relational Model (Candidate, Super, Primary, Alternate and Foreign)
- Types of Sources of Data in Data Mining
- Types of OLAP Systems in DBMS
- Types of Schedules in DBMS
- Types of Schedules based Recoverability in DBMS
- Types of Large Objects(LOBs)
- Different types of Procedures in MySQL
- Different types of MySQL Triggers (with examples)
- Neo4j | Values and Types
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.