SQL 자격검정 실전문제 오답노트 #1

jjinny_0609·2023년 2월 27일
0

데이터베이스

목록 보기
8/17
post-custom-banner

과목 1. 데이터 모델링의 이해

1장 데이터 모델링의 이해

문제1. 모델링은 현실세계에 대해서 표현하는 것으로 이해할 수 있다. 다음 중 모델링의 특징으로 가장 부적절한 것은?
① 현실세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가질 수 있음
② 시스템 구현만을 위해 진행하는 사전단계의 작업으로서 데이터베이스 구축을 위한 사전작업의 의미가 있음
복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 하는 단순화의 의미를 가지고 있음
④ 애매모함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가짐

[해설]
② : 모델링은 단지 시스템 구현만을 위해 수행하는 타스크가 아니며, 시스템 구현을 포함한 업무분석 및 업무형상화를 하는 목적도 있음.




문제2. 다음 설명 중 데이터 모델링이 필요한 주요 이유로 가장 부적절한 것은?
① 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현한다.
② 분석된 모델을 가지고 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.
③ 데이터베이스를 구축하기 위한 용도를 위해 데이터모델링을 수행하고 업무에 대한 설명은 별도의 표기법을 이용한다.
데이터모델링 자체로서 업무의 흐름을 설명하고 분석하는 부분에 의미를 가지고 있다.

[해설]
③ : 데이터 모델링을 하는 주요한 이유는 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이 첫 번째 목적이다. 두 번째는 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이 두 번째 목적이다. 다시 말하면, 데이터모델링이라는 것은 단지 데이터베이스만을 구축하기 위한 용도로 쓰이는 것이 아니라 데이터모델링 자체로서 업무를 설명하고 분석하는 부분에서도 매우 중요한 의미를 가지고 있다고 할 수 있다.




문제4. 다음 중 아래 설명이 의미하는 데이터모델링의 유의점에 해당하는 특성은 무엇인가?

===============================================================================
 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 
 유지보수의 어려움을 가증시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 
 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터 베이스에 중대한
 변화를 일으킬 수 있는 가능성을 줄인다.
===============================================================================

① 중복
② 비유연성
③ 비일관성
일관성

[해설]
② 비유연성
데이터 모델링 시의 유의점에 대한 사항 중 비유연성(Inflexibility)에 대한 설명이다.
데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.




문제6. 다음 중 ANSI-SPARC에서 정의한 3단계구조(three-level architecture)에서 아래 내용이 설명하는 스키마구조로 가장 적절한 것은?

===============================================================================
- 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현
- 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로
 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
===============================================================================

① 외부스키마(External Schema)
② 개념스키마(Conceptual Schema)
내부스키마(Internal Schema)
④ 논리스키마(Logical Schema)

[해설]
② 개념스키마(Conceptual Schema)
데이터베이스 스키마 구조는 3단계로 구분되고 각각은 상호 독립적인 의미를 가지고 고유한 기능을 가진다. 그 중 통합관점의 스키마 구조를 표현한 것을 개념스키마(Conceptual Schema)라고 하며, 데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정으로 이해할 수 있다.




문제9. 다음 중 아래 시나리오에서 엔터티로 가장 적절한 것은?

===============================================================================
S병원은 여러 명의 환자가 존재하고 각 환자에 대한 이름, 주소 등을 관리해야 한다.
(단, 업무범위와 데이터의 특성은 상기 시나리오에 기술되어 있는 사항만을 근거하여 판단해야 함)
===============================================================================

병원
② 환자
③ 이름
④ 주소

[해설]
② : 병원은 S병원1개이므로 엔터티로 성립되지 않으며, 이름, 주소는 엔터티의 속성으로 인식될 수 있다. 엔터티는 2개 이상의 속성과 2개 이상의 인스턴스를 가져 소위 면적으로 표현될 수 있어야 비로소 기본적인 엔터티의 자격을 갖췄다 할 수 있으므로 '여러 명'의 복수 인스턴스와 이름, 주소 등의 복수 속성을 가진 '환자'가 엔터티로 가장 적절하다고 할 수 있다.




