학습기록 : 데이터 분석
[SQLD] 이론 : 1과목 개념 요약 - (1)데이터모델의 이해
claireyy01
2024. 5. 6. 20:42
1. 데이터 모델의 이해
업무 프로세스를 시스템화 하기 위해 필수적으로 필요한 것이 데이터베이스(이하 DB) 구축!
- 데이터 모델링 : DB에 실제 데이터가 어떤 형태로 저장될 지를 고민하는 것
- DB에는 수많은 테이블이 존재하고, 각 테이블에 한 행씩 데이터가 적재되는 구조
- 테이블 : 데이터가 저장되는 최소 단위로, 행과 열의 구조를 가짐 (표와 같은 형태로 생각하면 됨)
효율적인 업무 프로세스를 만들기 위해서는 테이블들을 어떻게 설계하는 것이 좋을지? 고민해야 함!
1과목의 내용은 이러한 모델을 설계하는 과정에 필요한 용어들과 설계 이론들이다.
3가지 핵심 용어 (개념)
- 대상 (Entity, 엔터티) : 테이블
- 속성 (Attribute) : 컬럼
- 인스턴스 (Instance) : 행
모델링이란?
모델링의 개념
- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
- DB의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의
모델링의 특징
- 단순화 (Simplification)
- 현실을 단순화하여 핵심 요소에 집중하고, 불필요한 세부 사항을 제거
- 단순화를 통해 복잡한 현실 세계를 이해하고 표현하기 쉬워짐
- 추상화 (Abstraction)
- 현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현하는 과정
- 다양한 현상을 일정한 양식인 표기법에 따라 표현
- 명확화 (Clarity)
- 대상에 대한 애매모호함을 최대한 제거하고 정확하게 현상을 기술하는 과정
- 명확화를 통해 모델을 이해하는 이들의 의사소통을 원활히 함
데이터 모델링 유의점
- 중복 (Duplication)
- 한 테이블 또는 여러 테이블에 같은 정보를 저장하지 않도록 설계
- 비유연성 (Inflexibility)
- 사소한 업무 변화에 대해서도 잦은 모델 변경이 되지 않도록 주의
- 데이터 정의를 프로세스와 분리
업무(내용)이 바뀔 때 변화주기가 용이해야 함!
ex. 시험 성적 테이블에서 과목 추가 또는 학생 추가하는 경우
- 비일관성 (Inconsistency)
- DB 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
- 데이터간 상호연관 관계를 명확히 정의
- 데이터 품질 관리 필요
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있음
데이터 연결 시 특정 대상에 대한 정보가 다르면 안됨!
데이터 모델링의 3요소
- 대상 (Entity) : 업무가 관리하고자 하는 대상(객체) => 테이블
- 속성 (Attribute) : 대상들이 갖는 속성 (하나의 특징으로 정의될 수 있는 것) => 컬럼
- 관계 (Relationship) : 대상들 간의 관계
데이터 모델링의 3단계
- 개념적 모델링
- 업무 중심적이고 포괄적(전사적)인 수준의 모델링
- 업무를 분석한 뒤 업무의 핵심 엔터티(Entity)를 추출하는 단계
- 도출된 핵심 엔터티(Entity)들과의 관계들을 표현하기 위해 ERD 작성
- 논리적 모델링
- 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계
- 데이터 구조를 정의하기 때문에 비슷한 업무나 프로젝트에서 동일한 형태의 데이터 사용 시 재사용 가능
- 동일한 논리적 모델을 사용하는 경우 쿼리도 재사용 가능
- 데이터 정규화 수행
- 재사용성이 높은 논리적 모델은 유지보수가 용이해짐
- 물리적 모델링
- 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정
- DB 성능, 디스크 저장구조, 하드웨어의 보안성, 가용성 등을 고려
- 가장 구체적인 데이터 모델링
데이터 모델링 3단계의 추상화 수준
데이터 모델의 표기법 (ERD : Entity Relationship Diagram)
- 엔터티(Entity)와 엔터티 간의 관계(Relationship)를 시각적으로 표현한 다이어그램
- 1976년 피터 첸(Peter Chen)이 만든 표기법, 데이터 모델링 표준으로 사용
ERD 작성 절차 : 6단계
- 엔터티를 도출한 후 그린다
- 엔터티 배치
- 엔터티 간의 관계를 설정
- 관계명을 서술
- 관계의 참여도 기술
- 관계의 필수 여부를 확인
-> 엔터티 배치와 관계 설정의 차이가 뭘까? 1회독 하며 알아가보자!
* 위의 내용은 홍쌤의 요약 자료로 공부한 내용입니다.