https://megamaker.tistory.com/365
[DB][SQLD][2024] 1-1 데이터 모델링의 이해 정리
이번에 SQLD 자격증을 공부하면서 뭔가 한번에 들어오는게 없어서 배운 내용을 정리하기로 했다. 출제문항수 데이터 모델링의 이해 - 세부항목 데이터 모델링의 이해모델링: 현실 세계의
megamaker.tistory.com
ㄴ이전 게시글
데이터 모델과 SQL - 세부항목

정규화
정규화
데이터의 무결성을 위해 엔티티를 분리하는 과정
- 데이터 중복 제거, 이상현상 줄임
- 논리 데이터 모델링 시점에 고려하여 수행
- 1 ~ 5 정규화까지 존재하지만, 일반적으로 3단계까지만 수행함
- 정규화를 수행하면 엔티티가 증가해서 Join을 할 필요가 생겨 조회 성능이 떨어질 수 있음
이상현상
- 삽입이상 - 새로운 인스턴스 추가시, 불필요한 속성도 함께 입력되는 현상
- 갱신이상 - 중복 인스턴스 중 하나를 변경하면서 생기는 데이터 불일치
- 삭제이상 - 인스턴스 삭제 시 관련된 데이터도 같이 삭제되는 현상
정규화 단계
- 제 1 정규화 - 모든 속성이 더이상 나눌 수 없는 원자값을 갖도록 분해하는 단계 / 하나의 속성에 포함되어야 하지만 여러 컬럼에 걸쳐서 저장되어 있는 경우도 제 1 정규화 대상이다.
- 제 2 정규화 - 제 1 정규화를 만족하면서, 완전 함수 종속을 만족하는 상태 / 기본키가 복합키인 경우 나머지 속성들은 모두 기본키 전체에 대해서만 의존해야 함.
- 제 3 정규화 - 제 2 정규화를 만족하면서, 이행적 종속이 없는 상태
관계와 조인의 이해
관계
엔터티의 인스턴스 간의 논리적 연관성
부모의 식별자를 자식에 상속하여 연결
관계의 분류
- 존재 관계 - 엔티티 간의 상태 ex) 학생은 학과에 소속
- 행위 관계 - 엔티티 간에 발생하는 행위 ex) 고객이 주문을 함
조인
분리된 엔티티를 동시에 출력하기 위해서 각 엔티티를 참조하여 연결하는 과정
계층형 데이터 모델
자기 자신끼리 관계가 발생하는 모델 / 셀프조인하여 같은 테이블 여러 번 조인 가능
모델이 표현하는 트랜잭션의 이해
트랜잭션
데이터베이스의 상태를 변화시키는 연속적인 작업으로 이루어진 논리적 작업 단위
ACID
트랜잭션의 속성
- A(원자성) - 트랜잭션의 작업은 모두 수행되거나 모두 수행되지 않아야 함
- C(일관성) - 트랜잭션이 수행되기 전과 수행된 후에 DB는 일관된 상태를 유지해야 함
- I(독립성 또는 고립성) - 동시에 수행되는 트랜잭션들이 서로에게 영향을 끼치면 안 됨
- D(지속성) - 트랜잭션으로 수행된 내용은 트랜잭션이 종료된 이후에도 DB에 영구적으로 반영되어야 함
필수적, 선택적 관계
- 두 엔티티가 서로 필수적이면 하나의 트랜잭션 형성
- 두 엔티티가 독립적인 수행이 가능하면 선택적 관계
IE 표기법
- 원을 사용하여 필수적 관계, 선택적 관계를 구분
- 필수적 관계 -> 원 안 그림
- 선택적 관계 -> 관계선 끝에 원 그림
바커표기법
실선과 점선으로 구분
필수적 관계 -> 관계선 실선으로 표기
선택적 관계 -> 관계선 점선으로 표기
Null 속성의 이해
NULL
값이 정해지지 않음을 의미 / 0과 ""(빈문자열)과 다름
- IE 표기법 -> NULL 허용여부 알 수 없음
- 바커 표기법 -> 속성 앞 O가 NULL 허용이라는 의미
NULL의 특성
- 연산에 NULL이 포함되어 있으면 결과는 NULL임
- 집계함수에 NULL이 포함되어 있으면 NULL을 제외한 나머지만 계산
본질식별자 vs 인조식별자
본질식별자
자연적으로 존재하는 속성인 식별자
인조식별자
업무에 필요해서 인위적으로 만든 식별자 / 주로 자동 증가 숫자로 사용됨
인조식별자의 단점
- 중복 발생 가능 -> 인조식별자로 인스턴스를 구분하기 때문에 식별자를 제외한 다른 모든 속성이 중복돼도 정상 동작하기 때문에 문제 발생
- 불필요한 인덱스 생성 -> 인덱스는 조회 성능은 향상되나 삽입이나 수정 등이 수행될 때 성능 저하
다음 게시글
https://megamaker.tistory.com/372
[DB][SQLD][2024] 2-1 SQL 기본 정리
https://megamaker.tistory.com/371 [DB][SQLD][2024] 1-2 데이터 모델과 SQL 정리https://megamaker.tistory.com/365 [DB][SQLD][2024] 1-1 데이터 모델링의 이해 정리이번에 SQLD 자격증을 공부하면서 뭔가 한번에 들어오는게
megamaker.tistory.com
'공부 > 데이터베이스' 카테고리의 다른 글
| [DB][SQLD][2024] SQLD 개념 요약 정리 (0) | 2024.08.23 |
|---|---|
| [DB][SQLD][2024] 2-3 관리 구문 정리 (0) | 2024.08.22 |
| [DB][SQLD][2024] 2-2 SQL 활용 정리 (0) | 2024.08.21 |
| [DB][SQLD][2024] 2-1 SQL 기본 정리 (0) | 2024.08.19 |
| [DB][SQLD][2024] 1-1 데이터 모델링의 이해 정리 (0) | 2024.08.12 |