[SQLD] - 1과목 1장 데이터 모델링

Yean·2023년 10월 31일
0

자격증

목록 보기
1/4
post-thumbnail

🌳1. 데이터 모델의 이해

1. 모델링

현실 세계를 단순화하여 표현하는 추상화 과정. 표기법을 사용하여 이해하기 쉽고 간결하게 모델링

특징

  • 추상화 : 일정한 형식에 맞춰서 표현.
  • 단순화 : 제한된 표기법이나 언어로 표현. 누구나 이해하기 쉽게 규약에 의해 제한.
  • 명확성 : 명확하게 한가지 의미로 해석. 이해하기 쉽게 표현.

관점

  • 데이터 : 업무와 데이터 및 데이터 사이 관계. 구조, 정적 분석
  • 프로세스 : 실제 처리하는 일이 무엇인지. 시나리오, 도메인, 동적 분석
  • 상관 : 데이터에 대한 업무 처리 방식의 영향. 프로세스와 데이터 간 관계. CRUD.

2. 데이터 모델링

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

목적

  • 정보에 대한 표기법 통일해 업무 내용 분석 정확도 증대
  • 데이터 모델을 기초로 DB 생성

기능

  • 가시화, 명세화, 구조화된 틀 제공, 문서화, 다양한 관점 제공, 구체화

중요성

  • 파급효과(Leverage)
  • 간결한 표현 : 정보 요구 사항과 한계를 간결하게 표현
  • 데이터 품질 - 유일성(중복 저장 방지), 유연성(데이터 정의와 사용 프로세스 분리), 일관성

이해관계자

  • 개발자, DBA, 모델러, 현업업무 전문가. 완성된 모델을 정확히 해석할 수 있어야 함.

3. 데이터 모델링 3단계

  1. 개념적 모델링
  • 추상화 수준 가장 높음. 엔터티와 속성을 도출하고 ERD 작성. 업무 중심적이고 포괄적인 수준의 모델링
  1. 논리적 모델링
  • 식별자를 도출하고 속성과 관계 등 정의. 정규화 수행하여 데이터 모델의 독립성과 재사용성 확보. 논리 데이터 모델은 데이터 모델링 완료 상태. 특정 DB모델에 종속. 재사용성이 가장 높음.
  1. 물리적 모델링
  • DB 구축. 성능, 보안 등 물리적인 성격 고려. 가장 구체적이며 추상화 수준이 낮은 객관화된 상태. 가용성 고려.

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

  • 계획 -> 분석 -> 설계 -> 개발 -> 테스트 -> 전환, 이행
    계획은 개념적 모델링, 분석은 논리적 모델링, 설계 단계는 물리적 모델링.
    '개-논-물' = 데이터 모델링 단계.

4. DB의 3단계 구조

데이터 독립성 확보를 목표로 함.
DB 독립성의 필요성

  • 데이터의 중복성과 복잡도 증가로 인한 유지보수 비용 증가, 요구사항 대응 저하

3층 스키마 (3-level Schema)

  • 외부 스키마 : 각 사용자 단계의 개인적 DB스키마. 사용자 관점. 응용 프로그램이 접근하는 DB 정의
  • 개념 스키마 : 조직 전체의 통합된 DB 스키마. 설계자 관점. 전체적인 논리 구조 표현
  • 내부 스키마 : 물릴적으로 데이터가 저장되는 방법 표현. 개발자 관점. 물리적 저장 구조.

내부 스키마 -> 물리적 사상 -> 개념 스키마 -> 논리적 사상 -> 외부 스키마

데이터 독립성

  • 논리적 : 외부 스키마가 개념 스키마 변화에 무관.
  • 물리적 : 개념 스키마가 내부 스키마 변화에 무관

5. 데이터 모델링 3요소

엔티티, 관계, 속성

6. ERD

엔터티 = 사각형 / 관계 = 마름모 / 속성 = 타원. 현실의 데이터 모두 표현 가능
엔터티 도출 -> 배치 -> 엔터티 간 관계 설정 -> 관계명 기술 -> 관계 차수 표현 -> 관계 선택사양 표현(필수, 선택)

7. 좋은 모델링의 요건

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

🌳2. 엔터티

1. 정의

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

2. 특징

업무에서 필요로 함. 유일한 식별자를 가짐. 2개 이상의 인스턴스 포함. 업무 프로세스에 이용. 속성을 가짐. 관계를 가짐.

3. 종류

유무형에 따른 분류

  • 유형 : 물리적 형태가 있고 지속적으로 활용
  • 개념 : 물리적 형태가 없음. 개념적 정보
  • 사건 : 업무 수행 시 발생

발생시점에 따른 분류

  • 기본/키 : 독립적으로 생성. 원래 존재하는 정보. 부모 역할. 고유한 주식별자
  • 중심 : 기본 엔터티와 행위 엔터티 중간에 존재
  • 행위/사건 : 2개 이상의 부모 엔터티로부터 발생. 비즈니스 프로세스를 실행하면서 생성. 지속적으로 정보가 추가되고 변경되어 데이터 양이 가장 많음

