🗄️ Database란?
- 여러 사람이 공유하고 사용할 목적으로 조직화된 데이터의 집합
- 효율적인 데이터 관리와 사용을 위해 DBMS(데이터베이스 관리 시스템)을 통해 제어됨
→ 핵심: 데이터의 저장소
→ 목적: 다수 사용자, 안전한 관리, 빠른 처리
📦 DBMS (Database Management System)

📌 주요 역할
| 역할 | 설명 |
|---|---|
| 데이터 정의 | 테이블 구조, 타입 등을 정의 (DDL) |
| 데이터 관리 | 물리적 저장, 최적화된 구조 제공 |
| 데이터 보안 | 권한, 암호화, 감사 로그 등 |
| 트랜잭션 관리 | ACID 보장 (안전한 데이터 처리) |
| 백업 및 복구 | 장애 대비용 데이터 백업/복원 |
| 동시성 제어 | 여러 사용자의 요청 충돌 방지 |
📘 DBMS의 종류
1. 관계형 DMBS(RDBMS)
2. 비관계형 DBMS(NoSQL)
key-value, document, graph 등의 다양한 형태로 데이터를 저장하고 관리3. 다중 모델 DBMS
💡 트랜잭션 (Transaction)
- 데이터베이스에서의 하나의 논리적인 작업 단위
- 모든 작업이 완전히 성공하거나, 모두 실패해야 함 (롤백)
💸 예시 - 계좌 이체
철수 → 영희 이체: 차감 + 입금 → 하나라도 실패하면 전체 취소
📦 ACID 속성
| 속성 | 의미 |
|---|---|
| Atomicity | 원자성: All or Nothing |
| Consistency | 일관성: 무결성 유지 |
| Isolation | 독립성: 동시에 실행해도 영향 X |
| Durability | 지속성: 영구 저장 보장 |
📋 RDBMS (관계형 데이터베이스)
- 데이터 간의 관계를 정의하고,
이러한 관계를 바탕으로 복잡한 Query를 실행할 수 있는 기능 제공
1. 테이블 기반 저장
2. 관계 (Relationships)
| 유형 | 설명 |
|---|---|
| 1:1 | 주민번호 - 사람 |
| 1\:N | 유저 - 주문 |
| N\:M | 학생 - 수강과목 (중간 테이블 필요) |
→ 외래 키(FK)로 테이블 간 연결
3. SQL (Structured Query Language)
4. 키 (Keys)
| 키 종류 | 설명 |
|---|---|
| 기본 키 (PK) | 각 행을 유일하게 식별 |
| 외래 키 (FK) | 다른 테이블의 PK 참조 |
| 유일 키 (UK) | 중복 X, NULL O (PK와 다름) |
5. 정규화 (Normalization)
6. 데이터 무결성 (Data Integrity)
| 무결성 종류 | 설명 |
|---|---|
| 엔터티 무결성 | PK는 NULL X, 중복 X |
| 참조 무결성 | FK는 유효한 값만 가짐 |
| 도메인 무결성 | 값의 타입, 범위 유효성 보장 |
7. 인덱스 (Index)
🔥 대표적인 RDBMS
| DBMS | 특징 |
|---|---|
| ❗️MySQL | 오픈소스, 빠르고 무료, 전 세계에서 가장 많이 사용 |
| PostgreSQL | 객체지향 + 관계형 지원, 매우 강력한 기능 |
| Oracle | 상용 제품, 안정성 최고, 가격 비쌈 |
| MSSQL | MS의 관계형 DB, 기업 환경에 강함 |