티스토리 뷰

데이터 모델링 개요

1. 모델링 정의 

  • 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
  • 현실반영 하는 과정

2. 모델링의 특징

  • 추상화, 단순화, 명확화

3. 데이터 모델링의 정의

  • 데이터베이스를 구축하기 위한 분석/설계의 과정
  • 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정

4. 데이터 모델링의 특징

  • 가시화, 명세화, 구조화된 틀 제공, 결정된 것을 문서화, 추상화

5. 데이터 모델링의 3단계

  • 개념적 데이터모델링 (분석, 계획 단계)

    • 핵심 엔터티와 그들간의 관계를 발견하고, 그것을 표현하기 위해서 엔터티-관계 다이어그램을 생성하는 것이다.

    • 주로 전사적 데이터 모델링, EA 수립시 많이 이용된다.

      • EA: 엔터프라이즈 구축을 위한 설계도면 + 엔터프라이즈 관리를 위한 거버넌스 체계

  • 논리적 데이터모델링(분석, 계획 단계)

    • 표로 전환

    • key속성, 관계등을 정확하게 표현

  • 물리적 데이터모델링 (설계단계)

    • 데이터베이스 제품 선택 후 실제 표로 만드는 과정

    • 성능, 저장 등 물리적인 성격을 고려해서 설계

6. 데이터모델링의 3가지 개념

  • 어떤 것, 관계, 성격

7. ERD(Entity Relationship Diagram)

  • 업무분석에서 도출된 엔터티와 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램

  • 작업 순서

    • 엔터티를 그리고 적절하게 배치

    • 엔터티간 관계연결 및 관계명 표시

    • 관계 차수, 선택성 기술

  • 좋은 데이터모델의 요소

    • 완전성, 중복배제, 업무규칙, 데이터 재사용, 의사소통, 통합성(동일한 데이터는 조직 전체에서 한번만 정의되고 여러 다른 영역에서 참조, 활용하게 만들어야 함)

8. 엔터티

  • 엔터티(Entity) - 실체, 객체

    • 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.

    • 엔터티는 업무상 관리가 필요한 관심사에 해당한다.

    • 엔터티는 저장이 되기 위한 어떤 것(Thing)이다.

  • 엔터티 - 인스턴스

    • 엔터티는 인스턴스의 집합

    • 엔터티

      • 과목, 강사, 사건

    • 인스턴스

      • 수학, 영어, 이춘식, 조시형, 2010-001, 2010-002

  • 엔터티의 특징

      • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.

      • 유일한 식별자에 의해 식별이 가능해야 한다.

      • 영속적으로 존재하는 인스턴스의 집합이어야 한다.(‘한 개’가 아니라 ‘두 개 이상’)

        • 인스턴스가 한 개 밖에 없는 회사, 병원 엔터티는 집합이 아니므로 엔터티 성립이 안됨

      • 엔터티는 업무 프로세스에 의해 이용되어야 한다.

        • 업무프로세스에 사용되지 않으면 그 업무의 엔터티가 아님

      • 엔터티는 반드시 속성이 있어야 한다.

        • 예를들어 날씨를 엔터티로 만들었는데 날씨에 대한 속성이 아무것도 없다면 엔터티가 아님

      • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.

        • 엔터티가 관계가 없으면, 잘못된 엔터티이거나 관계가 누락되었을 가능성이 큼

  • 엔터티의 명명

    • 현업업무에서 사용하는 용어를 사용한다.

    • 약어를 사용하지 않는다.

    • 단수명사를 사용한다.

    • 모든 엔터티에서 유일하게 이름이 부여되어야 한다.

    • 엔터티 생성의미대로 이름을 부여한다.

9. 속성

  • 속성(Attribute)의 정의

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

    • 업무에서 필요로 한다.

    • 의미상 더 이상 분리되지 않는다.

    • 엔터티를 설명하고 인스턴스의 구성요소가 된다.

    • 엔터티: 강사 / 속성: 이름, 주소, 생년월일, 계약일자, 전문분야

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

    • 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.

    • 한 개의 엔터티는 두 개 이상의 속성을 갖는다.

    • 한 개의 속성은 한 개의 속성값을 갖는다.

  • 속성의 특징

    • 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예, 강사의 교재이름)

    • 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.

  • 속성의 분류 – 엔터티 구성방식에 따른 분류

    • PK(Primary Key) 속성: 엔터티를 식별할 수 있는 속성 

    • FK(Foreign Key)속성: 다른 엔터티와의 관계에서 포함된 속성

    • FK(Foreign Key)속성: 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성

10. 관계

  • 관계의 정의

    • 인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태

  • 관계의 분류

    • 존재에 의한 관계

      • 부서 -----소속한다-----> 사원

    • 행위에 의한 관계

      • 고객 ----- 주문한다 ----> 주문

  • 관계차수(Degree/Cardinality)

    • 1:1

      • 사원 -l---등록한다----l- 병역사항

      • 사원 -l---작성된다----l- 병역사항

    • 1:M

      • 부서-l----포함한다----l< 사원

      • 부서-l---- 소속된다----l< 사원

    • M:N

  • 관계 선택사양

    • 필수참여(Mandatory Membership)

    • 선택참여(Optional Membership)

11. 식별자

  • 식별자(Identifiers) 개념

    • 식별자는 엔터티내에서 인스턴스들을 구분할 수 있는 구분자이다.

  • 식별자의 특징

    • 유일성: 인스턴스들이 유일하게 구분되어야 한다.

    • 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.

    • 불변성: 자주 변하지 않는 것이어야 한다.

    • 존재성: 주식별자가 지정이 되면 반드시 값

  • 주식별자 도출기준

    • 해당업무에서 자주이용

    • 명칭이나 내역은 부적절

    • 속성의 수가 많아지지 않도록 함

      • 식별자의 속성의 개수가 많은경우 인조식별자를 생성해서 데이터모델을 구성하는 것이 더 좋은 방법이다.

  • 외부식별자(Foreign Identifier)

    • 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key역할을 한다.

  • 식별자관계(Identifiying Relationship)

    • 자식엔터티의  주식별자로 부모의 주식별자가 상속이 되는 경우를 식별자 관계(Identifying Relationship)라고 지칭

    • 부모로부터 받은 식별자를 자식엔터티의 주식별자로 이용하는 경우는 Null값이 오면 안되므로 반드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우이다

  • 비식별자관계 (Non-Identifying Relationship) 의 정의

    • 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우

'database' 카테고리의 다른 글

[Database] 스칼라 서브쿼리  (0) 2021.03.01
[Database] 데이터 모델링 - 데이터 성능  (0) 2021.03.01
[Database] 루씬(Lucene)  (0) 2020.09.27
[Database] NoSQL  (0) 2020.08.30
auto increment  (0) 2020.04.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함