CodeGym /Courses /SQL SELF /Creating an ERD (Entity-Relationship Diagram)

Creating an ERD (Entity-Relationship Diagram)

SQL SELF
Level 26 , Lesson 1
Available

Creating an ERD (Entity-Relationship Diagram)

ERD stands for Entity-Relationship Diagram. It's a visual way to show the structure of your database and how entities (tables) are connected to each other.

Think of an ERD as a subway map for your database. The stations are tables, and the lines connecting them are relationships. This map helps you figure out how to get from one station to another (and how tables interact).

An ERD is made up of:

  • Entities: these are objects or tables, like "Students", "Courses", "Teachers".
  • Attributes: these are columns in the tables, like ID, First Name, Last Name.
  • Relationships: these are the lines between tables showing how they're related, like one student enrolled in many courses.

With an ERD, you can not only plan your database, but also show your teammates or your boss how it all works. It's a super useful tool for any dev!

Main ERD Elements

  1. Entities

An entity is like a mini-database. Each entity matches a real-world object or concept you want to manage in your system. For example:

  • Table "Students".
  • Table "Courses".
  • Table "Checkouts" (in a library system).

Example:


+---------------+
| Students      |
+---------------+
| ID            |
| First Name    |
| Last Name     |
| Date of Birth |
+---------------+
  1. Attributes Attributes are the individual properties or characteristics of an entity. They show up as columns in your database table. For example:
  • For the "Students" table, you might have ID, First Name, Last Name.
  • For the "Courses" table, it's Course ID, Course Name.

In an ERD, they're usually listed inside the rectangle that represents the entity.

Relationships Between Entities

A relationship shows how two entities interact. Here are the main types of relationships:

  • One-to-one (1:1): for example, each student has one unique ID card.
  • One-to-many (1:N): for example, one teacher can teach several courses.
  • Many-to-many (M:N): for example, several students are enrolled in several courses.

Example of a "One-to-many" relationship:

Students (1) <----- enrolled in -----> (N) Courses

To make relationships work in your database, we usually use foreign keys.

How to Build an ERD?

Let's walk through the steps of building an ERD, plus an example for a library.

Step 1: Identify Entities

Your job is to break the system down into the main objects. For a library system, that's:

  • "Books".
  • "Readers".
  • "Checkouts".

Example:

+-------------+        +--------------+         +------------+
| Books       |        | Readers      |         | Checkouts  |
+-------------+        +--------------+         +------------+
| ID          |        | ID           |         | ID         |
| Title       |        | First Name   |         | Reader     |
| Author      |        | Last Name    |         | Book       |
| ISBN        |        | Date of Birth|         | Checkout Date|
+-------------+        +--------------+         +------------+

Step 2: Add Attributes

Each entity should have key attributes. For example:

  • The "Books" table should include ID (primary key), Title, Author, ISBN.
  • The "Readers" table—ID, First Name, Last Name.

Step 3: Set Up Relationships

Now add relationships between entities:

  • "Checkouts" are linked to "Books" (one book can be checked out multiple times).
  • "Checkouts" are linked to "Readers" (one reader can check out multiple books).

Step 4: Visualize

Use any diagram tool you like, for example:

  • draw.io
  • dbdiagram.io
  • Lucidchart
  • Microsoft Visio

The diagram will look like this:

[Readers] ----(1:N)---- [Checkouts] ----(N:1)---- [Books]

For each relationship, add the data type and a note, for example:

  • Reader ID in "Checkouts" is linked to the primary key in the "Readers" table.

Example: ERD for an Online Store

For an online store, you'll need a logical structure that includes:

  1. Users (registered customers).
  2. Products (items for sale).
  3. Orders.

Step 1: Entities

  • Users: User ID, Name, Email.
  • Products: Product ID, Name, Price.
  • Orders: Order ID, User ID, Order Date.

Step 2: Set Up Relationships

  • One user can make several orders (1:N).
  • One order can include several products (M:N).

Full ERD diagram:

[Users] ----(1:N)---- [Orders] ----(N:M)---- [Products]

To make a many-to-many relationship work, add a join table:

  • Order Details: Order ID, Product ID, Quantity.

Tips for Creating an ERD

  • First, think about what you want to see in your database. Everything starts with understanding your subject area.

  • Only include the attributes and entities that really matter. Too much detail can get confusing.

  • Make sure all relationships make sense logically. If a relationship feels weird, rethink it.

  • Use tools that help you visualize diagrams. It'll save you time and effort.

2
Task
SQL SELF, level 26, lesson 1
Locked
Bringing a table to Second Normal Form (2NF)
Bringing a table to Second Normal Form (2NF)
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION