데이터 모델링의 이해

데이터 모델링의 이해 문제·해설 모음

SQLD SQL 개발자 · 60문항 · 해설은 눌러서 펼쳐요

채점하면서 랜덤 10문항 풀기

데이터 모델링의 개념

  1. 1.데이터 모델링 단계 중 정규화를 수행하고, 키·속성·관계를 정확하게 표현해 재사용성이 가장 높은 모델을 만드는 단계는?
    1. 1. 논리적 데이터 모델링
    2. 2. 개념적 데이터 모델링
    3. 3. 물리적 데이터 모델링
    4. 4. 요구사항 분석
    정답·해설 보기

    정답: 1번. 개념적 모델링은 핵심 엔터티와 관계를 추상적으로 정의하고, 논리적 모델링은 정규화와 키·속성·관계를 상세히 정의한다. 물리적 모델링은 특정 DBMS의 테이블·인덱스·저장 구조를 설계한다.

  2. 2.데이터 모델링의 세 가지 관점 중 업무가 실제로 하는 일과 그 처리 방법(How)에 초점을 두는 것은?
    1. 1. 데이터 관점
    2. 2. 프로세스 관점
    3. 3. 데이터와 프로세스의 상관 관점
    4. 4. 물리 관점
    정답·해설 보기

    정답: 2번. 데이터 관점은 업무가 어떤 데이터와 관련 있는지(What), 프로세스 관점은 업무가 실제로 하는 일과 처리 방법(How), 상관 관점은 업무 처리 방법에 따라 데이터가 어떤 영향을 받는지(CRUD)를 본다.

  3. 3.ANSI-SPARC 3단계 스키마 구조에서 모든 사용자의 관점을 통합해 조직 전체 관점에서 데이터를 정의한 것은?
    1. 1. 개념 스키마
    2. 2. 외부 스키마
    3. 3. 내부 스키마
    4. 4. 물리 스키마
    정답·해설 보기

    정답: 1번. 외부 스키마는 사용자별 관점, 개념 스키마는 통합된 조직 전체 관점, 내부 스키마는 물리적 저장 구조를 표현한다. 이 구조로 논리적·물리적 데이터 독립성을 확보한다.

  4. 4.데이터 정의를 프로세스와 제대로 분리하지 않아 사소한 업무 변화에도 데이터 모델을 자주 바꿔야 하는 문제는 데이터 모델링의 어떤 유의점에 해당하는가?
    1. 1. 중복
    2. 2. 비일관성
    3. 3. 단순화
    4. 4. 비유연성
    정답·해설 보기

    정답: 4번. 데이터 모델링의 유의점은 중복(같은 데이터를 여러 곳에 저장), 비유연성(업무 변화에 모델이 쉽게 대응하지 못함), 비일관성(데이터 간 상호 연관 관계가 정의되지 않아 모순 발생)이다.

  5. 5.데이터 모델링의 특징 중 '대상을 애매함 없이 한 가지 의미로만 해석되도록 정확하게 기술한다'는 것은?
    1. 1. 추상화
    2. 2. 단순화
    3. 3. 명확화
    4. 4. 일반화
    정답·해설 보기

    정답: 3번. 모델링의 특징은 추상화(현실 세계를 일정한 형식에 맞춰 표현), 단순화(제한된 표기법·언어로 쉽게 이해하도록 표현), 명확화(애매모호함을 없애고 정확하게 기술)다.

  6. 6.데이터 모델을 구성하는 세 가지 요소에 해당하지 않는 것은?
    1. 1. 업무가 관여하는 어떤 것(Things)
    2. 2. 어떤 것이 가지는 성격(Attributes)
    3. 3. 업무가 관여하는 어떤 것 사이의 관계(Relationships)
    4. 4. 어떤 것을 처리하는 프로그램(Program)
    정답·해설 보기

    정답: 4번. 데이터 모델의 3요소는 대상인 어떤 것(엔터티), 그것의 성격(속성), 그것들 사이의 관계다. 프로그램은 프로세스 쪽 관심사다.

  7. 7.개념 스키마가 바뀌어도 외부 스키마(사용자 관점, 응용 프로그램)에는 영향을 주지 않는 성질은?
    1. 1. 물리적 데이터 독립성
    2. 2. 참조 무결성
    3. 3. 개체 무결성
    4. 4. 논리적 데이터 독립성
    정답·해설 보기

    정답: 4번. 3단계 스키마 구조는 데이터 독립성을 위한 것이다. 논리적 독립성은 개념 스키마 변경이 외부 스키마에 영향을 주지 않는 것이고, 물리적 독립성은 내부 스키마(저장 구조) 변경이 개념 스키마에 영향을 주지 않는 것이다.

  8. 8.추상화 수준이 가장 높고 업무 중심적이며 포괄적인 수준의 모델링으로, 전사적 데이터 모델링이나 EA 수립 때 많이 쓰는 단계는?
    1. 1. 논리적 데이터 모델링
    2. 2. 물리적 데이터 모델링
    3. 3. 개념적 데이터 모델링
    4. 4. 프로세스 모델링
    정답·해설 보기

    정답: 3번. 개념적 모델링은 핵심 엔터티와 관계를 찾아 큰 그림을 그리는 단계다. 논리적 모델링은 키·속성·관계를 정확히 표현하고 정규화하며, 물리적 모델링은 실제 DBMS의 저장 구조와 성능을 고려한다.

