📌 발표 정리: ERD와 정규화, 트랜잭션과 무결성
1. ERD(Entity Relationship Diagram)
- 정의: 데이터베이스의 뼈대 역할을 하는 설계도. 릴레이션(테이블) 간의 관계를 정의.
- 특징:
- 시스템 요구사항을 기반으로 작성.
- 데이터베이스 구축 후에도 디버깅, 비즈니스 프로세스 재설계 시 활용.
- 단점: 비정형 데이터(구조화되지 않은 데이터)는 표현하기 어려움.
2. 정규화 과정
- 목적: 데이터 이상 현상 방지, 저장 공간 효율화.
- 데이터베이스 이상 현상 예시:
- 회원이 여러 등급을 갖는 문제.
- 삭제 시 필요한 데이터까지 같이 삭제되는 문제.
- 삽입 시 NULL 때문에 삽입 불가 문제.
정규형 원칙
- 중복성 감소.
- 독립적인 관계는 별도의 릴레이션으로 표현.
- 무손실 분해(정보 손실 없이 분리).
단계별 정규형
- 제1정규형 (1NF)
- 모든 속성이 원자 값(atomic value)만 가져야 함.
- 반복 집합 제거.
- 제2정규형 (2NF)
- 1NF 만족 + 부분 함수 종속 제거.
- 기본키 전체에 종속되도록 릴레이션 분리.
- 제3정규형 (3NF)
- 2NF 만족 + 이행적 함수 종속 제거.
- 기본키가 아닌 속성이 다른 속성에 종속되지 않도록 분리.
- 보이스/코드 정규형 (BCNF)
- 3NF 만족 + 모든 결정자가 후보키(유일성, 최소성 만족)여야 함.
- 후보키가 아닌 결정자 제거.
⚠️ 주의: 정규화가 항상 성능을 높이는 것은 아님. 조인으로 인해 성능이 떨어질 수도 있어 서비스 상황에 따라 비정규화 고려 필요.
3. 트랜잭션(Transaction)