본문 바로가기

DB

06. 정규화 (Normalization)

1. 정규화란?

 

 

RDBMS 설계에서 중복을 최소화하게 데이터를 구조화 하는 프로세스


자료 중복으로 인해 이상 현상이 발생 할 수 있어 이를 최소화 하는 것이 정규화의 목적

 

 

 

 

2. 정규화의 여섯가지 과정

 

 

정규화(normalization) 는 총 여섯 과정이 있다.


그 중 실제로는 3NF 까지만 사용 한다.(3NF 가 되면 정규화가 된 것으로 간주 한다.)


각 정규형은 이전 단계들을 기본적으로 모두 만족 해야만 한다.

 

1NF 모든 항목에 값이 있어야 하며(NOT NULL), 중복열이 없어야 한다.
2NF 개체의 속성이 한 식별자에 종속 되어야 한다.(부분 함수적 종속 제거)
3NF X로 인해 Y가 결정 되고, Y 로 인해 Z 가 결정되는 경우(이행 함수 종속성 제거)

 

 

 

 

 

 

 

3. 설계(Design)

 

 

테이블에 들어갈 값과 제약조건 연간관계를 정의 하는 것을 우리는 모델링 이라고 한다.

모델링 한 설계 도면을 우리는 ERD 라고 부른다.

 

 

새로운 SNS 서비스를 만들려고 한다.

1. 회원가입은 id,비밀번호, email, 이름을 입력하여 진행 한다.

2. 선택적으로 프로필을 등록할 수 있다.

3. 프로필등록에는 다니는 학교와 회사를 입력해야 한다.

4. 글을 작성 할 수 있다. 간단한 멘트를 남길 수 있다.

5. 이 글에는 등록날짜, 조회 수, 좋아요 숫자를 보여준다.

6. “좋아요” 는 로그인한 회원이 게시글 별로 한번만 가능하다.

7. 해당 글에는 댓글을 달 수 있다.

 

 

 

 

 

 

쇼핑몰 서비스를 만들려고 한다.

1. 회원은 일반회원과 판매자 회원이 있다.

2. 일반 회원은 아이디, 비밀번호, 배송지 주소, 연락처 필드가 있다.

3. 판매자 회원은 아이디, 비밀번호, 계좌번호 필드가 있다.

4. 판매 물품에는 품목 아이디, 품목 이름, 가격, 판매자 아이디, 소속 카테고리가 존재 한다.

5. 판매 품목에는 대분류, 중분류, 소분류를 가지고 있다.

6. 카테고리는 대분류, 중분류, 소분류를 고를 때 마다 해당 분류의 물품이 바로 나타나야 한다.

7. 판매 품목은 판매자 회원이 올릴 수 있다.

8. 구매 테이블에는 사용자아이디, 물품아이디, 물품이름, 가격, 구매 날짜, 수량 등이 저장 된다.

9. 판매자는 본인이 판매한 물품들과 매출을 계산 할 수 있어야 한다.

10. 판매 품목에는 구매후기가 달린다.

 

 

'DB' 카테고리의 다른 글

05. DB 기능 (auto_increment, limit 등)  (2) 2024.02.27
04. INDEX, EXISTS, VEIW  (0) 2024.02.27
03. 서브 쿼리, JOIN, SET  (0) 2024.02.27
02. Constraint과 Relation  (0) 2024.02.27
01. DB의 기초  (0) 2024.02.27