본문 바로가기
IT/SQLD

[SQLD] 과목1_1장_1.데이터 모델의 이해

by 윤싱찬 2018. 8. 10.


1. 모델링의 이해

가) 모델링의 정의

1) Webster 사전

  • 가설적 또는 일정 양식에 맞춘 표현
  • 어떤 것이 대한 예비표현으로 그로부터 최종대상이 구축되도록 하는 계획

2) 복잡한 '현실세계'를 단순화시켜 표현하는 것
3) 모델이랑 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
4) 모델이랑 현실 세계의 추상화된 반영

나) 모델링의 특징

모델링의 특징은 추상화, 단순화, 명확화의 3대 특징으로 요약됨

1) 추상화 : 다양한 현실을 일정한 양식 표기법에 의해 표현
2) 단순화 : 현실세계를 제한된 표기법이나 언어로 표현하여 쉽게 이해하도록 함
3) 명확화 : 애매모호함을 제거하고 정확하게 현상을 기술함.

다) 모델링의 세 가지 관점

1) 데이터 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지 모델링
2) 프로세스 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는지 모델링
3) 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링

2. 데이터 모델의 기본 개념의 이해

가) 데이터 모델링의 정의

1) 업무정보를 구성하는 기초가 되는 정보들을 일정한 표기법에 의해 표현하여, 업무내용을 정확하게 분석하는 것
2) 분석된 모델을 가지고 실제 DB를 생성하여 개발 및 데이터관리에 사용하기 위한 것
3) 데이터 모델링 자체로서 업무를 설명하고 분석하는 것도 중요한 의미

나) 데이터 모델이 제공하는 기능

1) 시스템을 원하는 모습으로 가시화
2) 시스템의 구조와 행동을 명세화
3) 시스템 구축을 위한 틀 제공
4) 시스템 구축 과정의 의사결정을 문서화
5) 다양한 영역에 집중하기 위해, 다른 영역의 세부 사항은 숨김
6) 특정 목표에 따라 구체화된 상세 수준 표현방법 제공

3. 데이터 모델링의 중요성 및 유의점

가) 중요성

1) 파급효과

  • 대부분의 프로젝트가 폭포수 방식으로 개발이 이루어짐.
  • 만약, 통합테스트 시 모델링의 일부가 변경되면 큰 리스크이므로, 설계가 무엇보다 중요함.

2) 복잡한 정보 요구사항의 간결한 표현

  • 정보 요구사항을 파악하는 가장 좋은 방법은, 간결하게 그려져 있는 데이터 모델을 리뷰하는 것.

3) 데이터 품질

  • 데이터가 오랜 기간 숙성된 이후, 전략적으로 활용할 시점에 품질에 이상이 있을 경우 치명타.
  • 데이터 품질을 저하시키는 원인은 데이터 구조의 문제이므로 설계 시 반드시 체크해야 함.

나) 유의점

1) 중복

  • DB가 여러 장소에 같은 정보를 저장하지 않도록 함.

2) 비유연성

  • 데이터 정의를 데이터 사용 프로세스와 분리하여, 프로세스의 변화에도 영향을 적게 받도록 함.

3) 비일관성

  • 신용상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 것처럼 비일관성 모델이 나올 수 있음.
  • 데이터간 상호 영관 관계에 대한 명확한 정의가 필요함.

4. 데이터 모델링의 3단계 진행

가) 개념적 데이터 모델링

1) 조직, 사용자의 데이터 요구사항을 분석

  • 핵심 엔터티와 관계를 분석하고 ERD로 표현함.
  • ERD는 사용자에게 어떤 데이터가 중요한지 확인하기 위해 사용함.

2) 개념 데이터 모델의 중요한 기능

  • 사용자와 개발자가 시스템 요구사항을 확인하도록 함.
  • 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용함.

나) 논리적 데이터 모델링

1) 개념

  • 비지니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법
  • 데이터 모델링 과정 중 가장 핵심이 되는 부분

2) 정규화

  • 논리 데이터 모델 상세화 과정의 대표활동
  • 상세화는 식별자 활동, 정규화, M:M 관계 해소, 참조 무결성 규칙 등을 정의함

다) 물리적 데이터 모델링

  • 논리 데이터 모델이 데이터 저장소로써 어떻게 하드웨어에 표현될 것인지를 다룸
  • 테이블, 컬럼 등으로 표현되는 물리적인 저장구조와 저장장치 그리고 자료 추출을 위한 접근방법 등이 있음
  • 일반적으로 개념/논리를 한번에 묶어 논리적 데이터 모델링을 하고, 이후 물리적 데이터 모델링을 처리함

5. 프로젝트 생명주기(Life Cycle)에서 데이터 모델링

6. 데이터 모델링에서 데이터독립성의 이해

가) 데이터독립의 필요성

  • 각 View의 독립성 유지하며, 계층별 View에 영향을 주지 않고 변경 가능
  • 단계별 Schema에 따라 DDL, DML을 별도로 제공 가능

나) 데이터베이스 3단계

다) 데이터독립성 요소

  • 데이터베이스 스키마 구조는 각각 상호 독립적인 의미와 고유한 기능을 가짐.
  • 데이터 모델링은 개념스키마를 만들어가는 과정

