데이터 모델링
무한하게 엃혀있는 복잡한 현실을 표로 정리할 수 있게 도와주는 행위이자, 기술이다.
웹 사이트로 생각하면,
웹 UI 기획서를 제공받고
기획한 사항대로 동작할 수 있도록 데이터들을 저장하는 표를 모델링하는 것을
데이터 모델링이라고 한다.
정리해서, 데이터 모델링이란,
데이터베이스를 구성할 때 사용되는 기술이다.
데이터 모델링에 대한 과정을 구체적으로 알아두면, DB 구성 시 수월하게 진행할 수 있다.
데이터 모델링 순서
1. 업무 파악
2. 개념적 데이터 모델링
3. 논리적 데이터 모델링
4. 물리적 데이터 모델링
데이터 모델링 순서는 위와 같이 진행된다.
자세한 사항은 앞으로 포스팅을 통해 하나씩 알아본다.
업무 파악
소통 & 기획서를 토대로 수행되어지는 과정이다.
사실, 이 과정에선 개념적 정의가 있기보단,
커뮤니케이션 과정이 주를 이룬다.
기획자와 함께
적극적인 소통을 통해 기획 전체상황을 이해하는 과정이다.
이때, 기획자가 수행할 수 있는 행위는
기능 명세서를 작성해,
개발자에게 업무 파악을 용의하게 해줄 수 있다.
개념적 데이터 모델링
앞서, 이해한 기획 전체상황을
속성, 그룹, 관계로 표현하는 행위이다.
우린, 데이터베이스를 통해 모든 상황에 대해 대처한다.
원할 때, 필요한 정보를 조회하거나,
사진이나, 글을 포스팅한다.
마음에 들지 않는 정보를 삭제할 때, 우린 그 정보를 삭제한다.
그렇다.
우리는 모든 상황을 데이터베이스라는 공간에 담아두어
원할 때 필요한 정보를 꺼내거나 넣을 수 있다.
정리해서,
기획 전체상황이 데이터베이스에 저장되어질 수 있도록
속성, 그룹, 관계 의 카테고리로
개념적으로 표현하는 "개념적 데이터 모델링"을 수행한다.
개념적 데이터 모델링 어떻게 하는거야?
기획 상황을 속성, 그룹, 관계 의 카테고리로 정리를 하면된다.
아래 예시 그림에서,
왼쪽 웹 UI는 기획 상황이다.
오른쪽은 기획 상황을 속성, 그룹, 관계의 카테고리로 개념적 데이터 모델링을 수행했다.
좀 더 자세히 살펴보면,
그룹은
댓글, 저자, 글로 나눠진다.
각각의 관계는
'속하다'와 '작성한다' 로 나눠진다.
정리해서,
위와 같이 속성, 그룹, 관계 카테고리로
기획 상황을 구조적으로 모델링하는 과정을 개념적 데이터 모델링이라 한다.
이젠, 이를 토대로 우린 ERD 설계를 진행한다.
마치며
해당 포스팅은 [생활코딩 : 데이터 모델링] 를 토대로 작성되었다.
해당 과정을 학습하는 이유, 목적
지난 2022년,
나는 백엔드 개발자로 2번가량 활동했었다.
백엔드 개발자위치에서 개발 프로젝트를 이끄는 방법들을 익힐 수 있었다.
그러나 내게 익혀진 백엔드 경험들은 추상적인 개념으로
누군가에게 설명하기엔 부족함을 느꼈다.
그렇다. 나는 추상적인 개념들을 구체적으로 성장시키고자
온라인 강좌를 통해 스스로 디벨롭하는 다짐을 했다.
[생활코딩 - 데이터 모델링] 강좌를 시작으로
군대에 있는 동안 온라인 강좌로 지난 과거의 경험들을 디벨롭하고자 한다.
포스팅 내용 재정리
지난 2022년, 백엔드 개발자로 활동할 당시엔,
개발 경험이 아무것도 없었던 터라
수준 높은 팀원분들의 개발 리드에 따라서 개발을 진행했다.
기획 -> API List Up -> ERD 설계 -> API 개발시작!
위와 같이 개발에 대한 큰 틀, 구조를 이해했다.
이번 계기로,
좀 더 디테일하게, 작년 개발경험을 디벨롭시키고자
데이터 모델링 과정을 진행했다.
기획부터 시작해, 데이터베이스 구성까지 하는 과정을
세세하게 배웠다.
기획란을 데이터베이스 상으로 표현하기위해
속성, 그룹, 관계 3가지의 카테고리로 개념적 데이터 모델링을
진행하는 방법을 새롭게 배웠다.
예전 경험에 빗대어 보면,
ERD 설계 시 테이블은 비슷한 기능을 수행하는 집단이라고만 정의했다.
(추상적으로, 무의식의 흐름대로 ERD 설계를 했었다.)
그러나, 이번 배움으로
속성, 그룹, 관계 3가지 카테고리를 토대로 기획란을 표현함을
구체적으로 배웠다.
이젠, 추상적인 모델링에서 벗어나 개념적인 모델링을 수행할 수 있게 되었다 ㅎㅎ
다음은 개념적 모델링에서 나아가
ERD에 대해서 알아본다.
'📚 스터디 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이베이스 설계도, ERD 설계 [3] (3) | 2023.09.30 |
---|---|
[데이터베이스] ERD 그게 뭔데? [2] (0) | 2023.09.24 |
[데이터베이스] 데이터 모델링을 시작하며 (0) | 2023.09.16 |
[DataBase] 어제까지는 잘되다가 갑자기 오늘 DB timeout 에러.... - 네트워크 넌 도대체 누구냐 (3) | 2022.07.22 |
[DataBase] Datagrip의 license 만료 (0) | 2022.07.09 |