SQLD

[SQLD] 데이터 모델링의 이해

유난25 2023. 8. 14. 16:36

1. 데이터 모델링

1. 1 데이터 모델링의 정의
 - 고객과 함께 고객의 업무 프로세스를 이해해야 데이터 모델링을 제대로 할 수 있음
 - 현실 세계를 데이터베이스에서 표현하기 위한 추상화 과정
 - 데이터 모델링 표기법을 사용해 모델링
 - 고객의 업무 프로세스내 비즈니스 프로세스 규칙을 정의하여 데이터 모델로 표현 할 수 있어야 한다.
 - 고객이 이해하기 쉽게 간결하게 모델링 해야한다.

1.2 데이터 모델링의 특징
 - 추상화 : 현실 세계를 일정한 양식에 맞게 간략하게 표현
 - 단순화 : 누구나 이해하기 쉽도록 약속된 규약에 의한 제한된 표기법 또는 언어를 이용하여 표현
 - 명확화 : 명확하게 의미가 한 가지로 해석되어야 함으로 애매모호함을 제거하고 정확하게 현상을 기술

1.3 데이터 모델링의 단계
 - 개념적 모델링
 ㄴ 추상화 수준이 가장 높음
 ㄴ 업무 측면의 모델링
 ㄴ 전사적이고 포괄적인 모델링
 ㄴ 핵심 엔티티 도출
 ㄴ ERD 작성

 - 논리적 모델링
 ㄴ 특정 데이터베이스 모델에 종속
 ㄴ 세부속성, 식별자, 관계 등을 정확하게 표현
 ㄴ 데이터 정규화 완료
 ㄴ 재사용성이 높음

 - 물리적 모델링
 ㄴ 물리적인 성능과 데이터 저장을 고려한 설계
 ㄴ 가장 구체적인 데이터 모델링 추상화 수준이 가장 낮은 단계
 ㄴ 성능, 보안, 가용성을 고려한 데이터베이스 모델링 진행

1.4 데이터 모델리의 3가지 관점
 1) 데이터 관점
 ㄴ 데이터와 업무간의 어떤 관련이 있는지, 데이터와 데이터 사이의 관계가 무엇인지에 따라 모델링한다. 

 ㄴ 비즈니스 프로세스에 사용되는 데이터를 의미
 ㄴ 구조 분석, 정적 분석

 2) 프로세스 관점
 ㄴ 비즈니스 프로세스에서 수행하는 작업을 의미
 ㄴ 시나리오 분석, 도메인 분석, 동적 분석

 3) 데이터와 프로세스의 상관 관점
 ㄴ 업무의 처리와 데이터 간의 서로 어떤 영향을 주고 받는지를 모델링
 ㄴ 프로세스와 데이터간의 관계를 의미
 ㄴ CRUD(Create, Read, Update, Delete)

1.5 데이터 모델링을 위한 ERD(Entity Relationship Diagram)
 - 대표적인 표기법 : Chen, IE/Crow's FootBarker, UML
 
 - ERD 작성 순서
  1. 엔터티 도출 ->  2. 엔터티 배치 ->  3. 엔터티 관계 설정 ->  4. 관계명 기술 ->  5. 관계 참여도 기술 ->

 6. 관계 필수 여부 기술

1.6 3단계 구조 스키마
 - 데이터베이스의 독립성을 위해 3단계 구조 스키마 존재
 - 사용자, 설계자, 개발자의 각기 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 ANSI표준으로 정했다.
 - 데이터의 독립성 확보를 통해서 데이터 복잡도 감소, 데이터 중복 제고, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점
 - 각 계층을 뷰라고 부르며 3단계 계층으로 분리되어 서로 독립성을 확보

 1.7 3단계 구조의 특징
 - 외부 스키마(외부 단계)
 ㄴ 데이터베이스의 개별 사용자 관점의 이해와 표현
 ㄴ 응용프로그램이 접근하는 데이터베이스
 ㄴ 여러 개의 외부 스키마 존재

 - 개념 스키마(개념 단계)
 ㄴ 데이터베이스 관리자의 관점으로 규칙과 구조 표현
 ㄴ 데이터베이스의 전체적인 논리구조
 ㄴ 일반적으로 스키마는 개념 스키마를 지칭

 - 내부 스키마(내부 단계)
 ㄴ 데이터베이스 시스템의 설계자 관점을 저장 장치 관점이 이해 및 표현
 ㄴ 데이터가 실제로 데이터베이스에 물리적으로 어떻게 저장 되는지 확인

1.8 엔터티
 - 데이터의 집합 
 - 저장되며 관리되는 데이터
 - 개념, 사건, 장소 등의 명사
 - 유형과 무형에 따른 분류
 ㄴ 유형 엔터티 : 물리적이며, 안정적이며, 지속적인 엔터티
 ㄴ 개념 엔터티 : 물리적이진 않지만 개념적으로 존재하며 정보로 구분되는 엔터티
 ㄴ 사건 엔터티 : 비즈니스 프로세스에 따라 발생되는 엔터티 데이터가 많다

 - 발생 시점에 따른 엔터티 분류
 ㄴ 기본 엔터티 : 키 엔터리라고 하며, 독립적으로 생성 및 관리
 ㄴ 중심 엔터티 : 기본 엔터리로 부터 발행되는 행위 엔터티를 생성하는 중간 엔터티
 ㄴ 행위 엔터티 : 상위에 있는 2개 이상의 엔터티로 부터 발생되는 엔터티

1.9 속성
 - 엔터티가 가지는 항목 
 - 속성은 더 이상 분리 되지 않는다
 - 업무에 필요한 데이터를 저장
 - 인스턴스의 구성 요소로 최소의 데이터 단위

 - 속성의 특징
 1) 속성은 업무에서 관리는 정보
 2) 속성은 하나의 값만 가짐
 3) 주식벽자에게 함수적으로 종속된다. 기본키에 따라 속성의 값도 변경

 - 특성에 따른 속성의 종류
 ㄴ 기본 속성 : 비즈니스 프로세스에서 도출한 본래의 속성
 ㄴ 설계 속성 : 데이터 모델링 과정에서 발생되는 속성
 ㄴ 파생 속성 : 다른 속성에 의해서 만들어지는 속성