RDBMS
기본 정보
- 명칭: RDBMS
- 영문명: Relational Database Management System
- 한글명: 관계형 데이터베이스 관리 시스템
- 분류: 데이터베이스 관리 시스템(DBMS)
- 주요 용도: 관계형 데이터 저장 및 관리
- 관련 주제: #RDBMS #DBMS #데이터베이스 #SQL #백엔드
개요
RDBMS(Relational Database Management System)는 데이터를 테이블(Table) 형태로 저장하고, 테이블 간의 관계(Relation)를 이용하여 데이터를 관리하는 데이터베이스 관리 시스템이다.
각 테이블은 Primary Key와 Foreign Key를 이용해 서로 연결되며, SQL을 통해 데이터를 조회·수정·삭제할 수 있다.
현재 대부분의 ERP, 쇼핑몰, 게시판, 금융 시스템, 기업 업무 시스템은 RDBMS를 기반으로 구축된다.
RDBMS 구조
Application
↓
SQL
↓
RDBMS
↓
Table
↓
Row
↓
Column
↓
Data
기본 구성 요소
Database
여러 개의 테이블을 포함하는 데이터 저장 공간이다.
Table
같은 성격의 데이터를 저장하는 구조이다.
예시
member
board
product
order
Row (Record)
데이터 한 건을 의미한다.
| id | name |
|---|---|
| 1 | 홍길동 |
Column (Field)
데이터의 속성을 의미한다.
| id | name | email | created_at |
관계(Relation)
Member
↓
Order
↓
Product
테이블 간 관계를 정의하여 데이터 중복을 줄이고 무결성을 유지한다.
Primary Key(PK)
테이블의 각 행을 고유하게 식별하는 키이다.
member_id
특징
- 중복 불가
- NULL 불가
- 테이블당 하나만 존재
Foreign Key(FK)
다른 테이블의 Primary Key를 참조하는 키이다.
order.member_id
↓
member.member_id
데이터의 관계를 표현한다.
ERD 예시
Member
member_id
name
↓
Order
order_id
member_id
↓
Product
product_id
ERD(Entity Relationship Diagram)는 데이터 구조를 시각화한 설계도이다.
SQL 예제
조회
SELECT *
FROM member;
추가
INSERT INTO member(
name
)
VALUES(
'홍길동'
);
수정
UPDATE member
SET name='김철수'
WHERE member_id=1;
삭제
DELETE
FROM member
WHERE member_id=1;
JOIN
여러 테이블을 연결하여 조회할 수 있다.
SELECT
m.name,
o.order_id
FROM member m
JOIN orders o
ON m.member_id=o.member_id;
JOIN은 RDBMS의 가장 큰 특징 중 하나이다.
정규화(Normalization)
데이터 중복을 최소화하고 무결성을 유지하기 위한 설계 기법이다.
목적
- 중복 제거
- 저장 공간 절약
- 유지보수 향상
- 데이터 일관성 확보
트랜잭션(Transaction)
여러 작업을 하나의 논리적 단위로 처리한다.
START TRANSACTION;
UPDATE account
SET balance=balance-1000
WHERE id=1;
UPDATE account
SET balance=balance+1000
WHERE id=2;
COMMIT;
실패 시
ROLLBACK;
을 수행하여 이전 상태로 복구한다.
ACID 원칙
| 원칙 | 설명 |
|---|---|
| Atomicity | 원자성 |
| Consistency | 일관성 |
| Isolation | 독립성 |
| Durability | 지속성 |
트랜잭션의 신뢰성을 보장하는 핵심 원칙이다.
인덱스(Index)
검색 성능을 향상시키는 자료구조이다.
CREATE INDEX idx_name
ON member(name);
대표 RDBMS
RDBMS와 NoSQL 비교
| RDBMS | NoSQL |
|---|---|
| 테이블 기반 | 문서·Key-Value 기반 |
| SQL 사용 | 전용 쿼리 사용 |
| JOIN 지원 | 대부분 제한적 |
| ACID 지원 | CAP 중심 설계 |
| 무결성 우수 | 확장성 우수 |
| 정형 데이터 적합 | 비정형 데이터 적합 |
RDBMS 장점
- 데이터 무결성 보장
- JOIN 지원
- SQL 표준 사용
- 트랜잭션 지원
- ACID 보장
- 안정성이 높음
RDBMS 단점
- 대규모 수평 확장이 어려울 수 있음
- JOIN이 많아질 경우 성능 저하 가능
- 스키마 변경 비용 발생
- 비정형 데이터 처리에 제약
대표 활용 분야
- ERP
- CRM
- 쇼핑몰
- 금융 시스템
- 병원 시스템
- 예약 시스템
- 게시판
- 그룹웨어
- 회계 시스템
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- Primary Key 반드시 설정
- Foreign Key 관계 명확히 설계
- 필요한 컬럼에 Index 생성
- 정규화를 우선 적용
SELECT *사용 최소화- EXPLAIN으로 실행 계획 분석
- 트랜잭션 최소 범위 유지
- 정기 백업 수행
- UTF-8(
utf8mb4) 사용 - ERD 문서를 최신 상태로 유지
RDBMS와 함께 사용하는 기술
대표 관리 도구
- MySQL Workbench
- DBeaver
- Navicat
- HeidiSQL
- DataGrip
- phpMyAdmin
관련 문서
출처
- Oracle Database Documentation
- MySQL 공식 문서
- 관계형 데이터베이스 이론 자료