카테고리 없음

Database - Chapter 4-24. ERD(Entity Relationship Diagram) 프로그램

Chansman 2025. 3. 21. 13:30

📌 ERD(Entity Relationship Diagram) 프로그램 소개

🔖 ERD 프로그램이란?

ERD(Entity Relationship Diagram) 프로그램은 데이터베이스의 구조를 시각적으로 표현하여 복잡한 데이터베이스의 테이블, 관계, 속성 등을 쉽게 이해하고 설계할 수 있도록 돕는 도구입니다.

🔖 대표적인 ERD 프로그램

1️⃣ Aquery

  • 웹 기반 ERD 프로그램으로 직관적인 UI 제공
  • 빠르고 간편한 테이블 설계 가능
  • 🔗 Aquery 바로가기

2️⃣ MySQL Workbench

  • MySQL용 통합 설계 및 관리 도구
  • 데이터베이스 생성부터 관리까지 가능한 기능 제공
  • 무료이며 강력한 기능

3️⃣ Draw.io (diagrams.net)


🚩 ERD 실습 예시: Airbnb 데이터베이스 설계

🗃️ 테이블 정보

테이블명 설명

Users 사용자 정보를 저장
Properties 숙소 정보를 저장
Bookings 예약 정보를 저장
Reviews 숙소 리뷰 정보를 저장
Messages 사용자 간의 메시지를 저장

🧩 ERD 관계도

  • Users ↔️ Properties : 사용자는 여러 숙소를 등록 가능
  • Users ↔️ Bookings : 사용자는 여러 숙소 예약 가능
  • Properties ↔️ Bookings : 한 숙소는 여러 예약을 가질 수 있음
  • Properties ↔️ Reviews : 숙소는 여러 리뷰를 받을 수 있음
  • Users ↔️ Messages : 사용자끼리 메시지를 주고받을 수 있음

🛠️ 테이블 생성 SQL 쿼리

CREATE TABLE Users (
    userID INT AUTO_INCREMENT PRIMARY KEY,
    userName VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    createDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE Properties (
    propertyID INT AUTO_INCREMENT PRIMARY KEY,
    userID INT,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    address VARCHAR(255),
    pricePerNight DECIMAL(10, 2),
    createDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (userID) REFERENCES Users(userID)
);

CREATE TABLE Bookings (
    bookingID INT AUTO_INCREMENT PRIMARY KEY,
    propertyID INT,
    userID INT,
    checkInDate DATE,
    checkOutDate DATE,
    totalPrice DECIMAL(10, 2),
    bookingDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (propertyID) REFERENCES Properties(propertyID),
    FOREIGN KEY (userID) REFERENCES Users(userID)
);

CREATE TABLE Reviews (
    reviewID INT AUTO_INCREMENT PRIMARY KEY,
    propertyID INT,
    userID INT,
    rating INT,
    comment TEXT,
    reviewDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (propertyID) REFERENCES Properties(propertyID),
    FOREIGN KEY (userID) REFERENCES Users(userID)
);

CREATE TABLE Messages (
    messageID INT AUTO_INCREMENT PRIMARY KEY,
    senderID INT,
    receiverID INT,
    messageText TEXT,
    sendDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (senderID) REFERENCES Users(userID),
    FOREIGN KEY (receiverID) REFERENCES Users(userID)
);

🚀 MySQL Workbench를 통한 Reverse Engineering

  1. MySQL Workbench 실행
  2. 상단 메뉴에서 Database → Reverse Engineer 선택
  3. 데이터베이스 연결 후, Continue 클릭하여 진행
  4. 원하는 데이터베이스 선택 후 ERD 자동 생성

이 작업을 통해 기존 데이터베이스로부터 시각적인 ERD를 자동으로 추출할 수 있습니다!