https://th.bing.com/th/id/OIP.-KvoMKZ3ekyioo7aFrQgMgHaHH?pid=ImgDet&rs=1

1. 데이터 모델링의 이해#

1-1 : 데이터 모델의 이해#

모델링#

현실세계를 단순화하여 표현하는 것

  • 특징

    • 추상화 : 일정한 형식에 맞춰 표현

    • 단순화 : 제한된 표기법이나 언어로 표현

    • 명확성 : 이해하기 쉽게 표현

  • 관점

    • 데이터 관점 : 업무와 데이터 및 데이터 사이의 관계

    • 프로세스 관점 : 진행되고 있거나 진행되어야 하는 업무

    • 상관 관점 : 데이터에 대한 업무 처리 방식의 영향

데이터 모델링#

정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법

  • 목적

    • 정보에 대한 표기법을 통일하여 업무 분석 정확도 증대

    • 데이터 모델을 기초로 DB 생성

  • 기능

    • 가시화

    • 명세화

    • 구조화된 틀 제공

    • 문서화

    • 다양한 관점 제공

    • 구체화

  • 중요성

    • 파급효과(leverage)

    • 간결한 표현(Conciseness) : 정보 요구사항과 한계를 간결하게 표현하는 도구

    • 데이터 품질

      • 유일성 : 데이터 중복 저장 방지

      • 유연성 : 데이터 정의와 데이터 사용 프로세스 분리

      • 일관성

  • 이해관계자

    1. 개발자

    2. DBA

    3. 모델러

    4. 현업업무전문가 - 완성된 모델을 정확히 해석가능 해야함

데이터 모델링 3단계#

  1. 개념적 모델링 : 엔터이와 속성을 도출, ERD작성, 업무 중심적이고 포괄적인 수준

  2. 논리적 모델링 : 식별자 도출, 속성과 관계 정의, 정규화 수행 \(\to\) 데이터 모델의 독립성 & 재사용성 확보, 논리 데이터 모델은 데이터 모델링 완료 상태

  3. 물리적 모델링 : DB구축, 성능 및 보안 등 물리적 성격 고려

  • 프로젝트 생명주기(Life Cycle) 계획

    • 계획 \(\to\) 분석 \(\to\) 설계 \(\to\) 개발 \(\to\) 테스트 \(\to\) 전환/이행 단계로 구성

    • 계획과 분석 단계 = 개념적 모델링

    • 분석단계 = 논리적 모델링

    • 설계 단계 = 물리적 모델링

DB 3단계 구조#

목표 : 데이터 독립성 확보

  • DB 독립성의 필요성 : 데이터 중복성 & 데이터 복잡도 증가 \(\to\) 유지보수 비용증가, 요구사항 대응 저하

  • 3층 스키마(3-level Schema)

    • 외부스키마 : 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용프로그램이 접근하는 DB를 정의함

    • 개념스키마 : 조직 전체의 통합된 DB 스키마, 설계자 관점, 데이터 모델링의 지향점

    • 내부스키마 : 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자 관점, 물리적 저장 구조임

  • 데이터 독립성

    • 논리적 독립성 : 외부스키마가 개념스키마의 변화에 무관, 논리적 사상 없음

    • 물리적 독립성 : 개념스키마가 내부스키마의 변화에 무관, 물리적 사상 없음

데이터 모델링 3요소#

  1. 엔터티

  2. 관계

  3. 속성

Entity 엔터티 (Table)#

업무에서 관리해야하는 데이터의 집합, 명사형, 인스턴스의 집합

데이터 모델링 및 소프트웨어 개발 영역에서 주로 사용하는 용어 실세계의 독립적인 정보 단위나 객체 DB 설계시, ERD라는 도구를 사용하여 엔터티와 그들의 관계를 표현

  • 특징

    1. 업무 필요성 : 업무 프로세스에 이용됨

    2. 고유성 : 고유한 식별자(id, primary key(pk))를 통해 구별

    3. 2개 이상의 인스턴스를 포함함

    4. 속성 : 하나 이상의 속성(attribute)을 가질 수 있음

    5. 독립성 : 그 자체로 존재 가능

    6. 관계 : 다른 엔터티와 관계를 가짐

  • 명명 규칙

    1. 현업사용 용어

    2. 약자 지양

    3. 단수

    4. 유일성

    5. 명확성

분류 기준

종류

설명

예시

유무형

유형엔터티

물리적 형태를 가지며, 지속적으로 활용되는 엔터티

자동차, 건물, 컴퓨터

개념엔터티

물리적 형태가 없는 엔터티

직급, 부서, 국적

발생시점

기본엔터티 (key entity)

독립적으로 생성되는 엔터티

사원, 제품, 고객

중심엔터티 (main entity)

기본엔터티와 행위엔터티의 중간에 존재하는 엔터티

주문, 계약

행위엔터티 (active entity)

2개 이상의 부모엔터티로부터 발생. 비즈니스 프로세스 실행 시 생성되며, 지속적으로 정보가 추가되고 변경됨. 모든 관계에 사용되는 것은 아니며, 추가 정보나 복잡성이 필요할 때만 사용됨

주문상세, 회원 포인트 이력

Attribute 속성 (Column, field)#

엔터티의 특정 사실이나 상태 엔터티가 가지는 최소 의미 단위, 인스턴스의 내부 구성 요소, 데이터 필드 데이터 모델링에서 엔터티를 구성하는 정보의 항목

