한국기술교육대학교 온라인 평생교육원 - Python 기반 SQL 프로그래밍 첫 번째 강의를 듣고 궁금했던 부분을 찾아 정리한 내용입니다.
요약
- 데이터 모델링: 크게 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링으로 구성된다.
- 데이터 모델링이 3단계로 나뉘는 이유: 데이터베이스를 활용하고자 하는 개인이나 집단의 사용 목적이 다르기 때문
- 개념 데이터 모델링: 비즈니스 솔루션에 대한 entity와, 그들 간 관계를 식별하고 정의하는 것. 비즈니스 요구사항을 빠르고 간편하게 볼 수 있다.
- 논리 데이터 모델링: 개념 모델링에 필요한 세부사항을 추가하는 단계. 구현에 필요한 기술 사항은 고려하지 않는다.
- 물리 데이터 모델링: DBMS 시스템 상에서 구현하는 단계. 논리 데이터 모델에 기술 세부사항이 고려된다.
의문사항 - 데이터 모델링에 왜 3단계나 필요한 걸까?
처음부터 잘 정해놓고 DB를 만들면 되는 것을, 데이터 모델링에는 왜
불필요하게
3단계나 있는지 궁금해졌다.
그래서 여기저기 검색을 하던 중, 이 부분에 대해 잘 정리된 페이지가 있었다.
데이터 모델링이 3단계로 구성되는 이유는?
- 비즈니스 솔루션에 대한 entity와, 해당 관계를 식별하고 정의하는 것이라고 필자는 말한다. 쉽게 말하면 활용하기 위해서!
- 데이터 모델링에 3단계나 존재하는 것은 고객, 비즈니스 파트, 의사결정자, 개발자 등 개인이나 집단의 요구사항과 활용목적이 다르기 때문이다.
개념 데이터 모델
- 어떤 요리를 만들지 결정하는 단계. 어떤 데이터가 필요할지, 그 구조는 어떠할지 data structure diagram으로 표현한다. 비즈니스에서의 요구사항을 빠르고 간편하게 볼 수 있다.
대략적인 구조가 잡히면, entity에 해당하는 속성들의 기본 정의를 포함시킨다.
- 개념 데이터 모델은 논리 모델링의 기초를 제공하고, 데이터 요구사항과 비즈니스 프로세스의 이해에 기여한다.(비즈니스 지향적) 개념 모델링의 산물인 Entity-Relationship Diagram은 비즈니스 모델을 시각화로 이해하기 쉽게 도와준다.
논리 데이터 모델
- 정해진 요리의 레시피를 작성하고, 필요한 재료를 나열하는 단계. 개념 모델링에 대해 세부 사항이 추가된다.
개체(entity), 관계(relationships), 속성(attributes), primary keys, foreign keys 등의 세부사항이 포함된다. 다만, 구현에 필요한 기술 사항은 고려하지 않는다.
개념적 데이터 모델과 논리적 데이터 모델을 명확하게 구분하는 기준이나 세부사항은 명확하지 않다고. (조직, 프로젝트 등에 따라 다를 수 있음) - 논리 데이터 모델은 비즈니스 지향적이라는 부분에서 개념 데이터 모델과 비슷하지만, 보다 구체적으로 데이터 구조를 설명한다는 특징이 있다.
물리 데이터 모델
- 정해진 요리, 준비된 레시피와 재료를 가지고 실제로 요리를 만드는 단계. 데이터 모델링의 최종 단계로, DBMS 시스템 상에서 구현한 것을 가리킨다.
앞의 두 단계는 의사코드(pseudocode)나 계획에 해당하는 단계였다면 물리 데이터 모델링은 개념, 논리 모델링을 바탕으로 실제로 구현해 내는 것이기 때문에 'physical'이라는 단어가 사용된 듯하다. 이 단계에서는 테이블 이름, 열 이름 등을 지정하고 조건이나 데이터 타입 등을 정의한다.
필자는 데이터 모델링의 단계를 디테일의 차이로도 구분하고, 기술의 영역인지 비즈니스의 영역인지에 따라 잘 나눈 그림을 제시한다.