Certificates/SQLD
1-1. 데이터 모델링의 이해
도돔
2023. 5. 30. 01:11
1. 데이터 모델의 이해
모델링
현실세계를 단순화하여 표현하는 것 / 다양한 현상을 표기법에 의해 표기하는 것
모델링의 특징 3가지
- 추상화: 일정한 형식에 맞춰 표현
- 단순화: 제한된 표기법이나 언어로 표현 → 쉬운 이해
- 명확화: 누구나 이해하기 쉽게 애매모호함을 제거하여 정확하게 현상 기술
모델링의 3가지 관점
- 데이터 관점 : 업무와 데이터 및 데이터 사이의 관계
- 프로세스 관점 : 진행되고 있거나 진행되어야 하는 업무
- 상관 관점 : 데이터에 대한 업무 처리 방식의 영향
데이터 모델링
정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법
목적 : 정보에 대한 표기법을 통일하여 업무 내용 분석 정확도 증대 / 데이터 모델을 기초로 DB 생성
- 기능
- 시스템 가시화
- 시스템 구조, 행동 명세화
- 시스템 구축의 구조화된 틀 제공
- 시스템 구축 과정 문서화
- 다양한 관점 제공
- 상세한 수준의 표현 방법 제공
- 데이터 모델링이 필요한 이유
- 업무 정보를 일정한 표기법으로 표현 (=/=별도의 표기법 아님!)
- 분석된 모델로 DB 생성 및 개발
- 업무 흐름을 설명
- 데이터 모델링의 중요성
- 파급효과(Leverage)가 큼
- 간결한 표현(Conciseness): 정보 요구사항과 한계를 명확하고 간결하게 표현하는 도구
- 데이터 품질을 유지
- 데이터 모델링의 유의점
- 중복(Duplication) : 데이터베이스가 여러 장소에 같은 정보를 저장하지 않게 함
- 비유연성(Inflexibility) : 데이터 정의와 데이터 사용 프로세스를 분리
- 비일관성(Inconsistency) : 데이터 간 상호 연관관계를 명확히 정의
데이터 모델링 3단계
- 개념적 모델링: 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행. 엔터티와 속성을 도출하고 ERD를 작성
- 논리적 모델링: 식별자를 도출하고 속성과 관계 등을 정의함, 정규화를 수행하여 데이터 모델의 독립성과 재사용성 확보, 논리 데이터 모델은 데이터 모델링 완료 상태
- 물리적 모델링: DB를 구축함, 성능 및 보안 등 물리적인 성격 고려
프로젝트 생명주기(Life Cycle)
- 계획(개념적 모델링) → 분석(논리적 모델링) → 설계(물리적 모델링) → 개발 → 테스트 → 전환/이행
- 실제 ; 계획(개념적 모델링) → 분석(개념적+논리적 모델링) → 설계(물리적 모델링)
데이터 베이스의 3단계 구조
- 데이터 독립성 확보를 목표로 함
- 외부단계
- 개념적 단계
- 내부적 단계
- DB 독립성의 필요성 : 유지보수비용 증가, 데이터복잡도 증가, 데이터중복성 증가, 요구사항대응 저하
- 데이터 독립성 요소 ; 3층 스키마(3-level Schema)
- 외부 스키마 : 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용 프로그램이 접근하는 DB를 정의함
- 개념 스키마 : 조직 전체의 통합된 DB 스키마, 설계자 관점 데이터 모델링의 지향점
- 내부 스키마 : 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자 관점, 물리적 저장 구조
- 두 영역의 데이터 독립성
- 논리적 독립성 : 외부 스키마가 개념 스키마의 변화에 무관함, 논리적 사상 없음
- 물리적 독립성 : 개념 스키마가 내부 스키마의 변화에 무관함, 물리적 사상 없음
- 사상 (Mapping)
- 상호 독립적인 두 개념을 연결시키는 다리, 외부적/개념적 사상 + 개념적/물리적 사상
데이터 모델링 3요소
- 업무에 관여하는 어떤 것(Things) → 엔터티
- 어떤 것이 가지는 성격 (Attributes) → 속성
- 업무가 관여하는 어떤 것의 관계(Relationships) → 관계
ERD(Entity Relationship Diagram) 표기법
- 데이터 모델 표기법 : 엔터티는 사각형, 관계는 마름모, 속성은 타원형
- ERD로 모델링하는 방법 : 엔터티 도출 → 엔터티 배치 → 엔터티 간 관계 설정 → 관계명 기술 → 관계차수 표현 (1:1, 1:N, M:N) → 관계선택사양 표현 (필수, 선택)
좋은 데이터 모델의 요소
- 완전성, 중복 배제, 업무 규칙, 데이터 재사용, 의사소통, 통합성
2. 엔터티
엔티티
업무에서 관리해야 하는 데이터의 집합, 명사형, 인스턴스의 집합. “실체, 객체”
엔티티의 특징
- 업무에서 필요로 함
- 유일한 식별자를 가짐
- 2개 이상의 인스턴스를 포함
- 업무 프로세스에 이용
- 속성을 가짐
- 관계를 가짐
엔티티의 종류
- 유무형에 따른 분류
- 유형 엔터티: 물리적 형태가 있고 지속적으로 활용되는 엔터티
- 개념 엔터티: 물리적 형태가 없는 엔터티
- 사건 엔티티
- 발생시점에 따른 분류
- 기본 엔터티 (Key Entity) : 독립적으로 생성되는 엔터티
- 중심 엔터티 (Main Entity) : 기본 엔터티와 행위 엔터티의 중간에 존재하는 엔터티
- 행위 엔터티 (Active Entity, 사건 엔터티) : 2개 이상의 부모 엔터티로부터 발생함, 비즈니스 프로세스를 실행하면서 생성되는 엔터티, 지속적으로 정보가 추가되고 변경되어 데이터양이 가장 많음
- 명명 규칙
- 현업업무에서 사용하는 용어 / 약어 지양 / 단수 명사 / 유일성 보장 / 명확성
3. 속성
속성
인스턴스의 구성요소로써 의미상 더 이상 분리되지 않는 최소의 데이터 단위
속성 표기법 : IE 표기법, Barker 표기법
엔티티 & 속성 & 인스턴스 관계
- 1개의 엔티티 → 2개 이상의 인스턴스 집합
- 1개의 인스턴스 → 2개 이상의 속성
- 1개의 속성 →1개의 속성값을 가짐 (하나의 속성에 여러 값이 있는 다중값일 경우 별도의 엔티티를 이용하여 분리
속성의 분류
- 특성에 따른 분류
- 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 기본적인 속성
- 설계 속성 : 데이터 모델링 과정에서 사용자에 의해 새로 만들어지거나 정의되는 속성
- 파생 속성 : 다른 속성에 의해 만들어지는 속성
- 분해 가능 여부에 따른 분류
- 단일 속성: 하나의 의미
- 복합 속성: 여러 의미, 단일 속성으로 분해 가능 ex) 주소
- 단일값 속성: 하나의 값
- 다중값 속성: 여러 값, 엔터티로 분해 가능
- 엔터티 구성방식에 따른 분류
- 기본키(Primary Key) : 엔터티를 식별할 수 있는 속성
- 외래키(Foreign Key) : 다른 엔터티와의 관계에서 포함된 속성
- 일반 속성 : 엔터티에 포함되고 PK나 FK 속성이 아닌 속성
도메인
각 속성이 가질 수 있는 값의 범위 → 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것
4. 관계
관계
엔터티의 인스턴스 간의 논리적인 연관성
관계의 페어링 : 엔터티 내 인스턴스 간의 개별적 관계
관계 표기법
- 관계명 : 관계의 이름
- 관계차수(Cardinality) : 관계 내 튜플의 전체 개수, 1은 직선 多는 삼발로 표시 ‒ M:N 관계: 관계형 DB에서 M:N 관계의 조인은 카테시안 곱 발생
- 관계선택사양(Optionality): 필수는 I 선택은 O로 표시
관계의 분류
- ERD 기준 : 표기구분 안함 ; 단일화된 표기법 사용
- 존재 관계 : 엔터티 간의 상태
- 행위 관계 : 엔터티 간에 발생하는 행위
- UML(Unified Modeling Language) 기준
- 연관 관계(Association) : 실선 표기
- 의존 관계(Dependency) : 점선 표기
- 식별자에 따른 분류
- 식별 관계 : 부모 엔터티의 식별자를 자식 엔터티에서 주식별자로 사용 ※ 약한 엔터티: 부모 엔터티에 종속되어 존재 (↔ 강한 엔터티는 독립적으로 존재함)
- 비식별 관계 : 부모 엔터티의 식별자를 자식 엔터티에서 일반 컬럼으로 참조 사용, 약한 종속 관계 ※ 식별 관계만으로 연결되면 주식별자 수가 많아질 수밖에 없으므로 1) 관계 강약 분석 2) 자식 엔터티의 독립 PK 필요성 3) SQL 복잡성과 개발 생산성 고려 필요
관계 읽기
각각의/하나의 > 기준 엔터티 > 관계차수 > 대상 엔터티 > 관계선택사양 > 관계명
5. 식별자
식별자
엔터티를 대표할 수 있는 유일성을 만족하는 속성. 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다.
식별자의 특징
- 유일성 : 주 식별자에 의해 엔터티 내 모든 인스턴스를 유일하게 구분
- 최소성 : 주 식별자를 구성하는 속성 수는 유일성을 만족하는 최소의 수여야 함
- 불변성 : 주 식별자가 한 번 특정 엔터티에 지정되면, 그 식별자 값은 변하지 X
- 존재성 : 주 식별자가 지정되면, 반드시 데이터값이 존재해야 함 (Null X)
DB 키의 종류
- 기본키(PK; Primary Key) : 엔터티를 대표하는 키, 후보키 중 선정됨
- 후보키 : 유일성과 최소성을 만족하는 키
- 슈퍼키 : 유일성만 만족하는 키
- 대체키 : 기본키를 제외한 나머지 후보키
- 외래키(FK; Foreign Key) : 여러 테이블의 기본 키 필드, 참조 무결성(Referential Integrity)을 확인하기 위해 사용됨 (허용된 데이터 값만 저장하기 위함)
식별자 분류
- 대표성 여부에 따른 분류
- 주식별자: 대표성을 만족하는 식별자
- 보조 식별자: 유일성과 최소성만 만족하는 식별자, 참조 관계 연결에 사용할 수 없음
- 생성 여부에 따른 분류
- 내부 식별자: 자연스럽게 존재하는 식별자 (~ 본질식별자)
- 외부 식별자: 다른 엔터티와의 관계를 통해 생성되는 식별자
- 속성 수에 따른 분류
- 단일 식별자 : 하나의 속성
- 복합 식별자 : 여러 속성
- 대체 여부에 따른 분류
- 본질 식별자 : 대체될 수 없는 식별자
- 인조 식별자: 인위적으로 만들어지는 대체가능한 식별자
- 주식별자 도출 기준
- 업무에서 자주 이용되는 속성
- 이름 명명 지양
- 복합 식별자 지양
728x90
반응형