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