문제10. 다음 중 엔터티의 특징으로 가장 부적절한 것은?
① 속성이 없는 엔터티는 있을 수 없다. 엔터티는 반드시 속성을 가져야 한다.
엔터티는 다른 엔터티와 관계가 있을 수 밖에 없다. 단, 통계성 엔터티나, 코드성 엔터티의 경우 관계를 생략할 수 있다.
③ 객체지향의 디자인패턴에는 싱글턴패턴이 있어 하나의 인스턴스를 가지는 클래스가 존재한다. 이와 유사하게 엔터티는 한 개의 인스턴스를 가지는 것만으로도 충분한 의미를 부여할 수 있다.
④ 데이터로서 존재하지만 업무에서 필요로 하지 않으면 해당 업무의 엔터티로 성립될 수 없다.

[해설]
③ : 엔터티의 특징은 다음과 같다
첫 번째 : 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
두 번째 : 유일한 식별자에 의해 식별이 가능해야 한다.
세 번째 : 영속적으로 존재하는 (두 개 이상의) 인스턴스의 집합이어야 한다.
네 번째 : 엔터티는 업무 프로세스에 의해 이용되어야 한다.
다섯 번째 : 엔터티는 반드시 속성이 있어야 한다.
여섯 번째 : 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.




문제12. 다음 중 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지며, 사원, 부서, 고객, 상품, 자재 등이 예가 될 수 있는 엔터티로 가장 적절한 것은?
① 기본 엔터티(키엔터티)
중심 엔터티(메인엔터티)
③ 행위 엔터티
④ 개념 엔터티

[해설]
① : 기본엔터티(키엔터티)란 그 업무에 원래 존재하는 정보로서 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모 역할을 하게 된다. 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다. 예를 들어 사원, 부서, 고객, 상품, 자재 등이 기본엔터티가 될 수 있다.




문제14. 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위를 무엇이라 하는가?
Entitiy

[해설]
속성(ATTRIBUTE)
속성이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질이다. 그것이 없다면 실제를 생각할 수 없는 것으로 정의 할 수 있다.
한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
한 개의 엔터티는 두개 이상의 속성을 갖는다.
한 개의 속성은 한 개의 속성값을 갖는다.




문제15. 다음 중 속성에 대한 설명으로 가장 부적절한 것은?
① 엔터티에 대한 자세하고 구체적인 정보를 나타낸다.
② 하나의 엔터티는 두 개 이상의 속성을 갖는다.
③ 하나의 인스턴스에서 각각의 속성은 하나 이상의 속성값을 가질 수 있다.
④ 속성도 집합이다.

[해설]
③ : 하나의 인스턴스에서 각각의 속성은 한 개의 속성값을 가져야 한다.




문제16. 다음 중 아래와 같은 사례에서 속성에 대한 설명으로 가장 부적절한 것은?

===============================================================================
우리은행은 예금분류(일반예금, 특별예금 등)의 원금, 예치기간, 이자율을 관리할 필요가 있다.
또한 원금에 대한 이자율을 적용하여 계산된 이자에 대해서도 속성으로 관리하고자 한다.
예를 들어 원금이 1000원이고 예치기간이 5개월이며 이자율이 5.0%라는 속성을 관리하고 계산된
이자도 관리한다. 일반예금이나 특별예금 등에 대해서는 코드를 부여
(예. 01-일반예금, 02-특별예금) 등 하여 관리한다.
===============================================================================

일반예금은 코드 엔터티를 별도로 구분하고 값에는 코드값만 포함한다.
② 원금, 예치기간은 기본(BASIC)속성이다.
③ 이자와 이자율은 파생(DERIVED)속성이다.
④ 예금분류는 설계(DESIGNED)속성이다.

[해설]
③ : 이자는 계산된 값으로 파생속성이 맞지만, 이자율은 원래 가지고 있어야 하는 속성이므로 기본속성에 해당한다.




문제18. 다음 중 아래 설명이 나타내는 데이터모델의 개념으로 가장 적절한 것은?

===============================================================================
주문이라는 엔터티가 있을 때 단가라는 속성 값의 범위는 100에서 10,000 사이로 실수 값이며
제품명이라는 속성은 길이가 20자리 이내의 문자열로 정의할 수 있다.
===============================================================================

