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

0

DB & SQL

목록 보기
2/12
post-thumbnail

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

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

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

※ 데이터 모델링,

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

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



   ∇ 데이터 모델링의 목적

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

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



   ∇ 추상화:



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

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

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

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

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





  ∇ 모델링 기법.



      √ 개념적 데이터 모델링: 

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



      √ 논리적 데이터 모델링:

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



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

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

※ 관계형 데이터 모델링

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

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

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

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

     1. 데이터 무결성 유지.

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

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

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



     2. 정규화(Normalization)

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

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

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



     3. 쿼리 최적화

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

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

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



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

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

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

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



     5. 유지보수 용이성.

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

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

Ⅱ. 모델링의 흐름.

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

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





  ◇ 개념적 데이터 모델링.
             ∇ 현실의 업무를 분해*분석 하는 단계.

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

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

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



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

             ∇ 표의 항목(컬럼)을 구성하고, 표와 표의 관계를 정의합니다.
             
             
  ◇ 물리적 데이터 모델링.
             ∇ 어떤 데이터베이스 제품을 사용할 것인지를 선택. !

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

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



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

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

                     

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



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

                                      

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

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

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

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



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

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

0개의 댓글

관련 채용 정보