⚙️DB(Database)와 DBMS를 이해하

leejihyeon·2026년 5월 6일

📌DB란?

데이터의 집합 저장소
여러 사람이 공유하고 사용할 목적으로 한 곳에서 통합 관리되는 데이터의 집합이다.
이를 효율적으로 관리하기 위해 저장소 역할을 한다.

⚙️DBMS(Database Management System)

DB를 직접 관리하고 운영하는 시스템 SW이다.

💡DBMS의 주요 기능

  1. 데이터 정의(Definition)

    • DB의 논리적/물리적 구조(스키마, 테이블 등)를 정의하고 생성/수정/삭제하는 기능(CRUD) 제공
  2. 데이터 관리(Manipulation)

    • 사용자가 데이터를 효율적으로 CRUD(생성, 조회, 수정, 삭제)할 수 있도록 지원한다.
    • 데이터를 저장하기 위한 최적화된 파일 시스템을 내부적을 관리하며, 표준 쿼리 언어(SQL) 인터페이스를 제공한다.
  3. 데이터 보안(Security)

    • 사용자 권한 관리, 데이터 암호화, 감사 로그를 통해 불법적인 접근으로부터 데이터를 보호
  4. 트랜잭션 및 동시성 제어(Concurrency Control)

    • 다수의 사용자가 동시에 동일한 데이터에 접근할 때, 중복이나 데이터 불일치가 일어나지 않도록 제어
    • DBMS는 여러 사용자가 동시에 데이터에 접근할 때, 데이터의 일관성을 유지하기 위한 트랜잭션 관리 기능을 제공한다.
    • ACID 속성 보장
      • Atomicity(원자성) : 트랜잭션의 모든 작업이 성공적으로 완료되거나, 실패 시 모든 작업이 롤백
      • Consistency(일관성) : 트랜잭션이 DB를 일관된 상태로 유지
      • Isolation(고립성) : 동시에 실행되는 트랜잭션 간의 영향을 최소화
      • Durability(지속성) : 트랜잭션이 완료된 후 데이터의 변경 사항은 영구적으로 저장
  5. 백업 및 도구(Backup/Recovery)

    • 예기치 못한 시스템 장애 발생 시 데이터를 안전하게 복구할 수 있는 기능 제공

🔍 감사 로그란?
시스템이나 DB에 "누가, 언제, 어떤 데이터에, 무엇을(어떻게)했는지" 기록해주는 일종의 로그"

📊 DBMS 유형별 핵심 비교

구분관계형 DBMS (RDBMS)비관계형 DBMS (NoSQL)다중 모델 DBMS (Multi-model)
특징• 데이터를 행과 열의 테이블 형태로 구조화하여 저장
• 테이블 간의 '관계(Relationship)'를 활용하여 데이터를 연결
• 테이블 형식이 아닌 Key-Value, Document, Graph 등 다양한 형태로 저장
• 스키마가 고정되지 않아 자유로운 데이터 구조(Schema-less) 지원
• 하나의 DBMS에서 관계형 데이터와 비관계형 데이터를 동시에 지원
장점• 엄격한 데이터 무결성 보장
• 표준 SQL 지원으로 높은 범용성
트랜잭션 안전성(ACID) 우수
• 대규모 데이터 처리 용이
• 빠른 읽기/쓰기 성능
수평적 확장(Scale-out)에 매우 유리
• 여러 DB를 개별적으로 구축할 필요 없이, 하나의 시스템에서 하이브리드로 데이터 처리 가능
대표 예시MySQL, PostgreSQL, Oracle, SQL ServerMongoDB, Redis, CassandraAmazon DynamoDB, Azure Cosmos DB


RDBMS이란?

  • RDB를 관리할 수 있는 SW로 데이터를 테이블형식으로 관리한다.
  • RDBMS는 데이터 간의 관계를 정의한다.
  • 이러한 관계를 복잡한 Query를 실행할 수 있는 기능을 제공한다.

