[SQLD]1장 데이터 모델링의 이해-1.데이터모델의 이해

Yu River·2022년 6월 24일
0

SQL전문가가이드

목록 보기
1/34

[1] 모델링의 이해

(1) 모델링의 정의

  • 모델 이란 모형,축소형의 의미로서 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형이다.
  • 모델링은 다양한 현상을 표기법 에 의해 규칙 을 가지고 표기 하는 것 자체를 의미한다.
  • 즉, 모델을 만들어가는 일 자체를 모델링으로 정의한다.

1. 모델링에 대한 다양한 정의

  • 가설적 또는 "일정양식" 에 맞춘 표현
  • 어떤 것에 대한 예비 표현으로 그로부터 "최종대상"이 구축되도록 하는 계획으로서 기여하는 것
  • 복잡한 '현실세계'를 단순화시켜 표현
  • 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
  • 현실 세계의 추상화된 반영

(2) 모델링의 특징

  • '현실세계를 "추상화", "단순화", "명확화" 하기 위해 일정한 "표기법" 에 의해 표현하는 기법'

1. 추상화

  • 현실세계를 "일정한 형식"에 맞추어 표현한다는 의미
  • "다양한 현상" 을 "일정한 양식"인 표기법에 의해 표현

2. 단순화

  • 복잡한 현실 세계를 "약속된 규약"에 의해 "제한된" 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 것

3. 명확화

  • 누구나 이해하기 쉽게 대상에 대한 "애매모호함"을 제거하고 정확하게 현상을 기술하는 것

4. 모델링 용도

  • 계획/분석/설계 단계: 업무를 분석하고 설계하는 데에 이용
  • 구축/운영 단계: 변경관리의 목적으로 이용

(3) 모델링의 3가지 관점

1. 데이터 관점 (What, "Data")

  • 업무가 어떤 데이터와 관련이 있는지
  • 데이터간의 관계는 무엇인지

2. 프로세스 관점 (How, "Process")

  • 실제 하고 있는 일은 무엇인지
  • 무엇을 해야 하는지

3. 데이터와 프로세스의 상관 관점 (Interaction)

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

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

(1) 모델링의 정의

  • 정보시스템을 구축하는 과정에서 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
  • 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙에 대하여 참 또는 거짓을 판별할 수 있는 사실을 데이터에 접근하는 방법
  • 사람, 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상적 기법
  • 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을 구축하는 과정
  • 현실 세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
  • ⭐️ 데이터 모델링의 3요소는 Thing, Attirbutes, Relationship

1. 데이터 모델링의 주요한 목적

  • "정보시스템 구축" 의 대상이 되는 업무 내용을 정확하게 분석하는 것
  • "분석된 모델" 을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것

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

  • 시스템을 "현재" 또는 "원하는 모습" 으로 "가시화"
  • 시스템의 "구조와 행동" 을 "명세화"
  • 시스템을 구축하는 "구조화된 틀" 제공
  • 시스템을 구축하는 과정에서 결정된 것을 문서화
  • 다양한 영역에 집중하기 위한 "다양한 관점" 제공
  • 특정 목표에 따라 구체화된 상세 수준의 "표현 방법" 제공

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

(1) 데이터 모델링의 중요성

1. 파급효과 (Leverage)

  • 병행 테스트, 통합 테스트 과정에서 ""데이터 구조의 변경"" 으로 인한 일련의 ""변경"" 작업은 전체 시스템 구축 프로젝트에서 큰 위험 요소 > 데이터 설계가 굉장히 중요

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

  • 많은 관련자들이 설계자의 생각대로 이해하고 이를 운용할 수 있는 어플리케이션을 개발하고 데이터 정합성을 유지할 수 있도록

3. 데이터 품질

  • 데이터는 기간이 오래되면 될수록 활용가치는 훨씬 높아진다. 이런 데이터의 정확성이 떨어지면, 이것은 소중한 비즈니스 기회를 상실할 수도 있는 문제

(2) ⭐️ 데이터 모델링 유의점

1. 중복

  • 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록

2. 비유연성

  • 데이터의 정의를 사용 프로세스와 분리 > 작은 변화가 어플리케이션과 데이터베이스에 중도해나 변화를 일으킬 수 있는 가능성을 줄임

