SlideShare a Scribd company logo
1 of 12




반복되는 속성이나 Group 속성을 제거한 뒤, 기본
테이블의 기본 키를 추가해서 새로운 테이블을 생
성하고, 기존의 테이블과 1 : N 의 관계를 형성한
다
1정규화의 대상
◦ 반복되는 그룹이나 속성은 같은 성격과 내용의 칼럼이 연
속적으로 나타나는 경우
◦ NULL Data가 많이 사용되는 경우


반복되는 그룹 속성 많을 경우

칼럼 명

학번

키 형태

PK

주소

휴대폰

주민등록번호

자격증

취득일자

1

데이터

이름

LSJ

서울시
서초구

010-0000-0000

920000-1000000

운전면허1종

2012.01.01

1

LSJ

서울시
서초구

010-0000-0000

920000-1000000

정보처리산업기사

2011.01.01

1

LSJ

서울시
서초구

010-0000-0000

920000-1000000

워드프로세서1급

2010.01.01


회원 테이블
칼럼 명

학번

키 형태

PK

데이터

1

이름

주소

휴대폰

주민등록번호

LSJ

서울시
서초구

010-0000-0000

920000-1000000



칼럼 명

자격증ID

키 형태

자격증 테이블

PK

자격증

취득일자

1
데이터

학번
1

운전면허1종

2012.01.01

2

1

정보처리산업기사

2011.01.01

3

1

워드프로세서1급

2010.01.01


NULL 값이 많은 경우

칼럼 명

과목명

과목 내용

강의 시간

필요 교재1

필요 교재2

필요 교재3

키 형태

PK
JAVA 프로그래밍

JAVA 프로그래밍 OOP
개념 이해

32

JAVA 기초

JSP 기초

JAVA 중급

ASP프로그래밍

ASP를 활용한 웹
사이트 구축

32

HTML 기초

ASP 웹 사
이트 구축

NULL

PHP 프로그래밍

PHP를 활용한 웹
사이트 구축

32

PHP 기초

NULL

NULL

C++ 프로그래밍

C++ 서버 애플리케이
션 개발

32

C++ 기초

MFC

NULL

데이터


교재 테이블
교재 명

과정
코드

1

JAVA 기초

J1

2

HTML 기초

A1

3

PHP 기초

P1

4

C++ 기초

C1

5

JSP 기초

J1

6

ASP 웹 사이
트 구축

A1

7

JAVA 중급

J1

8

MFC

C1

칼럼 명

교재번호

키 형태

PK

데이터



과목 테이블

과목명

과목 내용

강의 시
간

J1

JAVA 프로그래
밍

JAVA 프로그래밍
OOP 개념 이해

32

A1

ASP 프로그래
밍

ASP를 활용한 웹
사이트 구축

30

P1

PHP 프로그래
밍

PHP를 활용한 웹
사이트 구축

28

C1

C++ 프로그래
밍

C++ 서버 애플리
케이션 개발

26

칼럼 명

과목코드

키 형태

PK

데이터






테이블의 키가 아닌 칼럼들은 기본 키에 의존적이
어야 한다.
복합 키가 아닌 경우 제 2정규화의 대상이 되지 않
는다.
복합 키로 구성된 경우, 해당 테이블 안의 모든 칼
럼들은 복합 키 전체에 의존적 이어야 한다.
◦ 복합 키 일부에 의존적인 칼럼이 존재 한다면 제거하고,
새로운 테이블에 생성시켜 주어야 한다.


학과 테이블
칼럼 명

과목코드

학번

등급

과목명

강의 시간

J1

1

A

JAVA 프로그래밍

32

A1

1

B

ASP 프로그래밍

30

C1

2

C

C++ 프로그래밍

26

A1

2

D+

ASP 프로그래밍

30

PK

키 형태

데이터



학과 테이블



과목코드

학번

키 형태

PK, FK

PK

J1

1

A1

1
2

C

A1

2

D+

PK

과목명

강의시간

J1

JAVA 프로
그래밍

32

A1

B

C1

과목코드

A

데이터

등급

칼럼 명
키 형태

칼럼 명

과정 테이블

ASP 프로그
래밍

30

P1

PHP 프로그
래밍

28

C1

C++ 프로
그래밍

26

데이터




기본 키에 의존하지 않고, 일반 칼럼에 의존하는
칼럼들을 제거한다
키가 아닌 칼럼들은 기본 키에 의존해야 하는데,
겉으로 그런 것처럼 보이지만, 실제로는 기본 키가
아닌 다른 일반 키에 의존하는 칼럼들이 있을 수
있다. 이를 해결하는 것이 제 3정규화 과정이다.


주문 테이블
칼럼 명

주문ID

키 형태

PK

회원 명

전화번호

회원등급

수량

단가

