DBMS(Database Management System)는 사용자의 요구에 따라 정보를 처리하고 데이터베이스를 관리해주는 소프트웨어입니다. 쉽게 말해, 데이터베이스라는 거대한 창고를 체계적으로 관리해주는 관리자 프로그램이라고 생각하면 됩니다. DBMS의 장점으로는 데이터의 중복을 최소화하고, 일관성과 무결성을 유지하며, 여러 사용자가 동시에 접근할 수 있고, SQL이라는 표준화된 언어로 제어가 쉽고, 접근 권한을 제어하여 민감한 정보를 보호할 수 있다는 점이 있습니다. 여기서 무결성(Integrity)이란 데이터의 정확성과 일관성이 유지되는 것을 말합니다. 단점으로는 모든 데이터 문제를 해결할 수 없고, 유지보수 비용이 발생하며, 전문적인 관리 지식이 필요하고, 시스템에 문제가 생기면 저장된 모든 데이터에 영향을 줄 수 있으며, 새로운 버전을 적용할 때 호환성 문제가 발생할 수 있다는 점이 있습니다. DBMS는 크게 세 가지 유형으로 나뉩니다. RDBMS(관계형 데이터베이스 관리 시스템)는 데이터를 행과 열로 구성된 테이블 형태로 관리하며, MySQL, Oracle, PostgreSQL, MS SQL Server 등이 대표적입니다. 가장 널리 사용되는 유형입니다. RDBMS는 ACID 특성을 보장합니다: 원자성(Atomicity) 트랜잭션은 전부 성공하거나 전부 취소, 일관성(Consistency) 데이터 정합성 유지, 고립성(Isolation) 다른 트랜잭션의 영향 차단, 지속성(Durability) 완료된 트랜잭션은 영구 보존. ODBMS(객체 지향 데이터베이스 관리 시스템)는 복잡한 데이터 구조를 객체 단위로 표현하고 관리하며, 상위 계층의 속성과 방법을 하위 계층이 물려받는 상속 개념을 지원합니다. NoSQL(Non-SQL)은 관계형 DB보다 덜 제한적인 일관성 모델을 사용하며, 디자인이 단순하고 수평적 확장이 쉬운 것이 특징입니다. MongoDB, Redis, Apache Cassandra, HBase 등이 대표적입니다. 대용량 비정형 데이터를 다룰 때 주로 사용됩니다. NoSQL은 RDBMS의 ACID 대신 BASE 특성을 가집니다: 기본 가용성(Basically Available) 항상 응답은 보장, 소프트 상태(Soft State) 시간에 따라 데이터 상태가 변할 수 있음, 최종 일관성(Eventually Consistent) 일시적 불일치 허용 후 최종적으로 일관성 달성. RDBMS vs NoSQL 일관성 모델 비교 속성 RDBMS (ACID) NoSQL (BASE) 가용성 엄격한 일관성 우선 높은 가용성 우선 일관성 즉시 일관성 보장 최종적 일관성(Eventually Consistent) 확장성 수직 확장(Scale-Up) 수평 확장(Scale-Out) 시험 포인트: RDBMS = ACID, NoSQL = BASE 특성을 가집니다. OLAP 5대 연산 OLAP(Online Analytical Processing)은 다차원 데이터를 분석하기 위한 연산입니다. 연산 설명 예시 Drill-down 상위 차원 → 하위 차원 (상세화) 연도 → 월 → 일 Roll-up 하위 차원 → 상위 차원 (요약·집계) 일 → 월 → 연도 Slice 하나의 차원을 한 값으로 고정 2025년 매출만 보기 Dice 여러 차원을 부분집합으로 자름 2025년 + 서울 + 모바일 Pivot(Rotate) 차원의 축을 회전 행/열 교환 OLAP vs OLTP 구분 OLAP OLTP 목적 분석·의사결정 운영·트랜잭션 데이터 집계, 이력 현재, 실시간 쿼리 복잡, 읽기 중심 단순, 읽기/쓰기 사용자 분석가, 경영진 일반 사용자 시험 포인트: Drill-down ↔ Roll-up이 짝. Slice는 1차원, Dice는 다차원 부분집합. Pivot은 축 회전. 관계형 DB 정규화 - 1NF(제1정규형): 모든 속성이 원자값(분해 불가) - 2NF(제2정규형): 1NF + 부분 함수 종속 제거 (기본키 일부에만 종속되는 속성 분리) - 3NF(제3정규형): 2NF + 이행적 함수 종속 제거 (A→B→C에서 C가 A에 직접 종속되게 분리) - BCNF(Boyce-Codd Normal Form): 3NF의 강화형 — 모든 결정자가 후보키 - 역정규화(Denormalization): 성능을 위해 의도적으로 정규화를 풀어 중복 허용 분산 DB 이론 - ACID: 원자성·일관성·고립성·지속성 — 전통 RDBMS의 트랜잭션 보장 - BASE: 기본 가용성·소프트 상태·결과적 일관성 — NoSQL의 완화된 보장 - CAP 정리: 일관성·가용성·분할내성 중 동시에 만족 가능한 것은 2가지뿐 - 샤딩(Sharding): 데이터를 키 기준으로 여러 노드에 분할 — 수평 확장 - 복제(Replication): 동일 데이터를 여러 노드에 복사 — 가용성·읽기 성능 향상 OLAP(Online Analytical Processing) 연산 - 드릴다운(Drill-down): 요약 → 상세 단계로 깊게 파고들기 (연도 → 월 → 일) - 롤업(Roll-up): 상세 → 요약 단계로 집계 (일별 → 월별) - 슬라이싱(Slicing): 다차원 큐브의 한 면을 잘라 2차원으로 보기 (특정 연도만) - 다이싱(Dicing): 여러 차원으로 잘라 부분 큐브 보기 (특정 연도+지역) - 피봇팅(Pivoting): 차원의 축을 회전·변경해 다른 관점으로 보기 OLAP 종류 - MOLAP(Multidimensional OLAP): 다차원 큐브 저장 — 빠른 조회, 큰 저장공간 - ROLAP(Relational OLAP): 관계형 DB 기반 — 큰 데이터에 적합, 다소 느림 - HOLAP(Hybrid OLAP): 두 방식 혼합 데이터 모델링 (DW) - 별 스키마(Star Schema): 중앙 팩트 테이블 + 주변 차원 테이블 — 단순·빠름 - 눈송이 스키마(Snowflake Schema): 차원 테이블을 정규화 — 저장공간 절약, 조인 복잡 - 팩트 테이블: 측정값(매출·수량) 보관 - 차원 테이블: 분석 관점(시간·지역·제품) 보관 SQL 명령어 4분류 - DDL(Data Definition Language): 데이터 정의 — CREATE·ALTER·DROP·TRUNCATE - DML(Data Manipulation Language): 데이터 조작 — SELECT·INSERT·UPDATE·DELETE - DCL(Data Control Language): 권한 제어 — GRANT·REVOKE - TCL(Transaction Control Language): 트랜잭션 제어 — COMMIT·ROLLBACK·SAVEPOINT SELECT 구문 핵심 절 - SELECT 컬럼 FROM 테이블 WHERE 조건 GROUP BY 컬럼 HAVING 그룹조건 ORDER BY 컬럼 - WHERE: 행 단위 필터 (그룹화 이전) - GROUP BY: 그룹화 - HAVING: 그룹 단위 필터 (그룹화 이후) - ORDER BY: 정렬 (ASC 오름차순, DESC 내림차순) - JOIN 종류: INNER JOIN (교집합), LEFT/RIGHT OUTER JOIN, FULL OUTER JOIN, CROSS JOIN 다차원 분석 - 다차원 분석(Multidimensional Analysis): 큐브 형태의 데이터를 여러 차원(시간·지역·제품)으로 보는 분석 — OLAP의 본질 - 데이터 큐브(Data Cube): 다차원 분석을 위한 데이터 구조 SQL 집계 함수 - COUNT(): 행의 개수 — NULL 포함 - COUNT(컬럼): 해당 컬럼의 NULL 제외 개수 - SUM, AVG, MIN, MAX: 합·평균·최소·최대 — NULL 자동 제외 - DISTINCT: 중복 제거 후 카운트·집계 - GROUP BY와 함께 사용 시 그룹별 집계 트랜잭션 격리 수준 (Isolation Levels) 1. READ UNCOMMITTED: Dirty Read 발생 가능 — 가장 약함 2. READ COMMITTED: 커밋된 데이터만 읽기 — Dirty Read 방지, Non-repeatable Read 발생 3. REPEATABLE READ: 트랜잭션 내 동일 행 동일 결과 — Phantom Read 발생 4. SERIALIZABLE: 직렬화 — 가장 엄격, 성능 저하 - 트레이드오프: 격리 수준 ↑ ⇄ 성능 ↓ 트랜잭션 ACID 추가 - All or Nothing(원자성): 트랜잭션은 전체 성공 또는 전체 실패 — 부분 실행 불가 확률적 자료구조 (대용량 처리) - Bloom Filter(블룸 필터): 멤버십 검사를 위한 공간 효율적 자료구조 - 거짓 양성(False Positive)은 가능, 거짓 음성은 없음 - 활용: 캐시 미스 사전 차단·중복 URL 필터·DB 키 존재 검사 - HyperLogLog: 카디널리티(고유 개수) 근사 추정 - 메모리 1.5KB로 수십억 카디널리티 추정 — 12% 오차 - Count-Min Sketch: 빈도 추정 — 스트리밍 빈도 분석 - 공통 특성: 100% 정확도 포기 + 메모리 효율 극대화 📝 이 주제 관련 문제 학습 노트의 보강 개념을 직접 문제로 풀어보세요. - 2NF — 1NF + 부분 함수 종속 제거 (기본키 일부에만 종속되는 속성 분리) - 3NF — 2NF + 이행적 함수 종속 제거 (A→B→C에서 C가 A에 직접 종속되게 분리) - BCNF — 3NF의 강화형 — 모든 결정자가 후보키 - 역정규화 — 성능을 위해 의도적으로 정규화를 풀어 중복 허용 - BASE — 기본 가용성·소프트 상태·결과적 일관성 — NoSQL의 완화된 보장 - CAP 정리 — 일관성·가용성·분할내성 중 동시에 만족 가능한 것은 2가지뿐 - 드릴다운 — 요약 → 상세 단계로 깊게 파고들기 (연도 → 월 → 일) - 슬라이싱 — 다차원 큐브의 한 면을 잘라 2차원으로 보기 (특정 연도만) - ROLAP — 관계형 DB 기반 — 큰 데이터에 적합, 다소 느림 - All or Nothing — 트랜잭션은 전체 성공 또는 전체 실패 — 부분 실행 불가 - Bloom Filter — 멤버십 검사를 위한 공간 효율적 자료구조 페이지 하단 "이 주제 문제 풀기" 버튼으로 전체 문제를 풀 수 있습니다.
DBMS와 데이터베이스 유형
과목: 데이터 이해 (1과목, 5번 주제) ·
키워드: 데이터 유형 · 데이터베이스 · DBMS · 데이터 전처리 · OLAP · SQL · MLOps·최신 ML
정의: DBMS(Database Management System)는 사용자의 요구에 따라 정보를 처리하고 데이터베이스를 관리해주는 소프트웨어입니다.
핵심 Q&A (7개)
- RDBMS의 ACID 속성 4가지는?
- Atomicity(원자성): 전부 성공 or 전부 실패
Consistency(일관성): 트랜잭션 후에도 규칙 유지
Isolation(격리성): 트랜잭션 간 독립
Durability(지속성): 완료 후 영구 저장 - NoSQL의 BASE 속성이란?
- Basically Available: 기본적으로 가용
Soft State: 일시적으로 불일치 허용
Eventually Consistent: 최종적으로는 일관성 유지 - RDBMS vs NoSQL 핵심 차이는?
- RDBMS: ACID, 정형, SQL, 수직 확장
NoSQL: BASE, 비정형, 수평 확장, 대용량 적합 - NoSQL의 4가지 유형은?
- ① Key-Value (Redis)
② Document (MongoDB)
③ Column-Family (Cassandra)
④ Graph (Neo4j) - OLTP vs OLAP의 차이는?
- OLTP: 실시간 트랜잭션 처리 (은행 입출금)
OLAP: 대용량 분석·의사결정 지원 (데이터 웨어하우스) - OLAP의 5대 연산은?
- Drill-down: 상위 → 하위 (상세화, 연도→월)
Roll-up: 하위 → 상위 (요약·집계)
Slice: 한 차원 고정 (2025년만)
Dice: 여러 차원 부분집합
Pivot: 축 회전 - OLAP vs OLTP 차이는?
- OLAP(분석): 집계·이력 데이터, 복잡한 쿼리, 읽기 중심, 의사결정 지원
OLTP(운영): 실시간 트랜잭션, 단순 쿼리, 읽기/쓰기, 일반 업무