WorkHard/자격증

[SQLD 개발자] 기출문제 공부(45회)

코딩공대 2023. 3. 18. 23:40
728x90

1. 데이터 모델링, 반정규화?

  • 반정규화 대상?
    • 디스크 I / O량이 많아 성능이 저하될 때

    • 경로가 너무 멀어 조인으로 성능이 저하될 때

    • 컬럼을 계산하여 읽는데 성능이 저하될 때

  • 반정규화 개념?
    • 시스템의 성능 향상

    • 개발, 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위반하는 행위

  • 반정규화 특징
    • 반정규화를 수행하면 시스템의 성능이 향상되고, 관리 효율성을 증가시키지만 데이터의 일관성 및 정합성이 저하될 수 있다.

    • 과도한 반정규화는 오히여 성능을 저하시킨다.

    • 반정규화를 위해서는 사전에 데이터의 일관성과 무결성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지를 결정해야 한다.

    • 반정규화 방법에는 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등이 있다.

 


2. 적절하지 않은 설명은?

  • 여기서 이자율은 정의되는 값으로 파생속성이 아니다.

3. 엔티티, 속성?

  • 엔티티란?
    • 업무에서 관리해야 하는 데이터 집합을 의미한다. 개념, 사건, 장소 등의 명사이다.

  • 엔티티의 특징
    • 엔티티는 유일한 식별자가 있어야 한다.

    • 2개 이상의 인스턴스가 있어야 한다.

    • 반드시 속성을 가지고 있다.

    • 다른 엔티티와 최소한 한 개 이상 관계가 있어야 한다.

    • 업무에서 관리되어야 하는 집합이다.

  • 엔티티의 종류
    • 유형과 무형에 따른 종류
       - 유형 엔티티
       - 사건 엔티티
       - 개념 엔티티

    • 발생 시점에 따른 종류
       - 기본 엔티티
       - 중심 엔티티
       - 행위 엔티티

  • 속성이란?
    • 업무에서 필요한 정보인 엔티티가 가지는 항목이다.

    • 더 이상 분리되지 않은 최소단위이다.

    • 업무에 필요한 테이터를 저장할 수 있다.

    • 인스턴스의 구성요소이다.

  • 속성의 특징
    • 업무에서 관리되는 정보이다.

    • 하나의 값만 가진다.

    • 주식별자에게 함수적으로 종속된다.

  • 속성의 종류
    • 분해 여부에 따른 종류
       - 단일 속성
       - 복합 속성
       - 다중값 속성

    • 특성에 따른 종류
       - 기본 속성
       - 설계 속성
       - 파생 속성

4. 관계명, 관계차수, 관계 선택사양?

  • 관계명(Membership)
    • 관계명은 엔티티 간 관계에 맺어진 형태를 뜻한다.

    • 관계가 시작되는 쪽을 "관계시작점"이라 칭하고, 받는 쪽을 "관계끝점"이라고 한다.

    • 관점에 따라 능동적이거나 수동적으로 명명된다.

  • 관계 차수(Degree / Cardinality)
    • 관계차수는 두 엔티티 간 관계에서 수행되는 경우의 수를 뜻한다.

 

  • 관계 선택사양(Optionality)
    • 관계에서 항상 참여하는지 아니면 참여할 수도 있는지를 나타내는 방법 따라 필수참여 관계, 선택참여 관계로 나뉜다.

    • 예를 들어, 고객과 주문 엔티티의 관계에서 고객 3명이 와서 2명만 주문하는 경우가 있다.
      주문은 꼭 고객에 의해서 수행이 되지만, 고객은 주문을 할 수도 있고 안 할 수도 있다.
      이처럼 주문은 손님에 의해 수행이 될 수도 있고 안 될 수도 있어서 선택 참여 관계이고 주문된 항목은 꼭 손님에 의해서 수행이 되어야 하므로 필수 참여 관계이다.

    • 선택참여관계일 경우 ERD에서 관계를 나타내는 선에서 선택참여하는 엔티티쪽에 원을 표시해야 한다.
      (0일 경우도 포함이기 때문에)

5. 부모엔티티로부터 속성을 받았지만 자식엔티티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우?(비식별자 관계)

  • 자식 엔티티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우.

  • 여러 개의 엔티티가 하나의 엔티티로 통합되어 표현되었는데 각각의 엔티티가 별도의 관계를 가질 때의 경우.

  • 자식 엔티티에 주식별자로 사용하여도 되지만 자식 엔티티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때.

  • 데이터 생명주기(Data Life Cycle)이 다를 때.

6. 데이터 모델링?

  • 개념적 모델링
    • 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행, 전사적 데이터 모델링, EA수립시 많이 사용

    • 핵심 엔티티와 그들 간의 관계를 발견하고, 그것을 표현하기 위해서 엔티티 - 관계 다이어그램을 생성하는 것

    • 엔티티 - 관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해서 사용

    • 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원

    • 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용

  • 논리적 모델링
    • 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높다.

    • 데이터베이스 설계 프로세스의 Input으로써 비스니스 정보의 논리적인 구조와 규칙을 명확하게 표한하는 기법, 과정이다.

    • 데이터 모델링 과정에서 가장 핵심이 되는 부분
    • 이 단계에서 하는 중요한 활동은 정규화
      ※정규화?
       - 논리 데이터 모델 상세화 과정의 대표적인 활동
       - 논리 데이터 모델의 일관성 확보, 중복 제거로 속성들이 가장 적절한 엔티티에 배치되도록 함 -> 신뢰성있는 데이터 구조를  얻는 목적

  • 물리적 모델링
    • 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라고 함

    • 이 단계에서 결정되는 것 : 테이블, 컬럼 들으로 표현되는 물리적인 저장구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등

7. 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위는?

  • 속성(Attribute)이다.

  • 업무에서 필요한 정보인 엔티티가 가지는 항목을 말한다.

  • 더 이상 분리되지 않는 단위로, 업무에 필요한 데티어를 저장할 수 있다.

  • 인스턴스의 구성 요소이다.

8. 제 1, 2, 3정규형?

  • 제 1 정규형 
    • 모든 속성의 도메인이 원자 값(atomic value)으로만 구성되어 있으면 제 1 정규형에 속한다.

  • 제 2 정규형
    • 제 1 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제 2 정규형에 속한다.
  • 제 3 정규형
    • 제 2 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않으면 제 3 정규형에 속한다.

    • 속성간의 함수 종속성이 발생하지 않는 경우

  • 정규화의 대상
    • 제 1 정규화 대상 : 제 1 정규형의 조건을 만족하지 못하는 상태

    • 제 2 정규화 대상 : 제 1 정규형이지만 제 2 정규형의 조건을 만족하지 못하는 상태

    • 제 3 정규화 대상 : 제 2 정규형이지만 제 3 정규형의 조건을 만족하지 못하는 상태