카테고리 없음

RDBMS(Relational Database Management System)

zzugest1 2026. 2. 10. 14:36

관계형 데이터베이스 관리 시스템의 약자로, 관계형 모델(Relational Model)을 기초로 데이터를 저장하고 관리하는 소프트웨어이다.

 

 

1. 데이터 구조: 2차원 테이블 (Table)

RDBMS는 모든 데이터를 행(Row)과 열(Column)로 구성된 2차원 표(Table) 형태로 저장한다.

  • 테이블 (Table / Relation): 데이터가 저장되는 기본 단위. (예: User 테이블)
  • 행 (Row / Tuple): 테이블 내의 개별 데이터 레코드. (예: 홍길동 유저 정보 한 줄)
  • 열 (Column / Attribute): 데이터의 속성을 정의. (예: ID, Name, Level)
  • 스키마 (Schema): 테이블의 구조, 제약 조건, 자료형 등을 미리 정의해 둔 설계도. RDBMS는 데이터 저장 전에 이 스키마가 확정되어야 한다.

 

2. 관계와 키 (Relationship & Keys)

RDBMS의 핵심은 테이블끼리 독립적으로 존재하는 것이 아니라, 서로 연결(Relation)되어 있다는 점이다. 이 연결을 위해 키(Key)를 사용한다.

  • 기본키 (Primary Key, PK):
    • 한 테이블 내에서 각 행(Row)을 유일하게 식별하는 값. (주민등록번호, 학번 등)
    • 중복될 수 없고, 비어있을 수(NULL) 없다.
  • 외래키 (Foreign Key, FK):
    • 다른 테이블의 기본키(PK)를 참조하는 값.
    • 이를 통해 두 테이블 간의 부모-자식 관계가 형성된다.
    • 예시: 아이템 테이블의 owner_id 컬럼이 유저 테이블의 id를 가리킴.

 

3. 데이터 무결성과 정규화 (Integrity & Normalization)

RDBMS는 데이터의 정확성과 일관성을 유지하는 것을 최우선으로 한다.

  • 무결성 제약조건 (Integrity Constraints):
    • 이상한 데이터가 들어오지 못하게 막는다. (예: 레벨에 -1 입력 불가, 없는 유저 ID로 아이템 생성 불가)
  • 정규화 (Normalization):
    • 데이터 중복을 최소화하기 위해 테이블을 잘게 쪼개는 설계 과정.
    • 데이터 수정 시 한 곳만 고쳐도 되도록 하여 불일치를 방지한다.

 

4. 트랜잭션과 ACID (Transaction & ACID)

모든 데이터 작업은 트랜잭션(Transaction) 단위로 처리되며, ACID 성질을 보장한다.

  1. 원자성 (Atomicity): "모두 성공하거나, 아예 실패해야 한다." (돈은 줬는데 아이템은 못 받는 상황 방지)
  2. 일관성 (Consistency): "규칙을 위반하는 데이터는 저장될 수 없다." (제약조건 준수)
  3. 격리성 (Isolation): "동시에 실행되는 트랜잭션은 서로 간섭하지 않는다." (A가 물건을 사는 동안 B가 그 물건 가격을 바꿀 수 없음)
  4. 지속성 (Durability): "성공한 트랜잭션은 영구적으로 저장된다." (서버가 꺼져도 기록은 남음)

 

5. 조작 언어: SQL (Structured Query Language)

RDBMS와 대화하기 위해 사용하는 국제 표준 언어이다.

  • DDL (정의어): 테이블 생성/수정 (CREATE, DROP, ALTER)
  • DML (조작어): 데이터 조회/추가/수정/삭제 (SELECT, INSERT, UPDATE, DELETE)
  • DCL (제어어): 권한 관리 및 트랜잭션 제어 (GRANT, COMMIT, ROLLBACK)