카테고리 없음
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를 쉽게 제작 가능
- 🔗 Draw.io 바로가기
🚩 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
- MySQL Workbench 실행
- 상단 메뉴에서 Database → Reverse Engineer 선택
- 데이터베이스 연결 후, Continue 클릭하여 진행
- 원하는 데이터베이스 선택 후 ERD 자동 생성
이 작업을 통해 기존 데이터베이스로부터 시각적인 ERD를 자동으로 추출할 수 있습니다!