내가 볼려고 정리함
1. 엔터티의 특징
다음 중 엔터티가 갖는 특징으로 적합하지 않은 것은?
- 다른 엔터티와 1개 이상의 관계를 가지고 있어야 한다
- 반드시 속성을 가지고 있어야 한다.
- `1개 이상`의 인스턴스를 가지고 있어야 한다. => 2개
- 유니크함을 보장할 수 있는 식별자가 있어야 한다.
한 개의 엔터티는 두 개 이상의 인스턴스를 갖는다.
한 개의 인스턴스는 두 개 이상의 속성을 갖는다.
한 개의 속성은 하나의 속성 값을 갖는다.
엔터티 : 테이블 전체 (예: `고객테이블`)
인스턴트 : 행 (예: `고객 1명`)
속성 : 열 (예: 고객의 `이름`,`전화번호`,`주소`)
2. 기본 엔터티, 중심 엔터티, 행위 엔터티
발생시점에 따른 분류
`기본 엔터티`는 독립적으로 생성되어 자신만의 주식별자를 가지며 다른 엔터티의 부모 역할을 하게 된다. `중심 엔터티`는 기본 엔터티로부터 발생되어 많은 데이터를 갖게 되며 행위 엔터티를 생성한다. `행위엔터티`는 두 개 이상의 부모 엔터티로부터 파생되고 보통 설계 초기 단계보다는 상세 설계단계에서 많이 도출된다.
+ 유/무형에 따른 분류 : 유형/개념/시간 엔터티
3. 기본속성, 설계속성, 파생속성
다음 중 속성의 특성에 따른 분류로 맞지 않는 것은?
1. 기본속성 - 상품이름
2. 설계속성 - 주민등록번호
3. 파생속성 - 이벤트응모건수
4. 기본속성 - 상품가격
설계속성은 모델링을 위해 인위적으로 만들어서 정의한 속성처럼 일련번호처럼 유니크한 식별자를 부여하기 위한 것이 목적이다. 주민등록번호는 원래 존재하는 속성이므로 기본속성에 속한다.
기본 속성 :
학생 엔터티에서 이름, 학번, 생년월일
상품 엔터티에서 상품명, 가격, 제조사
파생 속성:
데이터 조회 시 빠른 성능 보장하기 위해 본래의 속성값을 계산해서 따로 저장 할 수 있게 만든 속성
학생 엔터티에서 나이는 생년월일을 기반으로 계산될 수 있으므로 파생 속성
주문 엔터티에서 총 금액은 각 상품 가격과 수량을 곱해 계산되는 속성
설계속성: 주문 ID 등
4. 엔터티간의 관계
다음 중 엔터티 간의 관계를 나타낼 때 표기하는 항목에 해당하지 않는 것은?
1. 관계명
2. 관계차수
3. 관계타입
4. 관계선택사양
관계의 표기법에는 관계명, 관계차수, 관계선택사양이 포함된다.
[Database] Data Modeling (IE Crow Foot Notation)

⭐동그라미 붙은 쪽이 optional (관계선택사양)
⭐까마귀 다리 붙은 쪽이 자식 테이블
⭐식별자 관계는 실선, 비식별자 관계는 점선
Barker 표기법은 중간에 선 종류가 달라짐
Peter Chen 표기법은 가운데 왕 다이아
IDEF1X 표기법은 양끝에 마름모랑 원
Barker 표기법 vs IE 표기법


5. 식별자(Identifiers)
식별자 분류 방식
1. 대표성 여부
주식별자 : 유일성, 최소성, 불변성, 존재성 가진 대표 식별자, 다른 엔터티와 참조 관계로 연결
보조식별자 : 인스턴트 식별할 수 있지만 대표식별자는 아님, 다른 엔터티와 참조관계로 연결X
2. 스스로 생성되었는지 여부
내부식별자 : 엔터티 내부에서 스스로 생성
외부식별자 : 다른 엔터티에서 온 식별자, 연결고리 역할
3. 단일속성 여부
단일식별자 : 하나의 속서으로 구성된 식별자
복합식별자 : 두 개 이상의 속성으로 구성된 식별자
4. 대체 여부
⭐원조식별자 : 업푸 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자(본질식별자)
⭐대리식별자 : 주식별자의 속성이 두 개 이상인 경우, 그 속성들을 하나로 묶어서 사용하는 식별자(인조식별자)
6. 식별자 관계 vs. 비식별자 관계