A1

Lid

LLL

010-0000-0000

우수

3

3,000

2

B3

Sid

SSS

010-0000-0001

일반

2

6,000

3

A2

Jid

JJJ

010-0000-0002

일반

4

8,000

4



회원ID

1
데이터

상품ID

B3

Lid

LLL

010-0000-0000

우수

1

3,000

주문 테이블



칼럼 명 주문ID 상품ID 회원ID
키 형태

PK

수량

단가

FK

키 형태

1
데이터

칼럼 명

A1

Lid

3

B3

Sid

2

6,000

3

A2

Jid

4

8,000

4

B3

Lid

1

3,000

전화번호

회원등급

PK

Lid

3,000

2

회원ID 회원 명

회원 테이블

데이터

LLL

010-0000-0000

우수

Sid

SSS

010-0000-0001

일반

Jid

JJJ

010-0000-0002

일반


제 1정규화
◦ 반복되는 그룹 속성이 존재할 경우, 그 그룹을 분리하여 새로운 실
체를 추가한 후, 기존의 실체와 1:N의 관계를 형상함으로써 속성
들의 원래 제자리를 찾아 주는 것이다.



제 2정규화
◦ 복합 키로 구성된 경우, 2차 정규화 대상이 되며 복합 키 전체에
의존하지 않고, 복합 키 일부분에만 종속되는 속성들이 존재할 경
우 이를 제거시키는 것이다.



제 3정규화
◦ 키가 아닌 일반 칼럼에 종속성이 존재하는 경우 이를 제거시키는
것이다.






데이터 중복 저장으로 인해 발생할 수 있는 비효
율성을 제거 (메모리 낭비, 프로그램 복잡)
데이터의 일관성이 지켜지지 않는 현상을 해결
데이터의 효율적인 관리와 데이터 무결성을 지키
기 위함이다.

More Related Content

Viewers also liked

데이터베이스 정규화
데이터베이스 정규화데이터베이스 정규화
데이터베이스 정규화Hoyoung Jung
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰beom kyun choi
 
DB Project - Gmarket
DB Project - Gmarket DB Project - Gmarket
DB Project - Gmarket Han Sung Kim
 
데이터베이스 베이직 소개
데이터베이스 베이직 소개데이터베이스 베이직 소개
데이터베이스 베이직 소개Hoyoung Jung
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
 

Viewers also liked (7)

데이터베이스 정규화
데이터베이스 정규화데이터베이스 정규화
데이터베이스 정규화
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰
 
DB Project - Gmarket
DB Project - Gmarket DB Project - Gmarket
DB Project - Gmarket
 
데이터베이스 베이직 소개
데이터베이스 베이직 소개데이터베이스 베이직 소개
데이터베이스 베이직 소개
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
Data modeling for the business
Data modeling for the businessData modeling for the business
Data modeling for the business
 

