데이터 모델링

데이터 모델링(데이터베이스 설계)는 현실 세계의 개념을 단순화/추상화 시켜서 데이터베이스에 저장하고 관리하기 위한 설계 과정을 의미합니다.

모델링을 제대로 수행해야 데이터베이스 시스템의 사용성, 확장성, 유지보수성, 데이터 무결성을 높일 수 있습니다.


데이터 모델링 3단계

데이터 모델링은 3단계의 과정을 거치며 수행됩니다.

개념적 모델링

개념적 모델링 Conceptual Modeling은 요구사항을 수집하고 분석한 결과를 통해 데이터베이스 시스템에서 다뤄야하는 개체(실체, Entity)와 개체들 간의 관계(Relation)을 추상화하는 과정입니다.

추상화 하는 과정에서 ERD (Entity-Relationship Diagram)를 이용하여 개체들 간의 관계를 나타내게 됩니다.

예를들어 학교 데이터베이스 시스템에서는 학생, 선생님 개체가 존재하고, 학생과 선생님 간의 관계는 사제 관계라는 관계로 얽혀있다고 할 수 있습니다.

이때 각 개체에 대한 핵심적인 속성들 또한 표현합니다. 예를들어 학생의 핵심적인 속성이라고 한다면 이름, 학번, 반 정도를 개념적 모델링 단계에서 표현합니다.

ER 다이어그램 정의 방법은 내용이 좀 많아지는 관계로 다음 포스트에서 따로 다루도록 하겠습니다.

논리적 모델링

논리적 모델링 Logical Modeling은 개념적 모델링에서 만들어진 ERD를 프로젝트에 사용되는 DBMS의 맞춰서 독립적인 구조로 모델링을 구체화하는 과정입니다.

논리적 모델링의 단계에서는 다음 작업들을 수행합니다.

  • 개체(엔티티)는 테이블로 속성은 컬럼으로 매핑(Mapping)
  • 키(기본키 PK, 외래키 FK) 지정
  • 개념적 모델링에서 추출한 속성 외의 모든 속성 추가 추출
  • 데이터 표준화
  • 정규화

정규화는 한 릴레이션에서 발생한 이상현상을 제거하는 과정입니다. 이상현상은 데이터 조작 과정에서 NULL 삽입 등의 데이터가 훼손되는 현상을 의미합니다.

정규화나 이상현상에 대해서는 추후에 따로 다루도록 하겠습니다.

물리적 모델링

모델링의 마지막 단계인 물리적 모델링 Physical Modeling은 논리적 모델링의 결과를 DBMS에 실제로 저장하기 위한 물리적 구조를 정의 및 구현하는 단계입니다.

사용하는 DBMS에 맞게 데이터 타입이나 인덱스 등을 고려해서 저장 공간을 고려합니다.

이후 DBMS에 실제로 저장하기 위해 데이터 정의문 DDL과 프로시저, 트리거 등을 정의합니다.

물리적 모델링의 결과로 실제로 저장된 DB 스키마를 얻을 수 있습니다.

0개의 댓글