Search⌘ K
AI Features

Overview of Databases

Understand what a database is and why it is essential in managing data efficiently. Learn the differences between relational and non-relational databases, including their characteristics and use cases. Discover how SQL is used to organize and maintain data integrity in relational databases and when to choose NoSQL alternatives for flexible data storage.

Imagine our online store is doing well and we're receiving many orders from our customers. To manage all these orders efficiently, we need to keep track of product availability, customer details, suppliers, and sales records. Handling all this information manually would be chaotic. This is where databases come in—they allow us to store, organize, and retrieve data efficiently.

Let's explore databases, their types, and how relational databases such as MySQL differ from non-relational databases. Understanding these concepts will provide a solid foundation for using SQL to manage and retrieve data effectively. We'll aim to:

  • Understand what a database is and why it is essential.

  • Identify different types of databases.

  • Differentiate between relational and non-relational databases.

What is a database?

A database is an organized collection of data that allows users to store, retrieve, and manage information efficiently. It acts as a structured storage system where data is categorized and indexed for easy access.

Why are databases important?

Let's look at some key reasons why databases are essential:

  • Databases allow structured storage of data, making retrieval faster and easier.

  • They help maintain accurate and consistent data.

  • Multiple users can access and modify data simultaneously.

  • Databases provide user authentication and role-based access to protect sensitive information.

Types of databases

Databases come in various forms, each suited for different use cases. The two primary types are:

  • Relational database

  • Non-relational database

Let's explore each of them one by one.

Relational databases (SQL-based)

Relational databases, such as MySQL, store data in structured tables with predefined relationships between them. SQL (Structured Query Language) manages and queries data in relational databases. Common relational databases include MySQL, PostgreSQL, Oracle Database, and Microsoft SQL Server.

Let’s look at some characteristics of the relational databases:

  • Data is organized in tables with rows and columns.

  • Tables can be linked using primary keys and foreign keys.

  • Data consistency and integrity are enforced through constraints.

An example of a relational database can be the OnlineStore database that we’ll use in this course. It has multiple tables like Products, Customers, Orders, and Suppliers. These tables relate to each other, ensuring organized and structured data storage. The Customers table has the following tabular structure:

CustomerID

CustomerName

Email

Phone

Address

1

John Doe

john.doe@smail.com

413-456-6862

123 Elm Street, Springfield, 01103

2

Jane Smith

jane.smith@inlook.com

708-567-5234

456 Maple Avenue, Riverside, 60546

3

Alice Johnson

alice.j@jmail.com

317-678-5717

789 Oak Lane, Greenwood, 46142

4

Michael Carter

michael.c@domain.com

205-789-4593

101 Pine Court, Meadowbrook, 35242

5

Charlie Davis

charlie.d@provider.net

541-890-1900

202 Birch Drive, Lakeview, 97630

Non-relational databases (NoSQL-Based)

Non-relational or NoSQL databases are designed for unstructured or semi-structured data. They offer flexibility in data storage and are widely used in big data and real-time applications. Some of the commonly used non-relational databases include MongoDB (Document-based), Cassandra (Column-based), Redis (Key-value store), and Neo4j (Graph-based).

Let’s look at some characteristics of the non-relational databases:

  • Data is stored in JSON, key-value pairs, or graphs.

  • Schema-less, allowing dynamic and flexible data structures.

  • Optimized for high scalability and large datasets.

In a NoSQL database like MongoDB, we store customer data in a document format:

PostgreSQL
{
"CustomerID": 1,
"CustomerName": "John Doe",
"Email": "john.doe@smail.com",
"Phone": "413-456-6862",
"Address": "123 Elm Street, Springfield, 01103"
}

This approach is more flexible but lacks the structured relationships of SQL databases.

Relational vs. non-relational databases

While both relational and non-relational databases store and manage data, they differ significantly in their architecture, flexibility, and use cases. Let’s take a quick overview of how one differs from the other:

Feature

Relational Databases (SQL)

Non-Relational Databases (NoSQL)

Data Structure

Tables with rows & columns

Documents, key-value, or graphs

Schema

Fixed schema (predefined structure)

Schema-less (flexible)

Relationships

Uses foreign keys and joins

Relationships managed in application logic

Query Language

SQL (Structured Query Language)

Various (e.g., JSON-based queries)

Use Cases

Transactional applications (e-commerce, banking)

Big data, real-time applications

Let’s look at an illustration that demonstrates the different types of databases.

Types of databases: Relational (SQL) and Non-relational (NoSQL)
Types of databases: Relational (SQL) and Non-relational (NoSQL)

SQL databases are best for structured, well-defined data, whereas NoSQL databases are more flexible and scalable for handling large and diverse data.

Best practices

Let’s review some important points to keep in mind while working with databases:

  • Use relational databases when data integrity and structured relationships are important.

  • Use NoSQL databases when handling large, unstructured, or fast-changing data.

  • Optimize SQL queries using indexes for better performance.

  • Maintain data consistency by enforcing primary and foreign key constraints.

Common mistakes to avoid

Here are a couple of common mistakes to avoid while working with databases:

  • In relational databases, failing to set foreign keys leads to data inconsistencies.

  • SQL databases are not optimized for flexible, schema-less data.

We have explored why databases matter, learned about various database types, and especially focused on what makes relational databases so popular. We also discussed how non-relational databases can be helpful in certain scenarios. Understanding the differences among them helps us choose the right database for different applications.