엔터티

  1. 9.엔터티의 특징으로 옳지 않은 것은?
    1. 1. 업무에서 관리해야 할 정보여야 한다
    2. 2. 인스턴스를 유일하게 식별할 수 있어야 한다
    3. 3. 인스턴스가 하나만 있어도 엔터티가 될 수 있다
    4. 4. 반드시 속성을 가져야 한다
    정답·해설 보기

    정답: 3번. 엔터티는 업무에 필요하고, 유일한 식별자로 구분되며, 두 개 이상의 인스턴스 집합이어야 하고, 업무 프로세스에서 쓰이며, 속성을 가지고, 다른 엔터티와 관계를 하나 이상 가져야 한다(통계성·코드성 엔터티 등은 예외).

  2. 10.'주문목록', '사원변경이력'처럼 두 개 이상의 부모 엔터티로부터 발생하고, 내용이 자주 바뀌거나 데이터가 계속 늘어나는 엔터티는?
    1. 1. 기본 엔터티
    2. 2. 행위 엔터티
    3. 3. 중심 엔터티
    4. 4. 코드 엔터티
    정답·해설 보기

    정답: 2번. 발생 시점에 따라 기본(키) 엔터티는 다른 엔터티의 영향 없이 독립적으로 생성되고, 중심 엔터티는 기본 엔터티에서 발생해 업무의 중심 역할을 하며, 행위 엔터티는 두 개 이상의 부모에서 발생해 자주 변경된다.

  3. 11.보험회사의 '보험상품'처럼 물리적 형태는 없지만 관리해야 할 개념적 정보를 담은 엔터티는 유무형에 따라 어떻게 분류되는가?
    1. 1. 유형 엔터티
    2. 2. 사건 엔터티
    3. 3. 행위 엔터티
    4. 4. 개념 엔터티
    정답·해설 보기

    정답: 4번. 유형 엔터티는 사원·물품처럼 물리적 형태가 있고, 개념 엔터티는 조직·보험상품처럼 형태 없는 개념이며, 사건 엔터티는 주문·청구처럼 업무 수행 중 발생한다.

  4. 12.엔터티 이름을 정할 때의 원칙으로 적절하지 않은 것은?
    1. 1. 현업에서 실제로 쓰는 업무 용어를 쓴다
    2. 2. 여러 인스턴스를 담으므로 복수형 명사를 쓴다
    3. 3. 약어는 가급적 쓰지 않는다
    4. 4. 모든 엔터티 이름은 유일해야 한다
    정답·해설 보기

    정답: 2번. 엔터티 이름은 업무 용어를 쓰고, 약어를 피하며, 단수 명사를 쓰고, 유일해야 하며, 생성 의미대로 붙인다.

  5. 13.엔터티를 유무형에 따라 분류할 때 '청구', '미납', '주문'처럼 업무를 수행하는 과정에서 발생하는 엔터티는?
    1. 1. 사건 엔터티
    2. 2. 유형 엔터티
    3. 3. 개념 엔터티
    4. 4. 기본 엔터티
    정답·해설 보기

    정답: 1번. 사건 엔터티는 업무 수행 중 발생하며 발생량이 많고 통계 자료로 많이 쓰인다. 유형 엔터티는 사원·물품처럼 물리적 형태가 있고, 개념 엔터티는 보험상품처럼 형태 없는 개념이다.

  6. 14.발생 시점에 따른 엔터티 분류에서 기본(키) 엔터티에 해당하는 것은?
    1. 1. 주문
    2. 2. 주문목록
    3. 3. 사원변경이력
    4. 4. 상품
    정답·해설 보기

    정답: 4번. 기본 엔터티는 다른 엔터티의 영향 없이 독립적으로 생성되는 사원·부서·고객·상품 등이다. 주문·계약 같은 중심 엔터티는 기본 엔터티에서 발생하고, 주문목록·사원변경이력 같은 행위 엔터티는 두 개 이상의 부모 엔터티에서 발생한다.

  7. 15.엔터티 '과목'의 인스턴스(Instance)로 알맞은 것은?
    1. 1. '과목명'
    2. 2. '데이터베이스'
    3. 3. '학점'
    4. 4. '수강'
    정답·해설 보기

    정답: 2번. 인스턴스는 엔터티에 속하는 개별 대상 하나하나다. '과목명'과 '학점'은 과목의 속성이고, '수강'은 학생과 과목 사이의 관계나 교차 엔터티에 해당한다.

  8. 16.발생 시점에 따른 엔터티 분류에서 기본 엔터티로부터 발생해 업무의 중심 역할을 하며, 데이터 양이 많고 다른 엔터티와의 관계로 행위 엔터티를 만들어 내는 것은?
    1. 1. 기본 엔터티
    2. 2. 행위 엔터티
    3. 3. 개념 엔터티
    4. 4. 중심 엔터티
    정답·해설 보기

    정답: 4번. 주문·계약·청구 같은 중심 엔터티는 고객·상품 같은 기본 엔터티에서 발생하고, 주문목록 같은 행위 엔터티를 만들어 낸다. 개념 엔터티는 유무형에 따른 분류다.

  9. 17.엔터티는 다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다는 원칙의 예외로, 관계를 생략하고 표현하는 경우가 많은 엔터티는?
    1. 1. 주문 엔터티
    2. 2. 주문상세 엔터티
    3. 3. 부서 엔터티
    4. 4. 트랜잭션 로그 엔터티
    정답·해설 보기

    정답: 4번. 통계를 위한 엔터티, 코드를 위한 엔터티, 시스템 내부 필요(로그 등)에 의한 엔터티는 관계를 생략해 표현하는 경우가 많다. 나머지는 업무상 다른 엔터티와 분명한 관계를 가진다.

