정규화는 종속성을 제거해 데이터 중복을 줄이고 이상 현상을 방지하는 작업이다. 그래서 종속성을 통합한다거나 이상 현상의 발생을 도모한다는 설명은 정규화의 목적과 반대가 된다.
설계 흐름 안에서 보면 정규화는 논리적 설계의 작업이다. 요구사항 분석 뒤 개념적 설계에서 E-R 모델로 개체와 관계를 표현하고, 논리적 설계에서 스키마를 변환하며 정규화로 종속성을 제거한다. 물리적 설계에서는 데이터의 실제 저장 방식과 파일 조직, 접근 방법을 결정한다. 논리적 설계 단계에서 수행하는 작업이 아닌 것으로 트랜잭션 모델링을 고르는 문제가 나온다.
스키마와 독립성도 함께 정리한다. 내부 스키마는 물리적 저장 장치의 입장에서 레코드 형식, 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서를 정의하는 최하위 스키마다. 논리적 데이터 독립성은 응용 프로그램의 논리적 뷰를 변경하지 않고 전체 논리 구조를 변경할 수 있는 성질이다.
데이터 모델의 구성 요소 중 데이터베이스에 표현될 대상인 개체 타입과 개체 타입들 간의 관계를 기술하는 것은 구조다. E-R 모델은 개체와 관계를 표현하는 개념적 모델로 제시되며, 오너-멤버 관계처럼 특정 관계 유형을 지칭하는 용어와 구분해 읽는다.
예제
출제 패턴은 다섯 가지다. ① 정규화의 목적 — 종속성을 제거해 중복을 줄이고 이상 현상을 방지한다. 종속성을 통합한다거나 이상 현상의 발생을 도모한다는 보기는 틀린 설명이다. ② 설계 단계 — 물리적 설계는 데이터의 실제 저장 방식·파일 조직·접근 방법을 결정하고, 논리적 설계 작업이 아닌 것으로 트랜잭션 모델링을 고른다. ③ 스키마 — 내부 스키마는 물리적 저장 구조와 레코드 형식, 표현 방법, 물리적 순서를 정의하는 최하위 스키마다. ④ 독립성 — 논리적 데이터 독립성은 논리적 뷰를 바꾸지 않고 전체 논리 구조를 변경할 수 있는 성질이다. ⑤ 데이터 모델 — 개체 타입과 개체 타입 간의 관계를 기술하는 구성 요소는 구조이며, E-R 모델은 개체와 관계를 표현하는 개념적 모델이다.
대표 기출 3문항
관계데이터베이스의 정규화에 대한 설명으로 옳지 않은 것은?
정규화를 거치지 않으면 여러 가지 상이한 종류의 정보를 하나의 릴레이션으로 표현하여 그 릴레이션을 조작할 때 이상(Anomaly) 현상이 발생할 수 있다.
정규화의 목적은 각 릴레이션에 분산된 종속성을 하나의 릴레이션에 통합하는 것이다.
이상(Anomaly) 현상은 데이터들 간에 존재하는 함수종속이 하나의 원인이 될 수 있다.
정규화가 잘못되면 데이터의 불필요한 중복이 야기되어 릴레이션을 조작할 때 문제가 발생할 수 있다.
정답과 해설 보기
정답 ② · 관계데이터베이스 정규화에 대한 옳지 않은 설명을 고르는 문제이다. 정규화는 함수 종속성 등의 이상 현상 원인을 분해하고 제거하여 하나의 릴레이션에 여러 종류의 정보가 뒤섞이는 것을 막는 과정이다.
정규화는 종속성을 제거하여 중복을 줄이는 것이므로, 종속성을 통합하는 것은 정규화의 목적과 반대된다.
정규화의 목적으로 틀린 것은?
어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다.
중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 도모한다.
효과적인 검색 알고리즘을 생성할 수 있다.
정답과 해설 보기
정답 ③ · 데이터베이스 정규화의 궁극적인 목적은 중복 데이터를 최소화하여 불필요한 데이터 중복을 제거함으로써 이상(Anomaly) 현상(삽입, 삭제, 갱신 이상)의 '발생을 방지'하는 것입니다. 또한 데이터의 무결성을 유지하고, 릴레이션 구조를 재구성할 필요 없이 안정적으로 데이터를 삽입 및 검색할 수 있도록 돕습니다.
정규화는 데이터 중복을 제거하여 이상 현상을 방지하는 것이 목적이며, 발생을 도모하는 것은 오답입니다.
데이터베이스의 설계의 논리적 설계 단계에서 수행하는 작업이 아닌 것은?
논리적 데이터 모델로 변환
트랜잭션 인터페이스 설계
스키마의 평가 및 정제
트랜잭션 모델링
정답과 해설 보기
정답 ④ · 데이터베이스 논리적 설계 단계의 작업이 아닌 것을 고르는 문제이다. 논리적 설계 단계에서는 개념적 설계에서 만들어진 개체-관계 모델을 관계형 등 논리적 데이터 모델로 변환하고, 트랜잭션 인터페이스를 설계하며, 스키마를 평가하고 정제하는 작업을 수행한다.
트랜잭션 모델링은 물리적 설계 또는 구현 단계의 작업이므로 논리적 설계 단계 작업이 아니다.