DEV Community

Cover image for Database Fundamentals
Sami
Sami

Posted on

Database Fundamentals

πŸ“š Database Fundamentals - Learning Notes

Learn database basics in simple language that anyone can understand!


πŸ“– What You'll Learn

  1. Why Data is Important
  2. What are Databases?
  3. What Makes a Good Database?
  4. Different Types of Databases
  5. Relational Databases Explained
  6. What is DBMS?
  7. What Does DBMS Do?
  8. Understanding Database Keys
  9. Relationships Between Data
  10. Problems with Databases

🎯 Why Data is Important

Think of a database as a smart filing cabinet that stores information in an organized way.

Simple Definition: A database is a place where we keep related information together so everyone in a company can use it easily.

What Can You Do With Databases?

Store Lots of Information

Instead of keeping information in many Excel files or paper documents, you can put everything in one place. You can then easily search and find what you need.

Analyze Your Data

You can ask questions like "How many customers bought products last month?" and get answers quickly. You can also create reports to understand your business better.

Keep Track of Records

Need to remember who paid you money? What items are in your store? Customer phone numbers? A database keeps all this safe and organized.

Run Websites and Apps

Every time you use Facebook, Amazon, or any app, there's a database working behind the scenes to show you the right information.


πŸ’Ύ What are Databases?

Imagine you have a notebook where you write:

  • Names of your friends
  • Their phone numbers
  • Their birthdays

A database is like that notebook, but on a computer. It's organized, you can search it super fast, and many people can use it at the same time.


✨ What Makes a Good Database?

A good database should have these 5 things:

1. Integrity (Correctness)

The information should be accurate. If someone's age is 25, it shouldn't suddenly become 250!

2. Availability (Always Ready)

Whenever you need the data, it should be there. Like 24/7 customer support for your information.

3. Security (Protected)

Only the right people should see the information. Your bank details shouldn't be visible to everyone!

4. Independent of Application (Flexible)

The database should work with any program. Like how a USB drive works with any computer.

5. Concurrency (Multi-user)

Many people should be able to use it at the same time without problems. Like how many people can watch Netflix at once.


πŸ—‚οΈ Different Types of Databases

Just like there are different types of vehicles (car, bike, truck) for different needs, there are different types of databases:

1. Relational Databases (SQL)

This is like an Excel spreadsheet with tables, rows, and columns. Most popular and widely used!

Example: MySQL, PostgreSQL, Oracle

2. NoSQL Databases

Good for storing messy data like photos, videos, social media posts, documents.

Example: MongoDB (used by companies like Uber, eBay)

3. Column Databases

Instead of storing data row by row, it stores column by column. Great for analyzing huge amounts of data.

Example: Google BigQuery, Amazon Redshift

4. Graph Databases

Perfect for showing connections between things - like your friends on Facebook or recommendations on Netflix.

Example: Neo4j, Amazon Neptune

5. Key-Value Databases

Super simple - like a dictionary. You have a word (key) and its meaning (value).

Example: Redis, DynamoDB

Which one to pick? It depends on what you're building. For most beginner projects, start with Relational Databases!


πŸ”„ Relational Databases Explained

Think of a relational database as multiple Excel sheets that are connected to each other.

Example:

  • Sheet 1: Student names and their ID numbers
  • Sheet 2: Class names and which students are in them
  • These sheets are "related" because they both use student IDs

How it looks:

  • Tables = Excel sheets
  • Rows = Each line of information (like one student)
  • Columns = Types of information (like name, age, email)

πŸ–₯️ What is DBMS?

DBMS = Database Management System

Think of it as the manager of your database.

Simple Analogy:

  • Database = Library (where books are stored)
  • DBMS = Librarian (who helps you find books, add new books, remove old books)

Popular DBMS software: MySQL, PostgreSQL, Oracle, Microsoft SQL Server


βš™οΈ What Does DBMS Do?

The DBMS is like a super assistant that does these jobs:

Data Management

Helps you save information, find it later, and change it when needed.

Keeps Data Accurate (Integrity)

Makes sure the information stays correct. Like preventing you from entering "ABC" as someone's age.

Multi-user Access (Concurrency)

Lets many people use the database at the same time without conflicts.

Transactions

Ensures that when you do something (like transferring money), it either completes fully or doesn't happen at all. No half-done work!

Security

