카테고리 없음

[SQLD] 요약정리: 1.1 데이터 모델링의 이해

내일을 따라잡다 2023. 11. 7. 12:53
728x90

Chapter 1-1. 데이터 모델링의 이해

  1. 모델링의 이해
    1. 정의 : 다양한 현상을 표기법에 의해 표기하는 것 
    2. 특징 : 추상화, 단순화, 명확화
    3. 모델링의 관점 : 데이터 관점(what), 프로세스 관점(How), 상관관점(Interaction)
  2. 데이터 모델링의 이해
    1. 정의 : 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
    2. 제공하는 기능 : 시스템 가시화, 시스템 구조와 행동의 명세화, 구조화된 틀 제공, 문서화, 세부사항은 숨기는 다양한 관점 제공
  3. 데이터 모델링의 중요성와 유의점
    1. 중요성 : 파급효과, 복잡한 요구사항의 간결 표현, 데이터 품질
    2. 유의성 : 중복, 비일관성, 비유연성(데이터 정의를 데이터 사용프로세스와 분리 X)
  4. 데이터 모델링의 3단계
  • 개념적 : 추상화 수준이 높고 업무 중심적이고 포괄적인 수준
  • 논리적 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등 정확히 표현, 높은 재사용
  • 물리적 : DB에 이식할 수 있도록 물리적인 성격 고려 설계

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

데이터 베이스 3단계 구조

  • 단계
    • 외부단계 : IT 시스템의 사용자와 가장 가까운 단계
    • 개념적 단계 : 통합된 뷰를 스키마 구조로 디자인한 형태
    • 내부적 단계 : 물리적으로 저장된 방법에 대한 스키마 구조

 

  • 스키마
    • 외부스키마 : 사용자가 보는 개인적 DB스키마(사용자 관점)
    • 개념스키마 : DB에 저장된 데이터들 간 관계 표현한 스키마(통합관점)
    • 내부스키마 : DB가 물리적으로 저장된 형식(물리적 관점)

6. 데이터 모델링 & ERD

           1) 세 가지 요소 : 엔터티, 관계, 속성

           2) ERD(Entity Relation Diagram) : 엔터티 그리기 --> 엔터티 배치 --> 엔터티 간 관계설정 --> 관계명 기술

                                                                     --> 관계 참여도 기술 --> 관계의 필수 여부

 

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

: 완전성, 중복 배제, 업무규칙, 데이터 재사용, 의사소통, 통합성


Chapter 1-2. 엔터티(Entity)

1. 엔터티 개념

   : 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것, 인스턴스의 복수형

 

2. 엔터티의 특징 (6; 업무 2 + SQL4)

    업무에서 필요로 하는 정보, 업무 프로세스에 의해 활용, 식별이 가능해야 함,

    인스턴스의 집합, 속성을 포함, 관계의 존재

 

3. 엔터티의 분류

    1) 유무형에 따른 분류 : 유형, 개념, 사건 엔터티

        유형(물리적 형태 O), 개념(형태 X, 개념적 정보), 사건(업무 수행 시 발생)

 

    2) 발생시점에 따른 분류 : 기본, 중심, 행위 엔터티

        기본 엔터티 : 원래 존재하는 정보, 독립적으로 생성, 다른 엔터티로 Pk 상속 X

        중심 엔터티 : 기본 엔터티로부터 발생

        행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생

 

4. 엔터티의 명명

    현업 업무에서 사용하는 용어 사용, 약어 사용 X, 단수명사 사용, 고유이름 사용, 생성의미대로 부여


Chapter 1-3. 속성(Arrtibute)

1. 속성의 개념 

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

 

2. 표기법

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

    2) 한 개의 엔터티는 두개 이상의 속성을 갖는다

    3) 한 개의 속성은 한 개의 속성값을 갖는다

 

3. 속성의 특징

    : 정해진 주식별자에 함수의 종속성을 가져야 한다.

 

4. 속성의 분류

    1) 속성의 특성에 따른 분류 : 기본속성, 설계속성(1:1 치환), 파생속성(계산값)

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

         - PK 속성 : 엔터티 식별 가능한 속성

         - FK 속성 : 자식 엔터티가 부모 엔터티의 PK 속성을 가지는 경우

         - 일반 속성 : PK도 FK도 아닌 속성

         - 단순형/복잡형, 단일속성/다중속성

 

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

    속성에 대한 데이터 타입과 크기, 제약사항 지정. 해당 속성의 값은 도메인 이외의 값을 갖지 못한다.


Chapter 1-4. 관계(Relation)

1. 관계의 정의

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

 

2. 관계의 분류

    1) ERD : 존재에 의한 / 행위에 의한

    2) UML :  연관관계  /  의존관계

 

3. 관계의 표기법

    : 관계명, 관계차수, 관계선택사양(필수/선택)

 

4. 관계 읽기

각각의/하나의 --> 기준 엔터티 --> 관계차수 --> 관련 엔터티 --> 관계선택사양 --> 관계명

 

5. 관계 체크사항

- 엔터티 간 연관규칙 존재하는가?

- 엔터티 간 정보의 조합이 발생하였는가?

- 관계 연결에 대한 규칙 서술이 되어 있는가?

- 관계 연결을 가능하게 하는 *동사가 있는가?


Chapter 1-5. 식별자(Identity)

1. 식별자 개념

: 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미,

  하나의 엔터티에 반드시 우일한 식별자 존재해야 함.

 

2. 주식별자 특징 : 유일성, 최소성, 불변성, 존재성

  • 유일성 : PK에 의해 모든 인스턴스들이 유일하게 구분
  • 최소성 : PK 구성하는 속성의 수는 유일성 만족하는 최소의 수가 되어야 함
  • 불변성 : PK 값을 한번 정하면 불변
  • 존재성 : Null 일 수 없다

3. 식별자 분류

  • 주식별자/보조식별자 : 대표성 여부, 인스턴스 구분가능
  • 내부/외부 식별자(FK) : 스스로 생성 여부
  • 단일/복합 식별자 : 속성의 수
  • 본질/인조 식별자 : 대체여부, 본질식별자가 복잡한 구성

 

4. 식별자와 비식별자 관계

1) 식별자 관계 : 부모 엔터티의 주식별자(PK)가 자식엔터티의 주식별자로 상속

2) 비식별자 관계 : 부모엔터티 PK 자식엔터티 일반속성으로 상속


정규화(Normalization)

1. 정규화 개념

: 데이터의 일관성을 유지하고 중복을 방지하고 유연성을 유지하기 위해 데이터를 분해하는 과정

 

2. 정규화 용어

  • 정규화 : 이상 현상을 최소화하기 위해 좀 더 작은 단위의 테이블로 설계하는 과정, 정규화는 데이터 모델을 정규형에 맞도록 고치는 과정
  • 정규형(NF; Normal Form) : 정규화한 결과
  • 함수 종속성(FD; Function Dependency) : 칼럼 A를 알면 B를 알 수 있을 때, B는 A에 함수의 종속성이 있다.
  • 다치 종속(MVD; Multivalued Dependency) 예) 학번을 알면 수광과목(다수) 알 수 있음. 이때, 수강과목은 학번에 다치 종속 관계임

3. 정규화 효과

  • 상호 종속성이 강한 데이터 분리, 독립된 개념으로 정의 -> 높은 응집도&낮은 결합도 원칙에 충실해져 유연성 극대화
  • 세분화되기 때문에 해당 개념에 대한 재활용 가능성 높아짐
  • 속성이 한 번만 표현됨에 따라 중복이 최소화, DML 처리 시 성능이 향상됨