속성

  1. 18.'주문 총금액'을 주문상세의 금액을 모두 더해 계산한 값으로 둘 때, 이 속성의 분류는?
    1. 1. 기본 속성
    2. 2. 설계 속성
    3. 3. 파생 속성
    4. 4. 복합 속성
    정답·해설 보기

    정답: 3번. 파생 속성은 다른 속성으로부터 계산되거나 변형된 값이다. 데이터 정합성을 위해 가급적 적게 정의하는 것이 좋다.

  2. 19.업무에는 원래 없지만 설계하면서 식별이나 코드 관리를 위해 새로 만든 '주문일련번호' 같은 속성은?
    1. 1. 기본 속성
    2. 2. 파생 속성
    3. 3. 다중값 속성
    4. 4. 설계 속성
    정답·해설 보기

    정답: 4번. 설계 속성은 업무상 필요하지는 않지만 모델링 과정에서 규칙화나 식별을 위해 새로 만든 속성이다. 기본 속성은 업무에서 추출한 본래 속성이다.

  3. 20.'학점' 속성이 A, B, C, D, F 값만 가질 수 있도록 정한 것처럼, 각 속성이 가질 수 있는 값의 범위를 무엇이라 하는가?
    1. 1. 인스턴스
    2. 2. 도메인
    3. 3. 카디널리티
    4. 4. 식별자
    정답·해설 보기

    정답: 2번. 도메인은 속성이 가질 수 있는 값의 범위로, 데이터 타입과 크기, 제약 조건을 포함한다.

  4. 21.엔터티 구성 방식에 따른 속성 분류에서 다른 엔터티와의 관계에서 포함된 속성은?
    1. 1. 기본키(PK) 속성
    2. 2. 일반 속성
    3. 3. 파생 속성
    4. 4. 외래키(FK) 속성
    정답·해설 보기

    정답: 4번. 구성 방식에 따라 엔터티를 식별하는 기본키 속성, 다른 엔터티와의 관계에서 포함된 외래키 속성, 그 밖의 일반 속성으로 나눈다. 파생 속성은 특성에 따른 분류다.

  5. 22.'주소' 속성을 시·구·동처럼 여러 세부 속성으로 나눌 수 있을 때, 이 속성은?
    1. 1. 단순 속성
    2. 2. 단일값 속성
    3. 3. 다중값 속성
    4. 4. 복합 속성
    정답·해설 보기

    정답: 4번. 복합 속성은 여러 세부 속성으로 나눌 수 있는 속성이고, 단순 속성은 나이처럼 더 나눌 수 없는 속성이다. 다중값 속성은 하나의 인스턴스에 여러 값이 들어가는 속성이다.

  6. 23.속성 이름을 정하는 원칙으로 적절하지 않은 것은?
    1. 1. 해당 업무에서 실제로 쓰는 이름을 쓴다
    2. 2. 약어 사용은 가급적 제한한다
    3. 3. 의미가 잘 드러나도록 '고객이 주문한 날짜'처럼 서술식으로 짓는다
    4. 4. 전체 데이터 모델에서 유일하도록 짓는다
    정답·해설 보기

    정답: 3번. 속성 이름은 업무 용어를 쓰고, 서술식 이름을 쓰지 않으며, 약어를 제한하고, 전체 모델에서 유일하게 짓는 것이 원칙이다. '주문일자'처럼 명사형으로 짓는다.

  7. 24.정규화된 데이터 모델에서 하나의 인스턴스가 가지는 하나의 속성은 몇 개의 속성값을 가지는가?
    1. 1. 두 개 이상
    2. 2. 한 개
    3. 3. 인스턴스 수만큼
    4. 4. 제한이 없다
    정답·해설 보기

    정답: 2번. 한 인스턴스의 한 속성은 하나의 값만 가진다. 여러 값을 가지는 다중값 속성이 있으면 제1정규화로 별도 엔터티로 분리한다.

  8. 25.업무를 분석하면서 바로 정의한 '제품명', '단가'처럼 업무로부터 추출한 일반적인 속성은 특성에 따라 어떻게 분류되는가?
    1. 1. 설계 속성
    2. 2. 파생 속성
    3. 3. 기본 속성
    4. 4. 외래키 속성
    정답·해설 보기

    정답: 3번. 특성에 따라 업무에서 바로 나온 기본 속성, 설계하면서 새로 만든 설계 속성(코드·일련번호), 다른 속성으로 계산한 파생 속성으로 나눈다. 외래키 속성은 구성 방식에 따른 분류다.

