자격증/SQLD
[SQLD] 1. 데이터 모델링의 이해 - 데이터 모델링의 이해
gangee
2024. 3. 1. 18:52
728x90
반응형
1. 데이터 모델의 이해
1-1. 데이터 모델링
- 정보시스템을 구축하기 위한 업무 분석 기법
- 현실 세계 데이터 -> 약속된 표기법 표현
- DB 구축을 위한 분석, 설계 과정
- 특징 : 추상화, 단순화, 명확화(정확화)
- 관점 : 데이터(What), 프로세스(How), 상관(Interaction)
- 중요성 : 간결, 정확, 신뢰 => 명확 간결, 품질유지(오래된 데이터의 정확성 신뢰성)
- 필요한 이유 : 업무 흐름 설명, 일정한 표기법
- 유의점 : 중복, 비유연성, 비일관성
- 비유연성 : 분리해서 유연하게
- 비일관성 : 일관되고 명확하게(상호연관관계 명확)
1-2. 데이터 모델링 3단계
- 개념 : 추상화 높음, 업무중심적, 포괄적 수준
- 논리 : {키, 속성, 관계} 표현, 재사용성, 정규화
- 물리 : 실제 이식, 물리적 성격, 개념보다 구체적
1-3. 프로젝트 생명주기
- 폭포수 : 분석 - 개념/논리, 설계 - 물리
- 정보공학/구조적 : 분석 - 논리, 설계 - 물리
- 나선형 : 분석 - 논리/물리, 설계 - 양쪽 (업무 크기에 따라)
1-4. 데이터베이스 3단계 구조 & 독립성
- 3단계 구조 : 외부 단계 / 개념적 단계 / 내부적 단계
- 데이터 독립성 요소 : 외부 스키마 / 개념 스키마 / 내부 스키마
- 외부 단계 -> 개념 단계 = 논리적 독립성
- 개념 단계 -> 내부 단계 = 물리적 독립성
- 독립성 필요성
- 유지보수 비용 절감
- 중복 데이터 줄이기
- 데이터 복잡도 줄어듦
- 요구사항 대응 잘함
1-5. Mapping(사상)
- 상호 독립적인 두 개념을 연결시키는 다리
- 외부 개념 사상 + 개념/물리 사상
1-6. ERD 방법
엔터티 그리기 -> 엔터티 배치 -> 엔터티 관계 설정 -> 관계 참여도 설정 -> 관계 필수 여부 설정
1-7. 데이터 모델
- 데이터 모델링 주요 3가지 - Things(Entity, Instance), Attributes, Relationships(Pairing)
- 좋은 데이터 모델 요소 - 완전성, 중복배제, 업무규칙 재사용, 의사소통, 통합성
2. 엔터티
- 엔터티 = 객체, 인스턴스 = 엔터티 안 행 데이터
2-1. 특징
- 식별자에 의해 식별 가능
- 2개 이상의 인스턴스로 구성된 집합
- 속성 반드시 포함
- 다른 엔터티와 최소 1개 이상의 관계 존재
- 업무에서 꼭 필요한 정보
2-2. 분류
- 유형/무형에 따른 분류 : 유형, 개념, 사건 엔터티
- 발생 시점에 따른 분류 : 기본, 중심, 행위 엔터티
- 기본 엔터티 : 다른 엔터티로 주식별자 상속 X, 고유 식별자 가짐
2-3. 명명
- 약어 X
- 유일한 이름 부여
- 현업에서 실제 사용하는 용어 사용
- 단수명사 사용
- 생성 의미대로 이름 부여
3. 속성
3-1. 특징
- 의미상 더 이상 분리되지 않는 최소한의 단위
- 엔터티를 설명하고, 인스턴스의 구성요소가 됨
3-2. 분류
- 특성에 따른 분류 : 기본, 설계, 파생 속성
- 설계 속성 : 사용자에 의해 새로 만들어지거나 정의되는 속성
- 파생 속성 : 다른 속성의 영향을 받아 발생
- 엔터티 구성방식에 따른 분류 : PK, FK, 일반 속성
- PK : 엔터티 식별
- FK : 다른 엔터티와 관계에서 포함된 속성
3-3. 명명
- 약어 X
- 유일한 이름 부여
- 현업에서 실제 사용하는 용어 사용
- 서술식 속성명 X
3-4. 도메인
- 각 속성이 가질 수 있는 범위
- 데이터 타입, 크기, 제약사항 지정
- 제약사항 : NOT NULL/Check 조건, 테이블의 속성간 FK 제약조건 지정 X
4. 관계
4-1. 특징
- 인스턴스 사이 논리적 연관성
- 존재하는 형태나 행위로서 서로서로에세 연관성이 부여된 상태
- {관계명/차수(카디날리티)/선택성}로 구성
4-2. 페어링
- 인스턴스가 개별적으로 관계를 갖는 것
- 관계 = 페어링의 집합
4-3. 분류
- ERD : 존재, 행위에 의한 관계
- 둘이 구분 없이 단일화된 표기법 사용
- UML : 연관, 의존 관계
- 실선과 점선 표기법으로 구분
4-4. 관계 체크 사항
- 두 엔터티 사이 연관규칙 존재여부
- 정보의 조합 발생여부
- 업무기술서, 장표에 관계 연결을 가능하게 하는 동사의 존재여부
- 업무기술서, 장표에 관계 연결에 대한 규칙 존재여부
5. 식별자
- 식별자 정의 = 키 정의
- 엔터티를 구분하는 논리적인 이름
- 엔터티를 대표할 수 있는 속성
- 엔터티에는 반드시 하나의 유일한 식별자 존재
5-1. 특징
- 유일성 : 주 식별자에 의해 엔터티 내 모든 인스턴스를 유일하게 구분
- 최소성 : 주 식별자를 구성하는 속성 수는 유일성을 만족하는 최소의 수여야 함
- 불변성 : 주 식별자가 한 번 특정 엔터티에 지정되면, 그 식별자 값은 변하지 X
- 존재성 : 주 식별자가 지정되면, 반드시 데이터 값이 존재해야 함(Null X)
5-2. 분류
- 대표성을 가지는가 : 주 식별자(PK)/ 보조 식별자
- 스스로 생성될 수 있나 : 내부 식별자/외부 식별자
- 하나의 속성으로 식별되나 : 단일 식별자/복합 식별자
- 본질 식별자 = 원래 있던 식별자
- 인조 식별자 = 기존에 업무적으로 의미있던 식별자 속성을 대체해 새로 만든 식별자
5-3. 표기법
- 해당 업무에서 자주 이용되는 속성으로 지정
- 명칭, 내역처럼 이름으로 기술되는 것은 피함
- 구분자가 존재하지 않을 경우 새로운 식별자 생성
- 복합키를 구성할 경우, 너무 많은 속성으로 구성하지 않도록 해야함
- 주 식별자 도출 기준 = PK 도출 기준
5-4. 식별자와 비식별자 관계
- 식별자 관계 : 자식이 부모의 기본키를 상속받아 기본키로 사용할 경우
- Null 이면 안됨 => 반드시 부모 엔터티가 생성되어야 자신 엔터티 생성
- 문제점 : 자식의 주 식별자 속성이 지속적으로 증가할 수 있음 = 복잡해지고 오류가능성 유발
- 비식별자 관계 : 부모로의 속성을 받았을 때, 자식의 기본키로 사용하지 않고 일반적인 속성으로만 사용하는 경우
- 문제점 : 부모까지 조인해야되는 현상 발생 = SQL 구문 길어져 성능 저하
* 본 내용은 2024년 개정 시험 범위 내용입니다.
728x90
반응형