1. 데이터 모델링의 3단계 진행
모델링에도 진행 과정이 있어서 각 단계에 이름이 붙어있어요. 얼마나 추상화되었느냐에 따라 개념적/논리적/물리적 데이터 모델이라고 불러요!
먼저 가장 추상화 수준이 높은 모델로 개념적 데이터 모델이 있어요.
다른 데이터 모델에 비해 상대적으로 현실세계와 가까운 느낌이라고 볼 수 있어요. 굉장히 업무중심적이고 포괄적인 모델링인데, 현실세계에 있는 정보 중에서도 모델링의 목적과 맞는 정보(업무중심적)들을 Entity 중심으로 가지고 오거든요!
개념적 데이터 모델 이후에는 이를 좀 더 구체적으로 업무의 흐름과 연관시킬 필요가 있어요. 그렇게 만들어낸 모델을 논리적 데이터 모델이라고 해요.
이를 데이터베이스 저장구조에 맞게 모델링 하는 방식을 물리적 데이터 모델링이라고 해요. 실제로 데이터베이스에 넣어두고 사용할 수 있게 해주는 거죠~
이렇게 단계를 진행할수록 추상적인 수준에서 점점 더 구체적인 수준으로 모델링이 가능해요.
대략적인 설명을 했으니 좀 더 구체적으로 3가지를 나눠서 살펴볼게요!
1) 개념적 데이터 모델
현실세계의 모든 것을 가지고 올 수는 없으니 필요한 정보를 선별해야겠죠? 어떤 것이 더 중요하고, 유지되어야 하는지 결정해야 하는데 이때 핵심이 되는 Entity와 Relation을 파악할 필요가 있게 되는 거예요. 이걸 중심으로 E-R Diagram을 만들면 돼요.
그런 데이터 모델이 과정이 전 조직에 걸쳐서 이루어지게 되면, 우리는 그걸 전사적 데이터 모델이라고 불러요.
이렇게 조직이 요구하는 데이터를 공식화하게 되면 2가지 중요한 기능을 얻을 수 있어요.
a. 개념 데이터 모델은 가장 추상적이라고 했잖아요? 그렇기 때문에 이보다 상위의 문제에 대한 구조화를 쉽게 할 수 있게 돼요. 그렇게 되면 당연히 좀 더 쉽게 볼 수 있게 될테니 사용자와 개발자가 시스템의 기능에 대해서 논의할 수 있게 되는 기반이 될 수 있어요.
b. 개념 데이터 모델은 현재의 시스템이 어떤지, 어떻게 변형되어야 하는지를 파악하기에 용이해요. 매우 간단하게 고립된 시스템도 추상적 모델링을 이용해서 더 쉽게 표현되고 설명될 수 있으니 얼마나 파악하기 좋은지 상상이 되시나요!
2) 논리적 데이터 모델
쉽게 말해서 업무 정보의 논리적인 구조와 규칙을 명확하게 표현하는 과정이라고 이해하면 돼요. 사실상 데이터 모델링의 최종완성본 상태라는 거죠.
어떻게 데이터에 접근하고, 누가 할 거며, 그것의 전산화와는 별개로 업무 데이터에 존재하는 사실들을 알고 기록하는 것 정도로 설명할 수 있겠네요.
그래서 논리적 데이터 모델은 가장 핵심적인 것이기도 해요. 단순히 ERD로 그리는 것만이 아니라 시스템을 구축하기 위해 가장 먼저 해야 할 기초 업무를 조사하고 설계까지의 모든 과정에 필요하니까요.
그래서 이 단계에서는 정규화가 가장 중요한 활동이에요. 정규화는 논리적 데이터 모델이 상세화 되는 과정의 활동을 말하는 건데, 일관성을 가질 수 있게 하고 중복을 제거하는 일이 이 안에 포함되어서 신뢰성 있는 데이터 구조를 얻을 수 있게 하거든요.
ex) 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의, 이력 관리에 대한 전략 정의 등
3) 물리적 데이터 모델
물리적 데이터 모델은 생각보다 간단하게 설명할 수 있을 거 같아요. 앞서 설명한 논리적 데이터 모델이 사실상 최종완성본이라고 했잖아요? 이걸 어떻게 컴퓨터 하드웨어에 표현할 것인지를 목적으로 두는 활동이에요.
후에 나오게 될 테이블, 칼럼 등의 저장구조, 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등을 정하는 거죠.
2. Life Cycle에서 데이터 모델링
일단 프로젝트의 Life Cycle은 폭포수 모델을 기본으로 할 때, 보통 분석-설계-개발-테스트-전환/이행(유지/보수)로 이루어집니다.
이때 분석과 설계의 단계에서 데이터 모델링이 일어나요. 개념/논리적 데이터 모델링이 분석 단계에서 진행되고, 물리적 데이터 모델링이 설계 단계에서 진행됩니다. 그 이후에 DB를 구축/변경/관리하고 테스트를 통해 튜닝, 전환하는 단계를 거쳐 하나의 정보시스템이 구축되는 거예요.
'SQL' 카테고리의 다른 글
SQLD 4 (1) | 2023.09.07 |
---|---|
SQLD 3 (0) | 2023.08.31 |
SQLD 1 (0) | 2023.08.26 |
SQL_05 하룻데엔새싹 범 무서운 줄 모른다.(1편) (3) | 2023.06.04 |
SQL_04 (0) | 2023.05.20 |