7. 데이터 모델링의 유의사항
데이터 모델링을 할 때 지양해야 할 점
- 중복(Duplication) : 같은 데이터가 여러 엔터티에 중복으로 저장되는 현상
- 비유연성(Inflexibility) : application과 데이터 간의 연계성이 높으면 application이 변경 될 때 마다 데이터 모델도 변경되어야 하는 상황, 즉 데이터모델의 설게에 따라 애플리케이션의 사소한 변경에도 데이터 모델이 수시로 변경되어야 하는 상황으로 데이터 모델과 프로세스를 분리하여 유연성을 높여야 한다.
- 비일관성(Inconsistency) : 데이터간의 일관성을 유지하기 위해 상호 연관관계를 명확하게 정의해야 함
다음 중 ERD에 대한 설명으로 옳지 않은 것은?
1. 관계명으로 엔터티 간의 관계를 알 수 있다.
2. 1:1의 관계차수를 갖는 엔터티들은 관계에 참여하는 각각의 엔터티에 대해 단지 하나의 관계만을 가진다.
3. 존재에 의한 관계와 행위에 의한 관계를 구분해서 표현한다.
4. 관계 차수로는 1:1, 1:M, M:N이 있을 수 있다.
3은 비일관성에 대한 설명
ERD에서는 존재에 의한 관계와 행위에 의한 관계를 구분하지 않고 표현하며, 클래스 다이어그램에서는 이것을 구분하여 연관 관계와 의존 관계로 표현한다.
p. 34
07. 다음 데이터 모델에 대한 설명으로 가장 옳은 것은?
회원과 배송지가 1:M, 주식별자 관계, 필수 관계
1. 배송지가 등록되지 않은 회원이 존재할 수 있다. X (필수관계)
2. 한 명의 회원은 여러 개의 배송지를 등록 할 수 있다. O(1:M) 정답
3. 하나의 배송지는 여러 회원에게 속할 수 있다. X
4. 배송지는 삭제될 수 있다. X (필수관계)
1:M 관계에서 하나의 회원이 여러 개의 배송지를 가질 수 있지만, 하나의 배송지는 한 명의 회원에게만 속할 수 있습니다.여러 회원이 하나의 배송지를 공유하는 것은 불가능합니다. 하나의 배송지는 특정 회원 하나에만 연결될 수 있으며, 여러 회원이 동일한 배송지를 공유할 수는 없습니다.
p.35
ERD 작성순서
1. 엔터티를 그린다
2. 엔터티를 적절하게 배치한다.
3. 엔터티 간의 관계를 나타낸다.
4. 관계명을 정의한다.
5. 관계의 참여도를 나타낸다.
7. 관계의 필수 여부를 나타낸다.
p. 36
기본엔터티
업무에 원래 존재하는 정부, 독립적으로 생성되며 자식 엔터티 가질 수 있음 - 상품, 회원, 사원, 부서
중심엔터티
업무에 있어서 핵심적인 역할을 하며 데이터의 양이 많이 발생되는 엔터티이다. 기본 엔터티로부터 파생되고, 행위 엔터티 생성 - 계약, 사고, 청구, 주문, 매출
행위엔터티
2개 이상의 엔터티로부터 파생, 데이터가 자주 변경되거나 증가할 수 있음 - 주문 내역, 이벤트 응모 내역
p. 40
다음 중 주문 엔터티의 식별자에 해당하지 않는 것은?
주문테이블
| 주문번호(pk) |
| 회원번호(fk) |
| 주문일자 |
1. 주식별자
2. 내부식별자
3. 보조식별자
4. 단일식별자
주문 엔터티의 주문번호 속성은 주식별자, 내부식별자, 단일식별자, 대리식별자이다.
보조식별자란?
`보조식별자`는 인스턴스를 식별 할 수는 있지만 대표 식별자가 아님. 다른 엔터티와 참조 관계로 연결되지 않음. 즉, `후보키`이면서 `주식별자`가 아니고 `외래키` 아닌 속성이 보조식별자이다. 예를 들면 회원 엔터티의 아이디가 보조식별자이다.
대리식별자란?
`인조식별자(대리식별자)`와 구분되는 `자연 식별자`는 비즈니스적으로 의미가 있는 값이다. 예를 들어, 이메일, 주민등록번호, 사회보장번호 등은 자연 식별자로 사용할 수 있다. 그렇다면 `대리식별자`란? 주문번호나 고객ID처럼 비즈니스적 의미 없이 시스템에서 자동으로 생성되는 값이다. 이 문제에서 주문번호는 대리식별자인데 회원번호는 맞을 수도 있고 아닐 수도 있다. 회원번호가 시스템에서 자동으로 생성되었으면 대리식별자이지만, 비즈니스적인 의미를 가지며 고유한 사용자 정보를 나타내서 회원의 이메일이나 주소랑 연결된다면, 자연 식별자로 간주될 수 있다.
복합식별자 vs 대리식별자
복합식별자 : 두 개 이상의 속성으로 구성된 식별자
대리식별자 : 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자(=인조식별자)
'SQL&DataBase' 카테고리의 다른 글
| [SQLD] JOIN (Inner, Outer, Self, Natural, Cross JOIN) (6) | 2024.11.17 |
|---|---|
| [SQLD] NULL 관련 함수, CASE, DECODE, SQL실행순서 (5) | 2024.11.16 |
| [SQLD] SQL 기본 함수 (문자열, 숫자, 날짜 등) (7) | 2024.11.16 |
| [SQLD] 정규화, 반정규화 (36) | 2024.11.16 |
| [Database] 정규화 쉽게 이해하기, 제1정규형, 제2정규형, 제3정규형, BCNF (1) | 2024.03.26 |