본문 바로가기
자격증 공부/SQLD 자격증

SQLD(SQLP) 과목1 - 2장. 데이터 모델의 이해

by huffpuffkin 2025. 3. 7.

목차

    제1절 - 정규화

    제1 정규형 [원자성]

    모든 속성은 반드시 하나의 값을 가져야 한다.

    • 다중값, 중복값 X

    제2 정규형 [부분함수 종속성]

    엔터티의 일반 속성은 주식별자 전체에 종속이어야 한다.

    • 함수 종속성 (Functional Dependency): 데이터들이 어떤 기준 값에 의해 종속되는 현상
      • 기준값 = 결정자 (Determinant)
      • 종속되는 값 = 종속자

     

    제3 정규형 [이행함수 종속성]

    엔터티의 일반 속성 간에는 서로 종속적이지 않아야 한다.

     

    • 이행적 종속 (Transitive Dependency)
      ex) 고객번호가 주문번호에 종속적이고, 고객명이 고객 번호에 종속적

    보이스코드 정규형

    후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리함

    반정규화 ( = 역정규화)

    성능을 위해 데이터 중복을 허용하는 것 

     

    • 상황: 주로 성능이 문제 될 때 반정규화 시행을 논의함 
    • 특징: 조회 성능은 향상될 수 있으나, 입력/수정/삭제 성능이 저하될 수 있음

     

     

     

     


    제2절 - 관계와 조인의 이해

    JOIN이란

    식별자를 상속하고 상속된 속성을 매핑키로 활용하여 데이터를 결합하는 것

     

    ** 관계를 맺는다 = 식별자를 상속시키고 해당 식별자를 매핑하여 데이터를 결합하는 것 **

    계층형 데이터 모델

    자기 자신에게 관계가 발생하는 데이터 모델, 즉 SELF JOIN이 필요한 경우

     

    상호배타적 관계 (Exclusive - OR)

    두 테이블 중 하나만 가능한 관계

     

    EX) 주문 테이블에 개인/법인번호(FK) 칼럼이 존재하고 해당 칼럼이 개인번호일 경우 개인고객 테이블의 개인번호 칼럼에, 법인번호일 경우 법인고객 테이블의 법인번호 칼럼에 매핑된다.

     


    제3절 - 모델이 표현하는 트랜잭션의 이해

    트랜잭션

    ALL OR NOTHING 

     

    트랜잭션 표현

    [IE 표기법]

    필수 관계 = 실선, 원을 붙이지 않음

    선택 관계 = 원을 붙임

     

    [바커 표기법] 

    필수 관계 = 실선

    선택 관계 = 점선

     

    ** 여기서 필수적인 관계란 무조건 함께 발생해야 하는 경우를 의미 **

     


    제4절 - Null 속성의 이해

    ** 바커 표기법에서 속성 앞에 동그라미가 붙어있다면 NULL 허용 속성임 **

    NULL의 특성

    • 아직 정의되지 않은 값으로 0이나 ''이 아님
    • NOT NULL이나 PRIMARY KEY 외 모든 데이터 유형이 포함 가능
    • NVL, ISNULL로 다른 결과 값을 얻을 수 있음
    • 집계함수에서는 제외됨

    NULL의 연산

    • NULL 값과의 연산은 NULL을 RETURN

     

     


    제5절 - 본질 식별자 vs 인조 식별자

    외부식별자 사용 시 발생하는 2가지 문제점

    1. 중복 데이터로 인한 품질문제

    기본키의 제약을 활용한다면 중복 데이터를 원천 차단할 수 있지만, 기본키를 인위적으로 생성한 속성으로 정의하였기 때문에 중복 데이터를 막을 수 없음

     

    2. 불필요한 인덱스 생성

    ** 인덱스란? 테이블의 데이터에 대한 검색 속도를 높이기 위해 사용하는 데이터 구조 ** 

    EX)

    [본질 식별자]

    구성: 주문상품 테이블 (주문번호, 상품번호 / 주문수량)

    인덱스: PK(주문번호 + 상품번호)

    [인조 식별자]

    구성: 주문상품 테이블 (주문상품번호 / 주문번호, 상품번호, 주문수량)

    인덱스: PK(주문상품번호), IX1(주문번호 + 상품번호)

     

    인조 식별자의 경우 따라서 불필요한 인덱스를 추가로 생성해야 한다.