관계

  1. 26.'모든 주문은 반드시 한 명의 고객에 의해 이루어진다'처럼 관계에 반드시 참여해야 하는지를 나타내는 관계 표기 요소는?
    1. 1. 관계명
    2. 2. 관계차수(카디널리티)
    3. 3. 관계 선택사양(필수·선택)
    4. 4. 관계 유형(존재·행위)
    정답·해설 보기

    정답: 3번. 관계 표기법은 관계명, 관계차수(1:1, 1:M, M:N), 관계 선택사양(필수 참여·선택 참여)으로 구성된다.

  2. 27.'고객이 상품을 주문한다'처럼 엔터티 사이의 어떤 행위가 있을 때 맺어지는 관계는?
    1. 1. 존재에 의한 관계
    2. 2. 자기 참조 관계
    3. 3. 행위에 의한 관계
    4. 4. 상속 관계
    정답·해설 보기

    정답: 3번. 부서와 사원처럼 단순히 소속되어 존재하는 것은 존재에 의한 관계이고, 고객과 주문처럼 행위가 발생하면서 생기는 것은 행위에 의한 관계다.

  3. 28.논리 모델에서 '학생'과 '과목' 사이의 M:N 관계를 해소하는 일반적인 방법은?
    1. 1. 두 엔터티 사이에 '수강' 같은 교차(관계) 엔터티를 두어 1:M 관계 두 개로 바꾼다
    2. 2. 두 엔터티를 하나로 합치고 학생별 과목 정보를 반복 속성으로 둔다
    3. 3. 관계를 삭제하고 두 엔터티를 서로 참조하지 않는 독립 엔터티로 둔다
    4. 4. 학생 엔터티에 과목 식별자를 과목1·과목2처럼 여러 속성으로 추가한다
    정답·해설 보기

    정답: 1번. M:N 관계는 관계형 테이블로 직접 구현할 수 없으므로 교차 엔터티를 만들어 양쪽과 각각 1:M 관계를 맺게 한다. 반복 속성은 제1정규형 위반이다.

  4. 29.엔터티 안의 개별 인스턴스가 다른 엔터티의 인스턴스와 각각 관계를 맺는 것을 무엇이라 하며, 그 집합을 관계라고 하는가?
    1. 1. 관계 페어링
    2. 2. 관계 차수
    3. 3. 관계 선택사양
    4. 4. 관계명
    정답·해설 보기

    정답: 1번. 관계 페어링은 인스턴스 단위의 개별 관계이고, 이 페어링의 집합을 논리적으로 표현한 것이 관계다.

  5. 30.두 엔터티 사이에 관계를 정의할지 판단할 때 확인하는 사항으로 적절하지 않은 것은?
    1. 1. 두 엔터티 사이에 관심 있는 연관 규칙이 있는가
    2. 2. 두 엔터티 사이에 정보의 조합이 발생하는가
    3. 3. 두 엔터티의 속성 개수가 같은가
    4. 4. 업무 기술서에 관계를 나타내는 동사가 있는가
    정답·해설 보기

    정답: 3번. 관계 정의 시 연관 규칙, 정보의 조합, 업무 기술서·장표에 관계 연결 규칙이 서술되어 있는지, 관계를 연결하는 동사가 있는지를 확인한다.

  6. 31.관계를 읽을 때 '각각의 사원은 여러 프로젝트에 ( ) 참여한다'처럼 선택 참여를 나타내는 표현으로 알맞은 것은?
    1. 1. 항상
    2. 2. 때때로(가끔)
    3. 3. 반드시
    4. 4. 유일하게
    정답·해설 보기

    정답: 2번. 관계는 '각각의(기준 엔터티) … 관계 차수 … 선택사양 … 관계명' 순서로 읽는다. 필수 참여는 '항상', 선택 참여는 '때때로'로 읽는다.

  7. 32.두 엔터티 사이에서 관계에 참여하는 인스턴스의 수가 1:1, 1:M, M:N 중 무엇인지를 나타내는 것은?
    1. 1. 관계명
    2. 2. 관계 차수(Cardinality)
    3. 3. 관계 선택사양(Optionality)
    4. 4. 관계 페어링
    정답·해설 보기

    정답: 2번. 관계 차수는 한 엔터티의 인스턴스가 다른 엔터티의 인스턴스 몇 개와 관계를 맺는지를 나타낸다. 선택사양은 반드시 참여하는지 여부, 관계명은 관계의 이름이다.

  8. 33.UML 클래스 다이어그램은 관계를 연관 관계(실선)와 의존 관계(점선)로 나눈다. ERD에서 연관 관계에 대응하는 것은?
    1. 1. 존재에 의한 관계
    2. 2. 행위에 의한 관계
    3. 3. 상호배타적 관계
    4. 4. 재귀 관계
    정답·해설 보기

    정답: 1번. ERD는 관계를 존재에 의한 관계(예: 부서와 사원)와 행위에 의한 관계(예: 고객과 주문)로 나눈다. UML의 연관 관계는 존재에 의한 관계, 의존 관계는 행위에 의한 관계에 대응한다.

  9. 34.관계명을 정하는 원칙으로 적절하지 않은 것은?
    1. 1. 현재형으로 표현한다
    2. 2. '관계된다', '관련이 있다'처럼 넓은 뜻의 동사를 쓴다
    3. 3. 애매한 동사는 피한다
    4. 4. 관계에 참여하는 양쪽 엔터티 관점에서 각각 이름을 붙인다
    정답·해설 보기

    정답: 2번. 관계명은 '소속된다', '주문한다'처럼 구체적인 동사를 현재형으로 쓰고, 양쪽 방향으로 각각 붙인다. '관계된다', '이다' 같은 애매한 동사는 피한다.

