
데이터전문가포럼 카페에서 두노니님 자료 참조하여 작성하였습니다😊
문제 풀이 진행하면서 내용 업데이트 예정입니다
1. 모델링: 현실세계를 단순화하여 표현하는 것
🔻 특징
🔻 관점
2. 데이터 모델링: 정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법
🔻 목적
🔻 기능
1) 가시화
2) 명세화
3) 구조화된 틀 제공
4) 문서화
5) 다양한 관점 제공
6) 구체화
🔻 중요성
3. 데이터 모델링 3단계
개념적 모델링: 엔터티와 속성을 도출하고 ERD를 작성함, 업무 중심적이고 포괄적인 수준의 모델링논리적 모델링: 식별자를 도출하고 속성과 관계 등을 정의함, 정규화를 수행하여 데이터 모델의 독립성과 재사용성 확보, 논리 데이터 모델은 데이터 모델링 완료 상태물리적 모델링: DB를 구축함, 성능 및 보안 등 물리적인 성격 고려➕ 프로젝트 생명주기(Life Cycle)
개념적 모델링, 2) 분석 단계는 논리적 모델링, 3) 설계 단계는 물리적 모델링에 해당4. DB의 3단계 구조: 데이터 독립성 확보를 목표로 함

🔻 DB 독립성의 필요성
: 데이터의 중복성과 데이터 복잡도 증가로 인한 1) 유지보수 비용 증가, 2) 요구사항 대응 저하
🔻 3층 스키마(3-level Schema)
외부 스키마: 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용 프로그램이 접근하는 DB를 정의함개념 스키마: 조직 전체의 통합된 DB 스키마, 설계자 관점 데이터 모델링의 지향점내부 스키마: 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자 관점, 물리적 저장 구조임🔻 데이터 독립성
5. 데이터 모델링 3요소: 엔터티, 관계, 속성
6. ERD(Entity Relationship Diagram)
: 1) 엔터티는 사각형 2) 관계는 마름모 3) 속성은 타원형으로 표현, 현실의 데이터 모두 표현 가능
① 엔터티 도출
② 엔터티 배치
③ 엔터티 간 관계 설정
④ 관계명 기술
⑤ 관계차수 표현: 1:1, 1:N, M:N
⑥ 관계선택사양 표현: 필수, 선택
7. 좋은 모델링의 요건:
1) 완전성
2) 중복 배제
3) 업무 규칙
4) 데이터 재사용
5) 의사소통
6) 통합성
1) 업무에서 필요로 함, 2) 유일한 식별자를 가짐, 3) 2개 이상의 인스턴스를 포함함, 4) 업무 프로세스에 이용됨, 5) 속성을 가짐, 6) 관계를 가짐🔻 유무형에 따른 분류
🔻 발생시점에 따른 분류
1) 현업업무에서 사용하는 용어, 2) 약어 지양, 3) 단수 명사, 4) 유일성 보장, 5) 명확성정의: 엔티티가 가지는 최소 의미 단위, 인스턴스의 구성요소
엔티티와 인스턴스 및 속성과 속성값 간의 관계

속성 표기법: IE 표기법, Barker 표기법
특징:
1) 업무에서 필요하고 관리하고자 하는 정보
2) 주식별자에 함수적으로 종속됨
3) 속성값 하나만 가짐 (하나 이상의 속성값이면 정규화 필요)
종류
🔻 특성에 따른 분류
🔻 분해 가능 여부에 따른 분류
🔻 엔터티 구성방식에 따른 분류
🔻 관계차수(Cardinality)
: 관계 내 튜플의 전체 개수, 1은 직선 多는 삼발로 표시
🔻 관계선택사양(Optionality)
: 필수는 I 선택은 O로 표시
🔻 ERD 기준: 표기구분 안함
🔻 UML(Unified Modeling Language) 기준
🔻 식별자에 따른 분류
1) 관계 강약 분석, 2) 자식 엔터티의 독립 PK 필요성, 3) SQL 복잡성과 개발 생산성 고려 필요1) 유일성, 2) 최소성, 3) 불변성, 4) 존재성🔻 대표성 여부에 따른 분류
➕ DB 키의 종류
‒ 기본키(PK; Primary Key): 엔터티를 대표하는 키, 후보키 중 선정됨
‒ 후보키: 유일성과 최소성을 만족하는 키
‒ 슈퍼키: 유일성만 만족하는 키
‒ 대체키: 기본키를 제외한 나머지 후보키
‒ 외래키(FK; Foreign Key): 여러 테이블의 기본 키 필드, 참조 무결성(Referential Integrity)을 확인하기 위해 사용됨 (허용된 데이터 값만 저장하기 위함)
🔻 생성 여부에 따른 분류
🔻 속성 수에 따른 분류
🔻 대체 여부에 따른 분류
1) 후보 식별자 중 주식별자로 선정할 것이 없거나, 2) 주식별자가 너무 많은 칼럼으로 구성되어 있을 때 사용