# Database and Database management system (DBMS)
## Definition of Database
"In computing, a database is an organized collection of data stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques.
## Database Management System
The software which is used to manage the database is called Database Management System(DBMS). It provides us with an interface or a tool, to perform various operations like:
- Creating the database
- Manipulating the database
- Storing and retrieving the data from the database
- Selecting data from the database, et
The DBMS software additionally encompasses the core facilities provided to administer the database. The sum total of the database, the DBMS and the associated applications can be referred to as a "database system". Often the term "database" is also used to loosely refer to any of the DBMS, the database system or an application associated with the database.
## Types of Database
There are many different types of databases. The best database for a specific organization depends on how the organization intends to use the data. We'll discuss about two popular types of database that you might hear somewhere around.
### Relational databases
**Relational databases** became dominant in the 1980s. Items in a relational database are organized as a set of **tables** with **columns** and **rows**. Relational database technology provides the most efficient and flexible way to access structured information.
### NoSQL databases
In the 2000s, NoSQL database (**non-relational databases**) became popular, referred to as NoSQL because they use different query languages. A NoSQL allows **unstructured** and **semistructured** data to be stored and manipulated (in contrast to a relational database, which defines how all data inserted into the database must be composed). NoSQL databases grew popular as web applications became more common and more complex.
## SQL vs NoSQL
We choose NoSQL. The reason : "Beginner friendly yet as effective as the other". Eventually, it is recommended that , as a developer, we should have basic knowledge on both systems. So for those who have FOMO (Fear-Of-Missing-Out), feel free to study both.
### Comparision of NoSQL and SQL
| System | Pros | Cons |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| SQL | Flexible queries, Reduced data storage footprint, Strong and well-understood data integrity semantics | Rigid data models, Limited horizontal, Single point of failure scalability |
| NoSQL | Scalable and highly available, Flexible data models, Dynamic schema for unstructured data, High performance, High-level data abstractions | Distributed systems have distributed systems problems, Lack of flexibility in access patterns |