DATOR


3.모델링이란? 기본 카테고리


모델링이란 무엇인가?


당연히 알고 있다고 생각하겠지만
다시 한 번 생각해 보자.

 

모델이란 사전적의미로
'작품을 만들기 전에 미리 만든 물건. 또는 완성된 작품의 대표적인 보기. ' 이다.


우리의 작품이란 데이터를 담는 물건이고 데이터는 하드디스크에 저장되기에 결국 작품이란 하드디스크의 저장구조이다.
그럼 미리 만든 물건이란?  하드디스크에 저장구조를  하드디스크가 아닌  종이에 그림 혹은 글씨로 만든 것이다.
그런데 하드디스크의 데이터 저장 구조는 너무 복잡해서  그 구조대로 설계하기도 어렵고,  설계할 필요도 없다.
데이터베이스 시스템을  만든 업체는 이 복잡함을  해결하기 위해  이해하기 쉬운 구조('외부구조'라 명명)를 제공하고
이 외부 구조와 하드디스크의 저장구조('내부구조'라 명명) 사이의 연결을 비밀리에 자신들의 프로그램이 처리하게 한다.
즉 우리는 하드디스크의 저장 구조를 알 필요없이  외부 구조만 이해하면 되고
이 외부 구조를  대상으로  모델을 만들면 된다.
차에 비유하자면 차의 겉모양이 외부구조이고 차 안의  미션, 기어, 볼트, 엔진... 등이 내부구조라 할 수 있겠다.

 

이 외부구조는  데이터베이스의 종류에 따라 다른데
관계형 데이터베이스는 2차원 표형태의 구조를 지원한다.
즉 엑셀시트 형태로 데이터를 저장하는 구조이다.
앞으로 우리의 모델링 대상은 관계형데이터베이스를 한정한다.

 

관계형 데이터 베이스의 특징은
1.표 구조
2.로우와  컬럼의 위치가 자유로움
3.데이터 중복은 오직  키 컬럼 상속 시에만 허용
등이다.

 

자세한 것은 나중에 이야기 하고
일단 표 구조만  논의하기로 하자.

 

우선은 이 표에 데이터를 저장하는 방법을  정의해야 한다.
다 아는 너무나 상식적인 이야기인데 한 번 해보자
한 중학교의 학생정보를 표에 기록한다고 가정해 보자
우리는 각 로우에  한 학생의 모든 정보를  저장하고
한 로우의 각 컬럼은 한 학생의 정보 리스트가 된다.
이것이 우리가 아는 기본적인 내용이다.

 

이런 질문을 해볼 수 있다.
왜 한 학생 정보를 두 줄에 걸쳐서 입력하면 안되는가?
다른 하나는
왜 이 표에 학생정보만 기록해야 하는가?
선생님 정보와 학부모 정보는 기록하면 안되는가?

 

전자의 실제 데이터 사례는 학생시험이력으로 한 학생의 데이터가 여러줄에 생성될 수 있다.
후자의 실제 데이터 사례는 학교관계자로  표에 선생님, 학생, 학부모 모두를 입력하고 역할에 관리하는 컬럼을 사용하면 된다.

 

결론은
표의 데이터를 담는 기준은  정답이 있는 것이 아니라
표 안에 내가 데이터를 어떻게 담을 건가에 의해 결정된다.

결국 모델링이란 표에 데이터를 어떻게 담는 것이 최선인가를 고민하는 과정이고
그 첫 번째는 '데이터를 어떤 방식으로 담을 것인가'이고
(학생정보와 학생의 시험정보이력 분리,  학생정보와 학생의 시험정보이력 통합 )
두 번째는 '어떤  데이터를 담들 것인가' 이다.
(학생정보만  아니면 학생정보+학부모정보 모두)
(전자와 후자의 차이는 전자는 학생 한 개체의 기본정보와 이력 정보를 하나의 표로 저장하는 것이고
후자는 전혀 다른 개체(학생, 학부모)를 한 표에 저장하는 것이다.) 

 

최적의 모델링이란
데이터를 사용하는 모든 유형을 고려하여 거기에 적합한 구조를 설계하고
해당되는 데이터를 담게 하는 것이다.

 

그럼 그 출발은 어디인가?

표의 성격을 결정하는 표의 각 로우 개체(이것을 엔티티라 한다)를 규정하는 것에서 시작한다.
이것을 엔티티 정의라 하고
모델링에서 가장 중요한 부분이 된다.
이제 엔티티 정의를 해보자.
 

 

Tag :

Leave Comments