Overview
- 데이터베이스 소개, 엔터티, 속성
- 관계 (Relationship)
- 식별자, 데이터 모델
- 정규화, 관계와 조인
- 모델이 표현하는 트랜잭션, null, 본질 vs 인조
- 관게형 데이터베이스 개요
- 함수, WHERE
- GROUP BY, HAVING, ORDER BY
- JOIN
- 서브쿼리
- 집합 연산자, 그룹 함수, 윈도우 함수
- TOP-N, 계층 쿼리
- PIVOT과 UNPIVOT, 정규 표현식
- DML, TCL
- DDL, DCL
관계(Relationship)란?
: 엔터티 내의 인스턴스들 간에 서로 논리적인 연관성이 있는 상태
관계의 분류 - 존재/행위
- 존재에 의한 관계 [직원] --- [부서]
- 행위에 의한 관계 [고객] --- [상품]
ERD는 존재/행위 등 관계를 위처럼 똑같이 표시(ERD: 개념적 데이터 모델링의 산출물)
UML 클래스 다이어그램은
연관관계(존재)는 실선으로 표기하고,
의존관계(행위)는 점선으로 표시한다.
관계를 표시하는 방법
: 관계명(Membership), 관계차수(Cardinality/Degree), 관계선택사양(Optionality)
* 표기하는 방식에 따라 IE와 Barker 표기법으로 구분된다.
1. 관계명을 표시한다. 이때 애매한 동사나 과거형은 피한다.
[IE와 Barker 모두 표기 방식 동일]
ERD -> IE(시험 대부분) / Barker(시험 거의 x) - 차이점에 대해 알기
[직원] 소속되다 ----- 보유하다 [부서]
[고객] 주문하다 ----- 주문되다 [상품]
2. 관계차수는 엔터티 내 각 인스턴스들이 얼마나 참여하는지를 의미한다.
(1:1, 1:M, M:N)
1 : 1 관계
- BARKER 표기 방식 : | 표기 하지 않음
1 : M 관계
N : M 관계
- N : M 관계일 때, 1 : M, M : 1 로 엔터티를 쪼갠다.
- 쪼개면 가운데 엔터티가 추가되고, 이때 엔터티 이름은 관계 이름으로 하면 된다.
3. 관계선택사양은 엔터티 내 각 인스턴스들이 필수/선택 참여하는지를 의미한다.
* 0 이 붙어있는 반대편에 점선으로 표기한다.
엔터티는 반드시 1개 이상의 관계를 가져야 한다.
예외
코드성
- 코드로 관리를 한다.
- 코드성일 때는 관계를 이어주지 않는다. 오히려 더 복잡해짐
통계성
- 자체만으로 의미가 있기 때문에 예외적으로 관계를 이어주지 않는다.
관계 체크 사항(현재 설정한 관계가 적합한지 보는 체크리스트) - 단순 암기/키워드 암기해두기
1. 두 엔터티 사이에 관심 있는 연관규칙이 있는가?
2. 두 엔터티 사이에 정보의 조합이 발생하는가?
3. 업무기술서, 장표에 관계 연결에 대한 규칙이 서술되었는가?
4. 업무기술서, 장표에 관계 연결을 가능케 하는 동사(Verb)가 있는가?
Reference
https://www.youtube.com/watch?v=64c0BgeCLAY&list=PL6i7rGeEmTvpLoDkB-kECcuD1zDt_gaPn&index=2
'🏆 자격증 > SQLD' 카테고리의 다른 글
[과목 1] 1장 데이터 모델링의 이해 (0) | 2024.08.06 |
---|---|
[SQLD] 06. 관계형 데이터베이스 개요, SELECT (0) | 2024.07.26 |
[SQLD] 04, 05 정규화, 관계와 조인의 이해, 모델이 표현하는 트랜잭션의 이해 (0) | 2024.07.26 |
[SQLD] 03 식별자 & 데이터 모델 이해하기 (0) | 2024.07.26 |
[SQLD] 01 데이터베이스 소개, 엔터티, 속성 (1) | 2024.07.23 |