식별자

  1. 35.주식별자의 특징 중 '주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소한이어야 한다'는 것은?
    1. 1. 최소성
    2. 2. 유일성
    3. 3. 불변성
    4. 4. 존재성
    정답·해설 보기

    정답: 1번. 주식별자는 유일성(인스턴스를 유일하게 구분), 최소성(최소 속성 수), 불변성(값이 자주 바뀌지 않음), 존재성(반드시 값이 있음, NULL 불가)을 만족해야 한다.

  2. 36.부모 엔터티와의 관계를 통해 자식 엔터티로 전달되어, 자식 엔터티에서 외래키(FK) 역할을 하는 식별자는?
    1. 1. 내부 식별자
    2. 2. 외부 식별자
    3. 3. 보조 식별자
    4. 4. 대체 식별자
    정답·해설 보기

    정답: 2번. 내부 식별자는 엔터티 내부에서 스스로 만들어지고, 외부 식별자는 다른 엔터티와의 관계로 받아 온 식별자로 자식 쪽에서 외래키가 된다.

  3. 37.부모 엔터티의 주식별자를 자식 엔터티에서 주식별자가 아닌 일반 속성(외래키)으로만 받는 비식별 관계로 설정하기에 알맞은 경우는?
    1. 1. 자식이 반드시 부모에 종속되어 부모 식별자가 자식 식별자의 일부여야 할 때
    2. 2. 부모의 주식별자만으로 자식의 주식별자를 구성해야 할 때
    3. 3. 부모와 자식의 주식별자를 완전히 같게 두어야 할 때
    4. 4. 자식이 부모 없이도 생성될 수 있어 부모와 약하게 연결해야 할 때
    정답·해설 보기

    정답: 4번. 비식별 관계는 약한 종속 관계로, 부모 없이 자식이 생성될 수 있거나 여러 부모 중 하나와만 관계를 맺거나 자식 식별자를 독립적으로 두고 싶을 때 쓴다. 부모 식별자가 자식 주식별자의 일부가 되면 식별 관계다.

  4. 38.업무에 원래 존재하는 본질 식별자 대신 일련번호 같은 인조 식별자를 주식별자로 쓸 때 주의할 점으로 가장 적절한 것은?
    1. 1. 인조 식별자는 값이 자주 바뀌어 불변성을 만족하지 못한다
    2. 2. 인조 식별자는 유일성을 보장할 수 없다
    3. 3. 본질 속성의 중복 입력을 막지 못할 수 있어 별도의 유니크 제약이나 인덱스가 필요할 수 있다
    4. 4. 인조 식별자는 외래키로 참조할 수 없다
    정답·해설 보기

    정답: 3번. 인조 식별자는 값이 단순하고 바뀌지 않아 편리하지만, 본질 식별자 조합의 중복을 막지 못해 중복 데이터가 생길 수 있고 이를 막기 위한 인덱스가 추가로 필요할 수 있다.

  5. 39.인스턴스를 유일하게 식별할 수는 있지만 대표성이 없어 다른 엔터티와의 참조 관계 연결에는 쓰지 않는 식별자는?
    1. 1. 보조 식별자
    2. 2. 주식별자
    3. 3. 외부 식별자
    4. 4. 복합 식별자
    정답·해설 보기

    정답: 1번. 대표성 여부에 따라 주식별자와 보조 식별자로 나눈다. 주식별자는 유일성·최소성에 대표성까지 갖춰 참조 관계 연결에 쓰인다.

  6. 40.부모-자식-손자로 이어지는 관계를 모두 식별 관계로만 설계했을 때 생기기 쉬운 문제는?
    1. 1. 자식 엔터티가 부모 없이 생성될 수 있다
    2. 2. 하위로 갈수록 주식별자 속성 수가 늘어나 조인 조건이 복잡해진다
    3. 3. 주식별자가 단일 속성으로 줄어든다
    4. 4. 외래키가 일반 속성으로만 존재해 무결성이 약해진다
    정답·해설 보기

    정답: 2번. 식별 관계는 부모의 주식별자가 자식의 주식별자에 계속 상속되므로 하위 엔터티로 갈수록 주식별자 속성이 늘어나 SQL 조인이 복잡해진다. 그래서 적절히 비식별 관계를 섞는다.

  7. 41.주식별자를 정할 때의 기준으로 적절하지 않은 것은?
    1. 1. 해당 업무에서 자주 쓰는 속성을 주식별자로 정한다
    2. 2. 주식별자를 구성하는 속성 수가 너무 많아지지 않게 한다
    3. 3. 복합 식별자가 너무 길면 새로운 인조 식별자를 검토한다
    4. 4. 의미가 잘 드러나도록 '고객명'처럼 이름으로 기술되는 속성을 주식별자로 쓴다
    정답·해설 보기

    정답: 4번. 이름처럼 기술되는 속성은 같은 값이 생기거나 바뀔 수 있어 주식별자로 피한다. 업무에서 자주 쓰는 속성을 쓰고, 속성 수가 많으면 인조 식별자를 검토한다.

  8. 42.주식별자의 특징 중 '한 번 정해진 주식별자의 값은 바뀌지 않아야 한다'는 것은?
    1. 1. 불변성
    2. 2. 유일성
    3. 3. 최소성
    4. 4. 존재성
    정답·해설 보기

    정답: 1번. 주식별자는 유일성(인스턴스를 유일하게 구분), 최소성(최소한의 속성), 불변성(값이 바뀌지 않음), 존재성(반드시 값이 있음)을 만족해야 한다.