도메인 : 속성이 가질 수 있는 값의 범위

분류 기준

종류

설명

예시

특성

기본 속성

비즈니스 프로세스에서 도출되는 본래의 속성

직원 이름

설계 속성

데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성

연봉 등급 코드

파생 속성

다른 속성에 의해 만들어지는 속성

연봉 총액

(저장 속성)

유도 속성을 생성하는데 사용되는 속성

기본 연봉

분해 가능

단일 속성

하나의 의미를 가지는 속성

전화번호

복합 속성

여러 의미를 가지며, 단일 속성으로 분해 가능

주소(도시, 구, 동)

단일값 속성

하나의 값을 가지는 속성

국적

다중값 속성

여러 값을 가지며, 엔터티로 분해 가능

연락처(집, 회사, 핸드폰)

엔터티 구성방식

기본키 속성

엔터티를 식별할 수 있는 속성

직원 ID

외래키 속성

다른 엔터티와의 관계에서 포함된 속성

부서 코드

일반 속성

엔터티에 포함되고 PK나 FK 속성이 아닌 속성

직원 이메일

Relation 관계 (Relation)#

엔터티 간의 논리적인 관련성, 동사형

관계 읽기 : 각각 / 기준 엔티티 > 관계차수 > 대상 엔터티 > 관계선택사양 > 관계명 관계의 패어링 : 인스턴스 간 개별적 관계

관계 표기법 : 1) 관계명 2) 관계차수 3) 관계선택사양

  • 관계차수(Cardinality) : 관게 내 튜플의 전체 개수, 1은 직선, 여러개는 삼발로 표시

    • M:N 관계 : 관계형 DB에서 M:N 관계의 조인은 카테시안 곱 발생 (이를 해결하기 위해 중간 테이블, 브리지 테이블 사용)

  • 관계선택사양(Optionality) : 필수는 |, 선택은 O로 표시

분류 기준

종류/표기방법

설명

ERD

표기 구분 안함

존재 관계

엔터티 간의 상태

행위 관계

엔터티 간에 발생하는 행위

UML

연관 관계 (Association)

실선 표기

의존 관계 (Dependency)

점선 표기

식별자

식별 관계

부모 엔터티의 식별자를 자식 엔터티에서 주식별자로 사용. 약한 엔터티: 부모 엔터티에 종속되어 존재 (↔ 강한 엔터티는 독립적으로 존재함)

비식별 관계

부모 엔터티의 식별자를 자식 엔터티에서 일반 컬럼으로 참조 사용, 약한 종속 관계. 식별 관계만으로 연결되면 주식별자 수가 많아질 수밖에 없음

관계 타입

ASCII 아트 표현

설명

일대일 (One-to-One)

—-ㅣ—

양 끝에 선분. 한 쪽 엔터티에서 다른 한 쪽 엔터티로의 연결이 1:1 관계

일대다 (One-to-Many)

—-<ㅣ—-

한쪽 끝에 크라운 모양. 한 쪽 엔터티에서 다른 쪽으로의 연결이 1:다 관계

다대다 (Many-to-Many)

<—ㅣ—->

양쪽 끝 모두에 크라운 모양. 양쪽 엔터티 간의 연결이 다:다 관계

선택적 관계

…ㅣ—-

점선. 한쪽 엔터티의 참여가 선택적임

속성 연결

—-O

엔터티와 속성(타원)을 연결

행위 엔터티 연결

—-◇—-

엔터티와 행위 엔터티(다이아몬드)를 연결

식별자 identifier#

엔터티를 대표할 수 있는 유일성을 만족하는 속성

  • 특징

    1. 유일성

    2. 최소성

    3. 불변성

    4. 존재성

주식별자 도출기준 : 업무에서 자주 이용되는 속성, 이름 명명 지양, 복합 식별자 지양

분류 기준

식별자 유형

설명

대표성

주식별자

대표성을 만족하는 식별자

보조 식별자

유일성과 최소성만 만족하는 식별자, 참조 관계 연결에 사용할 수 없음

DB 키

기본키 (PK)

엔터티를 대표하는 키, 후보키 중 선정됨

후보키

유일성과 최소성을 만족하는 키

슈퍼키

유일성만 만족하는 키

대체키

기본키를 제외한 나머지 후보키

외래키 (FK)

여러 테이블의 기본 키 필드, 참조 무결성을 확인하기 위해 사용됨

생성

내부 식별자

자연스럽게 존재하는 식별자

외부 식별자

다른 엔터티와의 관계를 통해 생성되는 식별자

속성 수

단일 식별자

하나의 속성

복합 식별자

여러 속성

대체 여부

본질 식별자

대체될 수 없는 식별자

인조 식별자

인위적으로 만들어지는 대체가능한 식별자. 순서번호(Sequence Number)를 사용하여 생성된 식별자, 후보 식별자로도 사용됨

ERD(Entity Relationship Diagram)#

현실 데이터 표현

규칙 : 1) 엔터티는 사각형 2) 관계는 마름모 3) 속성은 타원형

  • 절차

    1. 엔터티 도출

    2. 엔터티 배치

    3. 엔터티 간 관계 설정

    4. 관계명 기술

    5. 관계차수 표현 : 1:1, 1:N, M:N

    6. 관계선택사양 표현 : 필수 선택

좋은 모델링의 요건#

  1. 완전성

  2. 중복 배제

  3. 업무 규칙

  4. 데이터 재사용

  5. 의사소통

  6. 통합성