**많은 분들의 글을 참고하여 작성하였습니다.**
모델링이란 ?
현실세계의 추상화된 반영이다.
특징으로는 추상화, 단순화, 명확화가 존재한다.
추상화 : 현실세계를 일정한 형식에 맞춰 표현한다.
단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념
명확화 : 누구나 이해하기 쉽게 하기 위해 애매모호함을 제거하고 정확하게 현상을 기술하는 것
데이터 모델링이란 ?
현실 세계의 데이터에 대해 약속된 표기법에 의한 표현하는 과정 => 데이터 모델링을 위한 도구 : ERD
3요소 : 어떤것(things), 성격(atributes), 관계(relationships)
주의할 점 :
같은 시간 같은 데이터를 제공해야 하며
사소한 변화에 의해 데이터 모델이 수시로 변경되면 안되며
일관성을 유지해야 한다.
데이터 모델링은 3단계로 이루어져 있다.
1. 개념적 모델링
2. 논리적 모델링
3. 물리적 모델링

1. 개념적 모델링
현실 세계의 것을 사람이 이해할 수 있는 개념적으로 모델링하는 것이다.
그렇기에 추상화 수준이 가장 높은 수준의 모델링이다. (추상화, 단순화, 명확화)
결과물 : 개념적 스키마(E-R 다이어그램 생성)
- 스키마란..?
=> 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
=> 스키마 : 데이터베이스 : 테이블 = 평면도 : 집 : 방
2. 논리적 모델링
개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 것이다.
DBMS에 적합한 논리적 구조 설계
결과물 : 논리적 스키마 (릴레이션 스키마)
3. 물리적 모델링
DBMS로 구현 가능한 물리적 구조 설계로, 구축한 DBMS에 테이블, 인덱스 등을 생성하는 단계이다.
성능, 보안, 기용성 등을 고려하여 DB 구축
결과물 : 물리적 스키마
3단계 스키마 구조

1. 외부 스키마 - 사용자 관점
외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것으로 각 사용자 관점에 따라 다른 모습을 가질 수 있다.
데이터 베이스 하나에 외부 스키마가 여러 개 존재할 수 있다.
2. 개념 스키마 - 통합 관점
개념 단계 하나의 개념적 스키마를 구성하여 모든 사용자 관점을 통합한 DB를 기술한 것
데이터 베이스 하나에 개념 스키마 하나만 존재
3. 내부 스키마 - 물리적 저장구조
DB가 물리적으로 저장된 형식으로
물리적 장치에서 데이터가 실제로 저장되는 방법을 표현하는 스키마이다.
데이터 베이스 하나에 내부 스키마 하나만 존재


데이터 모델링 표기법