정규화와 성능 모델링

  1. 43.고객 테이블의 '연락처' 칸 하나에 '010-1111-2222, 02-333-4444'처럼 여러 값을 함께 저장했다. 이 테이블이 가장 먼저 만족하지 못하는 정규형은?
    1. 1. 제2정규형
    2. 2. 제1정규형
    3. 3. 제3정규형
    4. 4. 보이스-코드 정규형
    정답·해설 보기

    정답: 2번. 제1정규형은 모든 속성이 원자값(더 나눌 수 없는 하나의 값)을 가져야 한다. 반복되는 값은 별도 엔터티로 분리한다.

  2. 44.주문상세 테이블의 주식별자가 (주문번호, 상품번호)인데, '상품명'이 상품번호에만 종속된다. 원자값 조건은 만족할 때, 이 테이블이 가장 먼저 만족하지 못하는 정규형은?
    1. 1. 제1정규형
    2. 2. 제3정규형
    3. 3. 제4정규형
    4. 4. 제2정규형
    정답·해설 보기

    정답: 4번. 주식별자의 일부에만 종속되는 부분 함수 종속이 있으면 제2정규형 위반이다. 상품명은 상품 엔터티로 분리한다.

  3. 45.사원 테이블에서 사원번호 → 부서번호, 부서번호 → 부서명 종속이 함께 있다. 주식별자는 사원번호 하나이고 모든 속성이 원자값일 때, 이 테이블이 가장 먼저 만족하지 못하는 정규형은?
    1. 1. 제1정규형
    2. 2. 제2정규형
    3. 3. 제4정규형
    4. 4. 제3정규형
    정답·해설 보기

    정답: 4번. 주식별자가 아닌 속성을 거쳐 다른 속성이 결정되는 이행 함수 종속이 있으면 제3정규형 위반이다. 부서명은 부서 엔터티로 분리한다.

  4. 46.반정규화를 적용하기 전에 먼저 검토해야 할 것으로 가장 적절한 것은?
    1. 1. 모든 테이블을 하나로 합칠 수 있는지
    2. 2. 정규화를 처음부터 다시 할 수 있는지
    3. 3. 뷰, 인덱스, 클러스터링, 응용 프로그램 등 다른 방법으로 성능 문제를 해결할 수 있는지
    4. 4. 외래키 제약조건을 모두 제거할 수 있는지
    정답·해설 보기

    정답: 3번. 반정규화는 데이터 무결성을 해칠 수 있으므로 대상을 조사한 뒤, 뷰·클러스터링·인덱스·응용 프로그램 조정 같은 다른 방법을 먼저 검토하고 그래도 안 될 때 적용한다.

  5. 47.한 테이블의 컬럼 중 자주 조회되는 컬럼과 거의 쓰지 않는 컬럼을 별도 테이블로 나누는 반정규화 기법은?
    1. 1. 수직 분할
    2. 2. 수평 분할
    3. 3. 테이블 병합
    4. 4. 중복 테이블 추가
    정답·해설 보기

    정답: 1번. 수직 분할은 컬럼 단위로, 수평 분할은 행 단위(예: 기간별)로 테이블을 나눈다.

  6. 48.슈퍼타입과 서브타입을 물리 테이블로 바꿀 때, 전체를 하나의 테이블로 통합하는 방식(All in One, Single Type)이 유리한 경우는?
    1. 1. 서브타입별로 개별 처리가 대부분이고 데이터 양이 매우 많을 때
    2. 2. 데이터 양이 적고 슈퍼·서브타입을 함께 조회하는 경우가 많을 때
    3. 3. 서브타입마다 속성이 완전히 달라 NULL이 대량으로 생길 때
    4. 4. 서브타입을 독립적인 테이블로 관리해야 할 때
    정답·해설 보기

    정답: 2번. 하나로 통합하면 조인이 줄어 함께 조회할 때 유리하지만, 서브타입별 속성이 NULL로 많이 남을 수 있다. 개별 처리가 많으면 서브타입별 테이블(OneToOne), 슈퍼+서브 각각(Plus) 방식을 쓴다.

  7. 49.주문 테이블을 월별로 나누어 저장해 특정 기간 조회 성능을 높이려 한다. 알맞은 파티셔닝 방식은?
    1. 1. List 파티셔닝
    2. 2. Hash 파티셔닝
    3. 3. Composite 파티셔닝만
    4. 4. Range 파티셔닝
    정답·해설 보기

    정답: 4번. Range는 날짜 같은 값의 범위로, List는 지역 코드처럼 특정 값 목록으로, Hash는 해시 함수로 데이터를 나눈다.

  8. 50.제3정규형을 만족하더라도 후보키가 아닌 결정자가 남아 있으면 이를 제거해 '모든 결정자가 후보키'가 되게 하는 정규형은?
    1. 1. 제2정규형
    2. 2. BCNF(보이스-코드 정규형)
    3. 3. 제4정규형
    4. 4. 제5정규형
    정답·해설 보기

    정답: 2번. BCNF는 모든 결정자가 후보키여야 한다. 제4정규형은 다치 종속, 제5정규형은 조인 종속을 제거한다.

  9. 51.한 사원이 여러 기술과 여러 자격증을 서로 관계없이 가질 때 (사원, 기술, 자격증)을 한 테이블에 두면 같은 조합이 불필요하게 반복된다. 이 다치 종속을 제거하는 정규형은?
    1. 1. 제2정규형
    2. 2. 제3정규형
    3. 3. 제4정규형
    4. 4. BCNF
    정답·해설 보기

    정답: 3번. 서로 독립적인 다치 종속(사원 →→ 기술, 사원 →→ 자격증)을 (사원, 기술)과 (사원, 자격증)으로 나누는 것이 제4정규화다.

  10. 52.조회할 때마다 주문상세의 금액을 모두 더해 구하던 '주문 총금액'을 주문 테이블에 미리 저장해 두는 반정규화 기법은?
    1. 1. 파생 컬럼 추가
    2. 2. 수평 분할
    3. 3. 테이블 병합
    4. 4. 이력 테이블 추가
    정답·해설 보기

    정답: 1번. 계산에 드는 성능 부담을 줄이려고 계산 결과를 미리 저장하는 컬럼을 추가하는 것이 파생 컬럼 추가다. 원본 값이 바뀔 때 함께 갱신해야 무결성이 유지된다.