📌RDBMS의 특징

1. 테이블(Table) 구조
RDBMS에서 데이터는 행(Row)과 열(Col)로 이루어진 2차원 표(Table) 형태로 저장된다.
- 열(Column/Attribute) : 데이터의 속성을 나타내며, 고유한 이름과 데이터 타입(int, varchar 등)을 가진다.
- 행(Row/Tuple/Record) : 관계된 데이터 값들의 묶음으로, 하나의 구체적인 개체 인스턴스를 의미한다.

2. 데이터 무결성(Data Integrity)
데이터가 깨지지 않고, 정확성, 일관성, 유효성을 유지하는 성질이다.

  • 엔티티 무결성 : 모든 테이블은 중복되지 않고 NULL이 아닌 기본 키(Primary Key)를 가져야 한다.
  • 참조 무결성 : 외래 키(FK)값은 참조하는 테이블의 기본 키(PK)로 존재하거나 NULL이어야 한다.(고스트 데이터 방지)
  • 도매인 무결성 : 특정 열에 입력되는 값은 지정된 데이터 타입 및 제약 조건(ex. 나이는 0보다 커야 함)을 만족해야 한다.

3. 관계(Relationships)

  • 1:1 관계 : 본인 인증 정보와 회원 정보처럼 단 하나의 행끼리만 연결됨

  • 1:N 관계(가장 많이 쓰임) : 한 명의 고객(1)이 여러 개의 주문(N)을 생성하는 구조

  • N:M 관계 : 어려 학생(N)이 여러 과목(M)을 수강하는 구조(중간에 매핑 테이블을 두어 1:N, N:1로 풀어내는 것이 표준 설계)

    E-R다이어그램 페이지에서 관계 좀 더 알아보기

4. 키(Keys) 종류

  • 기본 키(Primary Key) : 행을 유일하게 식별하는 대표 키 / 중복 불가능 / NULL 불가능
  • 외래 키(Foreign Key) : 다른 테이블의 PK를 참조하는 키 / 테이블 간의 관계를 맺고 참조 무결성을 보장함
  • 유일 키(Unique Key) : 중복을 허용하지 않는 키 / 기본 키와 유사하나 NULL을 허용할 수 있으며, 한 테이블에 여러 개 지정가능(ex. 이메일 주소, 전화번호)

5. SQL(Structured Query Language)

  • RDBMS에서 데이터를 정의하고, 관리하기 위한 표준 언어이다.
  • 데이터를 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)하는 작업을 수행한다.

6. 정규화(Normalization)

  • 데이터의 중복을 줄이고, 일관성과 무결성을 유지하기 위해 데이터를 구조화하는 프로세스이다.
  • 여러가지 정규화 단계가 있으며, 각 단계는 데이터 중복을 줄이고 이상 현상을 방지하는 데 목적이 있다.

7. 인덱스(Index)

  • 특정 열의 검색 기능을 향상시키기 위해 사용된다.
  • 인덱스는 테이블의 데이터를 정렬하고, 효율적으로 접근할 수 있도록 지원한다.
  • 인덱스가 많아지면 삽입 및 수정 작업의 성능에 영향을 미칠 수 있다.

8. 트랜잭션(Transaction)

  • RDBMS는 트랜잭션이라는 단위를 통해 데이터베이스 작업을 처리하며, 이를 통해 데이터의 일관성과 무결성을 유지한다.
  • 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)이라는 ACID 속성을 따른다.
    • Atomicity: 트랜잭션의 모든 작업이 성공적으로 완료되거나, 실패 시 모든 작업이 롤백
    • Consistency: 트랜잭션이 데이터베이스를 일관된 상태로 유지
    • Isolation: 동시에 실행되는 트랜잭션 간의 영향을 최소화
    • Durability: 트랜잭션이 완료된 후 데이터의 변경 사항은 영구적으로 저장

SQL이란?

SQL 틀징

SQL 종류

0개의 댓글