[TIL] Day 87 DBMS

현서·2026년 4월 1일

[TIL] Flutter 9기

목록 보기
99/102

DBMS


DBMS란?

Database Management System

데이터베이스를 관리하는 소프트웨어.
데이터를 저장, 조회, 수정, 삭제할 수 있도록 도와주는 시스템.

파일에 직접 데이터를 저장하면 중복, 충돌, 보안 문제가 생기는데
DBMS가 이 모든 걸 체계적으로 관리해줌.


DBMS가 하는 일

  • 저장 — 데이터를 구조화해서 저장
  • 조회 — 원하는 데이터를 빠르게 검색
  • 동시성 제어 — 여러 사용자가 동시에 접근해도 충돌 없이 처리
  • 보안 — 권한에 따라 데이터 접근 제어
  • 백업 & 복구 — 장애 발생 시 데이터 복원

DBMS의 종류

관계형 DBMS (RDBMS)

테이블(행과 열) 구조로 데이터를 저장.
테이블 간 관계를 정의해서 데이터를 연결.
SQL로 데이터를 다룸.

대표 제품특징
MySQL오픈소스, 웹 서비스에서 가장 많이 쓰임
PostgreSQL기능이 풍부, 복잡한 쿼리에 강함
SQLite파일 기반, 모바일 앱 로컬 DB로 자주 쓰임
Oracle대기업 환경, 유료

비관계형 DBMS (NoSQL)

테이블 대신 문서, 키-값, 그래프 등 다양한 형태로 저장.
스키마가 유연해서 데이터 구조가 자주 바뀌는 서비스에 적합.

대표 제품형태특징
Firestore문서(Document)Firebase 기반, 실시간 동기화
MongoDB문서(Document)JSON 형태로 저장
Redis키-값(Key-Value)메모리 기반, 캐싱에 자주 사용

SQL 핵심 문법

RDBMS를 다루는 언어.

-- 조회
SELECT * FROM users WHERE age > 20;

-- 삽입
INSERT INTO users (name, age) VALUES ('현서', 25);

-- 수정
UPDATE users SET age = 26 WHERE name = '현서';

-- 삭제
DELETE FROM users WHERE name = '현서';

핵심 개념

트랜잭션 (Transaction)

여러 작업을 하나의 단위로 묶는 것.
중간에 실패하면 전체를 되돌림 (롤백).

계좌 이체 예시
1. A 계좌에서 10,000원 차감
2. B 계좌에 10,000원 추가
→ 둘 다 성공해야 완료, 하나라도 실패하면 전체 취소

ACID

트랜잭션이 보장해야 하는 4가지 성질.

속성의미
Atomicity (원자성)전부 성공하거나 전부 실패
Consistency (일관성)트랜잭션 전후 데이터 규칙 유지
Isolation (격리성)동시 트랜잭션이 서로 영향 안 줌
Durability (지속성)완료된 트랜잭션은 영구 저장

인덱스 (Index)

자주 조회하는 컬럼에 인덱스를 걸면 탐색 속도 향상.
책의 목차처럼 원하는 데이터 위치를 빠르게 찾아줌.

CREATE INDEX idx_name ON users(name);

RDBMS vs NoSQL

RDBMSNoSQL
구조테이블 (행/열)문서, 키-값 등
스키마고정유연
관계 표현JOIN으로 연결중첩 구조 또는 참조
일관성강함 (ACID)상황에 따라 다름
대표 예시MySQL, PostgreSQLFirestore, MongoDB

Flutter에서의 DBMS

용도선택지
로컬 저장 (간단한 값)SharedPreferences
로컬 저장 (구조화된 데이터)SQLite (sqflite 패키지)
클라우드 DBFirestore (NoSQL)
클라우드 관계형 DBCloud SQL, RDS (서버 통해 접근)

느낀 점

Firestore를 쓰면서 DB를 쓰고 있었는데 그게 NoSQL DBMS였다는 걸 알았다
RDBMS는 관계와 일관성이 중요할 때, NoSQL은 유연하고 빠른 개발이 필요할 때 맞는 선택

0개의 댓글