데이터 모델링의 이해 문제·해설 모음
SQLD SQL 개발자 · 60문항 · 해설은 눌러서 펼쳐요
채점하면서 랜덤 10문항 풀기데이터 모델링의 개념
- 1.데이터 모델링 단계 중 정규화를 수행하고, 키·속성·관계를 정확하게 표현해 재사용성이 가장 높은 모델을 만드는 단계는?
- 1. 논리적 데이터 모델링
- 2. 개념적 데이터 모델링
- 3. 물리적 데이터 모델링
- 4. 요구사항 분석
정답·해설 보기
정답: 1번. 개념적 모델링은 핵심 엔터티와 관계를 추상적으로 정의하고, 논리적 모델링은 정규화와 키·속성·관계를 상세히 정의한다. 물리적 모델링은 특정 DBMS의 테이블·인덱스·저장 구조를 설계한다.
- 2.데이터 모델링의 세 가지 관점 중 업무가 실제로 하는 일과 그 처리 방법(How)에 초점을 두는 것은?
- 1. 데이터 관점
- 2. 프로세스 관점
- 3. 데이터와 프로세스의 상관 관점
- 4. 물리 관점
정답·해설 보기
정답: 2번. 데이터 관점은 업무가 어떤 데이터와 관련 있는지(What), 프로세스 관점은 업무가 실제로 하는 일과 처리 방법(How), 상관 관점은 업무 처리 방법에 따라 데이터가 어떤 영향을 받는지(CRUD)를 본다.
- 3.ANSI-SPARC 3단계 스키마 구조에서 모든 사용자의 관점을 통합해 조직 전체 관점에서 데이터를 정의한 것은?
- 1. 개념 스키마
- 2. 외부 스키마
- 3. 내부 스키마
- 4. 물리 스키마
정답·해설 보기
정답: 1번. 외부 스키마는 사용자별 관점, 개념 스키마는 통합된 조직 전체 관점, 내부 스키마는 물리적 저장 구조를 표현한다. 이 구조로 논리적·물리적 데이터 독립성을 확보한다.
- 4.데이터 정의를 프로세스와 제대로 분리하지 않아 사소한 업무 변화에도 데이터 모델을 자주 바꿔야 하는 문제는 데이터 모델링의 어떤 유의점에 해당하는가?
- 1. 중복
- 2. 비일관성
- 3. 단순화
- 4. 비유연성
정답·해설 보기
정답: 4번. 데이터 모델링의 유의점은 중복(같은 데이터를 여러 곳에 저장), 비유연성(업무 변화에 모델이 쉽게 대응하지 못함), 비일관성(데이터 간 상호 연관 관계가 정의되지 않아 모순 발생)이다.
- 5.데이터 모델링의 특징 중 '대상을 애매함 없이 한 가지 의미로만 해석되도록 정확하게 기술한다'는 것은?
- 1. 추상화
- 2. 단순화
- 3. 명확화
- 4. 일반화
정답·해설 보기
정답: 3번. 모델링의 특징은 추상화(현실 세계를 일정한 형식에 맞춰 표현), 단순화(제한된 표기법·언어로 쉽게 이해하도록 표현), 명확화(애매모호함을 없애고 정확하게 기술)다.
- 6.데이터 모델을 구성하는 세 가지 요소에 해당하지 않는 것은?
- 1. 업무가 관여하는 어떤 것(Things)
- 2. 어떤 것이 가지는 성격(Attributes)
- 3. 업무가 관여하는 어떤 것 사이의 관계(Relationships)
- 4. 어떤 것을 처리하는 프로그램(Program)
정답·해설 보기
정답: 4번. 데이터 모델의 3요소는 대상인 어떤 것(엔터티), 그것의 성격(속성), 그것들 사이의 관계다. 프로그램은 프로세스 쪽 관심사다.
- 7.개념 스키마가 바뀌어도 외부 스키마(사용자 관점, 응용 프로그램)에는 영향을 주지 않는 성질은?
- 1. 물리적 데이터 독립성
- 2. 참조 무결성
- 3. 개체 무결성
- 4. 논리적 데이터 독립성
정답·해설 보기
정답: 4번. 3단계 스키마 구조는 데이터 독립성을 위한 것이다. 논리적 독립성은 개념 스키마 변경이 외부 스키마에 영향을 주지 않는 것이고, 물리적 독립성은 내부 스키마(저장 구조) 변경이 개념 스키마에 영향을 주지 않는 것이다.
- 8.추상화 수준이 가장 높고 업무 중심적이며 포괄적인 수준의 모델링으로, 전사적 데이터 모델링이나 EA 수립 때 많이 쓰는 단계는?
- 1. 논리적 데이터 모델링
- 2. 물리적 데이터 모델링
- 3. 개념적 데이터 모델링
- 4. 프로세스 모델링
정답·해설 보기
정답: 3번. 개념적 모델링은 핵심 엔터티와 관계를 찾아 큰 그림을 그리는 단계다. 논리적 모델링은 키·속성·관계를 정확히 표현하고 정규화하며, 물리적 모델링은 실제 DBMS의 저장 구조와 성능을 고려한다.
엔터티
- 9.엔터티의 특징으로 옳지 않은 것은?
- 1. 업무에서 관리해야 할 정보여야 한다
- 2. 인스턴스를 유일하게 식별할 수 있어야 한다
- 3. 인스턴스가 하나만 있어도 엔터티가 될 수 있다
- 4. 반드시 속성을 가져야 한다
정답·해설 보기
정답: 3번. 엔터티는 업무에 필요하고, 유일한 식별자로 구분되며, 두 개 이상의 인스턴스 집합이어야 하고, 업무 프로세스에서 쓰이며, 속성을 가지고, 다른 엔터티와 관계를 하나 이상 가져야 한다(통계성·코드성 엔터티 등은 예외).
- 10.'주문목록', '사원변경이력'처럼 두 개 이상의 부모 엔터티로부터 발생하고, 내용이 자주 바뀌거나 데이터가 계속 늘어나는 엔터티는?
- 1. 기본 엔터티
- 2. 행위 엔터티
- 3. 중심 엔터티
- 4. 코드 엔터티
정답·해설 보기
정답: 2번. 발생 시점에 따라 기본(키) 엔터티는 다른 엔터티의 영향 없이 독립적으로 생성되고, 중심 엔터티는 기본 엔터티에서 발생해 업무의 중심 역할을 하며, 행위 엔터티는 두 개 이상의 부모에서 발생해 자주 변경된다.
- 11.보험회사의 '보험상품'처럼 물리적 형태는 없지만 관리해야 할 개념적 정보를 담은 엔터티는 유무형에 따라 어떻게 분류되는가?
- 1. 유형 엔터티
- 2. 사건 엔터티
- 3. 행위 엔터티
- 4. 개념 엔터티
정답·해설 보기
정답: 4번. 유형 엔터티는 사원·물품처럼 물리적 형태가 있고, 개념 엔터티는 조직·보험상품처럼 형태 없는 개념이며, 사건 엔터티는 주문·청구처럼 업무 수행 중 발생한다.
- 12.엔터티 이름을 정할 때의 원칙으로 적절하지 않은 것은?
- 1. 현업에서 실제로 쓰는 업무 용어를 쓴다
- 2. 여러 인스턴스를 담으므로 복수형 명사를 쓴다
- 3. 약어는 가급적 쓰지 않는다
- 4. 모든 엔터티 이름은 유일해야 한다
정답·해설 보기
정답: 2번. 엔터티 이름은 업무 용어를 쓰고, 약어를 피하며, 단수 명사를 쓰고, 유일해야 하며, 생성 의미대로 붙인다.
- 13.엔터티를 유무형에 따라 분류할 때 '청구', '미납', '주문'처럼 업무를 수행하는 과정에서 발생하는 엔터티는?
- 1. 사건 엔터티
- 2. 유형 엔터티
- 3. 개념 엔터티
- 4. 기본 엔터티
정답·해설 보기
정답: 1번. 사건 엔터티는 업무 수행 중 발생하며 발생량이 많고 통계 자료로 많이 쓰인다. 유형 엔터티는 사원·물품처럼 물리적 형태가 있고, 개념 엔터티는 보험상품처럼 형태 없는 개념이다.
- 14.발생 시점에 따른 엔터티 분류에서 기본(키) 엔터티에 해당하는 것은?
- 1. 주문
- 2. 주문목록
- 3. 사원변경이력
- 4. 상품
정답·해설 보기
정답: 4번. 기본 엔터티는 다른 엔터티의 영향 없이 독립적으로 생성되는 사원·부서·고객·상품 등이다. 주문·계약 같은 중심 엔터티는 기본 엔터티에서 발생하고, 주문목록·사원변경이력 같은 행위 엔터티는 두 개 이상의 부모 엔터티에서 발생한다.
- 15.엔터티 '과목'의 인스턴스(Instance)로 알맞은 것은?
- 1. '과목명'
- 2. '데이터베이스'
- 3. '학점'
- 4. '수강'
정답·해설 보기
정답: 2번. 인스턴스는 엔터티에 속하는 개별 대상 하나하나다. '과목명'과 '학점'은 과목의 속성이고, '수강'은 학생과 과목 사이의 관계나 교차 엔터티에 해당한다.
- 16.발생 시점에 따른 엔터티 분류에서 기본 엔터티로부터 발생해 업무의 중심 역할을 하며, 데이터 양이 많고 다른 엔터티와의 관계로 행위 엔터티를 만들어 내는 것은?
- 1. 기본 엔터티
- 2. 행위 엔터티
- 3. 개념 엔터티
- 4. 중심 엔터티
정답·해설 보기
정답: 4번. 주문·계약·청구 같은 중심 엔터티는 고객·상품 같은 기본 엔터티에서 발생하고, 주문목록 같은 행위 엔터티를 만들어 낸다. 개념 엔터티는 유무형에 따른 분류다.
- 17.엔터티는 다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다는 원칙의 예외로, 관계를 생략하고 표현하는 경우가 많은 엔터티는?
- 1. 주문 엔터티
- 2. 주문상세 엔터티
- 3. 부서 엔터티
- 4. 트랜잭션 로그 엔터티
정답·해설 보기
정답: 4번. 통계를 위한 엔터티, 코드를 위한 엔터티, 시스템 내부 필요(로그 등)에 의한 엔터티는 관계를 생략해 표현하는 경우가 많다. 나머지는 업무상 다른 엔터티와 분명한 관계를 가진다.
속성
- 18.'주문 총금액'을 주문상세의 금액을 모두 더해 계산한 값으로 둘 때, 이 속성의 분류는?
- 1. 기본 속성
- 2. 설계 속성
- 3. 파생 속성
- 4. 복합 속성
정답·해설 보기
정답: 3번. 파생 속성은 다른 속성으로부터 계산되거나 변형된 값이다. 데이터 정합성을 위해 가급적 적게 정의하는 것이 좋다.
- 19.업무에는 원래 없지만 설계하면서 식별이나 코드 관리를 위해 새로 만든 '주문일련번호' 같은 속성은?
- 1. 기본 속성
- 2. 파생 속성
- 3. 다중값 속성
- 4. 설계 속성
정답·해설 보기
정답: 4번. 설계 속성은 업무상 필요하지는 않지만 모델링 과정에서 규칙화나 식별을 위해 새로 만든 속성이다. 기본 속성은 업무에서 추출한 본래 속성이다.
- 20.'학점' 속성이 A, B, C, D, F 값만 가질 수 있도록 정한 것처럼, 각 속성이 가질 수 있는 값의 범위를 무엇이라 하는가?
- 1. 인스턴스
- 2. 도메인
- 3. 카디널리티
- 4. 식별자
정답·해설 보기
정답: 2번. 도메인은 속성이 가질 수 있는 값의 범위로, 데이터 타입과 크기, 제약 조건을 포함한다.
- 21.엔터티 구성 방식에 따른 속성 분류에서 다른 엔터티와의 관계에서 포함된 속성은?
- 1. 기본키(PK) 속성
- 2. 일반 속성
- 3. 파생 속성
- 4. 외래키(FK) 속성
정답·해설 보기
정답: 4번. 구성 방식에 따라 엔터티를 식별하는 기본키 속성, 다른 엔터티와의 관계에서 포함된 외래키 속성, 그 밖의 일반 속성으로 나눈다. 파생 속성은 특성에 따른 분류다.
- 22.'주소' 속성을 시·구·동처럼 여러 세부 속성으로 나눌 수 있을 때, 이 속성은?
- 1. 단순 속성
- 2. 단일값 속성
- 3. 다중값 속성
- 4. 복합 속성
정답·해설 보기
정답: 4번. 복합 속성은 여러 세부 속성으로 나눌 수 있는 속성이고, 단순 속성은 나이처럼 더 나눌 수 없는 속성이다. 다중값 속성은 하나의 인스턴스에 여러 값이 들어가는 속성이다.
- 23.속성 이름을 정하는 원칙으로 적절하지 않은 것은?
- 1. 해당 업무에서 실제로 쓰는 이름을 쓴다
- 2. 약어 사용은 가급적 제한한다
- 3. 의미가 잘 드러나도록 '고객이 주문한 날짜'처럼 서술식으로 짓는다
- 4. 전체 데이터 모델에서 유일하도록 짓는다
정답·해설 보기
정답: 3번. 속성 이름은 업무 용어를 쓰고, 서술식 이름을 쓰지 않으며, 약어를 제한하고, 전체 모델에서 유일하게 짓는 것이 원칙이다. '주문일자'처럼 명사형으로 짓는다.
- 24.정규화된 데이터 모델에서 하나의 인스턴스가 가지는 하나의 속성은 몇 개의 속성값을 가지는가?
- 1. 두 개 이상
- 2. 한 개
- 3. 인스턴스 수만큼
- 4. 제한이 없다
정답·해설 보기
정답: 2번. 한 인스턴스의 한 속성은 하나의 값만 가진다. 여러 값을 가지는 다중값 속성이 있으면 제1정규화로 별도 엔터티로 분리한다.
- 25.업무를 분석하면서 바로 정의한 '제품명', '단가'처럼 업무로부터 추출한 일반적인 속성은 특성에 따라 어떻게 분류되는가?
- 1. 설계 속성
- 2. 파생 속성
- 3. 기본 속성
- 4. 외래키 속성
정답·해설 보기
정답: 3번. 특성에 따라 업무에서 바로 나온 기본 속성, 설계하면서 새로 만든 설계 속성(코드·일련번호), 다른 속성으로 계산한 파생 속성으로 나눈다. 외래키 속성은 구성 방식에 따른 분류다.
관계
- 26.'모든 주문은 반드시 한 명의 고객에 의해 이루어진다'처럼 관계에 반드시 참여해야 하는지를 나타내는 관계 표기 요소는?
- 1. 관계명
- 2. 관계차수(카디널리티)
- 3. 관계 선택사양(필수·선택)
- 4. 관계 유형(존재·행위)
정답·해설 보기
정답: 3번. 관계 표기법은 관계명, 관계차수(1:1, 1:M, M:N), 관계 선택사양(필수 참여·선택 참여)으로 구성된다.
- 27.'고객이 상품을 주문한다'처럼 엔터티 사이의 어떤 행위가 있을 때 맺어지는 관계는?
- 1. 존재에 의한 관계
- 2. 자기 참조 관계
- 3. 행위에 의한 관계
- 4. 상속 관계
정답·해설 보기
정답: 3번. 부서와 사원처럼 단순히 소속되어 존재하는 것은 존재에 의한 관계이고, 고객과 주문처럼 행위가 발생하면서 생기는 것은 행위에 의한 관계다.
- 28.논리 모델에서 '학생'과 '과목' 사이의 M:N 관계를 해소하는 일반적인 방법은?
- 1. 두 엔터티 사이에 '수강' 같은 교차(관계) 엔터티를 두어 1:M 관계 두 개로 바꾼다
- 2. 두 엔터티를 하나로 합치고 학생별 과목 정보를 반복 속성으로 둔다
- 3. 관계를 삭제하고 두 엔터티를 서로 참조하지 않는 독립 엔터티로 둔다
- 4. 학생 엔터티에 과목 식별자를 과목1·과목2처럼 여러 속성으로 추가한다
정답·해설 보기
정답: 1번. M:N 관계는 관계형 테이블로 직접 구현할 수 없으므로 교차 엔터티를 만들어 양쪽과 각각 1:M 관계를 맺게 한다. 반복 속성은 제1정규형 위반이다.
- 29.엔터티 안의 개별 인스턴스가 다른 엔터티의 인스턴스와 각각 관계를 맺는 것을 무엇이라 하며, 그 집합을 관계라고 하는가?
- 1. 관계 페어링
- 2. 관계 차수
- 3. 관계 선택사양
- 4. 관계명
정답·해설 보기
정답: 1번. 관계 페어링은 인스턴스 단위의 개별 관계이고, 이 페어링의 집합을 논리적으로 표현한 것이 관계다.
- 30.두 엔터티 사이에 관계를 정의할지 판단할 때 확인하는 사항으로 적절하지 않은 것은?
- 1. 두 엔터티 사이에 관심 있는 연관 규칙이 있는가
- 2. 두 엔터티 사이에 정보의 조합이 발생하는가
- 3. 두 엔터티의 속성 개수가 같은가
- 4. 업무 기술서에 관계를 나타내는 동사가 있는가
정답·해설 보기
정답: 3번. 관계 정의 시 연관 규칙, 정보의 조합, 업무 기술서·장표에 관계 연결 규칙이 서술되어 있는지, 관계를 연결하는 동사가 있는지를 확인한다.
- 31.관계를 읽을 때 '각각의 사원은 여러 프로젝트에 ( ) 참여한다'처럼 선택 참여를 나타내는 표현으로 알맞은 것은?
- 1. 항상
- 2. 때때로(가끔)
- 3. 반드시
- 4. 유일하게
정답·해설 보기
정답: 2번. 관계는 '각각의(기준 엔터티) … 관계 차수 … 선택사양 … 관계명' 순서로 읽는다. 필수 참여는 '항상', 선택 참여는 '때때로'로 읽는다.
- 32.두 엔터티 사이에서 관계에 참여하는 인스턴스의 수가 1:1, 1:M, M:N 중 무엇인지를 나타내는 것은?
- 1. 관계명
- 2. 관계 차수(Cardinality)
- 3. 관계 선택사양(Optionality)
- 4. 관계 페어링
정답·해설 보기
정답: 2번. 관계 차수는 한 엔터티의 인스턴스가 다른 엔터티의 인스턴스 몇 개와 관계를 맺는지를 나타낸다. 선택사양은 반드시 참여하는지 여부, 관계명은 관계의 이름이다.
- 33.UML 클래스 다이어그램은 관계를 연관 관계(실선)와 의존 관계(점선)로 나눈다. ERD에서 연관 관계에 대응하는 것은?
- 1. 존재에 의한 관계
- 2. 행위에 의한 관계
- 3. 상호배타적 관계
- 4. 재귀 관계
정답·해설 보기
정답: 1번. ERD는 관계를 존재에 의한 관계(예: 부서와 사원)와 행위에 의한 관계(예: 고객과 주문)로 나눈다. UML의 연관 관계는 존재에 의한 관계, 의존 관계는 행위에 의한 관계에 대응한다.
- 34.관계명을 정하는 원칙으로 적절하지 않은 것은?
- 1. 현재형으로 표현한다
- 2. '관계된다', '관련이 있다'처럼 넓은 뜻의 동사를 쓴다
- 3. 애매한 동사는 피한다
- 4. 관계에 참여하는 양쪽 엔터티 관점에서 각각 이름을 붙인다
정답·해설 보기
정답: 2번. 관계명은 '소속된다', '주문한다'처럼 구체적인 동사를 현재형으로 쓰고, 양쪽 방향으로 각각 붙인다. '관계된다', '이다' 같은 애매한 동사는 피한다.
식별자
- 35.주식별자의 특징 중 '주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소한이어야 한다'는 것은?
- 1. 최소성
- 2. 유일성
- 3. 불변성
- 4. 존재성
정답·해설 보기
정답: 1번. 주식별자는 유일성(인스턴스를 유일하게 구분), 최소성(최소 속성 수), 불변성(값이 자주 바뀌지 않음), 존재성(반드시 값이 있음, NULL 불가)을 만족해야 한다.
- 36.부모 엔터티와의 관계를 통해 자식 엔터티로 전달되어, 자식 엔터티에서 외래키(FK) 역할을 하는 식별자는?
- 1. 내부 식별자
- 2. 외부 식별자
- 3. 보조 식별자
- 4. 대체 식별자
정답·해설 보기
정답: 2번. 내부 식별자는 엔터티 내부에서 스스로 만들어지고, 외부 식별자는 다른 엔터티와의 관계로 받아 온 식별자로 자식 쪽에서 외래키가 된다.
- 37.부모 엔터티의 주식별자를 자식 엔터티에서 주식별자가 아닌 일반 속성(외래키)으로만 받는 비식별 관계로 설정하기에 알맞은 경우는?
- 1. 자식이 반드시 부모에 종속되어 부모 식별자가 자식 식별자의 일부여야 할 때
- 2. 부모의 주식별자만으로 자식의 주식별자를 구성해야 할 때
- 3. 부모와 자식의 주식별자를 완전히 같게 두어야 할 때
- 4. 자식이 부모 없이도 생성될 수 있어 부모와 약하게 연결해야 할 때
정답·해설 보기
정답: 4번. 비식별 관계는 약한 종속 관계로, 부모 없이 자식이 생성될 수 있거나 여러 부모 중 하나와만 관계를 맺거나 자식 식별자를 독립적으로 두고 싶을 때 쓴다. 부모 식별자가 자식 주식별자의 일부가 되면 식별 관계다.
- 38.업무에 원래 존재하는 본질 식별자 대신 일련번호 같은 인조 식별자를 주식별자로 쓸 때 주의할 점으로 가장 적절한 것은?
- 1. 인조 식별자는 값이 자주 바뀌어 불변성을 만족하지 못한다
- 2. 인조 식별자는 유일성을 보장할 수 없다
- 3. 본질 속성의 중복 입력을 막지 못할 수 있어 별도의 유니크 제약이나 인덱스가 필요할 수 있다
- 4. 인조 식별자는 외래키로 참조할 수 없다
정답·해설 보기
정답: 3번. 인조 식별자는 값이 단순하고 바뀌지 않아 편리하지만, 본질 식별자 조합의 중복을 막지 못해 중복 데이터가 생길 수 있고 이를 막기 위한 인덱스가 추가로 필요할 수 있다.
- 39.인스턴스를 유일하게 식별할 수는 있지만 대표성이 없어 다른 엔터티와의 참조 관계 연결에는 쓰지 않는 식별자는?
- 1. 보조 식별자
- 2. 주식별자
- 3. 외부 식별자
- 4. 복합 식별자
정답·해설 보기
정답: 1번. 대표성 여부에 따라 주식별자와 보조 식별자로 나눈다. 주식별자는 유일성·최소성에 대표성까지 갖춰 참조 관계 연결에 쓰인다.
- 40.부모-자식-손자로 이어지는 관계를 모두 식별 관계로만 설계했을 때 생기기 쉬운 문제는?
- 1. 자식 엔터티가 부모 없이 생성될 수 있다
- 2. 하위로 갈수록 주식별자 속성 수가 늘어나 조인 조건이 복잡해진다
- 3. 주식별자가 단일 속성으로 줄어든다
- 4. 외래키가 일반 속성으로만 존재해 무결성이 약해진다
정답·해설 보기
정답: 2번. 식별 관계는 부모의 주식별자가 자식의 주식별자에 계속 상속되므로 하위 엔터티로 갈수록 주식별자 속성이 늘어나 SQL 조인이 복잡해진다. 그래서 적절히 비식별 관계를 섞는다.
- 41.주식별자를 정할 때의 기준으로 적절하지 않은 것은?
- 1. 해당 업무에서 자주 쓰는 속성을 주식별자로 정한다
- 2. 주식별자를 구성하는 속성 수가 너무 많아지지 않게 한다
- 3. 복합 식별자가 너무 길면 새로운 인조 식별자를 검토한다
- 4. 의미가 잘 드러나도록 '고객명'처럼 이름으로 기술되는 속성을 주식별자로 쓴다
정답·해설 보기
정답: 4번. 이름처럼 기술되는 속성은 같은 값이 생기거나 바뀔 수 있어 주식별자로 피한다. 업무에서 자주 쓰는 속성을 쓰고, 속성 수가 많으면 인조 식별자를 검토한다.
- 42.주식별자의 특징 중 '한 번 정해진 주식별자의 값은 바뀌지 않아야 한다'는 것은?
- 1. 불변성
- 2. 유일성
- 3. 최소성
- 4. 존재성
정답·해설 보기
정답: 1번. 주식별자는 유일성(인스턴스를 유일하게 구분), 최소성(최소한의 속성), 불변성(값이 바뀌지 않음), 존재성(반드시 값이 있음)을 만족해야 한다.
정규화와 성능 모델링
- 43.고객 테이블의 '연락처' 칸 하나에 '010-1111-2222, 02-333-4444'처럼 여러 값을 함께 저장했다. 이 테이블이 가장 먼저 만족하지 못하는 정규형은?
- 1. 제2정규형
- 2. 제1정규형
- 3. 제3정규형
- 4. 보이스-코드 정규형
정답·해설 보기
정답: 2번. 제1정규형은 모든 속성이 원자값(더 나눌 수 없는 하나의 값)을 가져야 한다. 반복되는 값은 별도 엔터티로 분리한다.
- 44.주문상세 테이블의 주식별자가 (주문번호, 상품번호)인데, '상품명'이 상품번호에만 종속된다. 원자값 조건은 만족할 때, 이 테이블이 가장 먼저 만족하지 못하는 정규형은?
- 1. 제1정규형
- 2. 제3정규형
- 3. 제4정규형
- 4. 제2정규형
정답·해설 보기
정답: 4번. 주식별자의 일부에만 종속되는 부분 함수 종속이 있으면 제2정규형 위반이다. 상품명은 상품 엔터티로 분리한다.
- 45.사원 테이블에서 사원번호 → 부서번호, 부서번호 → 부서명 종속이 함께 있다. 주식별자는 사원번호 하나이고 모든 속성이 원자값일 때, 이 테이블이 가장 먼저 만족하지 못하는 정규형은?
- 1. 제1정규형
- 2. 제2정규형
- 3. 제4정규형
- 4. 제3정규형
정답·해설 보기
정답: 4번. 주식별자가 아닌 속성을 거쳐 다른 속성이 결정되는 이행 함수 종속이 있으면 제3정규형 위반이다. 부서명은 부서 엔터티로 분리한다.
- 46.반정규화를 적용하기 전에 먼저 검토해야 할 것으로 가장 적절한 것은?
- 1. 모든 테이블을 하나로 합칠 수 있는지
- 2. 정규화를 처음부터 다시 할 수 있는지
- 3. 뷰, 인덱스, 클러스터링, 응용 프로그램 등 다른 방법으로 성능 문제를 해결할 수 있는지
- 4. 외래키 제약조건을 모두 제거할 수 있는지
정답·해설 보기
정답: 3번. 반정규화는 데이터 무결성을 해칠 수 있으므로 대상을 조사한 뒤, 뷰·클러스터링·인덱스·응용 프로그램 조정 같은 다른 방법을 먼저 검토하고 그래도 안 될 때 적용한다.
- 47.한 테이블의 컬럼 중 자주 조회되는 컬럼과 거의 쓰지 않는 컬럼을 별도 테이블로 나누는 반정규화 기법은?
- 1. 수직 분할
- 2. 수평 분할
- 3. 테이블 병합
- 4. 중복 테이블 추가
정답·해설 보기
정답: 1번. 수직 분할은 컬럼 단위로, 수평 분할은 행 단위(예: 기간별)로 테이블을 나눈다.
- 48.슈퍼타입과 서브타입을 물리 테이블로 바꿀 때, 전체를 하나의 테이블로 통합하는 방식(All in One, Single Type)이 유리한 경우는?
- 1. 서브타입별로 개별 처리가 대부분이고 데이터 양이 매우 많을 때
- 2. 데이터 양이 적고 슈퍼·서브타입을 함께 조회하는 경우가 많을 때
- 3. 서브타입마다 속성이 완전히 달라 NULL이 대량으로 생길 때
- 4. 서브타입을 독립적인 테이블로 관리해야 할 때
정답·해설 보기
정답: 2번. 하나로 통합하면 조인이 줄어 함께 조회할 때 유리하지만, 서브타입별 속성이 NULL로 많이 남을 수 있다. 개별 처리가 많으면 서브타입별 테이블(OneToOne), 슈퍼+서브 각각(Plus) 방식을 쓴다.
- 49.주문 테이블을 월별로 나누어 저장해 특정 기간 조회 성능을 높이려 한다. 알맞은 파티셔닝 방식은?
- 1. List 파티셔닝
- 2. Hash 파티셔닝
- 3. Composite 파티셔닝만
- 4. Range 파티셔닝
정답·해설 보기
정답: 4번. Range는 날짜 같은 값의 범위로, List는 지역 코드처럼 특정 값 목록으로, Hash는 해시 함수로 데이터를 나눈다.
- 50.제3정규형을 만족하더라도 후보키가 아닌 결정자가 남아 있으면 이를 제거해 '모든 결정자가 후보키'가 되게 하는 정규형은?
- 1. 제2정규형
- 2. BCNF(보이스-코드 정규형)
- 3. 제4정규형
- 4. 제5정규형
정답·해설 보기
정답: 2번. BCNF는 모든 결정자가 후보키여야 한다. 제4정규형은 다치 종속, 제5정규형은 조인 종속을 제거한다.
- 51.한 사원이 여러 기술과 여러 자격증을 서로 관계없이 가질 때 (사원, 기술, 자격증)을 한 테이블에 두면 같은 조합이 불필요하게 반복된다. 이 다치 종속을 제거하는 정규형은?
- 1. 제2정규형
- 2. 제3정규형
- 3. 제4정규형
- 4. BCNF
정답·해설 보기
정답: 3번. 서로 독립적인 다치 종속(사원 →→ 기술, 사원 →→ 자격증)을 (사원, 기술)과 (사원, 자격증)으로 나누는 것이 제4정규화다.
- 52.조회할 때마다 주문상세의 금액을 모두 더해 구하던 '주문 총금액'을 주문 테이블에 미리 저장해 두는 반정규화 기법은?
- 1. 파생 컬럼 추가
- 2. 수평 분할
- 3. 테이블 병합
- 4. 이력 테이블 추가
정답·해설 보기
정답: 1번. 계산에 드는 성능 부담을 줄이려고 계산 결과를 미리 저장하는 컬럼을 추가하는 것이 파생 컬럼 추가다. 원본 값이 바뀔 때 함께 갱신해야 무결성이 유지된다.
모델과 SQL (조인·트랜잭션·NULL)
- 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. 2, 2
- 2. 6, 6
- 3. 6, 2
- 4. 4, 2
정답·해설 보기
정답: 3번. COUNT(*)는 NULL 여부와 관계없이 모든 행을 세므로 6, COUNT(COMM)은 COMM이 NULL이 아닌 행만 세므로 2다.
- 54.계좌 이체에서 출금과 입금이 모두 반영되거나 하나도 반영되지 않아야 한다는 트랜잭션의 특성은?
- 1. 원자성(Atomicity)
- 2. 일관성(Consistency)
- 3. 고립성(Isolation)
- 4. 지속성(Durability)
정답·해설 보기
정답: 1번. 원자성은 트랜잭션 안의 연산이 모두 성공하거나 모두 취소되어야 한다는 성질이다. 일관성은 실행 전후 데이터가 일관된 상태, 고립성은 다른 트랜잭션의 간섭 배제, 지속성은 완료된 결과의 영구 보존이다.
- 55.한 트랜잭션에서 같은 조건으로 두 번 조회했는데, 그사이 다른 트랜잭션이 행을 새로 입력해 두 번째 조회에 없던 행이 나타났다. 이 현상은?
- 1. Dirty Read
- 2. Phantom Read
- 3. Non-Repeatable Read
- 4. Lost Update
정답·해설 보기
정답: 2번. Dirty Read는 커밋되지 않은 데이터를 읽는 것, Non-Repeatable Read는 같은 행을 다시 읽었을 때 값이 바뀐 것, Phantom Read는 없던 행이 새로 나타나는 것이다.
- 56.NULL에 대한 설명으로 옳은 것은?
- 1. NULL은 아직 정해지지 않은 값으로, 0이나 공백 문자와 다르다
- 2. NULL = NULL 비교 결과는 TRUE이다
- 3. NULL에 숫자를 더하면 그 숫자가 된다
- 4. NULL은 집계 함수 계산에 0으로 포함된다
정답·해설 보기
정답: 1번. NULL은 값이 없거나 알 수 없음을 뜻한다. NULL과의 비교는 UNKNOWN, 산술 연산 결과는 NULL이며, 집계 함수는 NULL을 제외하고 계산한다.
- 57.'주문은 개인고객 또는 법인고객 중 하나와만 관계를 맺는다'처럼 여러 엔터티 중 하나와만 관계를 가지는 것을 무엇이라 하는가?
- 1. 재귀(자기 참조) 관계
- 2. 식별 관계
- 3. 상호배타적(Exclusive OR) 관계
- 4. M:N 관계
정답·해설 보기
정답: 3번. 상호배타적 관계는 두 개 이상의 관계 중 하나만 맺을 수 있는 관계다. 재귀 관계는 사원-관리자처럼 같은 엔터티 안에서 맺는 관계다.
- 58.커밋된 데이터만 읽게 해 Dirty Read는 막지만, Non-Repeatable Read와 Phantom Read는 생길 수 있는 트랜잭션 격리 수준은?
- 1. READ UNCOMMITTED
- 2. REPEATABLE READ
- 3. READ COMMITTED
- 4. SERIALIZABLE
정답·해설 보기
정답: 3번. READ UNCOMMITTED는 Dirty Read까지 허용하고, READ COMMITTED는 Dirty Read를 막는다. REPEATABLE READ는 Non-Repeatable Read까지 막고, SERIALIZABLE은 Phantom Read까지 막는다. Oracle의 기본 격리 수준은 READ COMMITTED다.
- 59.트랜잭션이 성공적으로 완료(커밋)되면 그 결과가 장애가 생겨도 데이터베이스에 영구히 남아야 한다는 특성은?
- 1. 지속성(Durability)
- 2. 원자성(Atomicity)
- 3. 일관성(Consistency)
- 4. 고립성(Isolation)
정답·해설 보기
정답: 1번. ACID 중 원자성은 모두 반영되거나 하나도 반영되지 않는 것, 일관성은 실행 전후에 모순이 없는 것, 고립성은 다른 트랜잭션의 간섭을 받지 않는 것, 지속성은 커밋된 결과가 영구히 남는 것이다.
- 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
- 2. 2
- 3. 4
- 4. 5
정답·해설 보기
정답: 1번. COMM이 NULL인 행은 NULL <> 50 비교가 UNKNOWN이라 제외된다. 50이 아니면서 NULL도 아닌 CHOI(30) 하나만 남는다.