시스템카탈로그(System Catalog)
② 용어사전(Word Dicionary)
③ 속성사전(Attribute Dicionary)
④ 도메인(Domain)

[해설]
④ : 각 엔터티(테이블)의 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념은 도메인(Domain)에 해당함




문제20. 다음 중 데이터모델링의 관계에 대한 설명으로 가장 부적절한 것을 2개 고르시오
① 관계는 존재에 의한 관계와 행위에 관계로 구분될 수 있으나 ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용한다.
② UML(Unified Modeling Language)에는 클래스다이어그램의 관계 중 연관관계(Association)와 의존관계(Dependency)가 있고 이것은 실선과 점선의 표기법으로 다르게 표현이 된다.
관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있고 ERD에서는 관계를 연결할 떄, 존재와 행위를 구분하여 실선과 점선의 표기법으로 다르게 표현한다.
④ UML(Unified Modeling Language)에는 클래스다이어그램의 관계 중 연관관계(Association)와 의존관계(Dependency)가 있고 있으나 구분하지 않고 단일화된 표기법을 사용한다.

[해설]
③, ④ : 데이터모델링에서는 존재적 관계와 행위에 의한 관계를 구분하는 표기법이 없으며, UML에서는 연관관계와 의존관계에 대해 다른 표기법을 가지고 표현하게 되어 있다.




문제21. 다음 중 관계에 대한 설명으로 가장 부적절한 것은?
① 관계는 존재적 관계와 행위에 의한 관계로 나누어 볼 수 있다.
② 관계의 표기법은 관계명, 관계차수, 식별성의 3가지 개념을 사용한다.
부서와 사원 엔터티 간의 '소속' 관계는 존재적 관계의 사례이다.
④ 주문과 배송 엔터티 간의 '배송근거' 관계는 행위에 의한 관계의 사례이다.

[해설]
② : 관계 표기법은 관계명, 관계차수, 선택성(선택사양)의 3가지 개념으로 표현한다.




문제23. 다음 중 두개의 엔터티 사이에서 관계를 도출 할 떄 체크 할 사항을 모두 고른 것은?
① 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
② 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
③ 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?

[해설]
③ : 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가? 가 되어야 한다.
동사는 관계를 서술하는 업무기술서의 가장 중요한 사항이다.




문제25. 다음 중 아래에서 주 식별자를 지정할 때 고려애햐 할 사항을 묶은 것으로 가장 적절한 것은?

===============================================================================
가. 주 식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 한다.
나. 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
다. 지정된 주 식별자의 값은 자주 변하지 않는 것이어야 한다.
라. 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
===============================================================================

① 가, 나, 다
가, 나, 라
③ 나, 다, 라
④ 가, 나, 다, 라

[해설]

  • 주 식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
  • 지정된 주 식별자의 값은 자주 변하지 않는 것이어야 한다.
  • 주식별자가 지정이 되면 반드시 값이 들어와야 한다.



문제29. 다음 중 아래에서 엔터티 내에 주 식별자를 도출하는 기준을 묶은 것으로 가장 적절한 것은?

===============================================================================
가. 해당 업무에서 자주 이용되는 속성을 주 식별자로 지정한다.
나. 명칭, 내역 등과 같이 이름으로 기술되는 것들을 주식별자로 지정한다.
다. 복합으로 주식별자를 구성할 경우 너무 많은 속성을 포함하지 않도록 한다.
라. 자주 수정되는 속성을 주 식별자로 지정한다.
===============================================================================

①가, 나
② 가, 다
다, 라
④ 나, 라
[해설]
④ : 부모엔터티의 주식별자를 자식엔터티에서 받아 손자엔터티까지 계속 흘려 보내기 위해서는 식별자관계를 고려해야 한다. ③의 경우는 비 식별자관계를 선택하는 기준으로 고려하기에 가장 마지막으로 고려할만한 비중을 갖는다고 할 수 있다. 즉, 비식별자관계의 선택이 단순히 SQL 문장의 복잡도를 낮추는 목적에서 고려되는 것은 바람직하지 않음을 의미한다.




