
식별자
식별자 : 모든 엔티티는 인스턴스를 가지고
각각의 인스턴스를 구분 가능하게 하는 대표적 속성
식별자 분류
1️⃣ 대표성 여부
• 주식별자 : 대표성 O → 참조관계 연결
• 보조식별자 :대표성 X → 참조관계 연결 X
2️⃣ 스스로 생성 여부
• 내부 식별자 : 스스로 생성
• 외부 식별자 : 타 엔티티로부터 받아옴
3️⃣ 속성의 수
• 단일 식별자 : 하나의 속성으로 구성
• 복합 식별자 : 2개 이상의 속성으로 구성
4️⃣ 대체 여부
• 본질 식별자 : 업무에 의해 만들어짐
• 인조 식별자 : 인위적으로 만들어짐
( PK와 FK는 안됨 / PK이용 : 중복저장, 사용X 인덱스(저장공간 낭비+DML 성능 ↓))
주식별자 특징(강한관계/실선 표시)
유일성 : 모든 인스턴스들이 유일하게 구분
최소성 : 유일성 만족하는 최소 속성의 수
불변성 : 자주 변하지 X
존재성 : 반드시 갓이 돌아와야 함(NULL 허용X)
비식별자(독립적/약한관계/점선 표시)
부모 속성을 자식의 일반 속성으로 사용
비식별자 특징
부모 없는 자식이 생성되는 경우
부모와 생명주기가 다른 경우
여러 개의 엔티티가 하나의 엔티티로 통합
(각각의 엔티티가 별도의 관계를 가짐)
자식 엔티티에 별도의 주식별자 생성하는 것이 유리한 경우
SQL 문장이 길어져 복잡성
이 증가하는 것을 방지
정규화
정규화
데이터의 정합성을 위해 엔티티를 작은 단위로 분리하는 관점
중복성 제거 / 엔티티 증가 / 입력, 수정, 삭제 성능 향상 / 데이터의 무결성 보장
정규화 하지 않으면 생기는 이상현상
• 삽입 이상 : 불필요 데이터 함께 삽입되는 경우
• 갱신 이상 : 중복 튜플에서 일부 변경 → 불일치하는 경우
• 삭제 이상 : 튜플 삭제하면 데이터까지 같이 삭제
정규화 종류
제 1 정규화 : 컬럼의 원자값 1개만 가지도록 테이블 분해
제 2 정규화 : 제 1 정규화를 진행하고 완전 종속 함수 만족하도록 테이블 분해 (부분 함수적 종속 제거)
제3 정규화 : 제 2 정규화 진행하고 이행적 종속 제거 하기 위해 테이블 분해
반정규화 (정규화 이후 수행)
데이터 조회 성능을 위해 데이터 중복 허용
그룹핑 관정에서 입력, 수정, 삭제 기능 저하 유발
→ 2024부터는 잘 안나옴
https://everyonelove.tistory.com/
ECODATALIST
Recording Data Analysis and Various Learning Experiences
everyonelove.tistory.com
꾸준히 작성하기 위해서 노력하고 있으니 와서 봐주시기 바랍니다 😄
'SQL > SQLD' 카테고리의 다른 글
| [SQL] SQLD 1과목 핵심 요약_ Entity(엔티티)/속성/관계 요약 (0) | 2024.03.13 |
|---|---|
| [SQL] SQLD 1과목 핵심 요약_모델링/스키마/ERD 요약 (0) | 2024.03.13 |