본문 바로가기
Server

[Database] 논리적 데이터 모델링(Logical Data Modeling)

by DuncanKim 2022. 8. 5.
728x90

[Database] 논리적 데이터 모델링(Logical Data Modeling)

 

 

 

개념적 모델링 이후 이루어지는 단계이다. 개념적 모델링의 개념은 아래에 포스팅 되어 있다.

2022.07.29 - [IT 지식/Database] - [Database] 개념적 데이터 모델링(Conceptual Data Modeling)

 

[Database] 개념적 데이터 모델링(Conceptual Data Modeling)

[Database] 개념적 데이터 모델링(Conceptual Data Modeling) 1. 데이터 모델링이란? 앞의 글에서 예시를 든 치킨집 예시를 다시 살펴보자. 2022.07.27 - [IT 지식/Database] - [Database] 개발 세계에서 데..

masterpiece-programming.tistory.com

 

 

1. 논리적 데이터 모델링의 정의

 

개념적 모델링이 무엇이 필요한지를 '카테고라이징' 하고 하나의 표로 모아보는 단계라면, 논리적 데이터 모델링은 그 다음 모아둔 entity와 attribute들의 관계들을 고려하여 여러 개의 표로 분할하는 단계이다. 표를 분할하는 이유는 관계형 데이터베이스로 활용하기 위해서라고 하면 정확한 이해가 될 것이다. 논리적 데이터 모델링은 '업무의 모습'을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스이기도 하다. 

 

개념적 모델링으로 나온 ER Diagram에 mapping table을 추가하면서 그 사이에 어떤 관계가 있는지, 테이블들을 평가하고 정제한다. 논리적 데이터 모델을 통해 "관계 데이터 모델", "계층 데이터 모델", "네트워크 데이터 모델", "객체지향 데이터 모델", "객체-관계 데이터 모델" 중 하나의 모델에 맞게 설계한다.

 

각각의 모델은 아래의 참고 자료를 활용해보면 이해가 쉬울 것이다.

 

 

 

 

계층형 : 1:1로만 연관이 되어 있다. 부모, 자식과 같은 관계도를 가지고 있다.

 

네트워크형 : 계층형에서 1:N으로 연결된 하위 개체들이 있는 점이 특징이다.

 

객체 지향형 : 하나의 클래스처럼 속성, 메서드를 모아 놓고, 인스턴스로 각각의 정보를 나타내는 모델이다.

 

관계형 : 행과 열로 구성된 테이블의 집합으로 표현하며, 현재 가장 많이 사용하는 모델이다.

 

 

2. Mapping Table

2022.07.29 - [IT 지식/Database] - [Database] 개념적 데이터 모델링(Conceptual Data Modeling)

 

[Database] 개념적 데이터 모델링(Conceptual Data Modeling)

[Database] 개념적 데이터 모델링(Conceptual Data Modeling) 1. 데이터 모델링이란? 앞의 글에서 예시를 든 치킨집 예시를 다시 살펴보자. 2022.07.27 - [IT 지식/Database] - [Database] 개발 세계에서 데..

masterpiece-programming.tistory.com

 

이전 글의 ER Diagram을 한 번 보자.

 

저자와 글 사이에 다대다(N:M) 관계가 성립하는 것을 볼 수 있다. 이 경우, 어느 하나의 테이블에 컬럼을 추가하기 힘들다. 이 경우, 관계형 database로 활용하기 위해(Join 활용) 하나의 테이블을 더 두어야 한다. 글을 게시한 날짜와 수정한 날짜가 다르다면, 그 기준으로 id값을 둘 수 있을 것인데, 그 정보들을 이어줄 수 있는 하나의 id(이 아이디는 unique 해야 한다)를 더 만들기 위해 테이블을 생성하는 것이다.

 

위의 경우, write라는 테이블을 두고, topic_id와 author_id를 두는 방식으로 topic과 author 테이블을 잇고 있다. author와 topic을 join하고 싶다면, 이제 write와 author 또는 write와 topic을 join하는 방식으로 새로운 정보를 가진 table을 만들어낼 수 있는 것이다.

 

 

 

3. 정리하며

 

아직 논리적 데이터 모델링에 대한 정리가 완벽하게 되지는 않은 것 같다. 현실에 있는 개념이기 때문에 추상적으로 이해는 되지만, 실제 기술적으로는 이해가 아직 미흡하다. 데이터베이스를 직접 다루어보면서 심화된 이해를 해보는 것을 목표로 해야 겠다.

728x90

댓글