문제30. 다음중 비식별자 관계로 연결하는 것을 고려해야하는 경우로 가장 부적절한 것은?
① 부모엔터티에 참조값이 없어도 자식엔터티의 인스턴스가 생성될 수 있는 경우
② 부모엔터티의 인스턴스가 자식 엔터티와 같이 소멸되는 경우
③ 여러개의 엔터티를 하나로 통합하면서 각각의 엔터티가 갖고 있던 여러개의 개별 관계가 통햅되는 경우
자식쪽 엔터티의 주식별자를 부모엔터티와는 별도로 생성하는 것이 더 유리하다고 판단하는 경우

[해설]
② : 엔터티별로 데이터의 생명주기(LIFE CYCLE)를 다르게 관리할 경우, 예를 들어 부모엔터티의 인스턴스가 자식의 엔터이와 관계를 가지고 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우 비식별자 관계로 연결하는 것이 적절한다. 부모엔터티의 인스턴스가 자식 엔터티와 같이 소멸되는 경우는 비식별자 관계로 정의하는 것이 더 적합하다.

과목 2. 데이터 모델의 이해

2장 데이터 모델과 성능

문제31. 다음 중 성능 데이터모델링에 대한 설명으로 가장 부적절한 것은?
① 성능이 저하된 결과를 대상으로 데이터모델 보다는 문제발생 시점의 SQL을 중심으로 집중하여 튜닝을 한다.
② 데이터의 증가가 빠를수록 성능저하에 따른 성능저하에 따른 성능개선비용은 증가한다.
데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다.
④ 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우 성능 저하에 따른 Rework비용을 최소화 할 수 있는 기회를 가지게 된다.

[해설]
① : 분석/설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 주도 면밀하게 고려해야 한다. 만약 어떤 트랜잭션이 해당 비지니스 처리에 핵심적이고 사용자 업무처리에 있어 중요함을 가지고 있고 성능이 저하되면 안되는 특징을 가지고 있다면, 프로젝트 초기에 운영환경에 대비한 테스트 환경을 구현하고 그곳에 트랜잭션을 발생시켜 실제 성능을 테스트해 보아야 한다.
이때 데이터 모델의 구조도 변경하면서 어떠한 구조가 해당 사이트에 성능상 가장 적절한 구조인지를 검토하여 성능이 좋은 모습으로 디자인 하는 전략이 요구된다. 보기에 문제 발생 시점의 SQL 중심으로 집중 튜닝하는 것은 성능 데이터모델링과 무관한 내용이다.




문제38. 다음 중 아래 '일재고' 엔터티에 대한 설명으로 가장 적절한 것은?
① 1차 정규화가 필요한 엔터티로서 일재고와 일재고상세로 1:M의 관계가 될 수 있다.
② 1차 정규화가 필요한 엔터리로서 일재고와 일재고상세로 1:1의 관계가 될 수 있다.
③ 2차 정규화가 필요한 엔터티로서 일재고와 일재고상세로 1:M의 관계가 될 수 있다.
④ 2차 정규화가 필요한 엔터티로서 일재고와 일재고상세로 1:1의 관계가 될 수 있다.

[해설]
① : 컬럼 단위에서 중복된 경우도 1차 정규화의 대상이 된다. 이에 대한 분리는 1:M의 관계로 두 개의 엔터티로 분리된다.




문제41. 다음 중 하나의 테이블의 전체 칼럼 중 자주 이용하는 집중화된 칼럼들이 있을 때 디스크 I/O를 줄이기 위해 해당 칼럼들을 별도로 모아놓는 반정규화 기법으로 가장 적절한 것은?
① 칼럼추가 - 부분칼럼 추가
칼럼추가 - 중복칼럼 추가
③ 테이블추가 - 중복테이블추가
④ 테이블추가 - 부분테이블추가

[해설]
④ : 컬럼 단위에서 중복된 경우도 1차 정규화의 대상이 된다. 이에 대한 분리는 1:M의 관계로 두 개의 엔터티로 분리된다.




