모델링
모델링(modeling)이란 물리적인 과정에 대한 평가와 이해를 돕기 위해 설계된 그 과정에 대한 복제이다.[1]
목차
개요[편집]
모델링은 일반적으로 모두에게 공통적으로 이해되도록 약속한 방식으로 표현하는 것이다. 복잡한 현실 세계를 단순화 즉, 추상적이고 체계적으로 표현하는 방법이다. 공학적으로는 시스템적인 특성을 수학적으로 표현하는 과정이라고 할 수 있다. 정량적으로 표현되도록 수학적 언어로 전환시키는 과정이다.[2] 하지만 현재는 뜻이 확장되어 쓰여 다양한 분야에서 모델링이 쓰이고 있다.
모델링의 특징[편집]
- 추상화 : 추상화는 현실 세계를 일정한 형식에 맞추어 표현한다. 즉 다양한 현상을 일정한 양식인 표기법에 의해 표현하는 것이다.
- 단순화 : 단순화는 복잡한 현실 세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현해 쉽게 이해할 수 있도록 하는 개념이다.
- 명확화 : 명확화는 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것이다.[3]
3D 모델링[편집]
3차원 모델링(3D Modeling)은 컴퓨터가 이해할 수 있는 형태의 데이터로 저장하는 것이다. 컴퓨터 그래픽스 분야에선 이런 3차원 모델을 표현하고자 하며 가상공간의 입체적인 모델을 통해 실세계의 물체를 묘사하거나 혹은 물리적 환경을 만들어 가상환경 속에서 물체의 모습을 만들어낼 수도 있으며 최근 3차원 모델링은 영화, 애니메이션, 광고 등의 엔터테인먼트 분야와 물리적 실험 시뮬레이션, 건축, 디자인 등 설계 및 예술의 표현 수단으로 활용되고 있다. 3D 모델링은 엔지니어링을 위한 모델링과 디자인을 위한 모델링으로 크게 구분할 수 있다. 엔지니어링 모델링은 주로 기계, 건축, 항공, 조선 분야 등의 제조 산업계에서 활용하며 솔리드엣지(SolidEdge), 아이캐드(ICAD), 퓨전360(Fusion360) 등의 파라메트릭(Parametric) 기반의 3D CAD 프로그램이 국내에서 많이 사용되고 있다.
- 2D 모델링 : 형상 정보의 2차원적인 자료로 도면 작성과 같은 방법이 이에 해단되며 물체의 경계면을 구성하는 요소를 기초로 만든 것이다.
- 2.5D 모델링 : 2D에서 작성한 평면의 데이터에 제3요소인 측단면과 길이에 대한 정보를 추가해 3차원 방식으로 만드는 방법이다.
- 3D 모델링 : 1980년대에서 1990년대 엔지니어링 수준의 컴퓨터가 등장하면서 적극적으로 이루어진 것으로 입체를 표현하는 X, Y, Z 축의 좌표값을 표시함으로써 3차원 형상을 구현하는 것이다.[4]
렌더링[편집]
렌더링(Rendering)이란 3차원 공간에 객체(Object)를 2차원 화면인 하나의 장면(Scene)에 바꾸어 표현하는 것이다. 즉 2차원에 표시된 물체를 3차원의 물체처럼 보이게 하는 것이라고 할 수 있다. 렌더링 과정에는 크게 변환(Transformation)과 색칠(Color, Lighting) 과정으로 구분할 수 있는데 변환 과정이란 3차원 모델 좌표계의 정점들을 2차원 모델 화면 좌표계로 바꾸는 것이고 색칠 과정이란 화면에 그려지는 객체의 색채와 조명 또는 매핑 등으로 원하는 효과 또는 실제 물체와 동일한 물체로 표현하는 것이다.[5]
- 플랫 셰이딩(Flat Shading) : 플렛 셰이딩은 3차원 컴퓨터 그래픽스에서 쓰이는 광원 기술이다. 다각형의 표면과 광원 방향 간 각도, 개별 색상, 광원의 세기에 따라 한 물체의 각 다각형에 그림자를 넣는다.
- 고러드 셰이딩(Gouraud Shading) : 플렛 셰이딩의 단점을 보완한 것으로 빛이 비치는 면들의 평균적인 명암을 계산해서 그것을 부드럽게 적용시켜주는 것으로 플렛 셰이딩과는 달리 면과 면 사이의 각을 감춰 준다.
- 퐁 셰이딩(Phong Shading) : 고러드 셰이딩과 유사하며 정점들 사이의 노말들을 하나의 표면 노말로 분해하여 면의 모든 픽셀에 대한 노말을 계산하여 고러드 셰이딩보다 정확한 곡면 셰이딩이 가능하며 보다 사실적인 표현이 가능하다.
- 레이 트레이싱(Ray Tracing) : 자연적인 명암 표현으로 실사와 유사한 느낌을 준다. 주로 영화 CG 제작에 이용된다.[6]
와이어 프레임 모델링[편집]
와이어 프레임 모델링(Wire Frame Modeling)은 1960년대 처음으로 발견한 가장 단순한 소프트웨어로 직선, 점, 원, 호 등의 기본적인 기하학적 요소로 철사를 연결한 구조물과 같이 모델링 한 것이다. 소요시간이 적게 들고 차지하는 메모리의 용량이 작아 주로 2D 도면 출력을 위한 평면 가공과 용도에 적합하다. 최소의 정보만으로 원하는 형상 구현 시스템 구축이 쉽고 처리 속도가 빠르며 모델 작성이 쉽다. 데이터 구성이 간단하며 3면 투시도 작성이 용이하다. 하지만 경계 정보나 부피에 대한 정보가 없으며 구현하려는 모델의 형상이 간단하고 명확해야 한다. 물리적 성질을 계산할 수 없으며 숨은선 제거가 불가능하다. 간섭 체크가 어렵고 단면도 작성이 불가능하고 형상을 정확하게 판단하기가 어렵다.[4]
서페이스 모델링[편집]
서페이스 모델링(Surface Modeling)은 면을 이용해 물체를 모델링 하는 방법으로, 표면 모델링이 정밀하고 수학적으로 정의된 곡선 표면, 우주항공, 자동차, 조선 산업에서 필수이다. 물체의 경계면을 구성하는 요소를 기초로 만든 것으로 와이어 프레임에서 어려웠던 작업을 진행할 수 있고, 가공면을 정확히 인식해 NC 가공에 최적화된 방식으로 겉표면만이 존재하는 모델링 기법으로 인식되며 컴퓨터의 속도와 메모리 용량을 적게 쓰고, 주로 렌더링을 하기 위한 목적이나 애니메이션 등의 필름용, 화면용으로 데이터를 출력하는 용도로 많이 쓰이고 있다. 서페이스 모델링은 은선 처리가 가능하고 단면도를 작성할 수 있다. 자동으로 툴패스(Tool Path)가 생성되며 간섭 체크가 가능하다. 음영 처리가 가능하고 2개 면의 교선을 구할 수 있다. 하지만 물리적 성질을 계산할 수 없으며 물체 내부의 정보가 없다는 단점이 있다.[4]
솔리드 모델링[편집]
솔리드 모델링(Solid Modeling)은 가장 진보적인 방식으로, 와이어 프레임 모델링이나 서페이스 모델링과 달리 모든 작업이 가능해 표면 모델러는 물체의 표면을 정확하게 기술할 수 있으나 종종 물체의 내부에 관한 정보가 요구된다. 3차원으로 형상화된 물체의 내부를 공학적으로 분석할 수 있는 방식으로 물체를 가공하기 전에 가공 상태를 미리 예측하거나, 부피, 무게 등의 다양한 정보를 제공한다. 부품 간의 간섭 검사를 할 수 있고 물리적 특정 계산이 가능하다. 서페이스 방식과 같이 가상적인 목업을 생성하고 실사화할 수 있다. 단면도 작성을 할 수 있으며 은선 제거가 가능하고 정확한 형상을 파악할 수 있다. 하지만 컴퓨터 메모리를 많이 차지하며 데이터 구조가 복잡하다. 많은 정보를 가지고 있고 논리적으로 완전히 채워진 모델만 허용한다.[4]
수학적 모델링[편집]
수학적 모델은 어떤 현상의 특성들에 접근하는 수학적 구조이며, 그것을 고안하는 과정이 수학적 모델링이다. 상황을 구조화하면서 자신의 비형식적인 상황 모델을 개발한 후에 모델에 대해 사고하고 추론하는 활동을 조직하면서 수학적 모델을 개발하고 그 후에 수학적 모델을 상황에 비추어 해석하여 수정하고 정교화 하여 일반화가 가능한 체계인 모델을 개발하는 과정을 모델링 활동으로 본다. 또는 간단히, 수학적 모델은 다양한 표현 매체의 상호작용에 의해 표현되는 개념 체계라고도 할 수 있다. 이 표현 매체는 기호나 언어, 다이어그램과 같은 전통적 매체를 비롯해 컴퓨터 애니메이션, 시뮬레이션, 그래픽과 같은 전자매체도 포함된다. 게다가 수학적 모델은 수학적 모델링에 이용되는 기본적인 수학적 구조로도 생각할 수 있는데, 그래프, 식, 화살표, 표, 알고리즘 등이 대표적인 예이다. 인지과학자는 간단히 모델이라고 지칭하는 개념적 체계를 묘사하기 위해 전문적으로 엄밀하고도 정확해 보이는 용어로 표현이나 쉐마, 상황 인지 구조 등을 사용한다. 즉 도식화에 대해서 여러 가지 도식들을 형식화된 수학 내의 문제 해결 공식, 절차와 동일시하려는 경향이 있는데 오늘날 도식이라는 용어는 광범위한 의미에서 좀 더 일반적인 모델이라는 용어로 대체되어 왔다. 다른 체계의 구성, 기술, 설명을 하기 위해 그리고 다른 사람과 의사소통하거나 나중에 다른 상황에서 자기 자신과 의사소통하기 위해 사용하는 것이 모델의 일반적인 목적이기 때문에 수학적 모델이라는 용어로 현재 사용하고 있다.[7]
수학적 모델[편집]
모델은 내적인 개념 체계와 외적인 인공물이나 표현으로 나뉜다. 다르게 말하면 모델은 정신 또는 표현 매체로 존재할 수 있다. 일반적으로 표현 매체를 통해서 시각적으로 볼 수 있는 모델만을 생각하는데 정신적이고 내적인 개념 체계로도 존재한다는 것이다. 모델은 개념 체계이기 때문에 부분적이고 내적인 인지 과학자가 인지구조 혹은 경험을 해석하기 위한 쉐마라고 부르는 개념 체계와 유사하기 때문이며, 수학교육과 과학교육에서 가장 강력하고 유용한 개념 체계는 모델을 구어, 문자 기호, 구체물, 다이어그램이나 그림, 컴퓨터 프로그램, 경험에 기초한 은유, 다른 표현 매체를 사용해서 표현되지 않는 정교한 방법으로 나타낼 수 있기 때문이다. 시각적인 측면에서의 분류로 수학적 모델의 개념에는 두 가지가 있다고 본다. 하나는 구체적 모델이고 다른 하나는 추상적 모델이다.
- 구체적 모델 : 구체적 모델이란 어떤 실물의 특성을 이해하는 데 도움을 주기 위해 그 실물을 축소 또는 확대해 만든 조형물이다.
- 추상적 모델 : 추상적 모델은 어떤 사물이나 현상의 특성을 추상적인 방법 즉 기호, 문자, 식, 그래프, 도표 등을 사용해 나타낸 것이다.
이런 수학적 모델을 형성하기 위해선 여러 단계를 거치며 계속 수정된다. 먼저 문제 해결을 시작하기 위해선 문제와 직접적으로 관련되는 핵심적인 개념을 확인함으로써 복잡한 상황을 간단하게 한다. 이런 단순화 단계는 어떤 것을 무시할 것인지에 관해 결정을 하고 핵심적인 개념들을 어떻게 관련지을지에 대해 생각하는 것과 관련되며 원래 상황에 대한 현실적인 모델에 이르게 된다. 현실적인 모델은 원래 상황을 보다 쉽게 조사하고 조작하고 이해할 수 있다. 다음으로 형식적인 수학적 개념과 기호를 도입하는 단계이다. 이 추상화 단계에서는 현실적인 모델의 핵심적인 특징을 표현하기 위해 수학적 개념을 선택한다. 흔히 추상화 단계는 주어진 표현의 의미를 이후의 계산 단계에서 이용 가능하도록 한다는 생각을 바탕으로 진행된다. 수학적 기호로 표현된 원래의 상황과 문제에서의 표현은 상황과 문제에 대한 수학적 모델을 구성한다. 모델링의 세 번째 과정에서는 수학적 결론을 연역하기 위해 수학적 표현을 다루고 추론한다. 이 단계에서 문제 해결자가 가진 사실, 기능, 수학적 추론 능력 등이 작용하게 된다. 마지막으로 수학적 추론의 결과를 해석하고 이를 문제의 원래 맥락에 적용한다. 흔히 이 결과는 모델 개발 단계가 시작될 때 예상치 못했던 것이 드러나게 된다. 그리하여 수학적 모델을 만드는 순환과정을 자연스럽게 반복한다.[7]
모델링 과정[편집]
모델링 과정에서 형성되는 모델을 상황 모델, 수학 모델, 일반화 모델로 구분한다. 여기서 모델링 과정을 네 단계로 설명하는데 첫째, 경험을 기반으로 하여 실세계 맥락을 탐구하는 과정, 둘째, 실세계 맥락을 단순화하면서 비형식적인 상황 모델을 개발하는 과정, 셋째, 상황 모델에 내재한 수학 구조와 관계를 조직하여 수학 모델을 개발하는 과정, 넷째, 수학 모델을 실세계 맥락에 반영하여 해석하고 수정하고 정교화 하여 일반화 가능한 모델을 개발하는 과정으로 설명하고 있다.[7]
수학적 모델링[편집]
수학적 모델링은 수학적 모델을 개발하는 일련의 과정으로 볼 수 있다. 즉, 수학적 모델링은 실제 상황의 모델을 구성하여 실제 상황 문제를 해결하는 전체 과정이다. 단지 존재하는 현상 전체의 단순화된 상을 찾는 것이라기보다는 현상의 일부분을 조작할 수 있는 상을 찾는 것이다. 현실 세계 문제 상황으로부터 수학적 모델로 이끄는 전 과정을 수학적 모델링이라고 할 수 있다. 이는 먼저 현실 세계의 문제 상황을 관찰하여 중요한 요인들을 선택하고 문제의 특징을 나타내는 변수 사이의 관계를 설정해 수학적인 문제를 만든다. 그다음 알고 있는 수학적 모델을 이용해 수학적인 해결을 한다. 마지막으로 수학적인 해를 현실 세계로 번역해 해를 해석하는 것이다. 수학적 모델링에서 학자들마다 제시하는 수학적 모델링의 특징 중 일반적인 것은 수학적 모델링의 정의처럼 수학적 모델을 만들어낸다는 것과 주기를 형성하는 것으로 볼 수 있다. 첫째, 수학적 모델링은 일반적인 모델 기반 추론의 기원과 관련이 있다. 둘째, 표현의 사상은 중요하고 인상적이지만 항상 모델링과 관련되는 것은 아니다. 모델이란 정신적 모델이나 개인적 표현이기보다는 학문적 관행의 지원을 위해 공동체 내에서 구안하고 채택한 표현을 의미하기 때문이다. 셋째, 하나의 체계를 나타내기 위해 다른 체계를 이용하는 것은 모델링의 중요한 요소임에 틀림없다. 넷째, 몇 가지 모델의 실세계와 상대적 적합도를 비교하는 것은 특히 중요한 준거가 된다. 모델링의 필요조건으로 대안적 모델을 강조하는 것은 모델링의 결과가 모델의 효과에 기인한 것인지 또는 단순한 오류에 의한 것인지를 생각할 수 있는 인식의 토대를 제공해 주기 때문이다. 다섯째로는 모델링에서의 수학화의 역할을 강조한다. 모든 모델이 수학적이어야 한다는 것이 아닌, 경험이 수학화될수록 모델링은 더 유동적이며 확장이 가능해져 모델에 가까워진다.[7]
데이터 모델링[편집]
데이터 모델은 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 SQL 문장을 기능과 성능적인 측면에서 효율적으로 작성하기 위해 알아야 하는 핵심요소이다. SQL 전문가를 위한 지식에서도 데이터베이스의 논리적인 구조를 이해하는 데이터 모델을 이해하는 것은 그다음 SQL 문장을 어떻게 구성할지에 대한 지식과 효율적인 구성에 대한 밑바탕의 지식을 쌓기 위한 핵심 이론이다. 일반적으로 데이터 모델링은 정보시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법이다. 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙에 대하여 참 또는 거짓을 판별할 수 있는 사실을 데이터에 접근하는 방법, 사람, 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상화 기법이다.[3]
데이터 모델링의 3단계[편집]
- 개념적 데이터 모델 : 처음 현실 세계에서 추상화 수준이 높은 수준을 형상화하기 위해 개념적 데이터 모델링을 전개한다. 개념적 데이터 모델은 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링을 진행한다. EA 기반의 전사적인 데이터 모델링을 전개할 때는 더 상위 수준의 개괄적인 데이터 모델링을 먼저 수행하고 이후 업무영역에 따른 개념적 데이터 모델링을 전개한다. 개념적 데이터 모델링은 조직, 사용자의 데이터 요구 사항을 찾고 분석하는데 서 시작한다. 이 과정엔 어떤 자료가 중요하며 어떤 자료가 유지되어야 하는지를 결정하는 것도 포함한다. 이 단계에 있어서 주요한 활동은 핵심 엔터티(Entity)와 그들 간의 관계를 발견하고 그것을 표현하기 위해 엔터티-관계 다이어그램을 형성한다. 엔터티-관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해 사용된다. 데이터 모델링 과정이 전 조직에 걸쳐 이루어진다면 그것은 전사적 데이터 모델이라고 불린다. 개념 데이터 모델을 통해 조직의 데이터 요구를 공식화하는 것은 두 가지의 중요한 기능을 지원한다. 첫째, 개념 데이터 모델은 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원한다. 개념 데이터 모델은 추상적이기 때문에 그 모델은 상위의 문제에 대한 구조화를 쉽게 하며 사용자와 개발자가 시스템 기능에 대해 논의할 수 있는 기반을 형성한다. 둘째, 개념 데이터 모델은 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용하다. 일반적으로 매우 간단하게 고립된 시스템도 추상적 모델링을 통해 보다 쉽게 표현되고 설명된다.
- 논리적 데이터 모델 : 논리적 데이터 모델링은 엔터티(Entity) 중심의 상위 수준의 데이터 모델이 완성되면 업무의 구체적인 모습과 흐름에 따른 구체화된 업무 중심의 데이터 모델을 만들어 내는 것이다. 논리적 데이터 모델링은 데이터베이스 설계 프로세스의 인풋(Input)으로써 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정이라고 할 수 있다. 논리 데이터 모델링의 결과로 얻어지는 논리 데이터 모델은 데이터 모델링이 최종적으로 완료된 상태라고 정의할 수 있다. 즉 물리적인 스키마 설계를 하기 전 단계의 데이터 모델 상태를 일컫는다. 데이터 모델링 과정에서 가장 핵심이 되는 부분이 논리 데이터 모델링이라고 할 수 있다. 데이터 모델링이란 모델링 과정이 아닌 별도의 과정을 통해서 조사하고 결정 난 사실을 단지 ERD 라는 그림으로 그려내는 과정을 말하는 것이 아닌 시스템 구축을 위해서 가장 먼저 시작할 기초적인 업무 조사를 하는 초기 단계부터 인간이 결정해야 할 대부분의 사항을 모두 정의하는 시스템 설계의 전 과정을 지원하는 과정의 도구라고 해야 할 것이다. 이 단계에서 수행하는 또 한 가지 중요한 활동은 정규화이다. 정규화는 논리 데이터 모델 상세화 과정의 대표적인 활동으로 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 함으로써 보다 신뢰성 있는 데이터 구조를 얻는 데 목적이 있다. 논리 데이터 모델의 상세화는 식별자 확정 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등을 들 수 있으며 추가적으로 이력 관리에 대한 전략을 정의해 이를 논리 데이터 모델에 반영함으로써 데이터 모델링을 완료하게 된다.
- 물리적 데이터 모델 : 데이터베이스 설계 과정의 세 번째 단계인 물리 데이터 모델링은 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다. 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라고 한다. 이 단계에서 결정되는 것은 테이블, 칼럼 등으로 표현되는 물리적인 저장 구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등이 있다. 계층적 데이터베이스 관리 시스템 환경에서는 데이터베이스 관리자가 물리적 스키마를 설계하고 구현하기 위해서 보다 많은 시간을 투자해야 한다. 실질적인 현실 프로젝트에서는 개념적 데이터 모델링, 논리적 데이터 모델링, 그리고 물리적 데이터 모델링으로 수행하는 경우는 드물며 개념적 데이터 모델링과 논리적 데이터 모델을 한꺼번에 수행하여 논리적인 데이터 모델링으로 수행하는 경우가 대부분이다.[3]
데이터 모델링의 중요성 및 유의점[편집]
- 파급효과(Leverage) : 시스템 구축이 완성되어 가는 시점에서 많은 애플리케이션들이 테스트를 수행하고 대규모의 데이터 이행을 성공적으로 수행하기 위한 많은 단위 테스트들이 수행되고 이러한 과정들이 반복된다. 각 단위 테스트들이 성공적으로 수행되고 완료되면 이를 전체로 묶어서 병행 테스트, 통합 테스트를 수행하게 된다. 만약 이러한 시점에 데이터 모델의 변경이 불가피한 상황이 발생한다고 가정했을 때, 이를 위해서 데이터 구조의 변경에 따른 표준 영향 분석, 응용 변경 양향 분석 등 많은 영향 분석이 일어난다. 그 이후에 해당 분야의 실제적인 변경 작업이 발생하게 된다. 변경을 해야 하는 데이터 모델의 형태에 따라서 그 영향 정도는 차이가 있겠지만 이 시기의 데이터 구조의 변경으로 인한 일련의 변경 작업은 전체 시스템 구축 프로젝트에서 큰 위험요소가 아닐 수 없다. 이러한 이유로 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요하다.
- 복잡한 정보 요구 사항의 간결한 표현(Conciseness) : 데이터 모델은 구축할 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구이다. 정보 요구 사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구 사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이다. 데이터 모델은 시스템을 구축하는 많은 관계자들이 설계자의 생각대로 정보 요구 사항을 이해하고 이를 운용할 수 있는 애플리케이션을 개발하고 데이터 정합성을 유지할 수 있도록 하는 것이다. 이렇게 이상적으로 역할을 할 수 있는 모델이 갖추어야 할 가장 중요한 점은 정보 요구 사항이 정확하고 간결하게 표현되어야 하는 것이다.
- 데이터 품질(Data Quality) : 데이터 품질의 문제가 야기되는 중요한 이유 중 하나가 바로 데이터 구조의 문제이다. 중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리함으로써 나타나는 데이터 불일치 등의 데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에는 불가능한 경우가 대부분이다. 데이터 모델링을 할 때 유의점은 다음과 같다.
- 중복(Duflexibility) : 중복 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는 데 도움을 준다. 이러한 지식 응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.
- 비유연성(Inflexibility) : 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
- 비일관성(Inconsistency) : 데이터의 중복이 없더라도 비일관성은 발생한다. 이는 개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문이다. 데이터 모델링을 할 때 데이터와 데이터 간 상호 연관 관계에 대한 정확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.[3]
좋은 데이터 모델링의 요소[편집]
- 완전성(Completeness) : 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 한다. 데이터 모델을 검증하기 우해 가장 먼저 확인해야 할 부분으로 이 기준이 충족되지 못하면 다른 어떤 평가 기준도 의미가 없어진다.
- 중복배제(Non-Redundancy) : 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록해야 한다. 데이터 중복 관리로 인해 여러 가지 바람직하지 않은 형태의 데이터 관리 비용을 지불할 수도 있다. 예를 들면 저장 공간의 낭비, 중복 관리되고 있는 데이터의 일관성을 유지하기 위한 추가적인 데이터 조작 등이 대표적으로 낭비되는 비용이라고 볼 수 있다.
- 업무규칙(Business Rules) : 데이터 모델에서 매우 중요한 요소 중 하나가 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공하는 것이다. 특히 데이터 아키텍처에서 언급되는 노닐 데이터 모델에서 이러한 요소들이 포함되어야 함은 매우 중요하다.
- 데이터 재사용(Data Reusability) : 데이터의 재사용성을 향상시키고자 한다면 데이터의 통합성과 독립성에 대해 충분히 고려해야 한다. 과거에 정보시스템이 생성, 운영된 형태를 되짚어 보면 철저하게 부서 단위의 정보시스템으로 설계되고 운영되어 왔다. 현재 대부분의 회사에서 진행하고 있는 신규 정보시스템의 구축 작업은 회사 전체 관점에서 공통 데이터를 도출하고 이를 전 영역에서 사용하기에 적절한 형태로 설계하여 시스템을 구축하게 된다. 이러한 형태의 데이터 설계에서 가장 중요하게 대두되는 것이 통합 모델이다. 통합모델이어야 데이터 재사용성을 향상시킬 수 있다.
- 의사소통(Communication) : 데이터 모델의 역할은 많지만 그중에서도 중요한 것이 데이터 모델의 의사소통의 역할이다. 데이터 모델은 대상으로 하는 업무를 데이터 관점에서 분석하고 이를 설계해 나오는 최종 산출물이다. 데이터를 분석하는 과정에서는 자연스럽게 많은 업무 규칙들이 도출된다. 이 과정에서 도출되는 많은 업무 규칙들은 데이터 모델에 엔터티, 서브타입, 속성, 관계 등의 형태로 최대한 자세하게 표현되어야 한다. 표현된 많은 업무 규칙들은 해당 정보시스템을 운용, 관리하는 많은 관련자들이 설계자가 정의한 업무 규칙들을 동일한 의미로 받아들이고 정보시스템을 활용할 수 있게 하는 역할을 하게 된다. 즉, 데이터 모델이 진정한 의사소통의 도구로서의 역할을 하는 것이다.
- 통합성(Integration) : 가장 바람직한 데이터 구조의 형태는 동일한 데이터는 조직의 전체에서 한 번만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것이다. 물론 이때 성능 등의 부가적인 목적으로 의도적으로 데이터를 중복시킬 수 있으나 동일한 성격의 데이터를 한 번만 정의하기 위해서는 공유 데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의할 수 있어야 한다.[3]
각주[편집]
- ↑ 한준희·문운경, 〈모델링; 문제를 바라보는 다양한 시각〉, 《Korea Science》, 2014-02
- ↑ 차재복, 〈모델링, 모델, 모형〉, 《정보통신기술용어해설》
- ↑ 3.0 3.1 3.2 3.3 3.4 갓대희, 〈데이터 모델링의 이해〉, 《개인 블로그》
- ↑ 4.0 4.1 4.2 4.3 goruduru, 〈3D 모델링이란 무엇일까?〉, 《개인 블로그》, 2021-02-02
- ↑ 주인장 산드로, 〈렌더링(Rendering)이란?〉, 《개인 블로그》, 2019-06-05
- ↑ 전략사업본부, 〈3D 모델링에 대한 기본 개념〉, 《프로니스 정보기술》
- ↑ 7.0 7.1 7.2 7.3 김인경, 〈수학적 모델링과 수학화 및 문제해결 비교 분석〉, 《한국수학사학회지》, 2012-05
참고자료[편집]
- 한준희·문운경, 〈모델링; 문제를 바라보는 다양한 시각〉, 《Korea Science》, 2014-02
- 차재복, 〈모델링, 모델, 모형〉, 《정보통신기술용어해설》
- 갓대희, 〈데이터 모델링의 이해〉, 《개인 블로그》
- 전략사업본부, 〈3D 모델링에 대한 기본 개념〉, 《프로니스 정보기술》
- goruduru, 〈3D 모델링이란 무엇일까?〉, 《개인 블로그》, 2021-02-02
- 주인장 산드로, 〈렌더링(Rendering)이란?〉, 《개인 블로그》, 2019-06-05
- 김인경, 〈수학적 모델링과 수학화 및 문제해결 비교 분석〉, 《한국수학사학회지》, 2012-05
같이 보기[편집]