DB설계 단계에서의 '자료정규화'과 시스템분석 단계에서의 '데이타모델링'의 관계
정규화(normalization)이란 무엇인가? DB 설계란 자료의 중복성과 비정규성을 제거하고 검색키를 설정하기 위해 데이타베이스의 logical schema를 작성하는 것이다. 데이타베이스 설계시 가장 중요한 관심사는 릴레이션 구조를 결정하는 것이라고 할 수 있다. 데이타베이스에 어떤 릴레이션을 두고, 그 릴레이션에 어떠한 속성을 포함시킬 것인지는 데이타관리 및 사용의 성패에 큰 영향을 미친다. 바로 정규화이론은 어떠한 릴레이션 구조가 바람직한 것인지, 바람직하지 못한 릴레이션을 어떻게 분해하여야 하는지에 관한 구체적인 판단기준을 제공한다.
정규화의 목적 자료정규화작업의 가장 큰 목적은 자료저장의 중복성 배제이다. 정규화이론에서는 릴레이션의 형태가 여러단계로 구분된다. 가장 기본적인 정규화조건도 만족하지 못하는 릴레이션을 비정규형, 만족하는 릴레이션을 제1정규형이라고 부른다. 조건이 점점 엄격해짐에 따라 제2, 제3, 제4, 제5정규형으로 구분된다. 정규화이론에서는 보다 높은 단계의 정규형으로 나아갈수록 보다 바람직한 릴레이션 구조를 가진다고 간주한다. 즉 높은 단계의 정규형으로 나아갈수록 데이타의 본질적 의미가 릴레이션 구조에 보다 정확히 반영되고, 데이타 중복을 줄이고, 데이타 변경시 발생하는 문제점을 방지하고, 궁극적으로 데이타 무결성(data integrity)을 제고할 수 있다고 가정된다.
반드시 정규화를 해야 하는가? 정규화이론을 데이타베이스 설계시에 가이드라인으로 삼음으로써 데이타를 보다 바람직한 구조로 표현하고, 불필요한 데이타 중복을 베재하며, 데이타 처리과정에서의 제반 이상현상을 방지하고, 그 결과 데이타 무결성을 보완할 수 있게 된다. 그러나 정규화 작업이 반드시 지켜져야 할 철칙한 아니다. 때로는 정규화 이론에 어긋나는 릴레이션 구조를 선택해야 할, 실용적인 필요성이 우선하는 경우도 있게 된다. 정규화 작업은 특히 처리속도와의 trade-off관계가 심사숙고의 대상이 된다. 고도의 정규화를 추구하다보면 레코드의 종류가 늘어나고 프로그래밍도 복잡해 져서 결국은 전체적인 performance가 떨어지게 된다. 이는 양자간의 절충으로 어느정도 해결될 수 있지만 개발자와 사용자간에 깊이 생각해 보아야 할 문제인 것이다.
데이타 모델링이란 무엇인가? 이와 비교하여 데이타모델링이란 시스템 분석의 한가지 방법으로서 어떤 시스템을 구성하고 있는 여러 대상과 관계를 식별하는 것을 말한다. 다시 말해 어떤 시스템에 대한 우리의 머리속에 있는 지식을 그 시스템에 관한 도식 및 언어상의 표현으로 전환시키는 것이다. 제임스 마틴의 정보공학에서는 데이타모델링을 특히 강조하고 있는데 이는 한 기업에서 사용되고 잇는 데이타형태는 그다지 변하지 않기 때문이다. 실제로 실체 형태는 경우에 따라 새로운 실체 형태를 추가하는 경우를 제외하고는 그다지 변하지 않는다. 따라서 잘 설계되기만 하면 이들 모델은 거의 변하지 않으며, 또 대체로 혼란을 초래할 변경은 피할 수도 있는 것이다.
모델링과 정규화의 비교 데이타 모델링과 데이타정규화의 비교는 각각의 업무를 수행하는 사람들을 비교해 봄으로써 이해할 수 있다. 다시 말해 데이타모델링은 데이타관리자, 데이타정규화는 데이타베이스 설계자에 의해 수행되는 것이 보통이므로 이들의 역할을 비교해보자는 것이다. 우선 데이타베이스 설계자는 특정 데이타베이스의 설계를 맡고 있는 사람이다. 데이타베이스 설계자는 각 데이타베이스의 물리적 구조를 최대한 효율적이며 기계적 능률을 낼 수 있도록 설계하는 일을 한다. 반면 데이타관리자는 기업의 데이타를 기획하고 모델링하고 조정하는 고급업무를 책임지고 잇다. 이것은 기술적 숙련을 요하는 작업이기보다는 오히려 사업을 운영하는데 필요한 데이타를 이해하고 데이타 항목의 정의와 표현에 대하여 다양한 개인들의 의견을 일치시키는 임무라고 할 수 있다. 다시 말해 데이타에 관한 서로다른 많은 견해들을, 이상적으로는 CASE 모델링 도구를 이용하여, 충분히 표준화된 하나의 데이타모델로 합성시켜야 하는 것이다.
한마디로 정리하면... 한마디로 정리, 비교하면 데이타정규화는 데이타베이스 설계시 자료의 중복성을 베제하고자 수행하는 작업으로서 수행속도와의 trade-off관계를 염두에 두고 작업을 해야하며, 데이타모델링은 기술적인 작업이라기보다 해당 기업 전반에 걸친 업무처리의 이해를 바탕에 둔 작업으로서 기업의 데이타모델을 만들고 최대한 안정되기 유지되도록 하는 작업을 말한다.
출처 : http://system.new21.net/zboard/view.php?id=db&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=7 |