Data [ Engineer & Analytics &science ]/DB & SQL(RDBMS, NoSQL)

[ DB & SQL(RDBMS, NoSQL) ] 관계형 데이터 모델링 : 전체 흐름도.

안다미로 : APP & Web3 & D.S 2024. 12. 19. 14:56

 

 

 

 

 

[ DB & SQL(RDBMS, NoSQL) ] 관계형 데이터 모델링 : 전체 흐름도.

 

 


 

∇ DB & SQL_데이터 베이스 공부 : 관계형 데이터 모델링의 전체 흐름도.

목  차

1. 관계형 데이터 모델링이란.
2. 모델링의 흐름.

 

 


 

Ⅰ. 관계형 데이터 모델링이란.


 

※ 데이터 모델링,

 

       ∇ 데이터 모델링 : 현실 세계의 정보를 구조화하여서 데이터베이스에 저장할 수 있도록 설계하는 과정입니다.

                       -> 데이터 간의 관계를 정의하고 데이터의 속성과 형식을 명확히 하는 작업입니다.

 

       ∇ 데이터 모델링의 목적

                    :: 비즈니스 요구사항을 충족하는 데이터 구조를 설계하여서, 데이터를 효율적으로 저장하고 관리하며

                           데이터의 무결성을 유지하는 것 !

 

       ∇ 추상화:

 

          데이터 모델링은 현실 세계의 복잡한 문제를 단순화하여 컴퓨터의 세계로 옮기는 작업입니다.

         이는 고도로 추상화된 모델을 통해 데이터의 의미를 명확히 하고, 시스템의 복잡성을 줄이는 데 기여합니다.

 

      ∇ 주요 요소:

          √ 엔티티(Entity): 데이터베이스에서 관리할 대상(예: 고객, 제품 등).

          √ 속성(Attribute): 엔티티의 특성(예: 고객의 이름, 제품의 가격 등).

          √ 관계(Relationship): 엔티티 간의 연관성(예: 고객이 주문한 제품).

 

 

      ∇ 모델링 기법.

 

          √ 개념적 데이터 모델링

                  :: 비즈니스 요구사항을 기반으로, 데이터의 높은 수준의 개념을 정의.

 

          √ 논리적 데이터 모델링:

                 :: 데이터 구조와 관계를 상세히 정의하며, 데이터베이스 관리 시스템에 독립적.

 

          √ 물리적 데이터 모델링: 엔티티 간의 연관성(예: 고객이 주문한 제품).

                 :: 실제 데이터베이스 구현을 위한 세부 사항을 포함하며, 특정 DBMS의 특성을 반영합니다.

 

 

 

※ 관계형 데이터 모델링

 

     : 데이터 베이스 설계의 핵심 요소로, 데이터의 구조와 관계를 정의하여 효율적인 데이터 관리를 가능하게 합니다.

            == 복잡한 현실을 관계형 데이터베이스(=표)에 집어넣기 위한 방법을 의미.

              == 문제를 현실로부터 뜯어내어서 고도로 추상화하여서 컴퓨터가 이해할 수 있는 형태로 옮기는 작업.

 

 

※ 관계형 데이터 모델링의 중요성.

         1. 데이터 무결성 유지.

              :: 관계형 데이터 모델링은 데이터의 일관성과 정확성을 보장하는 데 중요한 역할을 합니다.

                 이를 위해 기본 키, 외래 키, 제약 조건 등을 설정하여 데이터 간의 관계를 명확히 하고,

                 잘못된 데이터 입력을 방지합니다.

 

         2. 정규화(Normalization)

              :: 데이터 중복을 최소화하고 데이터 무결성을 높이기 위해 정규화 과정을 거칩니다.

                 정규화는 데이터를 여러 개의 테이블로 나누어 저장하고, 각 테이블 간의 관계를 정의하는 과정입니다.

                  이를 통해 데이터베이스의 효율성을 극대화할 수 있습니다.

 

         3. 쿼리 최적화

             :: 관계형 데이터베이스는 SQL(Structured Query Language)을 사용하여 데이터를 조회하고 조작합니다.

                 데이터 모델링을 통해 테이블 간의 관계를 명확히 정의하면, 쿼리 성능을 최적화할 수 있습니다.

                 잘 설계된 데이터 모델은 복잡한 쿼리도 효율적으로 처리할 수 있게 합니다.

 

         4. 비즈니스 요구사항 반영

              :: 데이터 모델링 과정에서 비즈니스 요구사항을 충분히 반영해야 합니다.

                   데이터 개발자는 이해관계자와의 협업을 통해 필요한 데이터 요소와 그 관계를 명확히 정의하고,

                 이를 바탕으로 데이터베이스를 설계해야 합니다.

 

         5. 유지보수 용이성.

            :: 잘 설계된 관계형 데이터 모델은 시스템의 유지보수를 용이하게 합니다.

                데이터 구조가 명확하면 새로운 요구사항이 생겼을 때, 기존 모델을 수정하거나 확장하는 것이 수월해집니다

 

 


Ⅱ. 모델링의 흐름.


 

     

      ◇ 업무 파악.

                 ∇ 담당하게 된 프로젝트, 나의 팀이 무엇을 하려고 하는지 파악합니다.

                 ∇ "해결하려고 하는 문제가 무엇인지" 를 파악하는 단계입니다.

 

 

      ◇ 개념적 데이터 모델링.

                 ∇ 현실의 업무를 분해*분석 하는 단계.

                           ○ 현실에 '어떤 개념들'이 있는지

                           ○ 각 개념들은 어떻게 '상호작용'하는지를 숙고하는 것.

                 ∇ ERD [ Entity Relationship Diagram ] : 개체-관계 모델

 

      ◇ 논리적 데이터 모델링.

                 ∇ 개념적 데이터 모델링 단계에서 파악한, '현실의 개념'들을 '관계형 데이터베이스에 알맞게 구성' 하는 단계.

                 ∇ 표의 항목(컬럼)을 구성하고, 표와 표의 관계를 정의합니다.

 

 

      ◇ 물리적 데이터 모델링.

                 ∇ 어떤 데이터베이스 제품을 사용할 것인지를 선택. !

                 ∇ 그 제품에 최적화된 코드를 작성하여, 표를 만드는 단계.

                 ∇ 그 표를 생성하는 SQL이 산출물.

 

                 ∇ 성능이 좋은 쿼리일수록 좋은 산출물입니다. 

                       쿼리 성능을 높이기 위해서 아래와 같은 방법을 시도합니다.

                         

                          ○ 작성한 쿼리 중 slow query를 찾아내고, 튜닝합니다.

 

                          ○ index : 행에 대한 읽기 성능을 비약적으로 향상시키고, 쓰기 성능을 비관적으로 희생.

                                          { 쓰기가 이뤄질 때마다 그 행에 인덱스가 걸려있다면,

입력된 정보를 정리하기 위해 복잡한 연산이 필요합니다. 여기서 시간이 많이 걸릴 뿐더러, 저장 공간도 더욱 차지합니다. }

 

 

                           ○ 데이터베이스에서 할 수 있는 부분을 다 했다면, application 영역에서 취할 수 있는 방법을 강구하여

                                  데이터베이스의 부하를 줄입니다. 

 

                          ○ 역정규화(denormalization) : 이 이상으로 성능을 향상시킬 수 없다면,

                                                                            마지막으로 정규화된 테이블의 구조를 수정합니다.