문제42. 다음 중 칼럼에 대한 반정규화 기법으로 가장 부적절한 것은?
① 중복칼럼을 추가 - 조인감소를 위해 여러 테이블에 동일한 칼럼을 갖도록 한다.
② 파생칼럼을 추가한다 - 조회성능을 우수하게 하기 위해 미리 계산된 칼럼을 갖도록 한다.
③ FK에 대한 속성을 추가한다 - FK관계에 해당하는 속성을 추가하여 조인성능을 높인다.
이력테이블에 기능 칼럼을 추가한다. - 최신값을 처리하는 이력의 특성을 고려하여 기능성 칼럼을 추가한다.

[해설]
③ : FK에 대한 속성 추가는 반정규화 기법이라기 보다는 데이터모델링에서 관계를 연결할 때 나타나는 자연스러운 현상이다.




문제43. 다음 중 아래의 주문, 주문목록, 제품에 대한 데이터모델과 이를 이용해서 데이터를 조회하는 SQL문에서 빠르게 수행하기 위한 반정규화 방법으로 가장 적절한 것은?

① 제품 엔터티에 단가를 합한 계산된 칼럼을 추가하도록 한다.
② 주문목록 엔터티에 단가를 합한 계산된 칼럼을 추가하도록 한다.
③ 주문 엔터티에 단가를 합한 계산된 칼럼을 추가하도록 한다.
④ 제품 엔터티에 최근값 여부에 대한 칼럼을 추가하도록 한다.

[해설]
③ : FK에 대한 속성 추가는 반정규화 기법이라기 보다는 데이터모델링에서 관계를 연결할 때 나타나는 자연스러운 현상이다.




문제46. 아래 설명에서 데이터 액세스 성능을 향상시키기 위해 적용하는 방법에 대해서 ㉠ 을 채우시오.
하나의 테이블에 많은 양의 데이터가 저장되면 인덱스를 테이블을 몇 개로 쪼개도 성능이 저하되는 경우가 있다. 이때 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 테이블로 분리하여 데이터 액세스 성능도 향상시키고, 데이터 관리방법도 개선할 수 있도록 테이블에 적용하는 기법을 ㉠ 이라고 한다.

[해설]
㉠ : 파티셔닝(Partitioning)




문제47. 다음 중 아래 데이터 모델과 SQL문에 대해 개선해야 할 사항에 대한 설명으로 가장 적절한 것은?

① UNION ALL로 조회하면 정렬로 인한 성능이 저하되므로 UNION으로 조합하여 조회한다.
② 긴급사건, 특수사건, 일반사건을 하나의 테이블로 통합하고 PK를 사건분류코드 + 사건번호로 조합하여 구성하도록 한다.
긴급사건, 특수사건, 일반사건 테이블을 개별로 유지하되 PK에 사전 분류코드를 포함하도록 한다.
④ 세 개의 테이블을 그대로 유지하되 반 정규화된 형태의 통합테이블을 하나 더 생성하여 조회의 성능을 향상하도록 한다.

[해설]
② : 개별 테이블을 모두 조회하는 트랜잭션이 대부분이라는 가정이 있으므로 UNION/UNION ALL 할 경우 개별조회에 따른 시간소요와 이것을 조합하는 성능저하가 발생된다. 따라서 하나의 테이블로 통합하도록 하고 대신 PK체계나 일반속성에 각 사건을 구분할 수 있도록 구분자를 부여한다.




문제50. 다음 중 아래의 엔터티와 이 엔터티를 매우 빈번하게 참조하는 SQL의 성능에 대한 설명으로 가장 적절한 것은?

① 명세번호를 실적 테이블에 맨 처음 칼럼으로 옮기면 PK 인덱스의 이용 효율성이 향상된다.
② 지사코드에 대해 입력 값이 EQUAL 조건으로 사용되므로 지사코드를 실적 테이블의 맨 처음 위치로 옮겨서 일자 칼럼의 앞에 두면 인덱스 이용 효율성이 높아진다.
일자가 SQL문장의 Where절에 첫 번쨰 조건으로 나왔으므로 칼럼 순서에서도 첫번째에 위치하는 것이 효율성이 높다.
④ 일자, 명세번호, 지사코드로 칼럼 순서를 바꾸어야 일자 범위에 대한 내용을 먼저 식별하고, 그 다음으로 지사코드를 찾기에 용이할 수 있으므로 이때 인덱스의 효율성이 가장 높다.

