자격증공부/SQLD

[1과목] 데이터 모델링의 이해

지야소이 2023. 8. 28. 00:07

😸 데이터 모델링이란?

- 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정

- 정보시스템 구축을 위해 현업이나 고객의 요구사항을 분석 및 검증하여 적절한 기호를 사용해 객관적으로 표현하고 물리적으로 구현하는 전체 과정

 

👉 데이터 모델링의 특징

1) 추상화

- 필요한 부분이나 중요한 부분을 통합하여 표현

- 현실 세계를 일정한 형식에 맞춰 표현  

2) 단순화

- 목적을 위해 필요한 기능만 선택

- 복잡한 현실을 제한된 언어나 표기법을 이용하고 쉽고 단순하게 표현

3) 명확화

- 대상에 대한 모호함을 제거하고 정확하게 기술

 

👉 데이터 모델링의 기능

1) 가시화   2) 구조화   3) 명세화   4) 문서화   5) 다양한 관점   6) 표현 방법 제공

 

👉 데이터 모델링 유의점

1) 중복성 :최소화   

2) 비유연성 :중대한 변화 가능성 감소

3) 비일관성 : 데이터에 모순 발생x

 

👉 데이터 모델링의 종류

1) 개념적 데이터 모델링

   : 업무 중심적, 포괄적, 추상화 수준이 높음 -> 결과물로 ERD 도출

2) 논리적 데이터 모델링

   : 시스템 구축, 재사용성 높음, 데이터 정규화 작업

3) 물리적 데이터 모델링

   : 데이터 베이스 이식, 성능과 저장 등 물리적인 성격을 고려하여 설계

 

👉 데이터 모델링의 관점

1) 데이터 관점 

   : 업무가 어떤 데이터와 관련 있는지 또는 데이터간의 관계는 무엇인지 모델링하는 방법 

2) 프로세스의 관점

   : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법

3) 데이터와 프로세스 관점(= 상관관점)

   : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법

 

👉 데이터 베이스 스키마 구조

1) 외부 스키마(External Schema)

   : 사용자 관점   

2) 내부 스키마(Internal Schema)

   : 개발자 관점

3) 개념 스키마(Conceptual Schema)

   : 사용자 관점을 통합하여 설계

 

 

👉 Entity(엔터티)

- 업무에 필요되는 정보이며 관리가 필요한 대상

- 가장 큰 틀의 정보를 엔터티라 하며, 그 외 세부 정보의 내용을 엔터티 속성이라고 함.

- 이들의 종속관계를 도식화하여 ERD(피터첸이 제시)를 생성

  *여기서 ERD란? 엔터티 간의 관계를 이해하기 쉽도록 약속된 도형으로 표시하는 표기법

 

  • 엔터티의 특징

- 업무 정보 : 구축하는 시스템의 업무에서 반드시 필요하고 관리가 필요한 정보여야 한다.

- 식별 가능 : 유일한 식별자의 이해 식별이 가능해야 한다.

- 인스턴스의 집합 : 2개 이상의 인스턴스(속성)의 집합이여야 한다.

- 업무 프로세스에 이용 : 엔터티는 반드시 업무 프로세스에 의해 이용된다.

- 속성을 포함 : 반드시 속성을 가져야 하며, 1개의 엔터티는 무조건 2개 이상의 속성을 가진다.

- 관계의 존재 : 엔터티는 다른 엔터티와 최소한 1개 이상의 관계를 맺는다.

 

  • 엔터티의 종류

1) 유/무형에 따른 엔터티 분류

- 유형 엔터티 : 물리적 형태가 있고, 안정적/지속적으로 활용되는 엔터티

- 개념 엔터티 : 물리적 형태가 존재하지 않는 개념적 정보의 엔터티

- 사건 엔터티 : 업무 수행에 의해 발생되는 엔터티로 각종 통계자료에 이용 가능 

 

2) 발생 시점에 따른 엔터티 분류 

- 기본 엔터티 : 업무에 원래 존재하는 정보로 독립적으로 생성 가능한 엔터티

                         ex) 사원, 부서, 고객, 상품

- 중심 엔터티 : 기본 엔터티로부터 발생하며 업무에서 중요한 역할을 수행하는 엔터티 

                         ex) 계약, 사고,청구, 주문, 매출

- 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생하는 엔터티로 상관 모델링 진행 중 도출

                         ex) 주문목록, 사원변경 이력

 

  • 엔터티의 명명 규칙

: 업무 용어, 약어 미사용, 단수 명사, 이름 유일성, 의미와 일치

 

  • ERD 작성하는 순서

엔터티 생성 : 엔터티를 그린다.

엔터티 배치 : 엔터디를 적절하게 배치한다.

관계 설정 : 엔터티 간의 관계를 설정한다.

