[SQLD] 1파트 데이터 모델과 SQL

     

    본 포스팅은

    BDA 빅데이터분석학회 SQLD 스터디 학습내용입니다. 

     

    [2024 이기적 SQL 개발자 이론서+기출문제]

    서적과 강의를 바탕으로 서술한 내용임을 밝힙니다.

     


     

    01. 정규화

    : 데이터에 대한 중복을 제거하고 데이터가 관심자별로 처리되도록 엔터티를 쪼개 성능을 향상시키는 활동

    단, 정규화가 대체적으로 좋은 것이며, 경우에 따라서 반정규화(중폭 포함, 엔터티 합침)가 더 이득일 수도 있음

    → 정규화시 입력/삭제/수정은 성능 향상↑, 조회는 성능 향상 혹은 저하될 수 있다.

    함수적 종속

    :어떤 기준 값(컬럼)에 의해 데이터가 종속되는 현상을 의미

    ex) 결정자(아이디) → 종속자(이름, 나이, 연봉, 부서ID, 부서명): 아이디가 나머지 모든 칼럼을 함수 종속한다.

    조건 암기!(키워드 정도 암기)

    1. 1차 정규화

    : 엔터티에서 다중 속성이 있거나 하나의 속성에 여러 속성값이 있으면 원자값으로 쪼개준다.

    도메인(속성 입력 값의 범위)원자성(1개)

    2. 2차 정규화

    : [1차정규형→2차정규형(NF)] 형태로 엔터티를 변경하는 활동이다.

    식별자에 부분 종속하는 대상을 쪼개어 준다.

    즉, 결정자 전부에 나머지 칼럼이 완전 종속하지 않고, 결정자 부분적으로도 종속한다면 쪼개야 한다. 

    1. 위에서는 부분 종속한다는 것은 따로 뜯어낸다.(결정자는 주 식별자로)
    2. 기존 엔터티에서 학번이 가져간 일반속성을 제외하고 입력한다. 
    3. 기존 데이터를 파악하여 관계를 설정한다. 

    3. 3차 정규화

    : 엔터티에서 일반속성끼리 함수종속이 발생하면 쪼개준다.

    결정자(직원ID) → 종속자(나머지 칼럼들) : 완전함수종속(2NF 만족)

    하지만, 나머지 칼럼 중에서 결정자(부서 ID) → 종속자(부서명)가 발생했기 때문에 쪼개준다.

     

    반정규화(=역정규화): 현재는 빠진 내용

    : 정규화한 데이터를 다시 합쳐서 중복되게 하거나 통합, 분리 등을 수행하는 모델링 방식

    1. 반정규화가 필요한 대상을 찾아본다.
    2. 다른 방법이 없는지 검토해 본다.
    3. 달리 방법이 없다면 반정규화를 적용한다. → 실제로 잘 사용하지 않음

    컬럼 반정규화

    (1) 중복컬럼 추가: 테이블에 중복되는 컬럼을 추가해 조인을 감소


    02. 관계와 조인의 이해

    조인

    : 식별자를 상속해 이를 이용하여 데이터를 결합해 여러 엔터티에서 필요한 데이터를 한 번에 가져오는 것

     

    계층형 데이터 모델

    : 계층구조를 가진 데이터를 저장한 모델 자기 자신의 엔터티와 관계가 발생하는 경우

    상호배타적 관계

    : A와 B가 C집단에 소속되었지만, 서로 공통적인 부분이 없는 관계

    이런 설계도를 보고 어떤 관계인지 이해


    03. 모델이 표현하는 트랜직션의 관계

    트랜직션

    : 데이터베이스의 논리적인 연산 단위 혹은 논리적인 업무단위

    1,2,3,4로 표기된 연산들

    • 식별자관계: 외래키(빌려온 키)가 PK(식별자)의 일부분인가?
    • 비식별자관계: 외래키(빌려온 키)가 PK(식별자)의 일부분이 아닌가?

    IE: 실선(중복 X, 빈값 X(존재성))이 강한 연결관계

    점선을 보고 비식별이라고 판단X

    Barker: 똑같이 #으로 표시되면 강한 연결관계

     

    04. NULL 속성의 이해

    NULL

    : 아직 정해지지 않은 값을 의미

    • 어떤 값이 들어오지 않았음을 표현
    • 테이블(=엔터티)의 특성상 행X열 형태를 유지해야 함

    BARKER 표기법에서는 O표시가 NULL이 들어와도 됨을 의미한다.

    cf. IE 표기법에서는 NULL이 들어와도 되는지 알 수 없다. 


    05. 본질식별자 vs. 인조식별자

    식별자 분류

    1. 대표성여부: 주식별자 vs. 보조식별자
    2. 스스로생성여부: 내부식별자 vs. 외부식별자
    3. 단일속성여부: 단일식별자 vs. 복합식별자
    4. 대체여부: 본질식별자 vs. 인조식별자

    IE표기법

    댓글