요약본 파일은 요 기 에 (*’͜’ )ʕ𐭩
6. 정규화 ⭐️
- 정규화 개념 : 데이터베이스의 이상현상을 방지하기 위하여 데이터 중복을 최소화하여 테이블을 분리하는 방법
(엔터티 = 테이블 = 릴레이션)
- 이상현상 ⭐️
1) 삽입이상: 데이터 삽입 시, 의도하지 않은 값도 삽입
2) 갱신이상: 일부 데이터만 갱신되어 모순 발생
3) 삭제이상: 데이터 삭제 시 의도하지 않은 값도 삭제
- 함수적 종속: A 속성에 의해 B가 유일하게 결정됨 (A: 결정자, B: 종속자)
1) 완전 함수적 종속: 종속자가 기본키의 모든 속성에 종속적인 경우 (학번 + 과목명을 모두 알아야 시험점수 파악)
2) 부분 함수적 종속: 종속자가 기본키의 일부 속성에 종속적인 경우 (과목명만 알아도 교수 파악 가능)
- 정규화 단계 (테이블 분해 시 결정자는 남기고 종속자만 제거)
1) 제 1 정규화(1NF): 도메인이 원자값만으로 구성
2) 제 2 정규화: 부분적 함수 종속을 제거, 완전 함수 종속을 만족
3) 제 3 정규화: 이행적 함수 종속(주식별자와 관계없는 종속적 관계) 을 제거
4) BCNF: 결정자가 모두 후보키
5) 제 4 정규화
6) 제 5 정규화
- 반정규화= 역정규화의 개념
- 반정규화 수행 케이스 (대용량 데이터가 자주 필요한 경우)
7. 관계와 조인의 이해
- 관계의 개념
- 관계의 분류: 존재 관계, 행위 관계
- 조인의 의미
: 서로 관계가 있는 테이블을 SQL로 연결해서 데이터를 조회
: 정규화로 분해가 된 테이블들은 조인 성능이 낮아질 수 있음 (= 성능 높이기 위해서 반정규화 수행)
- 계층형 데이터 모델: 같은 테이블을 참조하여 2개의 테이블을 조인하는 관계
- 상호배타적 관계: 두 테이블 중 하나의 테이블만 상속될 수 있는 관계
8. 모델이 표현하는 트랜잭션의 이해
- 트랜잭션이란: 하나의 논리적/연속적인 업무 단위
1) commit: 성공적으로 끝났음을 알리고, DB에 저장
2) Rollback: 오류가 발생하여 이전 상태로 되돌림
- 트랜잭션의 4대 특성 ⭐️ ACID
1) 원자성(Atomicity): 수행되거나 전혀 수행되지 않음
2) 일관성 (Consistency): 실행 전후로 오류 x
3) 고립성 (Isolation): 트랜잭션끼리 서로 간섭 x
4) 지속성 (Durability): 결과는 영구적으로 저장
- 필수적, 선택적 관계와 ERD
1) IE 표기법: 필수적 관계는 원을 그리지 않는다 / 선택적 관계는 원을 그린다
2) 바커 표기법: 필수적 관계는 실선으로 표기 / 선택적 관계는 점선으로 표기
9. NULL 속성의 이해
- NULL이란: 미 정의된 값, 0이나 빈칸과는 다른 개념 (비교/연산 불가, 집계함수에서 제외)
(NULL + NULL ❌)
- NULL의 특성
- NULL의 ERD 표기법
10. 본질식별자와 인조식별자
- 본질식별자: 프로세스상에서 현실로 존재하는 식별자
- 인조식별자: 인위적으로 생성한 식별자
- 장점: 비즈니스와 무관하게 설계, 개발 및 유지보수성 용이
- 단점: 데이터 중복 가능성, 불필요한 인덱스 생성