while (1): study();

1장. 데이터 모델링의 이해 본문

학습/SQLD

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

전국민실업화 2021. 7. 11. 01:07
728x90

1절. 데이터 모델의 이해

 

1. 모델링의 이해

- 정의

더보기

다양한 현상 → 일정한 표기

 - 특징

더보기

추상화, 단순화, 명확화

 - 관점

더보기

1) 데이터: What

2) 프로세스: How

3) 상관

 

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

 - 효과

더보기

1) 업무 내용 분석

2) 실제 DB 개발 및 관리

 

 - 기능

더보기

(가명 구문을 다양한 관점에서 표현)

가시화, 명세화, 구조화, 문서화, 다양한 관점, 상세 수준의 표현 방법

 

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

더보기

1) 파급 효과 (Leverage)

    데이터 구조 변경은 일종의 위험 요소

 

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

    많은 관계자들이 활용할 수 있도록 정확하고 간결하게 표현

 

3) 데이터 품질 (Quality)

    1) 중복

    2) 비유연성: 사소한 변화에도 데이터 모델이 수시로 변경

    3) 비일관성: 데이터 간 상호연관 관계에 대해 명확한 정의 필요

 

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

    1) 개념적 데이터 모델링

        - 특징

더보기

추상적, 업무중심적, 포괄적

        - 활동

더보기

엔티티-관계 다이어그램 생성 → 조직의 데이터 요구 공식화

        - 장점

더보기

1) 데이터 요구사항 발견을 지원

2) 현 시스템 변경 방안 수립

        * EA 기반 전사적 데이터 모델링 시 상위 수준의 개괄적 모델링이 선행

        * 현실에서는 생략 후 개념/논리적 모델링

 

    2) 논리적 데이터 모델링

        - 특징

더보기

 key, 속성, 관계 명확히 정의 → 데이터 모델링 완료

        - 활동

더보기

1) 액세스의 전산화

2) 사실을 인식 및 기록

3) 상세화

    1) 식별자 확정

    2) 정규화(일관성 확보, 중복 제거)

    3) M:M 관계 해소

    4) 참조 무결성 규칙 정의

    5) 이력 관리 전략 수립

 

    3) 물리적 데이터 모델링

더보기

물리적 스키마(저장 구조, 저장 장치, 접근 방법)

 

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

    1) Waterfall

더보기

분석, 설계를 구분하여 명확히 정의

    2) 정보공학/구조적 방법론

더보기

분석 단계에 논리적 모델링, 설계 단계에 물리적 모델링

    3) 나선형 모델

더보기

분석(논리 > 분석), 설계 양쪽에서 수행

 

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

    - 데이터 독립성: 개별 형식의 고유의 기능 유지, 기능 극대화

 

    - 필요성

더보기

(비용을 들여 복잡한 중복에 대응한다)

        1) 유지보수 비용 감소

        2) 데이터 중복성 감소

        3) 데이터 복잡도 감소

        4) 요구사항 대응 용이

 

    - 효과

더보기

        1) 각 뷰의 독립성 유지

        2) DDL과 DML이 다름을 제공

 

    - 구조

        ANSI/SPARC 3단계 구조(Three-schema architecture)

        1) 구조

더보기

            외부 단계: 사용자 관점, 접근 특성에 따라 다름

            개념적 단계: 통합 관점

            내부 단계: 물리적 저장구조

 

        2) 독립성

            논리적 데이터 독립성, 물리적 데이터 독립성

 

        3) 사상

            외부적.개념적 사상(논리적 사상), 개념적.내부적 사상(물리적 사상)

            사상 스크립트(DDL)을 DBA가 필요 시마다 변경하여 독립성 보장

 

8. 데이터 모델링의 이해관계자 (사실상 관련된 전부)

더보기

    프로젝트 개발자, 현업업무전문가, 전문 모델러, DBA + 기획자

 

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

더보기

    1) 엔티티를 그린다

 

    2) 엔티티를 적절하게 배치한다

        가장 중요한 엔티티: 왼쪽 상단

        업무 흐름의 중심: 중앙

        관계가 있는 엔티티: 주변

 

    3) 엔티티 간 관계를 설정한다

        초기에는 모두 PK로 속성이 상속되는 식별자 관계 설정

        중복, Circle에 주의

 

    4) 관계명을 기술한다

        현재형 사용, 포괄 X(-이다, -가진다)

 

    5) 관계의 참여도(참조차수, Cardinality)를 기술한다

        하나의 관계: IE = 실선, Barker = 점선 + 실선

        다수의 관계: 까마귀 발

 

    6) 관계의 필수 여부를 기술한다

        원

 

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

