본문 바로가기
DB/DBMS

DBMS - 정규화(NF) : 이상현상

by 코딩하는 랄로 2023. 8. 14.
728x90

2023.08.14 - [Programming 공부/DBMS] - DBMS - 정규화(NF) : 정규화란?

 

DBMS - 정규화(NF) : 정규화란?

정규화란 고객의 요구에 맞춰 모델링을 통해 테이블을 생성하였다고 바로 사용하게 되면 여러 이상현상들을 마주하게 된다. 이러한 이상 현상에는 불필요한 컬럼이 존재하거나 중복된 값이 존

codingralro.tistory.com

 

이상현상

저번 글에서 정규화의 각 과정에 대해서 알아보기 전에 잠깐 이상현상에 대해서 언급하였는데 이번 글에서는 이상현상에는 어떠한 것이 있는지 자세히 알아보겠다.

 

이상현상은 테이블로 구성된 데이터 베이스에 정규화가 필요한 필수적인 이유이다. 데이터 베이스를 정규화를 진행하지 않은 채 사용하게 되면(물론 처음부터 완벽하게 설계하면 안해도 되지만) 불필요한 데이터 중복으로 인해 공간이 낭비되는 등의 현상이 발생하게 되는데 이를 Anormaly, 이상현상이라고 한다.

 

 

삽입이상

새 데이터를 삽입하기 위해 불필요한 데이터도 삽입해야 하는 문제를 일컫는다. 예를 들어 다음과 같은 테이블이 있다고 가정해보자.

회사 프로젝트 테이블

사원번호와 프로젝트 코드가 조합키로 설정되어 있고 한 사원은 하나의 부서만 가질 수 있다. 이 때 새로운 신입 사원 106이 들어왔서 데이터를 추가해야 하는데 아직 프로젝트를 배정 받지 못했기 때문에 추가할 수 없는 상황이 발생하게 되는 것이다.

 

이를 해결하기 위해서는 미정이라는 불필요한 프로젝트 코드를 생성한 뒤 추가해야 하는 것이다.

 

 

갱신이상

중복 행 중 일부만 변경하여 데이터가 불일치하게 되어 모순의 문제가 발생하는 경우이다. 위의 테이블에서 한명의 사원은 반드시 하나의 부서에만 속할 수 있기 때문에 중복된 사원번호 101에 대해서 값을 변경하여 줄 때 모든 행에 대해서 변경해야 하는 번거로움이 존재하는 것이다.

 

만약 변경하지 못하는 행이 발생하게 된다면 데이터의 불일치 문제가 발생하게 된다.

 

 

삭제이상

행을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 문제가 발생하는 경우이다. 사원번호 105가 프로젝트를 무사히 끝내어 해당 프로젝트 P458을 드랍하게 된다면 그 프로젝트를 맡은 사원번호의 정보도 드랍되는 문제가 발생한다.

 

이렇듯, 해당 데이터 뿐만이 아니라 다른 중요한 데이터 들도 같이 드랍되는 문제를 삭제이상이라고 한다.

 

 

 

지금까지 이상현상에 대해서 알아보았는데, 이러한 이상 현상이 발생하는 근본적인 이유는 위에서 언급하였듯이 데이터 베이스의 테이블이 정규화가 되어 있지 않기 때문이다. 

 

정규화를 진행하기 위해서는 각 칼럼의 관련성을 파악해야 하고 이 관련성을 함수적 종속성이라고 하는데 하나의 테이블에는 하나의 함수적 종석성만 존재하도록 정규화를 진행하여 이상 현상이 발생하는 것을 막아야 한다.

 

 

 

2023.08.14 - [Programming 공부/DBMS] - DBMS - NULL, 숫자형 함수

 

DBMS - NULL, 숫자형 함수

NULL이란 지금까지 DBMS를 공부하면서 예제에서 가끔 보았던 용어이다. 프로그래밍을 조금이라도 해본 사람은 대략적으로 어떤 의미이고 어디에 사용하는지에 대해 알 것이다. DBMS 에서는 실제 테

codingralro.tistory.com

 

728x90

'DB > DBMS' 카테고리의 다른 글

DBMS - 집계함수, ORDERBY,CASE  (0) 2023.08.14
DBMS - NULL, 숫자형 함수  (0) 2023.08.14
DBMS - 정규화(NF) : 정규화란?  (0) 2023.08.14
DML - Concatenation,Like  (0) 2023.08.13
TCL - 트랜젝션 제어 언어  (0) 2023.08.13