[SQL] SQLD 1과목 핵심 요약_식별자/정규화 요약

2024. 3. 15. 14:31·SQL/SQLD

 

 

 

 

식별자

 

식별자 : 모든 엔티티는 인스턴스를 가지고

각각의 인스턴스를 구분 가능하게 하는 대표적 속성

 

 

식별자 분류

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
'SQL/SQLD' 카테고리의 다른 글
  • [SQL] SQLD 1과목 핵심 요약_ Entity(엔티티)/속성/관계 요약
  • [SQL] SQLD 1과목 핵심 요약_모델링/스키마/ERD 요약
DAILYSEEKER
DAILYSEEKER
데이터 분석 공부 열심히 하는 중😁
  • DAILYSEEKER
    ECODATALIST
    DAILYSEEKER
  • 전체
    오늘
    어제
  • 글쓰기 관리자
    • DATA (224)
      • SQL (18)
        • SQLD (3)
        • 데이터 분석을 위한 MySQL (5)
        • 혼자 공부하는 SQL (10)
      • Python (39)
        • 데이터 분석을 위한 Python (32)
        • 데이터 분석을 위한 데이터 스크래핑 (4)
        • 데이터 분석 프로젝트 (3)
      • 기획 (3)
        • 서비스 기획 (1)
        • 기업 분석 (2)
      • Frontend(프론트엔드) (22)
        • 데이터 분석을 위한 웹 개발 언어 (9)
        • 자바스크립트 (13)
        • 타입스크립트 (0)
      • 코딩 테스트 (86)
        • 프로그래머스_MySQL (86)
      • Data Driven (12)
        • 코드 없이 배우는 데이터 분석 (6)
        • Excel (5)
      • UI & UX (24)
        • 피그마(Figma) (24)
      • BDA 학회 (20)
        • BDA학회_8기 (4)
        • BDA학회_9기 (16)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
DAILYSEEKER
[SQL] SQLD 1과목 핵심 요약_식별자/정규화 요약
상단으로

티스토리툴바