" 이 강의는 CLASS101+ 김경수 컨설턴트의 비전공자도 쉽게 배워 바로 써먹는 실무 활용 SQL 강의를 듣고 정리한 내용입니다. "
데이터 모델(Data Model)
건축물로 비유하면 설계도면이다. 현실세계를 데이터 베이스로 구축할 수 있도록 추상화한 것이다.기업의 비즈니스를 단순화 시켜서 표현한 것이다.
데이터 모델링
기업의 비즈니스를 약속된 표기법으로 표기하는 방법
데이터 모델링의 3단계
- 개념적 데이터 모델링
핵심 엔터티와 핵심 엔터티들 간의 관계를 정의하는 과정이다. 추상화 수전이 높고, 업무 중심적이고 포괄적인 수준의 모델링이다. 핵심 비즈니스만 뽑아서 간단하게 표현한, 밑그림 그리는 단계라고 볼 수 있다. (간단하게 ERD에서 PK만 표시한 것이라고 이해하자.) - 논리적 데이터 모델링
모든 업무 요구사항 충족시키기 위해 엔터티, 속성, 관계, 식별자 등을 정의함으로써 데이터 구조 논리 구체화한 단계이다. 전체 비즈니스가 다 들어가야 한다. (ERD에서 속성들을 다 추가한 상태라고 이해하자) - 물리적 데이터 모델링
실제 데이터베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려하여 데이터 베이스 저장 구조로 변환하는 과정이다. DBMS(ORACLE, MY-SQL 등)의 특성을 잘 고려하여 구체화시켰다.
데이터 모델링의 3요소
- 엔터티
데이터베이스에 정보로서 저장될 수 있는 사람, 사물, 개념, 행위( 예: 고객, 상품, 프로모션, 결제)이다. 업무상 필요하고 관리하고자 하는 대상, 그 대상들 간의 동질성(공통적인 특징)을 지닌 개체이다.
① 슈퍼타입 엔터티 : 동질성을 크게 본거라고 보면 된다. 개체들에 대한 일반화 과정에서 생성되는 상위 집합이다. 여기선 개인고객, 법인고객 보다 위인 '고객'이 슈퍼타입이라고 볼 수 있다.
② 서브타입 엔터티 : 특정 기준에 따라 상세화된 개체들의 부분집합이다. 여기선 '개인고객', '법인고객'이라고 볼 수 있다. - 관계
엔터티-엔터티 논리적인 상호 연관성이다. 예를 들어 고객과 상품 사이의 구매하다가 관계라고 볼 수 있다. 이러한 관계는 1:1, 1:M, M:M관계로 두 엔터티 간의 관계에서 참여자의 수를 표현하는 관계 차수가 존재한다. - 속성
엔터티가 가지고 있는 특징이나 성질이다. 예를 들어 고객이란 엔터티에서 고객번호, 고객명, 고객구분코드, 성별구분코드가 속성이라고 볼 수 있다.
① 고객 : 엔터티
② 속성
③ 고객번호 : 주식별자
④ 고객명 : 보조식별자, 식별할 수 있지만 식별자로 두지 않는 속성
** 식별자
엔터티의 각 개체 유일하게 식별할 수 있는 속성이다. 예를 들어 고객 엔터티에서는 고객번호이다.
식별자는 유일성, 최소성, 불변성, 존재성이란 특징 필요하다.
식별자는 다양한 종류가 있다.
복합식별자는 각 속성을 조합한 식별자이다. 예) 고객엔터티의 고객번호+주문순번 등 이렇게 조합한 식별자이다.
인조식별자는 우리가 식별해주기 위해 번호 부여한 식별자이다. 예) 주문 엔터티의 주문번호, 고객엔터티의 고객번호
본질식별자 : 원래 쓰고 있던 속성 값들 N개를 더해 식별자로 둔다면 그건 본질식별자이다.
예) 주문일자 + 고객번호 + 주문순번