모델과 SQL (조인·트랜잭션·NULL)

  1. 53.다음 EMP 테이블에서 SELECT COUNT(*), COUNT(COMM) FROM EMP의 결과는?
    [EMP]
    EMPNO ENAME DEPTNO  SAL  MGR  COMM
        1 KIM       10  300 NULL  NULL
        2 LEE       10  200    1    50
        3 PARK      20  250    1  NULL
        4 CHOI      20  150    3    30
        5 JUNG      30  100    3  NULL
        6 KANG    NULL  180    1  NULL
    1. 1. 2, 2
    2. 2. 6, 6
    3. 3. 6, 2
    4. 4. 4, 2
    정답·해설 보기

    정답: 3번. COUNT(*)는 NULL 여부와 관계없이 모든 행을 세므로 6, COUNT(COMM)은 COMM이 NULL이 아닌 행만 세므로 2다.

  2. 54.계좌 이체에서 출금과 입금이 모두 반영되거나 하나도 반영되지 않아야 한다는 트랜잭션의 특성은?
    1. 1. 원자성(Atomicity)
    2. 2. 일관성(Consistency)
    3. 3. 고립성(Isolation)
    4. 4. 지속성(Durability)
    정답·해설 보기

    정답: 1번. 원자성은 트랜잭션 안의 연산이 모두 성공하거나 모두 취소되어야 한다는 성질이다. 일관성은 실행 전후 데이터가 일관된 상태, 고립성은 다른 트랜잭션의 간섭 배제, 지속성은 완료된 결과의 영구 보존이다.

  3. 55.한 트랜잭션에서 같은 조건으로 두 번 조회했는데, 그사이 다른 트랜잭션이 행을 새로 입력해 두 번째 조회에 없던 행이 나타났다. 이 현상은?
    1. 1. Dirty Read
    2. 2. Phantom Read
    3. 3. Non-Repeatable Read
    4. 4. Lost Update
    정답·해설 보기

    정답: 2번. Dirty Read는 커밋되지 않은 데이터를 읽는 것, Non-Repeatable Read는 같은 행을 다시 읽었을 때 값이 바뀐 것, Phantom Read는 없던 행이 새로 나타나는 것이다.

  4. 56.NULL에 대한 설명으로 옳은 것은?
    1. 1. NULL은 아직 정해지지 않은 값으로, 0이나 공백 문자와 다르다
    2. 2. NULL = NULL 비교 결과는 TRUE이다
    3. 3. NULL에 숫자를 더하면 그 숫자가 된다
    4. 4. NULL은 집계 함수 계산에 0으로 포함된다
    정답·해설 보기

    정답: 1번. NULL은 값이 없거나 알 수 없음을 뜻한다. NULL과의 비교는 UNKNOWN, 산술 연산 결과는 NULL이며, 집계 함수는 NULL을 제외하고 계산한다.

  5. 57.'주문은 개인고객 또는 법인고객 중 하나와만 관계를 맺는다'처럼 여러 엔터티 중 하나와만 관계를 가지는 것을 무엇이라 하는가?
    1. 1. 재귀(자기 참조) 관계
    2. 2. 식별 관계
    3. 3. 상호배타적(Exclusive OR) 관계
    4. 4. M:N 관계
    정답·해설 보기

    정답: 3번. 상호배타적 관계는 두 개 이상의 관계 중 하나만 맺을 수 있는 관계다. 재귀 관계는 사원-관리자처럼 같은 엔터티 안에서 맺는 관계다.

  6. 58.커밋된 데이터만 읽게 해 Dirty Read는 막지만, Non-Repeatable Read와 Phantom Read는 생길 수 있는 트랜잭션 격리 수준은?
    1. 1. READ UNCOMMITTED
    2. 2. REPEATABLE READ
    3. 3. READ COMMITTED
    4. 4. SERIALIZABLE
    정답·해설 보기

    정답: 3번. READ UNCOMMITTED는 Dirty Read까지 허용하고, READ COMMITTED는 Dirty Read를 막는다. REPEATABLE READ는 Non-Repeatable Read까지 막고, SERIALIZABLE은 Phantom Read까지 막는다. Oracle의 기본 격리 수준은 READ COMMITTED다.

  7. 59.트랜잭션이 성공적으로 완료(커밋)되면 그 결과가 장애가 생겨도 데이터베이스에 영구히 남아야 한다는 특성은?
    1. 1. 지속성(Durability)
    2. 2. 원자성(Atomicity)
    3. 3. 일관성(Consistency)
    4. 4. 고립성(Isolation)
    정답·해설 보기

    정답: 1번. ACID 중 원자성은 모두 반영되거나 하나도 반영되지 않는 것, 일관성은 실행 전후에 모순이 없는 것, 고립성은 다른 트랜잭션의 간섭을 받지 않는 것, 지속성은 커밋된 결과가 영구히 남는 것이다.

  8. 60.다음 EMP 테이블에서 SELECT COUNT(*) FROM EMP WHERE COMM <> 50의 결과는?
    [EMP]
    EMPNO ENAME DEPTNO  SAL  MGR  COMM
        1 KIM       10  300 NULL  NULL
        2 LEE       10  200    1    50
        3 PARK      20  250    1  NULL
        4 CHOI      20  150    3    30
        5 JUNG      30  100    3  NULL
        6 KANG    NULL  180    1  NULL
    1. 1. 1
    2. 2. 2
    3. 3. 4
    4. 4. 5
    정답·해설 보기

    정답: 1번. COMM이 NULL인 행은 NULL <> 50 비교가 UNKNOWN이라 제외된다. 50이 아니면서 NULL도 아닌 CHOI(30) 하나만 남는다.