1. 트랜잭션(Transaction)
- ACID 특성
- 원자성(Atomicity): 트랜잭션 작업이 전부 성공하거나 전부 실패해야 함 (e.g., 계좌이체 시 A→B 이체 실패 시 A 출금도 롤백)
- 일관성(Consistency): 트랜잭션 후 데이터베이스 상태가 모든 제약 조건을 만족해야 함
- 격리성(Isolation): 동시 실행 트랜잭션이 서로에게 영향을 미치지 않아야 함
- 지속성(Durability): 완료된 트랜잭션 결과는 시스템 장애 시에도 유지되어야 함
- 트랜잭션 상태 전이: 생성 → 준비 → 실행 → 대기 → 완료
2. 데이터 무결성(Data Integrity)
- 개체 무결성(Entity Integrity): 기본키(PK)는 NULL 또는 중복될 수 없음
- 참조 무결성(Referential Integrity): 외래키(FK)는 참조하는 테이블의 PK 값이어야 함
- 도메인 무결성(Domain Integrity): 속성 값이 정의된 도메인 범위에 속해야 함 (e.g., 나이 0~120)
- 사용자 정의 무결성: 비즈니스 규칙에 따른 제약 (e.g., 주문 수량 ≤ 재고 수량)
3. 정규화(Normalization)
- 목적: 데이터 중복 최소화, 이상 현상(Anomaly) 방지
- 이상 현상 유형
- 삽입 이상: 불필요한 정보 없이는 새 데이터 삽입 불가
- 삭제 이상: 데이터 삭제 시 연관된 정보도 함께 삭제되는 문제
- 갱신 이상: 중복 데이터 일부 수정 시 불일치 발생
- 정규화 단계
단계 | 조건 |
---|
1NF | 모든 속성 값이 원자값(Atomic) |
2NF | 부분 함수 종속 제거 (완전 함수적 종속) |
3NF | 이행 함수 종속 제거 |
BCNF | 결정자가 후보키가 아닌 종속 제거 |
4NF | 다치 종속 제거 |
5NF | 조인 종속 제거 |
4. 인덱스(Index)
- 목적: 검색 성능 향상을 위한 데이터 구조.
- B-Tree 인덱스: 범위 검색에 효율적 (e.g.,
WHERE age > 30
).
- 해시 인덱스: 동등 검색에 효율적 (e.g.,
WHERE id = 100
).
- 클러스터드 인덱스: 물리적 데이터 순서 재배열 (테이블 당 1개만 가능).
5. 뷰(View)
- 가상 테이블로 실제 데이터를 저장하지 않음.
- 장점:
- 보안성(특정 컬럼 접근 제한).
- 쿼리 간소화.
- Materialized View: 실제 데이터 저장, 성능 향상 but 갱신 오버헤드
6. 트리거(Trigger)와 저장 프로시저
- 트리거: 이벤트(INSERT/UPDATE/DELETE) 발생 시 자동 실행
- 저장 프로시저: 재사용 가능한 SQL 코드 블록, 성능 향상
7. 데이터베이스 설계
- ERD(Entity-Relationship Diagram)
- 개체(Entity): 독립적인 존재 (e.g., 학생, 과목).
- 속성(Attribute): 개체의 특성 (e.g., 학번, 이름).
- 관계(Relationship): 개체 간 연결 (1:1, 1:N, M:N)
- 논리적 설계: 개념적 모델 → 관계형 스키마 변환.
- 물리적 설계: 특정 DBMS에 맞는 저장 구조 정의
8. 동시성 제어(Concurrency Control)
- 로킹(Locking):
- 배타적 락(Exclusive Lock): 쓰기 전용.
- 공유 락(Shared Lock): 읽기 전용.
- 교착 상태(Deadlock) 방지:
- 타임아웃, Wait-Die, Wound-Wait 기법
9. 회복(Recovery)
- 로그 기반 회복:
- UNDO: 장애 발생 시 변경 사항 취소.
- REDO: 완료된 트랜잭션 재실행.
- 체크포인트(Checkpoint): 장애 시 복구 지점 제공
10. 보안 및 접근 제어
- DAC(Discretionary Access Control): 사용자별 권한 할당.
- MAC(Mandatory Access Control): 시스템이 권한 강제 적용.
- RBAC(Role-Based Access Control): 역할 기반 권한 관리
11. 분산 데이터베이스
- 투명성(Transparency):
- 2PC(Two-Phase Commit): 분산 트랜잭션 원자성 보장.
12. 빅데이터 처리 기술
- Hadoop: HDFS(분산 파일 시스템) + MapReduce(분산 처리)
- NoSQL:
- 문서형(MongoDB): JSON 형식 데이터 저장.
- 키-값형(Redis): 고속 읽기/쓰기.
📚 시험 대비 Tip
- 키워드 암기: ACID, 무결성 유형, 정규화 단계는 반드시 외우세요.
- 이상 현상 예시: 삽입/삭제/갱신 이상을 실제 테이블 예시로 이해하세요.
- 기출 활용: 2023년 3회차 5번(트랜잭션), 2024년 1회차 8번(무결성) 참고