SQLD

SQLD, 필기 요약-2 ( 식별자 / 키 종류 / 정규화 / 슈퍼타입/서브타입 관계 테이블 병합 / Null / 본질(원조)/인조(인위) 식별자)

greenyellow-s 2025. 2. 26. 14:33
728x90
반응형

식별자

1. 대표성

- 주 식별자

- 보조 식별자

 

2. 스스로 생성 여부

- 내부 식별자

- 외부 식별자

 

3. 속성의 수

- 단일 식별자

- 복합 식별자

 

4. 대체 여부

- 본질 식별자

- 인조 식별자

 

 

식별자 관계

- 엔터티간의 강한 연결 관계 표현

- ERD에서 실선 표현

- 부모 엔터티 인스턴스 소멸 시 자식 엔터티 인스턴스 같이 소멸

- 조인 최소화를 위해서는 식별자 관계로 연결

 

비식별자 관계

- 엔터티 간의 약한 연결 관계

- ERD에서 점선 표현

- 부모 엔터티 인스턴스 참 값이 없어도, 자식 엔터티 인스턴스 생성 될 수 있을 때 적합

 

PK식별자로 들어가는지, 일반 속성으로 들어가는지를 확인 해준다.

 


키 종류

키 종류 유일성 최소성 특징
슈퍼키 O X 고유한 데이터 속성
후보키 O O 행을 유일하게 식별
기본키 O O 후보키 중 하나
대체키 O O 기본키가 아닌 후보키
외래키 X X 다른 테이블에 있는 기본키 참조

 


정규화

DB의 이상현상을 막기 위해, 중복 최소화와 테이블을 보다 잘 조직된 상태로 분해

 

특징

- 데이터 입력/수정/삭제 성능 향상

- 조인의 횟수가 증가함에 따라 조회 성능 하락

-> 조회 성능이 저하될 경우 반정규화

    반정규화 기법은 파티셔닝 (수직 분할)

- 정보 손실 방지

- 무결성 보장

 

* 정규형은 정규화의 결과

* 보안 관련 사항은 뷰

정규화 특징 과정
제 1 정규화 속성의 속성값 = 원자값  
    부분 함수 종속성 제거
제 2 정규화 1:M 관계 성립  
    이행 함수 종속성 제거
제 3 정규화    
    모든 결정자가 후보키
BCNF 후보키가 아닌 컬럼이 다른 컬럼을 결정하지 않도록  
    다치 종속 제거
제 4 정규화 하나의 테이블에서 여러 값이 중복되지 않도록  
    조인 종속 제거
제 5 정규화 데이터가 잘못된 방식으로 결합되지 않도록  

 


슈퍼타입 / 서브타입 관계 테이블 병합

- One to One Type

슈퍼 타입, 서브 타입 테이블들을 각각 개별 테이블로 구성

 

- Plus Type

슈퍼타입 + 서브타입 테이블로 구성

 

- Single Type

전체를 하나의 테이블로 통합


Null

정해지지 않은 값(공백과는 다름)

 

- 단일행 연산 수행 결과는 NULL

- 다중행 연산 수행시 행 제외하고 수행


본질(원조) 식별자

업무에 존재하는 원래의 식별자

- 데이터 정확성이 깨지지 않음

 

인조(인위) 식별자

업무에 존재하지 않으나, 원래 식별자의 복잡합 때문에 인위적으로 만듬

- 데이터 중복 발생 가능성 O

- 별도의 인덱스 생성 필요

- 주식별자를 생성하여 개발 편의성 향상

 

728x90
반응형