[ 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) : 이 이상으로 성능을 향상시킬 수 없다면,
마지막으로 정규화된 테이블의 구조를 수정합니다.
'Data [ Engineer & Analytics &science ] > DB & SQL(RDBMS, NoSQL)' 카테고리의 다른 글
[ DB & SQL(RDBMS, NoSQL) ] SQL vs NoSQL (2) | 2024.12.22 |
---|---|
[ DB & SQL(RDBMS, NoSQL) ] 관계형 데이터 모델링 : 구성 요소. (1) | 2024.12.19 |
[ DB & SQL(RDBMS, NoSQL) ] 데이터 베이스 공부 : DB 기초. (1) | 2024.12.11 |