관계명 표시 : 관계명을 기술한다.

관계 차수 및 선택성 표시 : 관계의 참여도/ 관계 필수여부를 기술한다.

 

- ERD의 예시

 

👉 속성

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

- 엔터티를 설명하는 역할을 하고 인스턴스의 구성 요소가 된다.

 

  • 속성의 특징

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

- 함수적 종속성 : 기준값을 결정자, 종속되는 값을 종속자라고 함

- 유일 값 : 하나의 속성은 하나의 값만 소유하고 여러 개 값이 있을 경우, 별도의 엔터티를 이용하여 분리

 

  • 속성의 종류

- 기본 속성 : 업무상 필요한 데이터에 대해 정의

- 설계 속성 : 업무를 규칙화하기 위해 새로 만들거나 변형한 속성

- 파생 속성 : 다른 속성의 영향을 받아 발생 (주로 계산하는 값들이 이에 해당)

 

  • 엔터티, 인스턴스, 속성, 속성값의 관계

- 엔터티와 인스턴스 : 한 개의 엔터티는 두 개 이상의 인스턴스 집합

- 엔터티와 속성 : 한 개의 엔터티는 두 개 이상의 속성 포함

- 속성과 속성값 : 한 개 의 속성은 한 개의 속성 값으로 구성

 

  • 속성의 명칭 규칙

:업무 용어, 약어 미사용, 단수 명사, 이름 유일성

 

  • 도메인

- 각각의 속성이 가질 수 있는 값의 범위

- 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항 등을 지정하는 것

- 도메인의 특징 : 타입과 크기,  NOT NULL, 제약사항 

 

 

 

👉 관계

- 데이터 모델에서의 관계는 개체와 개체 간의 의미 있는 연관성을 뜻한다.

- 엔터티의 인스턴스 사이에서 서로에게 연관성이 부여된 상태를 의미한다.

 

  • 관계의 종류

- 존재에 의한 관계 

   ex) 부서, 사원

- 행위에 의한 관계

  ex) 고객, 주문

 

  • 관계 차수

- 1:1 : 관계를 맺는 엔터티가 하나의 관계만을 가지는 경우

- 1:M : 관계를 맺는 엔터티가 한 개 이상의 경우이며, 반대의 방향은 한 개의 관계만 가지는 경우

- M:N : 관계를 맺는 엔터티가 한 개 이상의 경우이며, 반대의 방향도 한 개 이상의 관계를 가지는 경우

 

  • 관계 정의 시 체크 사항

: 연관규칙, 정보 조합, 관계연결 규칙, 관계연결 동사

 

 

 

👉 식별자

- 하나의 엔터티에 구성된 여러 개의 속성 중 엔터티를 대표할 수 있는 속성

- 엔터티 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자

 

  • 식별자의 종류

- 주식별자

 : 유일성, 최소성 (최소의 수), 불변성, 존재성 (NULL 안됨)

- 대체 식별자

- 외부 식별자

 

  • 식별자의 분류

1) 대표성 여부 

- 주식별자 : 엔터티 내에서 각 인스턴스를 유일하게 구분할 수 있는 식별자

- 보조식별자 : 엔터티 내 각 인스턴스를 구분할 수 있지만, 대표성을 가지지 못해 참조 관계 연결을 할 수 없는 식별자

 

2) 스스로 생성 여부

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

- 외부 식별자 : 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자

 

3) 속성 수 

- 단일 식별자 : 하나의 속성으로 구성된 식별자

- 복합 식별자 : 둘 이상의 속성으로 구성된 식별자

 

4) 대체 여부

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

- 인조 식별자 : 업무적으로 만들어지지는 않지만 원조식별자의 복잡한 구성으로 인위적으로 만든 식별자

 

  • 식별자 vs 비식별자

1) 식별자 관계 

- 부모로부터 받은 식별자를 자식 엔터티의 주식별자로 이용하는 관계

- 강한 연결관계로 표현하며 실선으로 표기

- 반드시 부모엔터티에 종속되어야 하는 경우

- 상속받은 주 식별자 속성을 타 엔터티에 이전이 필요한 경우

- 식별자의 길이가 길어져 개발이 복잡해지고 성능 문제가 발생할 수 있다.

 

2) 비식별자 관계

- 부모 엔터티로부터 받은 속성을 자식 엔터티의 주 식별자로 사용x 일반적인 속성으로만 사용하는 관계

- 약한 연결관계로 표현하며 점선으로 표기

- 약한 종속관계로 자식이 주 식별자를 독립적으로 구성

- 상속받은 주 식별자 속성을 타 엔터티에 차단이 필요한 경우

- 부모 쪽에 관계참여가 선택 관계

- 부모키가 자식테이블로 내려가지 않아 식별자의 길이가 길어지지 않는다.