RDB

데이터를 행(Row)과 열(Column)으로 구성된 테이블 형태로 저장하고, 테이블 간 관계를 정의해 데이터를 관리하는 데이터베이스입니다.

구조

[Users 테이블]                    [Orders 테이블]
+----+--------+-------+          +----+---------+--------+
| id | name   | email |          | id | user_id | amount |
+----+--------+-------+          +----+---------+--------+
|  1 | Alice  | a@... |          |  1 |    1    | 10,000 |
|  2 | Bob    | b@... |          |  2 |    1    | 20,000 |
+----+--------+-------+          |  3 |    2    |  5,000 |
                                  +----+---------+--------+
                                            ↑
                                       FK (외래키)

핵심 개념

개념설명
테이블데이터를 저장하는 기본 단위
PK (기본키)각 행을 고유하게 식별하는 키
FK (외래키)다른 테이블의 PK를 참조하는 키
스키마테이블 구조 정의

기본 SQL

-- 테이블 생성
CREATE TABLE users (
    id    INT PRIMARY KEY AUTO_INCREMENT,
    name  VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);

-- 삽입
INSERT INTO users (name, email) VALUES ('Alice', 'a@example.com');

-- 조회
SELECT * FROM users WHERE id = 1;

-- 조인 (테이블 간 관계 활용)
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id;

-- 수정 / 삭제
UPDATE users SET name = 'Bob' WHERE id = 1;
DELETE FROM users WHERE id = 1;

ACID 속성

관계형 DB가 트랜잭션에 대해 보장하는 4가지 특성입니다.

속성설명
Atomicity (원자성)트랜잭션은 전부 성공하거나 전부 실패
Consistency (일관성)트랜잭션 전후로 데이터 무결성 유지
Isolation (격리성)동시 트랜잭션이 서로 간섭하지 않음
Durability (지속성)커밋된 데이터는 영구 저장

RDB vs NoSQL

항목RDBNoSQL
데이터 구조고정 스키마 (테이블)유연한 스키마
관계 표현JOIN으로 표현중첩 구조 or 비정규화
확장 방식수직 확장수평 확장
일관성ACID 보장최종 일관성
대표 제품MySQL, PostgreSQLMongoDB, Redis

데이터 간 관계가 복잡하고 일관성이 중요한 경우 RDB가 적합합니다. 대용량 비정형 데이터나 빠른 확장이 필요한 경우 NoSQL을 고려합니다.

CSLOG에서 보기