ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQLD 01_01 데이터 모델링의 이해 요약
    공부 !/Data 2022. 3. 7. 23:48
    반응형

    데이터모델링

    업무에 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석/ 설계하여 정보시스템(DB) 를 구축하고
    개발 및 데이터 관리에 사용한다

    데이터모델링 특징

    특징 설명
    추상화 현실세계를 간략하게 표현한다
    단순화 누구나 쉽게 이해하도록 표현한다
    명확화 한 가지 의미로 해석되도록 표현한다

    관점

    데이터관점

    • 비즈니스 프로세스에서 사용되는 데이터를 의미
    • 업무가 어떤 데이터와 관련이 있으며 무슨 관계인지에 대해 모델링 ( What, Data )
    • 구조 분석, 정적 분석

    프로세스관점

    • 비즈니스 프로세스에서 수행하는 작업을 의미
    • 업무가 실제하고 있는 일은 무엇이며 어떻게 해야 하는지에 대해 모델링 ( How, Process )
    • 시나리오 분석, 도메인 분석, 동적 분석

    데이터와 프로세스의 상관 관점

    • 프로세스와 데이터 간의 관계를 의미
    • 업무를 처리하는 방법에 따라 어떤 영향을 받는지에 대해 모델링 ( Interaction )
    • CRUD 분석

    단계

    개념적 데이터 모델링 Conceptual Data Modeling

    • 전사적 관점, 업무 관점
    • 추상화 수준이 가장 높은 모델링
    • 엔티티와 속성을 도출하고 개념적 ERD를 작성하는 단계
    • 추상화, 업무중심적, 포괄적, 개념적

    논리적 데이터 모델링 Logical Data Modeling

    • 특정 DB 모델에 종속된다
    • 식별자를 정의하고 관계, 속성 등을 모두 표현하는 단계
    • 정규를 통해 재사용성을 높임
    • 정규화, 재사용성, 신뢰성

    물리적 데이터 모델링 Physical Data Modeling

    • 성능, 보안, 가용성 등을 고려하여 데이터베이스를 실제 구축
    • 테이블, 인덱스, 함수 등을 생성하는 단계

    ERD

    테이블간 서로의 상관관계를 그림으로 도식화한 것을 ERD라 한다

    ERD 구성요소는 엔티티, 관계, 속성 3가지이다

    소속이라는 관계가 맺어져 있다

    데이터모델링의 ERD 작성 절차

    1) 엔티티를 도출하고 그린다

    2) 엔티티를 배치한다

    3) 엔티티 간에 관계를 설정한다

    4) 관계를 서술한다

    5) 관계 참여도를 표현한다

    6) 관계의 필수 여부를 표현한다

    데이터 모델링 과정에서의 고려사항

    • 데이터 모델의 독립성 : 독립성이 확보되어야 업무 변화에 능동 대응이 가능하다
      정규화를 통해 중복된 데이터를 제거해야한다
    • 고객 요구사항의 표현 : 데이터 정합성을 유지하며 정보요구사항을 이해하고 정확하고 간결히 표현한다
    • 데이터 품질 확보 : 데이터 표준을 정의하고 표준준수율을 관리해 데이터 품질을 향상시킨다
      중복/ 비유연성/ 비일관성을 주의한다
      • 중복주의 : 여러 장소에 같은 정보를 저장하지 않아야 한다
      • 비유연성주의 : 데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높인다
      • 비일관성 : 다른 테이터의 모순된다는 고려없이 데이터를 수정하지 않고
        모델링 시 데이터 사이 상호연관관계에 대해 명확하게 정의하여 일관성을 높인다

    데이터 독립성

    데이터 독립성이란 특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질이다

    사용자 요구사항 변경에 따른 대응력이 향상되고 데이터 중복을 제거할 수 있다

    데이터의 복잡도가 증가하고 관리 및 유지보수 비용이 절감된다


    3-Level SCHEMA

    사용자, 설계자, 개발자가 DB를 보는 관점에 따라 DB를 기술하고
    이 관계를 정리한 ANSI 표준으로 DB의 독립성을 확보할 수 있는 방법이다

    외부스키마 External Level

    • 사용자 개개인, DB 이용자의 관점으로 구성된 개인적 DB 스키마
    • 응용 프로그램이 접근하는 DB를 정의

    개념스키마 Conceptual Level

    • 설계자 관점, 사용자 관점을 통합한 기관, 조직 전체 관점의 DB 구조
    • 통합 DB 구조
    • 개념 단계 하나의 개념적 스키마로 구성되어 있으며 전체 DB 내 규칙과 구조를 표현

    내부스키마 Internal Level

    • 개발자 관점, 저장 장치 관점
    • DB의 물리적 저장 구조

    각 계층 구조를 유기적으로 연결해주는 매핑을 통해 각 층의 스키마는 데이터 독립성을 가진다


    ENTITY

    업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것이라 정의한다

    그 집합에 속하는 개체들의 특성을 설명하는 속성을 뜻한다

     

    집합의 특성을 가지며 순수 개체이거나 행위 집합이다

     

    특징

    엔티티는 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이다

    유일한 식별자에 의해 식별이 가능하다

    두 개 이상의 인스턴스의 집합이다

    엔티티는 업무 프로세스에 의해 이용된다

    엔티티는 반드시 속성을 가진다

    엔티티는 다른 엔티티와 꼭 관계가 있다

    분류

    유무형에 따른 분류

    유형 엔티티 Tangible Entity

    • 업무에서 도출되며 지속적으로 사용되는 엔티티
    • 물품, 사원 등
    • 물리적 형태, 지속적, 안정적, 업무도출 등

    개념 엔티티 Conceptual Entity

    • 물리적 형태는 없고 관리해야 할 개념적으로 사용되는 엔티티
    • 조직, 보험상품 등
    • 개념적

    사건 엔티티 Event Entity

    • 업무를 수행할 때, 비즈니스 프로세스를 실행할 때 발생되는 엔티티
    • 비교적 발생량이 많고 각종 통계 자료에 이용된다
    • 주문, 청구, 미납 등

    발생시점에 따른 분류

    기본 엔티티 Basic Entity = Key Entity

    • 다른 엔티티의 영향을 받지 않고 독립적으로 생성되는 엔티티
    • 타 엔티티의 부모 역할을 하며, 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가진다
    • 사원, 부서, 고객, 상품, 자재 등
    • 독립 생성, 고유주식별자

    중심 엔티티 Main Entity

    • 기본 엔티티와 행위 중간에 있는 엔티티
    • 기본 엔티티로부터 발되고 행위 엔티티를 생성함
    • 업무처리에 중심이 된다
    • 계약,사고,청구,주문,매출 등

    행위 엔티티 Active Entity

    • 두 개 이상의 부모 엔티티로부터 발생되는 엔티티
    • 업무처리를 하는 동안 발생되는 엔티티로 자주 변경되고 지속적으로 정보가 추가된다
    • 주문 목록, 사원 변경 이력 등 보통 데이터 양이 가장 많다

    속성

    업무에서 필요로 하는 인스턴스로 의미상 더 이상 분리되지 않는 최소의 데이터 단위이다

    해당 업무에서 필요하고 관리하고자 하는 정보이다

    정규화 이론을 근거로 주식별자에 함수적으로 종속된다 기본키가 변경되면 속성 값도 변경된다

    한 속성은 한 개의 값만 가진다 속성명은 유일하게 사용하되 속성 값은 중복될 수 있다

     

    분류

    특성에 따른 분류

    기본 속성

    • 비즈니스 프로세스에서 도출되는 본래 속성
    • 코드성 데이터, 엔티티 식별을 위한 일련번호, 다른 속성의 영향을 받아 생성된 속성을 제외한 모든 속성
    • 업무로부터 분석한 속성이라도 이미 업무상 코드를 정의한 속성은 기본 속성이 아니다
    • 회원ID, 이름, 계좌번호, 주문일자, 이자율, 원금, 예치 기간 등

    설계 속성

    • 데이터 모델링 과정에서 속성을 새로 만들거나 변형하여 도출된 속성
    • 유일한 값을 부여한다
    • 상품코드, 지점코드, 예금분류 등

    파생 속성

    • 다른 속성에 의해 만들어지는 ( 계산되어지는 ) 속성이다
    • 합계, 평균, 이자 등

    엔티티 구성방식 ( 분해 여부 ) 에 따른 분류

    엔티티를 식별할 수 있는 속성을 PK 속성, 다른 엔티티와의 관계에서 포함된 속성을 FK 속성,

    엔티티에 포함되고 PK/FK 에 포함되지 않은 속성을 일반 속성이라 한다

     

    이름, 나이 성별 등 하나의 의미로 구성된 것은 단일 속성, 주소 등 여러개의 의미가 있는 것은 복합 속성,

    상품 리스트 등 속성에 여러 개의 값을 가질 수 있는 것은 다중값 속성이라 한다

     

    한 개의 엔티티는 두 개 이상의 인스턴스, 두 개 이상의 속성을 갖는다

    엔티티 내 하나의 인스턴스 속 한 개의 속성은 한 속성값만 가진다

    도메인

    도메인은 각 속성이 가질 수 있는 값의 범위를 뜻한다


    관계

    엔티티 간의 관련성을 의미한다. 이 관계에서 튜플의 전체 개수를 카디널리티 Cardinality 라고 한다

     

    분류

    연결할 때 어떤 목적으로 연결되었느냐에 따라 존재에 의한 관계/ 행위에 의한 관계로 구분한다

    존재 관계

    • 엔티티 간의 상태
    • 존재에 의해 형성된 의미로 UML 클래스 다이어그램의 관계 중 연관관계이며 실선으로 표시한다

    행위 관계

    • 엔티티 간에 어떤 행위
    • 행위에 의해 관계가 형성된다 UML 클래스 다이어그램 관계 중 의존관계이며 점선으로 표시한다

    관계차수

    두 엔티티 관계에서 참여자의 수이다

    1:1 관계

    관계에 참여하는 각각의 엔티티는 관계를 맺는 다른 엔티티에 대해 딱 하나의 관계만 가진다

     

    1:M 관계

    관계에 참여하는 각각의 엔티티가 관계를 맺는 다른 엔티티에 대해 하나 이상의 관계를 맺는 것이다

     

    M:N 관계

    두 개 엔티티가 서로 여러 개의 관계를 가지는 것이다

    관계형 DB에서 M:N 관계의 조인은 카테시안 곱이 발생한다

    관계선택사양

    필수적참여관계 Mandatory : 모든 참여자가 타 엔티티의 참여자와 반드시 관계를 가진다

    선택적참여관계 Optional : 관련은 있지만 필수적이지 않은 관계


    식별자

    엔티티 내에서 인스턴스들을 구분하는 구분자로, 엔티티를 대표하는 속성이다

    하나의 엔티티에는 반드시 하나의 유일한 식별자가 존재한다

    주식별자의 특징과 키의 종류

    유일성과 최소성 ( Not Null ) 을 만족하는 키로 엔티티를 대표할 수 있어야 한다

    자주 변경되지 않아야 하며 엔티티의 인스턴스를 유일하게 식별한다

    데이터베이스 키 설명
    기본키 PK 후보키 중 엔티티를 대표할 수 있는 키
    후보키 Candidate Key 유일성과 최소성 ( Not Null ) 만족하는 키
    수퍼키 Super Key 유일성은 만족시키지만 최소성 ( Not Null ) 은 만족하지 않는 키
    대체키 Alternate Key 여러 개의 후보키 중 기본키를 선정하고 남은 키

    대표성 여부

    주식별자 PK : 유일성, 최소성, 대표성을 만족한다 다른 엔티티와 참조관계로 연결될 수 있다

    보조식별자 : 유일성, 최소성은 만족하지만 대표성을 만족하지 못해 참조관계로 연결될 수 없다

     

    스스로 생성 여부

    내부식별자 : 엔티티 내부에서 스스로 만들어지는 식별자

    외부식별자 : 다른 엔티티와의 관계로 인해 만들어지는 식별자

     

    속성의 수에 따른 종류

    단일식별자 : 하나의 속성으로 구성되는 식별자

    복합식별자 : 두 개 이상의 속성으로 구성되는 식별자

     

    대체여부

    본질식별자 : 업무에 의해 만들어지는 식별자

    인조식별자 : 최대한 범용적인 값을 사용하고 유일한 값을 만들기 위해 인위적으로 만들어지는 식별자
    ex) 주민등록번호, 사원번호, 부서코드 등이 인조식별자에 해당한다

     

    주식별자 도출기준

    자주 사용되는 속성이여야 한다 명칭, 내역 등 이름으로 기술된다면 지양한다

    복합으로 주식별자를 구성할 경우 너무 많은 속성이 포함되지 않도록 인조식별자를 생성한다

     

    식별자와 비식별자


    참고

    https://cafe.naver.com/sqlpd

     

    데이터 전문가 포럼 (빅데이터분석기사... : 네이버 카페

    빅데이터분석기사, ADP, ADsP, SQLP, SQLD, DAP, DAsP, 자격증 취득 등 데이터 전문가 커뮤니티입니다.

    cafe.naver.com

     

    반응형

    '공부 ! > Data' 카테고리의 다른 글

    SQLD 01_02 데이터 모델과 성능 요약  (0) 2022.03.07
    SQLD 02_01 SQL 기본 요약  (0) 2022.03.06
    SQLD 02_03 SQL 최적화 기본 원리 요약  (0) 2022.03.04
    SQLD 02_02 SQL 활용 요약  (0) 2022.03.02

    댓글

Designed by SooJI