ERD 순서
1. 엔터티를 도출하고 그린다
2. 엔터티를 배치한다. (종요한 엔터티는 왼쪽 상단에 배치)
3. 엔터티 간의 관계 설정한다
4. 관계명을 서술한다
5. 관계 참여도를 표현한다.
- 관계 참여도란 ?
: 관계 참여도는 한 개의 엔터티와 다른 엔터티 간의 참여하는 관계 수를 의미한다. 즉, "고객이 여러 개의 계좌를 개설할 수 있다."와 같은 의미
6. 관계의 필수 여부를 표현한다. (반드시 존재해야하는지 ? 에 대한 여부)
데이터 모델링 고려 사항
- 완전성 : 업무에 필요한 모든 데이터가 모델에 정의
- 중복배제 : 하나의 DB내에 동일한 사실은 한번만
- 업무규칙 : 많은 규칙을 사용자가 공유하도록 제공
- 독립성 : 데이터가 독립적으로 설계돼야 함
- 의사소통 : 업무규칙은 엔터티,서브타입,속성,관계 등의 형태로 최대한 자세히 표현
- 통합성 : 동일한 데이터는 한 번만 정의, 참조활용
엔터티란 ?
엔터티는 데이터 집합으로,
유일한 식별자(PK)가 존재해야 하며, 반드시 속성을 가지고 있어야 한다.
또한, 다른 엔터티와의 최소 한 개 이상의 관계를 가지고 있어야 한다.
엔터티의 분류
1. 유형과 무형에 따른 분류
ㄱ) 유형 엔터티 : 업무에서 도출되는 지속적으로 사용되는 물리적 형태의 엔티티(사원, 물품)
ㄴ) 개념 엔터티 : 개념적으로만 사용되는 엔터티
ㄷ) 사건 엔터티 : 업무를 수행함에 따라 생성되는 형태의 엔터티 (주문, 청구)
2. 발생 시점에 따른 분류
ㄱ) 기본 엔터티 : KEY 엔터티로 불리며 독립적으로 생산되는 엔터티
ㄴ) 중심 엔터티 : MAIN 엔터티, 기본 엔터티로부터 발생되며 중심 역할을 수행하는 엔터티 (주문, 결제, 취소)
ㄷ) 행위 엔터티 : 두 개 이상의 엔터티로부터 발생되는 엔터티 (주문목록, 결제목록 )
속성(attribute)란?
엔터티가 가지는 항목이며 더 이상 분리되지 않는 데이터 단위
속성의 분류
1. 엔터티 구성에 따른 분류
ㄱ) PK 속성 : 엔터티를 식별할 수 있는 속성
ㄴ) FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
ㄷ) 일반 속성 : 그 외
2. 분해 여부에 따른 분류
ㄱ) 복합 속성 : 여러 개의 의미를 가진 속성 (주소 - 시,구,동 등 등 세부 속성으로 구성)
ㄴ) 단일 속성 : 하나의 의미를 가진 속성
ㄷ) 다중값 속성 : 하나의 속성에 여러 값을 가지는 경우이며, 이는 정규화를 거쳐 별도의 엔터티를 생성해 관계로 연결해야 함. (ex. 한 사람이 두 개의 계좌를 가질 수 있음. 이는 고객과 계좌로 엔터티를 분리해야 함)
3. 특성에 따른 분류
ㄱ) 기본 속성 : 업무로부터 추출한 모든 속성이며 엔터티의 속성 비율 중 많은 비율 차지
ㄴ) 설계 속성 : 업무 상 필요하지는 않지만, 데이터 모델링을 위해 생성하거나 변형하여 정의하는 속성으로 유일 값을 가짐(ex. 상품코드)
ㄷ) 파생 속성 : 다른 속성의 영향을 받아 발생하는 속성이며 주로 집계 등의 속성이 이에 해당된다. (ex. 평균,합계)
관계(Relationships)란?
엔터티간의 관련성을 의미한다
표기법 :
1. 1 대 1 관계
2. 1 대 N 관계
3. N 대 N 관계
식별자란 ?
하나의 엔터티에 구성되어 있는 여러 속성 중에 엔터티를 대표할 수 있는 속성으로, 하나의 엔터티에 반드시 하나의 유일한 식별자가 존재하야 한다.
후보키 : 유일성과 최소성을 만족하는 키
슈퍼키 : 유일성은 만족하지만 최소성을 만족하지 못하는 키
대체키 : 후보키 중 기본키를 제외하고 남은 나머지 키
외래키 : 다른 테이블의 기본 키 필드를 가리키며 참조 무결성이 특징인 키
식별자 특징
1. 유일성
식별자에 의해 모든 인스턴스들이 유일하게 구분되어야 한다
2. 최소성
식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다
3. 불변성
식별자가 한 번 지정되면, 그 값은 변하면 안 된다
4. 존재성
식별자가 지정되면 반드시 값이 존재하야 한다
참고 블로그 :
https://velog.io/@suzie26/SQLD-1%EA%B3%BC%EB%AA%A9-1%EC%9E%A5-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EB%A7%81-%EC%9D%B4%ED%95%B4
https://mjn5027.tistory.com/100
'SQLD' 카테고리의 다른 글
[SQLD] 2과목-1 오답노트 (0) | 2023.03.06 |
---|---|
[SQLD 자격증] 2과목 - 강의 정리(1) (0) | 2023.02.27 |
[SQLD 자격증] 1과목 2 - 데이터 모델과 성능 오답노트 (0) | 2023.02.14 |
[SQLD 자격증] 1과목 2 - 데이터 모델과 성능 (0) | 2023.02.14 |
[SQLD 자격증] 1과목 - 데이터 모델링의 이해의 오답노트 (1) (0) | 2023.02.12 |