본문 바로가기
제조실행시스템(MES)

4.2 정규화(Normalization)의 필요성(1)

by 네이든 루니 2023. 5. 17.
반응형

제조실행시스템(MES)은 제조 현장의 생산 프로세스를 실시간으로 모니터링하고 제어하는 소프트웨어 기반 시스템입니다. 생산 계획, 작업 지시, 자재 관리, 품질 관리, 생산 실적 분석 등 다양한 기능을 제공하여 제조 효율성을 높이고 생산 비용을 절감하는 데 도움을 줍니다.

manufacturing-execution-system
제조실행시스템

4.2.1 함수 종속(Functional Dependency)

정규화를 하는 가장 근본적인 이유는 중복 데이터(속성, 엔티티)를 제거하기 위함이다. 데이터베이스를 사용하는 가장 큰 목적이 데이터를 효율적으로 관리하기 위해서인데 데이터가 중복되어 있다면 데이터의 일관성이 깨질 가능성이 존재한다. 물론 설계가 잘못되어 있더라도 똑똑한 개발자가 구현을 완벽하게 하면 데이터 이상 현상(아노말리, Anomaly)은 발생하지 않을 수도 있다. 


그러나 문제는 항상 소수의 데이터에서 발생한다. 아무리 완벽하게 애플리케이션에서 처리를 해주었다고 해도 다른 릴레이션에서 10만 건의 데이터중에 10건만 데이터 정합성 처리에 문제가 생겨도 데이터는 신뢰를 잃게 된다. RDB는 관계라는 개념이 존재하여 중복을 완전하게 제거하지 못하지만 최소화는 시켜야 한다. 정규화는 함수 종속에 따라 이루어지므로 극히 이론적인 부분이다.
 
결정자 X의 값은 반드시 하나의 Y값과 연관된다. X값에 의존하는 Y값은 하나뿐이지 다른 Y값이 있을 수 없다. 이때 X는 Y를 함수적으로 결정한다고 하며 기호로는 X→Y, 또는 y=f(x)라고 표현한다.

X→Y
y=f(x)
X: 결정자(Determinant), Y: 종속자(Dependent)

 

결정자 X의 값은 반드시 하나의 Y값과 연관된다. 예를 들어 설비 릴레이션에 속해 있는 속성(Attribute), 즉 설비명, 입고일자, 제원은 속성 설비 ID에 각각 함수 종속이다. 어떤 설비 ID가 정해지면 그 설비 ID에 대응하는 설비명 입고일자, 제원의 값은 오직 하나만 있기 때문이다.

설비 ID→설비명
설비 ID→입고일자
설비 ID→제원
줄여서, 설비 ID→(설비명, 입고일자, 제원)

 

'설비 ID가 설비명, 입고일자, 제원을 함수적으로 결정한다' 또는 '설비 ID가 설비명 등을 유일하게 결정한다'라고 말할 수 있다. 함수 종속은 키(Key)와 밀접한 연관이 있다. 함수 종속의 결정자가 키가 되도록 릴레이션을 분해하는 과정이 정규화이기 때문이다.
 
키가 아닌 모든 속성이 키에 직접 종속되도록 분해하는 것이 정규화이다. 임의의 릴레이션에서 결정자를 찾지 못하면 정규화를 할 수 없고 키가 없이는 엔티티가 될 수 없으므로 키와 함수 종속은 밀접한 관계가 있다고 할 수 있다.
 

정규화의 정의

정규화란 불필요한 데이터의 중복을 제거하여 데이터 모형을 단순화하는 작업으로 다양한 검사를 통하여 데이터 모델을 보다 구조화하고 개선시켜 나가고자 하는 일련의 과정이다.
 

정규화의 목적

자료 저장 공간을 최소화하고 DB 내 데이터의 불일치 위험을 최소화하는 데 있다. 또한 자료의 수정, 삭제에 따른 예기치 않은 오류(아노말리, Anomaly)를 최소화하여 데이터 구조의 안정성을 최대화하는 것이 그 목적이다. 

정규화를 통한 효과

① 데이터의 중복을 제거하고 데이터의 일관성을 유지할 수 있다.
② 데이터 모형의 단순화가 가능하다.
③ 속성의 배열 검증이 가능하다. 즉, 식별자와 속성과의 종속성 여부를 판단할 수 있다.
④ 데이터베이스 설계가 용이하며, 엔티티와 관계의 누락을 방지할 수 있다.
 

정규화를 통한 문제점

① 정규화로 인한 테이블의 개수 증가로 인해 JOIN이 많이 발생하여 응답 속도의 지연이 있을 수 있다.
② 특정 시점의 정보를 표현하기 위해 이력관리 엔티티의 발생 및 업무규칙 수용 난이도가 증가할 수 있다.
③ 데이터 공간의 비효율적인 활용이 발생할 수 있다(제3정규화 이상의 정규화를 수행하는 경우).

반응형

댓글