SQLD 1과목 용어 정리

Stupefyee's avatar
Mar 05, 2025
SQLD 1과목 용어 정리

1. PK의 특징

  1. 유일성 → UNIQUE
  1. 최소성 → 최대한 적게 사용
  1. 불변성
  1. 존재성 → NOT NULL

2. 주식별자 분류

  1. 대표성
    1. 주식별자 → PK
    2. 보조식별자 → PK, FK가 아닌 것들
  1. 스스로 생성
    1. 내부식별자 → FK가 아닌 것들
    2. 외부식병자 → FK
  1. 단일 속성
    1. 단일식별자 → 하나의 식별자 → PK가 하나
    2. 복합식별자 → 두개 이상의 식별자 → PK가 둘 이상
  1. 대체여부
    1. 본질식별자 → 가공 X
    2. 인조식별자 → 가공 O

3. 식별자, 비식별자 관계

부모 엔터티의 PK가 자식 엔터티의 PK
  • 일 경우 → 식별자
  • 아닐 경우 → 비식별자

4. 정규형

각 정규형을 지키는 과정이 정규화
  1. 제 1정규형
    1. 모든 속성은 하나의 값만 가져야 함
  1. 제 2정규형
    1. 모든 일반 속성은 모든 주식별자에 종속되야 함
    2. 복합식별자일 경우 하나애만 종속되는 경우가 있음0
  1. 제 3정규형
    1. 주식별자가 아닌 모든 속성간의 종속 불가

5. 반 정규화

  1. 데이터 조회 성능 향상을 위해 데이터 중복을 허용하거나 데이터 그룹핑을 하는 작업
  1. 입력, 수정, 삭제 성능 저하 가능성 O
  1. 데이터 정합성 이수 존재 가능성 O
  1. 정규화가 끝난 후 반정규화 진행

6. 테이블 반정규화

  1. 병합 → JOIN을 많이 해야하는 경우 고려
    1. 1 : 1 관계 병합
    2. 1 : M 관계 병합 → 중복 데이터 생길 가능성 O
    3. 슈퍼 서브 타입 테이블 병합
  1. 분할
    1. 수직 분할 (속성 분할)
      1. 엔터티 일부 속성을 별도의 앤터티로 분할
      2. 자주 사용하지 않는 속성을 떼어내기에 적합
      3. 분할 시 1 : 1 관계 성립
    2. 수평 분할 (파티셔닝, 인스턴스 분할)
      1. 인스턴스를 특정 기준으로 나눠 별도의 앤터티로 분할 ( 파티셔닝)
      2. 분할 시 성립 관계 X
  1. 추가
    1. 중복 테이블 추가 → 데이터 중복을 감안하더라도 성능상 필요하다 판단 시 별도 엔터티 추가
    2. 통제 테이블 추가
    3. 이력 테이블 추가
    4. 부분 테이블 추가 → 앤터티에서 많이 사용되는 속성만 잘라서 별도의 엔터티를 추가

7. 컬럼 반정규화

  1. 중복 컬럼 추가 → JOIN이 필요한 경우가 많아 컬럼 추가가 성능 면에서 유리할 때
  1. 파생 컬럼 추가 → 프로세스 수행시 부하가 염려되는 계산값을 미리 컬럼으로 추가 Ex) 재고, 할인율 적용가
  1. 이력 테이블 컬럼 추가 → 대량의 이력테이블 조회 시 속도 저하 대비해 조회 기준을 컬럼 추가 Ex) 최신 데이터 여부

8. 관계 반정규화

JOIN이 필요한 경우가 많아 중복 관계 추가가 성능 면에서 유리할 때 고려

9. 트랜잭션의 특징

  1. 원자성 → 더이상 분리 불가항 업무의 최소 단위, 전부 처리되거나 전부 취소되야함
  1. 일관성 → 하나의 트랜잭션이 완료된 후에더 데이터베이스는 일관된 상태여야함
  1. 고립성 → 실행 중인 트랜잭션 중간에 다른 트랜잭션 난입 불가
  1. 지속성 → 트랜잭션이 성공적으로 실행 완료시 그 결과는 데이터베이스에 영속적으로 저장

10. NULL

  • 존재하지 않음. 즉, 값이 없음을 나타냄
  • NULL을 포함한
    • 가로 연산 시 NULL을 반환 → 컬럼간의 연산
    • 세로 연산 시 NULL을 제외하고 계산 → 속성간의 연산
Share article

stupefyee