Only authorized people can see or change the data. Like having passwords for your email.

Useful Tools (Utilities)

Helps with backup (saving copies), importing/exporting data, and managing users.


πŸ”‘ Understanding Database Keys

What is a Key?

A key is like a unique ID that helps identify each piece of information in your database.

Real-life example: Your Aadhaar card number is unique to you. No one else has the same number.

Types of Keys (Simplified):

1. Super Key

Any combination of information that can uniquely identify a row.

Example: In a student table, "Roll Number + Name" can identify a student.

2. Candidate Key

The smallest piece of information that can uniquely identify someone. No extra stuff needed.

Example: Just "Roll Number" is enough. You don't need the name too.

3. Primary Key ⭐ (Most Important!)

The ONE key you choose to identify each row. It's the main ID.

Example: Roll Number is the primary key for students.

Rules:

  • Must be unique (no duplicates)
  • Cannot be empty (no null values)
  • Only one primary key per table

4. Alternate Key

Other candidate keys that you didn't choose as the primary key.

Example: Email could also be unique, but you chose Roll Number as primary.

5. Composite Key

When you need TWO or more columns together to uniquely identify a row.

Example: "Class + Seat Number" together identify a student (because seat numbers repeat in different classes).

6. Surrogate Key

An artificial ID you create when there's no natural unique identifier.

Example: Auto-generated customer ID: CUST001, CUST002, CUST003...

7. Foreign Key

A key from another table used to connect two tables together.

Example: Student table has a "Branch_ID" that connects to the Branch table.

Example Table:

Roll No ⭐ Name Branch Email
1 Ash CSE ash@gmail.com
2 Brock EEE brock@gmail.com
3 Tracy ME tracy@gmail.com

Here, Roll No is the Primary Key!


πŸ”— Relationships Between Data

Cardinality sounds complex, but it just means: "How many?"

It tells us how many items in one table can connect to items in another table.

Easy Examples:

1. One Person β†’ One Driving License (One-to-One)

Each person has only one driving license, and each license belongs to only one person.

2. Many Students β†’ One Branch (Many-to-One)

Many students can be in the CSE branch, but each student belongs to only one branch.

3. One Restaurant β†’ Many Orders (One-to-Many)

One restaurant can have many orders, but each order comes from one restaurant.

4. One Restaurant β†’ One Menu (One-to-One)

Each restaurant has one menu (in this simple case).

5. Many Students β†’ Many Courses (Many-to-Many)

Students can take multiple courses, and each course has multiple students.

Quick Summary:

  • One-to-One (1:1) = Each person has exactly one passport
  • One-to-Many (1:N) = One teacher teaches many students
  • Many-to-One (N:1) = Many employees work in one department
  • Many-to-Many (M:N) = Many students attend many classes

⚠️ Problems with Databases

Nothing is perfect! Here are some challenges with databases:

Complexity

Setting up a database is not easy. It takes time to learn and do it properly, especially for big systems.

Cost

You need to buy software, powerful computers, and hire people who know how to manage it. This can be expensive.

Scalability Issues

When your data grows too big, the database can become slow. Imagine a closet that's too full - hard to find things!

Data Accuracy Problems

When many people update data at the same time, mistakes can happen. Like two people editing the same document simultaneously.

Security Risks

Hackers are always trying to steal data. You need to constantly protect your database from attacks.

Migration Headaches

Moving data from one database to another is like moving houses - difficult and time-consuming!

Rigid Structure

Once you design your database, changing it later is hard. Like trying to add a room to a house after it's built.


πŸ’‘ Quick Tips for Beginners

βœ… Start with relational databases (SQL) - they're the most common

βœ… Practice with small projects - like a contact list or to-do app

βœ… Learn SQL commands - they're like English sentences

βœ… Don't worry about memorizing everything - understanding concepts is more important

βœ… Use free databases like MySQL or PostgreSQL to practice


🀝 Want to Contribute?

Found a typo? Want to add more simple examples? Feel free to improve these notes!


πŸ“œ License

These notes are free to use for learning. Share with friends!


🌟 Thank You

These notes are from my learning journey. I hope they help you understand databases easily!

Remember: Everyone starts as a beginner. Take it one step at a time! πŸš€


Questions? Confused about something? That's normal! Keep reading and practicing - it'll click! πŸ’ͺ

Top comments (0)