3. 비일관성

  • 데이터와 데이터 간 상호 연관 관계에 대해 명확하게 정의하여 데이터 간에 모순이 발생하지 않도록 "

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

  • 현실 세계와 데이터베이스 사이의 모델

(1) 개념적 데이터 모델링

  • 추상화 수준이 높음
  • 업무중심적이고 포괄적인 수준의 모델링,전사적 데이터 모델링, EA 수립 시 많이 이용
  • 조직, 사용자의 데이터 요구사항을 찾고 분석하는 데서 시작
  • 어떠한 자료가 중요하며 또 어떠한 자료가 중요하며 또 어떠한 자료가 유지되어야 하는지를 결정
  • 주요 활동 :: 핵심 엔터티와 그들 간의 관계를 발견하고, 엔터티-관계 다이어그램을 생성하는 것
  • 개념 데이터 모델 :: 상위의 문제에 대한 구조화를 쉽게 > 사용자와 개발자가 시스템 기능에 대해서 논의할 수 있는 기반을 형성,현 시스템이 어떻게 변형되어야 하는가를 이해하는 데에 유용

(2) 논리적 데이터 모델링

  • 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현하며 재사용성이 높음
  • 데이터베이스 설계 프로세스의 Input > 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정
  • 가장 먼저 시작할 기초적인 업무 조사를 하는 초기단계에서부터 인간이 결정해야 할 대부분의 사항을 모두 정의하는 시스템 설계의 전 과정을 지원하는 ‘과정의 도구’
  • 논리 모델링의 외래키는 물리 모델에서 반드시 구현되지 않음. (선택 사항임)

1. 핵심

  • 어떻게 데이터에 액세스하고 누가 데이터에 액세스? > 그러한 액세스의 전산화와는 독립적으로 다시 말해서 누가,어떻게(How: Process) 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것

2. 정규화

  • 이 단계에서 수행하는 또 한가지 중요한 활동 ,논리 데이터 모델 상세화 과정의 대표적인 활동
  • 논리 데이터 모델의 일관성을 확보
  • 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 함으로써 보다 신뢰성 있는 데이터구조를 얻음
  • 논리 데이터 모델의 상세화 :: 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등

(3) 물리적 데이터 모델링

  • 실제로 DB에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
  • 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룸
  • 결정되는 것 :: 테이블, 칼럼 등으로 표현되는 물리적인 저장 구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등
  • 실제 데이터베이스 구축 시 참고되는 모델"

[5] 프로젝트 생명주기에서의 데이터 모델링

  • 데이터 축과 어플리케이션축으로 구분되어 프로젝트가 진행되면서 각각에 도출된 사항은 상호 검증을 지속적으로 수행하면서 단계별 완성도를 높임
  • 객체지향 개념은 데이터와 프로세스를 한꺼번에 바라보면서 모델링을 전개하므로 데이터 모델링과 프로세스 모델링을 구분하지 않고 일체형으로 진행
    • 대표적인 예시 :: 데이터(속성)와 프로세스(Method)가 같이 있는 클래스(Class)

(1) 일반적

  • 현실 프로젝트에서는 개념적 데이터 모델이 생략된 개념/논리 데이터 모델링이 분석 단계 때 대부분 수행된

1. 계획, 분석 단계 :: 개념적 데이터 모델링

2. 분석 단계 :: 논리적 데이터 모델링

3. 설계 단계 :: 물리적 데이터 모델링

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

(1) 데이터 독립성의 필요성

1. 데이터 독립성

  • 지속적으로 증가하는 유지보수 비용을 절감
  • 데이터 복잡도를 낮춤
  • 중복된 데이터를 줄이기 위함
  • 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위함

2. 데이터 독립성 확보하게 되면 다음 효과가 나타남

  • 각 View의 독립성을 유지 && 계층별 View에 영향을 주지 않고 변경이 가능
  • 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공

(2) 데이터베이스 3단계 구조 (3단계 스키마)

  • 외부 단계: 사용자가 처리하고자 하는 데이터 유형과 관점, 방법에 따라 다른 스키마 구조
  • 개념 단계: 공통적인 사항을 처리하는 통합된 뷰를 디자인한 스키마 구조
  • 내부 단계: 데이터가 물리적으로 저장된 방법에 대한 스키마 구조

(3) 데이터 독립성 요소

1. 외부 스키마 (External Schema)

  • 개별 사용자 단계로서 개별 사용자가 보는 개인적 DB 스키마
  • DB의 개별 사용자나 응용프로그래머가 접근하는 DB 정의

