SQL Introduction in DBMS
What is data?
Simply put, data can be facts associated with any object in question.
For example, your name, age, height, weight, etc. are some of the data related to you.
Image, image, file, PDF, etc. can also be considered as data.
What is a database?
The database is a systematic collection of data. Databases support the storage and manipulation of data. Databases make data management easier. Let's discuss some examples.
An online phone directory will definitely use a database to store data regarding people, phone numbers, other contact details, etc.
Your electrical service provider apparently uses a database to manage billing, customer-related issues, to process fault data, etc.
Let's also look at Facebook. It must store, manipulate, and present data related to members, their friends, member activities, messages, advertisements, and more.
We can provide countless examples of database usage.
What is a database management system (DBMS)?
A database management system (DBMS) is a set of programs that allows users to access a database, manipulate data, generate reports/present data.
It also helps control access to the database.
Database management systems are not a new concept and as such were first introduced in the 1960s.
Over the years, database technologies have changed a lot, and the use and expected functionality of databases has increased significantly.
Types of DBMS
Let's take a look at how the DBMS family has evolved over time. The following diagram shows the evolution of DBMS categories.
There are 4 main types of DBMS. Let's look at them in detail.
- Hierarchical - This type of DBMS uses parent-child relationships to store data. This type of DBMS is rarely used nowadays. Its structure is like a tree, with nodes representing records and branches representing fields. The Windows Registry used in Windows XP is an example of a hierarchical database. Configuration settings are stored in tree structures with nodes.
- Network DBMS - This type of DBMS supports many-to-many relationships. This usually results in complex database structures. RDM Server is an example of a database management system that implements the network model.
- Relational DBMS - This type of DBMS defines relationships with the database in the form of tables, also known as relationships. Unlike network DBMS, DBMS does not support many-to-many relationships. Relational DBMSs usually have predefined data types that they can support. This is the most popular type of DBMS on the market. Examples of relational database management systems include MySQL, Oracle, and Microsoft SQL Server databases.
- Object Oriented Relationship DBMS − This type supports the storage of new data types. The data to be stored is in the form of objects. The objects to be stored in the database have attributes (eg gender, ager) and methods that determine what to do with the data. PostgreSQL is an example of an object-oriented relational DBMS.
What is SQL?
SQL stands for Structured Query Language, pronounced "SQL" or sometimes "See-Quel". SQL is the standard language for working with relational databases. SQL can be used to insert, search, update and delete database records. SQL can perform many other operations, including database optimization and maintenance. Relational databases like MySQL Database, Oracle, Ms SQL server, Sybase, etc. use SQL.
SELECT * FROM Members WHERE Age > 30
The SQL syntaxes used in these databases are almost the same, except that some use several different syntaxes and even proprietary SQL syntaxes.
What is NoSQL?
NoSQL is a new category of database management systems. Its main characteristic is its non-compliance with relational database concepts. NOSQL stands for "not just SQL".
The concept of NoSQL databases has grown with internet giants like Google, Facebook, Amazon, etc. dealing with gigantic amounts of data.
When you use a relational database for large amounts of data, the system starts to slow down in terms of response time.
To overcome this, we could, of course, "expand" our systems by upgrading our existing equipment.
An alternative to the above problem would be to distribute the load on our database across multiple hosts as the load increases.
This is known as "scaling".
The NOSQL database is a non-relational database that scales better than relational databases and is designed with web applications in mind.
They do not use SQL to query data and do not follow strict schemas such as relational models. With NoSQL, ACID features (atomicity, consistency, isolation, durability) are not always guaranteed
Why does it make sense to learn SQL after NOSQL?
With the above benefits of NOSQL databases being more scalable than relational models, you might be thinking why would you want to learn about SQL database anyway?
Well, NOSQL databases are highly specialized systems and have their own special uses and limitations. NOSQL is more suitable for those who process huge amounts of data. The vast majority use relational databases and related tools.
Relational databases have the following advantages over NOSQL databases;
- SQL (relational) databases have an advanced data storage and management model. This is very important for corporate users.
- SQL databases support the concept of views, which allows users to see only the data they are allowed to see. Data that they are not authorized to view is hidden from them.
- SQL databases support sql stored procedures which allow database developers to inject a piece of business logic into the database.
- SQL databases have better security models compared to NoSQL databases.
The world has not deviated from the use of relational databases. There is a growing demand for professionals who can handle relational databases. So learning databases and SQL still makes sense.