Files
2026-05-04 10:30:04 +09:00

2.7 KiB

id, created, tags, aliases
id created tags aliases
RDBMS 20260420 2026-04-20 08:43

💡 생각

데이터간의 관계를 고민하고 관계를 이용해서 중복된 데이터가 들어가는것을 최소화하는 DB를 일컫는다고 보면 된다. 왜냐하면 데이터 정합성은 사실 RDBMS든 NoSQL이든 무조건 지켜주는게 좋은 부분이니까 이걸 RDBMS와 NoSQL의 차이다 라고 하기에는 좀 과하다고 생각된다.


📑 개념

관계형 DB의 가장 큰 특징은 데이터를 Table(표) 형태로 관리하고, 테이블 간의 Relation(관계) 을 정의한다는 점입니다.

📌 상세

  • 스키마(Schema): 데이터의 구조와 제약 조건을 정의한 설계도입니다.

  • 기본키(PK)와 외래키(FK): 테이블 간의 연결 고리이자 데이터의 유일성을 보장하는 핵심 장치입니다.

  • 무결성(Integrity): 데이터가 정확하고 일관되게 유지되도록 하는 규칙들입니다.

ACID 트랜잭션(Transaction)을 지킴으로 인해 DB에서 가장 중요한 덕목인 데이터 정합성(Data Consistency) 지키는데 특화됨. !ACID#📌 상세

성능 최적화: 인덱스와 정규화

실무에서 가장 많이 고민하게 되는 부분입니다.

  • 정규화(Normalization): 데이터 중복을 최소화하고 구조를 체계화하는 과정입니다. (1NF, 2NF, 3NF 등)

  • 인덱스(Index): 책의 색인처럼 데이터를 빠르게 찾기 위한 구조입니다. B-Tree 구조가 대표적이죠.

  • 실행 계획(Execution Plan): 작성한 SQL이 내부적으로 어떻게 실행되는지 분석하여 병목을 찾아내는 도구입니다.


주의

[!warning] 하지만 데이터 정합성의 경우 RDBMS의 고유한 특징이라고 하기엔 무리가 있다.

왜냐하면 DB라면 데이터 정합성을 지켜야하는게 당연하기 때문이다. ( 얼마나 정합성을 강하게 지켜서 성능에서 손해를 보느냐, 약간 덜 엄격하게 지키고 성능에서 이점을 얻느냐가 차라리 더 중요하다. )

RDBMS의 본질

[!note] RDBMS의 본질: "구조적 설계를 통한 중복 제어"

  • 정규화(Normalization): 데이터 간의 관계를 분석해 원자 단위로 쪼개고, 중복을 원천 차단하는 프로세스입니다.

  • 무결성 제약 조건: DB 엔진 차원에서 외래키(FK), 유니크(Unique) 제약 등을 통해 "중복되거나 잘못된 관계가 맺어지는 것"을 물리적으로 막습니다.

  • 저장 효율성: 중복을 최소화하기 때문에 저장 공간을 효율적으로 쓰고, 데이터 수정 시 한 곳만 고치면 되는 구조를 만듭니다.