더보기

(완전 중복되는 업무재소통하여 통합시킨다)

 

    1) 완전성: 업무에 필요한 모든 데이터 정의

 

    2) 중복 배제: 동일한 사실은 한 번만

 

    3) 업무 규칙: 업무 규칙을 데이터 모델에 표현하여 모든 사용자가 공유

 

    4) 데이터 재사용: (전 영역에 활용 가능토록) 통합성 + (App에 대한) 독립성

 

    5) 의사소통: 데이터 모델의 업무 규칙을 관련자들이 동일하게 이해

 

    6) 통합성: 동일 데이터는 조직 내 한번만 정의하여 다른 영역에 참조 및 활용

 

 

2절. 엔터티(Entity)

 

1. 엔터티의 개념

업무에 필요하고 유용한 정보를 저장 및 관리하기 위한 집합적인 것(Thing)

 

3. 엔터티의 특징

더보기

1. 필요성

2. 유일성 (식별자)

3. 인스턴스 수(2개 이상)

4. 프로세스 존재

    존재하지 않을 경우 엔터티 제거 혹은 누락된 프로세스 점검

5. 속성의 존재 (예외: 관계 엔터티)

6. 관계의 존재 (예외: 통계성 엔터티, 코드성 엔터티, 시스템 처리 시 내부 필요에 의한 엔터티)

 

4. 엔터티의 분류

더보기

1) 유무형에 따른 분류

    유형 엔터티(Tangible Entity): 형태가 있음, 안정적/지속적 활용

    개념 엔터티(Conceptual Entity): 형태가 없음

    사건 엔터티(Event Entity): 업무를 수행함에 따라 발생

 

2) 발생시점에 따른 분류

    기본 엔터티(Fundamental Entity, Key Entity): 원래 존재하는 정보

    중심 엔터티(Main Entity): 기본 엔터티에서 발생, 업무의 중심

    행위 엔터티(Active Entity): 발생 ex) 주문내역, 계약진행, 사원변경이력

 

* 독립 엔터티: 스스로 생성 O

   종속 엔터티: 스스로 생성 X

 

5. 엔터티의 명명

더보기

(현약명유 + 의미대로)

1. 현업 업무에서 사용하는 용어

2. 약어 사용 제한

3. 단수명사 사용

4. 유일한 이름 부여

5. 생성 의미대로 이름 부여

 

2절. 속성(Attribute)

1. 속성의 개념

    더 이상 분리할 수 없음 -> 속성의 원자성

    (생년월일 -> 연 + 월 + 일 (ok), 이름주소 -> 이름 + 주소(X))

 

2. 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법

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

    한 개의 엔터티는 두 개 이상 속성을 가짐

    한 개의 속성은 한 개의 속성값

 

3. 속성의 특징

더보기

1. 필요성

2. 주식별자에 종속성

3. 1:1 관계 (하나의 속성: 하나의 관계)

    1:1 관계가 아닐 경우 1차 정규화 혹은 별도 엔터티로 관리

 

4. 속성의 분류

더보기

1) 속성의 특성에 따른 분류

    기본속성: 업무로부터 추출한 모든 raw 속성

    설계속성: 새로 만들거나 변형 (1:1 치환)

        ex) 코드성 속성, 일련번호

    파생속성: 계산된 값, 다른 속성에서 파생 및 재산정 가능

        ex) 총금액, 이자

 

2) 엔터티 구성방식에 따른 분류

    PK 속성: 식별 가능

    FK 속성: 다른 엔터티와 관계에서 포함

    일반속성

 

* 복합속성: 여러 세부 속성으로 구성

  단순속성

 

* 단일값 속성

  다중값 속성 ex) 전화번호 -> 집전화, 핸드폰, 회사전화

 

5. 도메인

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

 

6. 속성의 명명

더보기

(현약명유)

1. 해당 업무에서 사용하는 이름 부여

2. 약어 제한

3. 명사 사용

4. 유일성 확보

 

 

4절. 관계(Relationship)

 

