
데이터베이스 정규화란 무엇인가요? 또, 정규화의 장단점은 무엇인가요?
정규화란, 데이터 중복을 줄이고 데이터 무결성을 지키기 위해 테이블 구조를 논리적으로 쪼개는 과정
보통 1정규형 → 2정규형 → 3정규형까지가 실무 표준
이상현상(Anomaly)을 구조적으로 차단하기 위함.
- 삽입 이상: 정보 하나 넣으려고 의미 없는 데이터까지 같이 넣어야 함
- 갱신 이상: 같은 값 여러 군데 있어서 하나만 고치면 불일치 발생
- 삭제 이상: 데이터 지웠더니 필요한 정보까지 같이 날아감
단점으로는, JOIN이 많아지고, 읽기 성능 저하, 설계 난이도 상승 등이 있다. 따라서 필요하면 비정규화를 하는 경우도 있음

1차 정규형 : 모든 컬럼이 '원자성(Atomicity)'을 가져야 한다
쉽게 말해서 컬럼당 하나의 값만 가져야 함

2차 정규형 : 1차 정규형을 만족하면서 부분 함수 종속을 제거하여 완전 함수 종속 상태를 유지
기본키에 따라 모든 레코드가 영향을 받아야 한다.

3차 정규형 : 1차, 2차 정규형을 만족하면서 이행적 함수 종속을 제거한 상태
기본키가 아닌 컬럼을 거쳐서 다른 컬럼이 결정되어선 안된다.


논리적 모델링에서 사용되는 주요 구성 요소인 엔터티, 속성, 관계에 대해 예시를 들어 설명해주세요.
① 엔터티(Entity)
현실 세계에서 관리 대상이 되는 객체로 보통 테이블로 표현되어 명사형이며 식별자(PK)를 가짐
예시) 사용자(User), 주문(Order), 상품(Product)
② 속성(Attribute)
엔터티가 가지는 세부 정보이며, 컬럼으로 표현되는 더 이상 쪼갤 수 없는 최소 단위
예시) user_id, name, email, created_at
③ 관계(Relationship)
엔터티와 엔터티 사이의 연결 보통 외래키(FK) 로 구현되고, 1:1, 1:N, N:M 구조로 나뉨

'학습 기록 > 코드잇 데이터분석 부트캠프' 카테고리의 다른 글
| # 위클리페이퍼 6 (0) | 2026.01.05 |
|---|---|
| [DA] 스프린트 미션 8 (0) | 2025.12.29 |
| # 위클리페이퍼 4 (0) | 2025.12.14 |
| # 위클리 페이퍼 3 (0) | 2025.11.23 |
| # 위클리페이퍼 2 (0) | 2025.11.13 |