라) 두 영역의 데이터독립성

마) 사상(Mapping)

  • 논리적 사상 : 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것
  • 물리적 사상 : 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조

7. 데이터 모델리의 중요한 세 가지 개념

가) 데이터 모델링의 세 가지 요소

Things업무가 관여하는 것
Attributes어떤 것이 가지는 성격
Reletionships업무가 관여하는 어떤 것 간의 관계

나) 단수와 집합(목수)의 명영

8. 데이터 모델링의 이해관계자

가) 이해관계자의 데이터 모델링 중요성 인식

  • 대부분의 정보 시스템은 데이터가 중심에 있는 시스템을 구축하므로 데이터베이스 설계 단계는 그만큼 중요함.

나) 데이터 모델링의 이해관계자

  • 정보시스템을 구축하는 모든 사람은 데이터 모델링 지식도 갖추어야 함.
  • 해당 업무의 현업들도 커뮤니케이션을 할 수 있는 지식이 있어야 함.

9. 데이터 모델의 표기법인 ERD의 이해

가) 데이터 모델 표기법

  • 1976년 피터첸(Peter Chen)이 Entity-relationship model(E-R Model)이라는 표기법을 만듬.

나) ERD(Enity Relationship DIagram) 표기법을 이용하여 모델링하는 방법

1) ERD 작업 순서

  • ERD는 엔터티와 엔터티 사이의 관계가 있는 정보를 나타내므로 두 개를 이용하여 작성하고, 이에 따라 Primary Key와 Foreign Key를 ERD 규칙에 따라 기술함.
  • 엔터티는 사각형으로 표기하여 기술함.

2) 엔터티 배치 방법

  • 일반적으로 사람의 눈은 왼쪽 상단에서 오른쪽 하단으로 이동하므로, 가장 중심이 되는 엔터티를 왼쪽상단에 위치시키고 이를 중심으로 관계되는 엔터티를 배치함.
  • 중심이 되는 엔터티는 타 엔터티와 관계를 많이 가지므로 중앙에 배치함.
  • 중심 엔터티와 관계를 갖는 엔터티들은 중심에 배치된 엔터티 주위에 배치함.

3) ERD 관계 설정

  • ERD 관계석서를 보고 서로 관련있는 엔터티간에 관계를 설정함.
  • 초기에는 모두 Primary Key로 속성이 상속되는 식별자 관계를 설정함.
  • 중복되는 관계가 발생되지 않도록 하고, Circle 관계도 발생하지 않도록 유의하여 작성함.

4) ERD 관계명 표시

  • ERD 관계명의 표시 관계설정이 완료되면 연결된 관계에 관계이름을 부여함.
  • 실제 프로젝트에서는 ERD 흐름이 명확하므로, 관계의 명칭을 크게 고려하지 않음.

5) 관계차수와 선택성 표시

10. 좋은 데이터 모델의 요소

가) 완전성(Completeness)

  • 데이터 모델 검증 시 가장 먼저 확인해야 할 부분으로, 업무에서 필요하는 모든 데이터가 데이터 모델에 정의되어 있어야 함.

나) 중복배제(Non-Redundancy)

  • 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록되야 함.
  • 하나의 테이블에 나이와 생년월일 컬럼이 동시에 존재한다면, 중복관리로 인한 낭비가 발생함.

다) 업무규칙(Business Rules)

  • 데이터 모델링 과정에서 도출되고 규명되는 업무규칙을 데이터 모델로 표현하고 사용자에게 제공되어야 함.
  • 데이터 모델로 표현하여, 이 모델을 사용하는 사용자가 해당 규칙에 대해 동일한 판단을 하고 데이터를 관리할 수 있어야 함.

라) 데이터 재사용(Data Reusability)

  • 데이터의 재사용성을 향상시키고자 한다면 데이터의 통합성과 독립성에 대해서 충분히 고려해야 함.
  • 이를 위해서는 데이터 설계 시 통합 모델로 설계되어야만 데이터 재사용성을 향상시킬 수 있음.
  • 또한 어플리케이션에 대해 독립적으로 설계되어야만 재사용성 향상 가능함.

마) 의사소통(Communication)

  • 데이터 모델은 업무를 데이터 관점에서 분석하고, 이를 설계하여 나오는 최종 산출물.
  • 이런 과정에서 나오는 업무 규칙들을, ERD로 최대한 자세히 표현되어야 하며, 이를 통해 의사소통이 원할해야 함.

바) 통합성(Integration)

  • 가장 바람직한 데이터 구조의 형태는, 동일한 데이터가 조직의 전체에서 한번 만 정의되고 이를 여러 다른 영역에서 활용되도록 하는 것.

문서에 대하여

문서정보


'IT > SQLD' 카테고리의 다른 글

[SQLD] 과목1_1장_5.식별자  (0) 2018.11.28
[SQLD] 과목1_1장_4.관계  (0) 2018.11.28
[SQLD] 과목1_1장_3.속성  (0) 2018.11.28
[SQLD] 과목1_1장_2.엔터티  (0) 2018.08.16