1. 관계의 정의 

인스턴스 사이의 논리적인 연관성

 

2. 관계의 분류

더보기
분류 존재에 의한 관계 행위에 의한 관계
UML 다이어그램 연관관계 의존관계
표기 실선 점선

 

3. 관계의 표기법

1) 관계명(Membership)

    애매하지 않은 현재형

 

2) 관계차수(Cardinality)

    1:1, 1:M, M:N(두 개의 주식별자를 상속받은 관계 엔터티를 이용, 3개의 엔터티로 구분하여 표현)

 

3) 관계선택사양(Optionality)

    필수참여관계, 선택참여관계(원)

 

4. 관계의 정의 및 읽는 방법

- 체크사항

더보기

1) 연관규칙 존재?

2) 정보의 조합 발생?

3) 업무기술서, 장표에 관계연결에 대한 규칙 서술?

4) 업무기술서, 장표에 관계연결을 가능하게 하는 동사 有?

 

- 읽기

더보기

각 src / card tgt opt / mem

 

 

5절. 식별자

 

1. 식별자 개념

    식별자: 논리 데이터 모델링 ↔ 키: 물리 데이터 모델링

 

2. 식별자의 특징

더보기

(주식별자)

1) 유일성

2) 최소성

3) 불변성

4) 존재성

 

(외부식별자)

참조 무결성 규칙

 

3. 식별자 분류 및 표기법

1) 대표성 여부

더보기

주식별자: Null 허용 X, 참조관계 연결 O

보조식별자:  Null 허용, 참조관계 연결 X

2) 스스로 생성 여부

더보기

내부식별자

외부식별자

3) 속성 수

더보기

단일식별자

복합식별자

4) 대체 여부

더보기

본질식별자

인조식별자

 

4. 주식별자 도출 기준

더보기

1) 현업에서 자주 이용하는 주식별자로 지정

2) 이름 피함 (→ 일련번호, 코드)

3) 속성의 수가 많아지지 않도록

    ex) 접수번호 = 관할부서 + 접수일자 + 일련번호

 

5. 식별자 관계와 비식별자 관계에 따른 식별자

1) 식별자 관계

더보기

자식엔터티의 주식별자로 부모엔터티의 주식별자가 상속되는 경우

* 식별자 관계로만 설정할 경우, 주식별자 속성이 지속적으로 증가

 

2) 비식별자 관계

더보기

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

* 비식별자 관계로만 설정할 경우, 쓸데없이 부모엔터티까지 가야 하는 경우가 발생

* 조건

더보기

    1) 부모 없는 자식이 가능

    2) 데이터 생명주기가 다름

    3) 하나의 엔터티로 통합 → 각 엔터티가 별도의 관계

    4) 별도의 주식별자 생성이 더 유리

 

3) 비식별자 관계 선택 프로세스

더보기

(우선 주식별자로 초기화)

1) 관계 강약 분석: 약한 관계(선택 관계)

2) 자식엔터티가 독립 주식별자 필요

3) SQL 복잡도 증가, 생산성 저하


추가

 

엔터티의 정의

변별할 수 있는 사물 - Peter Chen (1976)

데이터베이스 내에서 변별 가능한 객체 - C. J. Date (1986)

정보를 저장할 수 있는 어떤 것 - James Martin (1989)

 

주제 영역

기업이 사용하는 데이터의 최상위 집합

 

관계 속성

관계를 정의할 목적으로 생성된 속성, 식별자가 아닌 일반 속성이라면 정상적인 관계 속성이 아님

 

계층관계

= 순환관계 = 자기참조관계 = 재귀관계

 

식별 관계

식별 관계: 실선, FK 주식별자, UID bar

비식별 관계: 점선, FK 일반 속성

 

관계의 필수성

IE는 접속하는 느낌, Barker는 매달린 느낌

 

엔터티 표기법

IE 표기법

속성명

Key
속성

 

Barker 표기법

속성명
# Key
* NOT NULL 속성
O NULL 속성

 

728x90

'학습 > SQLD' 카테고리의 다른 글

데이터베이스와 성능  (0) 2021.08.13
3장. 관리 구문  (0) 2021.07.26
2장. SQL 활용  (0) 2021.07.21
1장. SQL 기본  (0) 2021.07.15
2장. 데이터 모델과 SQL  (0) 2021.07.13
Comments