데이터베이스 정규화

  • 1.
  • 2.   반복되는 속성이나 Group 속성을 제거한 뒤, 기본 테이블의 기본 키를 추가해서 새로운 테이블을 생 성하고, 기존의 테이블과 1 : N 의 관계를 형성한 다 1정규화의 대상 ◦ 반복되는 그룹이나 속성은 같은 성격과 내용의 칼럼이 연 속적으로 나타나는 경우 ◦ NULL Data가 많이 사용되는 경우
  • 3.  반복되는 그룹 속성 많을 경우 칼럼 명 학번 키 형태 PK 주소 휴대폰 주민등록번호 자격증 취득일자 1 데이터 이름 LSJ 서울시 서초구 010-0000-0000 920000-1000000 운전면허1종 2012.01.01 1 LSJ 서울시 서초구 010-0000-0000 920000-1000000 정보처리산업기사 2011.01.01 1 LSJ 서울시 서초구 010-0000-0000 920000-1000000 워드프로세서1급 2010.01.01
  • 4.  회원 테이블 칼럼 명 학번 키 형태 PK 데이터 1 이름 주소 휴대폰 주민등록번호 LSJ 서울시 서초구 010-0000-0000 920000-1000000  칼럼 명 자격증ID 키 형태 자격증 테이블 PK 자격증 취득일자 1 데이터 학번 1 운전면허1종 2012.01.01 2 1 정보처리산업기사 2011.01.01 3 1 워드프로세서1급 2010.01.01
  • 5.  NULL 값이 많은 경우 칼럼 명 과목명 과목 내용 강의 시간 필요 교재1 필요 교재2 필요 교재3 키 형태 PK JAVA 프로그래밍 JAVA 프로그래밍 OOP 개념 이해 32 JAVA 기초 JSP 기초 JAVA 중급 ASP프로그래밍 ASP를 활용한 웹 사이트 구축 32 HTML 기초 ASP 웹 사 이트 구축 NULL PHP 프로그래밍 PHP를 활용한 웹 사이트 구축 32 PHP 기초 NULL NULL C++ 프로그래밍 C++ 서버 애플리케이 션 개발 32 C++ 기초 MFC NULL 데이터
  • 6.  교재 테이블 교재 명 과정 코드 1 JAVA 기초 J1 2 HTML 기초 A1 3 PHP 기초 P1 4 C++ 기초 C1 5 JSP 기초 J1 6 ASP 웹 사이 트 구축 A1 7 JAVA 중급 J1 8 MFC C1 칼럼 명 교재번호 키 형태 PK 데이터  과목 테이블 과목명 과목 내용 강의 시 간 J1 JAVA 프로그래 밍 JAVA 프로그래밍 OOP 개념 이해 32 A1 ASP 프로그래 밍 ASP를 활용한 웹 사이트 구축 30 P1 PHP 프로그래 밍 PHP를 활용한 웹 사이트 구축 28 C1 C++ 프로그래 밍 C++ 서버 애플리 케이션 개발 26 칼럼 명 과목코드 키 형태 PK 데이터
  • 7.    테이블의 키가 아닌 칼럼들은 기본 키에 의존적이 어야 한다. 복합 키가 아닌 경우 제 2정규화의 대상이 되지 않 는다. 복합 키로 구성된 경우, 해당 테이블 안의 모든 칼 럼들은 복합 키 전체에 의존적 이어야 한다. ◦ 복합 키 일부에 의존적인 칼럼이 존재 한다면 제거하고, 새로운 테이블에 생성시켜 주어야 한다.
  • 8.  학과 테이블 칼럼 명 과목코드 학번 등급 과목명 강의 시간 J1 1 A JAVA 프로그래밍 32 A1 1 B ASP 프로그래밍 30 C1 2 C C++ 프로그래밍 26 A1 2 D+ ASP 프로그래밍 30 PK 키 형태 데이터  학과 테이블  과목코드 학번 키 형태 PK, FK PK J1 1 A1 1 2 C A1 2 D+ PK 과목명 강의시간 J1 JAVA 프로 그래밍 32 A1 B C1 과목코드 A 데이터 등급 칼럼 명 키 형태 칼럼 명 과정 테이블 ASP 프로그 래밍 30 P1 PHP 프로그 래밍 28 C1 C++ 프로 그래밍 26 데이터
  • 9.   기본 키에 의존하지 않고, 일반 칼럼에 의존하는 칼럼들을 제거한다 키가 아닌 칼럼들은 기본 키에 의존해야 하는데, 겉으로 그런 것처럼 보이지만, 실제로는 기본 키가 아닌 다른 일반 키에 의존하는 칼럼들이 있을 수 있다. 이를 해결하는 것이 제 3정규화 과정이다.
  • 10.  주문 테이블 칼럼 명 주문ID 키 형태 PK 회원 명 전화번호 회원등급 수량 단가 A1 Lid LLL 010-0000-0000 우수 3 3,000 2 B3 Sid SSS 010-0000-0001 일반 2 6,000 3 A2 Jid JJJ 010-0000-0002 일반 4 8,000 4  회원ID 1 데이터 상품ID B3 Lid LLL 010-0000-0000 우수 1 3,000 주문 테이블  칼럼 명 주문ID 상품ID 회원ID 키 형태 PK 수량 단가 FK 키 형태 1 데이터 칼럼 명 A1 Lid 3 B3 Sid 2 6,000 3 A2 Jid 4 8,000 4 B3 Lid 1 3,000 전화번호 회원등급 PK Lid 3,000 2 회원ID 회원 명 회원 테이블 데이터 LLL 010-0000-0000 우수 Sid SSS 010-0000-0001 일반 Jid JJJ 010-0000-0002 일반
  • 11.  제 1정규화 ◦ 반복되는 그룹 속성이 존재할 경우, 그 그룹을 분리하여 새로운 실 체를 추가한 후, 기존의 실체와 1:N의 관계를 형상함으로써 속성 들의 원래 제자리를 찾아 주는 것이다.  제 2정규화 ◦ 복합 키로 구성된 경우, 2차 정규화 대상이 되며 복합 키 전체에 의존하지 않고, 복합 키 일부분에만 종속되는 속성들이 존재할 경 우 이를 제거시키는 것이다.  제 3정규화 ◦ 키가 아닌 일반 칼럼에 종속성이 존재하는 경우 이를 제거시키는 것이다.
  • 12.    데이터 중복 저장으로 인해 발생할 수 있는 비효 율성을 제거 (메모리 낭비, 프로그램 복잡) 데이터의 일관성이 지켜지지 않는 현상을 해결 데이터의 효율적인 관리와 데이터 무결성을 지키 기 위함이다.