2. 개념 스키마 (Conceptual Schema)

  • 하나의 스키마로 구성되어 모든 사용자 관점을 통합한 조직 전체의 DB를 기술
  • DB에 저장되는 데이터와 그들 간의 관계를 표현하는 스키마

3. 내부 스키마 (Interanl Schema)

  • DB가 물리적으로 저장된 형식
  • 물리적 장치에 데이터가 실제적으로 저장되는 방법을 표현하는 스키마

(4) 두 영역의 데이터 독립성

1. 논리적 독립성

  • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
  • 논리적 구조가 변경되어도 응용 프로그램에 영향이 없음

2. 물리적 독립성

  • 내부 스키마가 변경되어도 개념/외부 스키마는 영향을 받지 않도록 지원
  • 저장 장치의 구조 변경은 응용 프로그램과 개념 스키마에 영향이 없음

(5) 사상 (Mapping)

  • 상호 독립적인 개념을 연결시켜주는 다리를 뜻함
  • 각 단계 (외부,개념,내부)의 독립성을 보장하기 위해 변경 사항이 발생했을 때 DBA가 적절하게 작업을 해주기 때문에 독립성이 보장되는 거임

1. 논리적 사상

  • 외부적 뷰와 개념적 뷰의 상호 관련성을 정의
  • 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 개념적 스키마와 연결된다는 것
  • 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음 > 개념적 뷰의 필드 타입은 변화가 없음

2. 물리적 사상

  • 개념적 뷰와 저장된 데이터베이스의 상호관련성 정의
  • 개념적 스키마 구조와 물리적인 테이블스페이스와 연결되는 구조를 뜻함
  • 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야 함 > 그래야 개념적 스키마가 그대로 남아있게 됨
  • 데이터 독립성을 보장하기 위해서는 사상을 하는 스크립트(DDL)를 DBA가 필요할 때마다 변경해 주어야 함

[7] 데이터 모델링의 중요한 3가지 개념

(1) ⭐️ 데이터 모델링의 3가지 요소

  • 엔터티: 업무가 관여하는 어떤 것 (Things)
  • 속성: 어떤 것이 가지는 성격 (Attributes)
  • 관계: 업무가 관여하는 어떤 것 간의 관계 (Relationships)

    [예시] '이주일과 심순애는 연인 사이이다. 이주일은 키가 180cm에 성격은 친절하고, 심순애는 키가 165cm에 세심하며 활달한 성격을 가지고 있다.'

    • 엔터티 = 이주일, 심순애
    • 속성: 180cm에 성격은 친절, 165cm에 세심하며 활달한 성격
    • 관계: 연인 사이

(2) 단수와 집합(복수)의 명명

복수 > 단수

  • 엔터티 타입 > 엔터티
  • 엔터티 > 인스턴스 또는 어커런스
  • 관계 > 페어링
  • 속성 > 속성값

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

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

  • 실전 프로젝트에서는 데이터베이스를 전문적으로 하는 이른바 DBA(DataBase Administrator)가 데이터 모델링을 전적으로 하는 예는 거의 없음
  • 업무시스템을 개발하는 응용시스템 개발자가 데이터 모델링도 같이 하게 됨 > 그 이유는 데이터 모델링이라는 과정이 단지 데이터베이스를 설계한다는 측면보다 업무를 이해하고 분석하여 표현하는 것이 중요하고, 표현된 내용을 바탕으로 프로젝트 관련자와 의사소통하고 프로그램이나 다른 표기법과 비교 검증하는 일을 수행하는 등 많은 시간을 업무를 분석하고 설계하는데 할애하기 때문에 업무 영역별 개발팀에서 보통 데이터 모델링을 진행하게 되는 것

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

  • 정보시스템을 구축하는 모든 IT 기술자 + 해당 업무에서 정보화를 추진하는 업무담당자

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

(1) 데이터 모델 표기법

  • 엔터티 = 사각형
  • 관계 = 마름모
  • 속성 = 타원형

(2) ERD 표기법을 이용하여 모델링하는 방법

1. ERD

  • 각 업무분석에서 도출된 엔터티와 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램으로 표시하는 방법
  • 실제 프로젝트에서는 도식화된 그림 정도로만 생각하지 않고 해당 업무에서 데이터의 흐름과 프로세스와의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물

