목차
제1절 - 정규화
제1 정규형 [원자성]
모든 속성은 반드시 하나의 값을 가져야 한다.
- 다중값, 중복값 X
제2 정규형 [부분함수 종속성]
엔터티의 일반 속성은 주식별자 전체에 종속이어야 한다.
- 함수 종속성 (Functional Dependency): 데이터들이 어떤 기준 값에 의해 종속되는 현상
- 기준값 = 결정자 (Determinant)
- 종속되는 값 = 종속자
제3 정규형 [이행함수 종속성]
엔터티의 일반 속성 간에는 서로 종속적이지 않아야 한다.
- 이행적 종속 (Transitive Dependency)
ex) 고객번호가 주문번호에 종속적이고, 고객명이 고객 번호에 종속적
보이스코드 정규형
후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리함
반정규화 ( = 역정규화)
성능을 위해 데이터 중복을 허용하는 것
- 상황: 주로 성능이 문제 될 때 반정규화 시행을 논의함
- 특징: 조회 성능은 향상될 수 있으나, 입력/수정/삭제 성능이 저하될 수 있음
제2절 - 관계와 조인의 이해
JOIN이란
식별자를 상속하고 상속된 속성을 매핑키로 활용하여 데이터를 결합하는 것
** 관계를 맺는다 = 식별자를 상속시키고 해당 식별자를 매핑하여 데이터를 결합하는 것 **
계층형 데이터 모델
자기 자신에게 관계가 발생하는 데이터 모델, 즉 SELF JOIN이 필요한 경우
상호배타적 관계 (Exclusive - OR)
두 테이블 중 하나만 가능한 관계
EX) 주문 테이블에 개인/법인번호(FK) 칼럼이 존재하고 해당 칼럼이 개인번호일 경우 개인고객 테이블의 개인번호 칼럼에, 법인번호일 경우 법인고객 테이블의 법인번호 칼럼에 매핑된다.
제3절 - 모델이 표현하는 트랜잭션의 이해
트랜잭션
ALL OR NOTHING
트랜잭션 표현
[IE 표기법]
필수 관계 = 실선, 원을 붙이지 않음
선택 관계 = 원을 붙임
[바커 표기법]
필수 관계 = 실선
선택 관계 = 점선
** 여기서 필수적인 관계란 무조건 함께 발생해야 하는 경우를 의미 **
제4절 - Null 속성의 이해
** 바커 표기법에서 속성 앞에 동그라미가 붙어있다면 NULL 허용 속성임 **
NULL의 특성
- 아직 정의되지 않은 값으로 0이나 ''이 아님
- NOT NULL이나 PRIMARY KEY 외 모든 데이터 유형이 포함 가능
- NVL, ISNULL로 다른 결과 값을 얻을 수 있음
- 집계함수에서는 제외됨
NULL의 연산
- NULL 값과의 연산은 NULL을 RETURN
제5절 - 본질 식별자 vs 인조 식별자
외부식별자 사용 시 발생하는 2가지 문제점
1. 중복 데이터로 인한 품질문제
기본키의 제약을 활용한다면 중복 데이터를 원천 차단할 수 있지만, 기본키를 인위적으로 생성한 속성으로 정의하였기 때문에 중복 데이터를 막을 수 없음
2. 불필요한 인덱스 생성
** 인덱스란? 테이블의 데이터에 대한 검색 속도를 높이기 위해 사용하는 데이터 구조 **
EX)
[본질 식별자]
구성: 주문상품 테이블 (주문번호, 상품번호 / 주문수량)
인덱스: PK(주문번호 + 상품번호)
[인조 식별자]
구성: 주문상품 테이블 (주문상품번호 / 주문번호, 상품번호, 주문수량)
인덱스: PK(주문상품번호), IX1(주문번호 + 상품번호)
인조 식별자의 경우 따라서 불필요한 인덱스를 추가로 생성해야 한다.
'자격증 공부 > SQLD 자격증' 카테고리의 다른 글
| SQLD 합격 후기 / 공부 방법 (0) | 2025.10.21 |
|---|---|
| SQLD(SQLP) 과목2 - 3장. 관리 구문 (0) | 2025.03.05 |
| SQLD(SQLP) 과목2 - 2장. SQL 활용 (1) | 2025.03.03 |
| SQLD(SQLP) 과목2 - 1장. SQL 기본 (1) | 2025.02.28 |
| SQLD(SQLP) 과목1 - 1장. 데이터 모델의 이해 (0) | 2025.02.25 |