[해설]
④ : 인덱스는 값의 범위에 따라 일정하게 정렬이 되어 있으므로 상수값으로 EQUAL 조건으로 조회되는 칼럼이 가장 앞으로 나오고 범위조회 하는 유형의 칼럼이 그 다음에 오도록 하는 것이 인덱스 액세스 범위를 좁힐 수 있는 가장 좋은 방법이 됨




문제51. 다음 중 아래 데이터모델에 표현된 FK(Foreign Key)에 대한 설명으로 가장 적절한 것을 2개 고르시오.

학사기준번호는 부모 테이블에 이미 인덱스가 존재하기 때문에 상속받아 생긴 수강신청에는 학사 기준번호 칼럼에 대한 별도의 인덱스가 필요 하지 않다.
② 학사기준번호는 부모 테이블에 이미 인덱스가 존재하나 수강신청과 조인에 의한 성능저하 예방을 위해 상속받아 생긴 수강신청에도 학사가 준 번호칼럼에 대한 별도의 인덱스가 필요하다.
③ 데이터모델에서 관계를 연결하고 데이터베이스에 FK제약조건 생성을 생략하는 경우에 학사기준번호에 대한 인덱스를 생성할 필요가 없다.
데이터모델에서는 관계를 연결하고 데이터베이스에 FK제약조건 생성을 생략하는 경우에도 데이터의 조인관계가 필요하므로 학사기준번호에 대한 인덱스를 생성할 필요가 있다.

[해설]
②,④ : 엔터티 간에 논리적 관계가 있을 경우 즉, 엔터티 간에 관계(Relationship)을 정의하여 관련 엔터티 상호간에 업무적인 연관성이 있음을 표현한 경우에는, 이 데이터들이 업무적으로 밀접하게 연결되어 상호간에 조인이 자주 발생한다는 것을 의미하는 것이기 때문에, 데이터베이스 상에서 DBMS가 제공하는 FK Constraints를 생성했는지 여부와 상관없이 조인 성능을 향상시키기 위한 인덱스를 생성해주는 것이 좋다. 그러므로 수강신청테이블의 학사기준번호에 인덱스가 필요하다.
데이터베이스에 생성하는 FK Constraints는 데이터 모델 상에 표현된 논리적 관계에 따라 관련 인스턴스 간에 일관성을 보장하기 위해 설계된 제약조건을 구현할 수 있도록 DBMS가 제공해주는 하나의 '지원 기능'으로 이해될 수 있다.




문제52. 다음 중 데이터가 여러 지역에 분산되어 있지만 하나의 데이터베이스처럼 사용하기를 원하는 분산데이터베이스 환경에서 데이터베이스 분산설계를 적용하여 효율성을 증대시킬 수 없는 것은?
공통코드, 기준정보 등 마스터 데이터는 분산데이터베이스에 복제분산을 적용한다.
② 거의 실시간(Near Real Time) 업무적인 특성을 가지고 있을 떄 분산 데이터베이스를 사용하여 구성할 수 있다.
③ 백업 사이트를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있다.
④ Global Single Instance(GSI)를 구성할 때 분산데이터베이스를 활용하여 구성하는 것이 효율적이다.

[해설]
④ : Global Single Instance(GSI)는 통합된 한 개의 인스턴스 즉, 통합 데이터베이스 구조를 의미하므로 , 분산데이터베이스와 대치 되는 개념이다.
공통코드, 기준정보 등과 같은 마스터 데이터를 한 곳에 두고 운영하는 경우 원격지에서의 접근이 빈번할수록 실시간 업무처리에 대해 좋은 성능을 얻기가 어려울 수 있기 때문에 분산 환경에 복제분산을 하는 방법으로 분산데이터베이스를 구성할 수 있다. 또한 백업 사이트 구성에 대해서도 분산 환경으로 구성하여 적용 할 수 있다.

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :
post-custom-banner

0개의 댓글