2. ERD 작업 순서

  • 가장 중요한 엔터티를 왼쪽 상단에 배치 > 이것을 중심으로 다른 엔터티를 나열하면서 전개
  1. 엔터티 그리기
  2. 적절하게 엔터티 배치
  3. 엔터티 간 관계 설정
    • 초기에는 모두 Primary Key 로 속성이 상속되는 식별자 관계를 설정
    • 중복되는 관계가 발생되지 않도록 하고 Circle 관계도 발생하지 않도록 유의하여 작성
  4. 관계명 기술
    • 관계이름은 현재형을 사용하고 지나치게 포괄적인 용어(예, 이다, 가진다 등)는 사용하지 않도록
  5. 관계의 참여도 기술
    • 관계차수(Cardinality,엔터티내에 인스턴스들이 얼마나 관계에 참여하는 지)를 표현
    • IE 표기법으로는 하나(1, One)의 관계는 실선으로 표기
    • Barker 표기법으로는 점선과 실선을 혼합하여 표기
    • 다수참여(Many)의 관계는 까마귀발과 같은 모양
  6. 관계의 필수여부 기술
    • 관계의 필수/선택표시는 관계선에 원을 표현

[10] 좋은 데이터 모델의 요소

(1) 완전성 (Completeness)

  • 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의
  • 데이터 모델을 검증하기 위해서 가장 먼저 확인해야 할 부분 > 충족되지 못하면 다른 어떤 평가 기준도 의미가 없어짐

(2) 중복 배제 (Non-Redundancy)

  • 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록
  • 데이터 중복 관리로 인해서 여러 가지 바람직하지 않은 형태의 데이터 관리 비용을 지불할 수 있다.
  • 저장공간의 낭비, 중복 관리되고 있는 데이터의 일관성을 유지하기 위한 추가적인 데이터 조작 비용

(3) 업무 규칙 (Business Rules)

  • 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현 > 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공해야 함
  • 특히, 데이터 아키텍처에서 언급되는 논리 데이터 모델에서 이러한 요소들이 포함되어야 함은 매우 중요 > 이를 통해 모든 사용자가 해당 규칙에 대해서 동일한 판단을 하고 데이터를 조작

(4) 데이터 재사용

  • 신규 정보시스템의 구축 작업 > 회사 전체 관점에서 공통 데이터를 도출하고 이를 전 영역에서 사용하기에 적절한 형태로 설계하여 시스템을 구축
  • 데이터 구조의 확장성, 유연성에 많은 노력 > 구축하는 데이터 모델은 이러한 외부의 업무 환경 변화에 대해서 유연하게 대응할 수 있어야 함

1. 통합 모델

  • 데이터 재사용성을 향상
  • 확장성을 담보하기 위해서 > 데이터 관점의 통합이 불가피
  • ‘행위의 주체’가 되는 집합의 통합
  • ‘행위의 대상’이 되는 집합의 통합
  • ‘행위 자체’에 대한 통합 등은 전체 정보시스템의 안정성, 확장성을 좌우하는 가장 중요한 요소
  • 데이터 모델이 갖추어야 하는 중요한 요소 중에 하나는 기업이 관리하고자 하는 데이터를 합리적으로 균형이 있으면서도 단순하게 분류하는 것

(5) 의사소통

  • 많은 업무 규칙들은 데이터 모델에 엔터티, 서브타입, 속성, 관계 등의 형태로 최대한 자세하게 표현되어야 함 > 이러한 업무 규칙들을 많은 관련자들이 동일한 의미로 받아들이고 정보시스템을 활용할 수 있게 하는 역할을 하게 된다. 즉, 데이터 모델이 진정한 의사소통의 도구로서의 역할

(6) 통합성

  • 동일한 데이터는 조직의 전체에서 한번 만 정의되고 이를 여러 다른 영역에서 참조, 활용해야 함 .물론 이 때에 성능 등의 부가적인 목적으로 의도적으로 데이터를 중복시키는 경우는 존재할 수 있음
  • 동일한 성격의 데이터를 한 번만 정의하기 위해서는 공유 데이터에 대한 구조를 여러 업무 영역에서 공동으로 사용하기 용이하게 정의"
profile
도광양회(韜光養晦) ‘빛을 감추고 어둠속에서 힘을 기른다’

0개의 댓글