4. 명명 규칙

현업 업무에서 사용하는 용어, 약어 지양, 단수 명사, 유일성 보장, 명확성

🌳3. 속성

1. 정의

엔터티가 가지는 최소 의미 단위. 인스턴스의 구성요소. 더이상 분리되지 않는 최소의 데이터 단위.

2. 관계

  • 1개의 엔터티는 2개 이상의 인스턴스 집합.
  • 1개의 엔터티는 2개 이상의 속성을 가짐.
  • 1개의 속성은 1개의 속성값을 가짐.

3. 속성 표기법

IE 표기법, Barker 표기법

4. 특징

업무에서 필요하고 관리하고자 하는 정보
주 식별자에 함수적으로 종속
속성값 하나만 가짐(하나 이상의 속성값이면 정규화 필요)

5. 종류

특성에 따른 분류

  • 기본 : 비즈니스 프로세스에서 도출되는 본래의 속성.
  • 설계 : 데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성. 새로 만들거나 변형, 정의.
  • 파생 : 다른 속성에 의해 만들어지는 속성 (<-> 저장 속성은 유도 속성을 생성하는 데 사용됨)

분해 가능 여부에 따른 분류

  • 단일 : 하나의 의미
  • 복합 : 여러 의미, 단일 속성을 분해 가능
  • 단일 값 : 하나의 값
  • 다중 값 : 여러 값, 엔터티로 분해 가능

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

  • 기본키 : 엔터티를 식별할 수 있는 속성
  • 외래키 : 다른 엔터티와의 관계에서 포함된 속성
  • 일반 : 엔터티에 포함되고 PK나 FK 속성이 아닌 속성

6. 도메인

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

🌳4. 관계

1. 정의

엔터티 간의 논리적인 관련성. 동사형. 엔터티 정의에 따라 영향.

2. 관계의 페어링

인스턴스 간 개별적 관계

3. 관계 표기법

관계명, 관계 차수, 관계 선택사양
관계 차수 : 관계 내 튜플의 전체 개수. 1은 직선, 여러개는 삼발로 표시.

  • M:N 관계 : 관계형 DB에서 M:N 관계의 조인은 카테시안 곱 발생.
    관계 선택사양(Optionality) : 필수는 | 선택은 O으로 표시

4. 종류

ERD 기준 : 표기 구분 안함

  • 존재 : 엔터티 간의 상태
  • 행위 : 엔터티 간에 발생하는 행위

UML

  • 연관 : 실선 표기
  • 의존 : 점선 표기

식별자에 따른 분류

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

  • 비식별 : 부모 엔터티의 식별자를 자식 엔터티에서 일반 칼럼으로 참조 사용. 약한 종속 관계
    식별 관계만으로 연결되면 주 식별자 수가 많아짐. = 관계 강약 분석, 자식 엔터티의 독립 PK 필요성, SQL 복잡성과 개발 생산성 고려 필요.

5. 관계 읽기

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

🌳5. 식별자

1. 정의

엔터티를 대표할 수 있는 유일성을 만족. 식별자는 논리적, 키는 물리적 모델링 단계에 사용.

2. 특징

유일성 / 최소성 / 불변성 / 존재성

3. 종류

대표성 여부에 따른 분류

  • 주식별자 : 대표성을 만족. 타엔터티와 참조 관계 연결.
  • 보조식별자 : 유일성과 최소성만 만족. 참조 관계 연결에 사용할 수 없음. 구분자지만 대표성은 없음.

DB 키의 종류

  • 기본키(PK) : 엔터티를 대표하는 키. 후보키 중 선정.
  • 후보키 : 유일성, 최소성 만족하는 키.
  • 슈퍼키 : 유일성만 만족하는 키.
  • 대체키 : 기본키를 제외한 나머지 후보키
  • 외래키(FK) : 여러 테이블의 기본 키 필드. 참조 무결성을 확인하기 위해 사용.

생성여부에 따른 분류

  • 내부 : 자연스럽게 존재하는 식별자.
  • 외부 : 다른 엔터티와의 관계를 통해 생성되는 식별자. 내부에서 스스로 생성.

속성 수에 따른 분류

  • 단일 : 하나의 속성
  • 복합 : 여러 속성. 2개 이상

대체 여부에 따른 분류

  • 본질 : 대체될 수 없는 식별자. 업무에 의해 만들어짐.
  • 인조 : 인위적으로 만들어지는 대체가능한 식별자. 후보 식별자 중 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 칼럼으로 구성되어 있을 때 사용.

4. 주식별자 도출 기준

업무에서 자주 이용되는 속성. 이름 명명 지양. 복합 식별자 지양.

profile
정리하는 공간

0개의 댓글