조컴퓨터

2020년 제4회 정보처리기사 필기 문제 분석(Ⅲ) 본문

정보처리기사 해설/필기 해설

2020년 제4회 정보처리기사 필기 문제 분석(Ⅲ)

챠오위 2020. 10. 2. 14:36

제3과목 : 데이터베이스구축

 

41. 개체-관계 모델의 E-R 다이어그램에서 사용되는 기호와 그 의미의 연결이 틀린 것은?

① 사각형 - 개체 타입

② 삼각형 - 속성

③ 선 - 개체타입과 속성을 연결

④ 마름모 - 관계 타입

 

 

정답)

E-R 다이어그램은 개체-관계 모델을 이용하여 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.

 

  • 사각형 - 개체(Entity) 타입
  • 타원 - 속성(Attribute)
  • 선, 링크 - 개체 타입과 속성을 연결
  • 마름모 - 관계(Relationship) 타입

 


42. 정규화의 필요성으로 거리가 먼 것은?

① 데이터 구조의 안정성 최대화

② 중복 데이터의 활성화

③ 수정, 삭제시 이상현상의 최소화

④ 테이블 불일치 위험의 최소화

 

 

정답) 

정규화(Normalization)는 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 말한다.

 

정규화의 필요성

  • 데이터의 이상(anomaly) 현상을 제거 : 삽입 이상, 갱신 이상, 삭제 이상
  • 데이터 중복 저장 예방을 통한 저장공간 사용의 최적화
  • 데이터 불일치성 최소를 통한 데이터 무결성 확보

 

자주 나오는 기출)

정규화의 절차
- 비정규 릴레이션
       ↓ ← 원자값이 아닌 속성 분해(반복속성 제거)
- 1차 정규형
       ↓ ← 기본키에 대한 부분 함수 종속성 제거
- 2차 정규형
       ↓ ← 이행함수 종속성 제거
- 3차 정규형
       ↓ ← 결정자가 후보키 아닌 종속 제거
- BCNF차 정규형
       ↓ ← 함수 종속이 아닌 다중값 종속성 제거
- 4차 정규형
       ↓ ← 후보키를 통하지 않은 조인 종속성 제거
- 5차 정규형

 

 


43. 관계대수에 대한 설명으로 틀린 것은?

① 주어진 릴레이션 조작을 위한 연산의 집합이다.

② 일반 집합 연산과 순수 관계 연산으로 구분된다.

③ 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

④ 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 비절차적방법이다.

 

 

정답)

관계대수(relational algebra)는 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어. 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위하여 어떻게 유도하는가를 기술하는 절차적 언어

 

④ 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 방법이다.

 

 

자주 나오는 기출) 

순수 관계 연산자 : Select, Project, Join, Division
일반 집합 연산자 : Union(합집합), Intersection(교집합), Difference(차집합), Cartesian Product(교차곱)

이외에도 다양한 연산자들이 존재한다.

 

 


44. 릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키는?

① 후보키

② 기본키

③ 슈퍼키

④ 외래키

 

 

정답) 

  • 후보키(Candidate Key) : 릴레이션의 튜플(tuple)들을 구별할 수 있는 최소한의 속성들의 집합으로 모든 릴레이션은 C최소한 하나의 후보키를 가진다.
  • 기본키(Primary Key) : 키란 레코드 또는 튜플(tuple)을 확인하기 위해 이용하는 속성값으로 하나의 레코드 또는 튜플을 하나의 뜻으로 확인하기 위해 이용되는 키를 기본키라 한다.
  • 외래키(Foreign Key) : 다른 테이블의 레코드를 참조하기 위한 키값으로 사용되며, 해당 레코드를 대표하는 기본키(Primary Key)가 외래키로 설정될 수 있다.

 


45. 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 것은?

① CASE 분석

② 일치 분석

③ CRUD 분석

④ 연관성 분석

 

 

정답) 

CRUD 분석에 대한 내용이다.

 

CASE 분석 : 소프트웨어 개발 과정 중 일부를 전용 소프트웨어 도구를 사용하여 자동화하는 분석 방법

 

 


46. 데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은?

① 저장 레코드 양식 설계

② 레코드 집중의 분석 및 설계

③ 접근 경로 설계

④ 목표 DBMS에 맞는 스키마 설계

 

 

정답)

개념적 설계(Conceptual Design) : 스키마 모델링과 트랜잭션 모델링을 병행하여 수행하며, 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성한다. DBMS에 독립적인 개념 스키마를 설계한다.

논리적 설계(Logical Design) : 개발에 사용할 DBMS에 적합한 논리적 데이터 모델을 이용해 개념적 설계 단계에서 생성한 개념적 구조를 기반으로 논리적 자료 구조를 설계한다. 개념 스키마를 평가하고 DBMS의 종류에 따라 서로 다른 논리적 스키마를 설계한다. 트랜잭션 인터페이스를 설계한다.

물리적 설계(Psysical Design) : 논리적 설계 단계에서 생성된 논리적 구조를 기반으로 물리적 구조를 설계한다. 데이터베이스의 물리적 구조는 데이터베이스를 저장 장치에 실제로 저장하기 위한 데이터베이스 파일의 저장 구조, 레코드의 형식, 접근 경로와 같은 정보를 의미한다.

 

따라서  목표 DBMS에 맞는 스키마 설계는 논리적 설계에서 수행하는 사항에 속한다.

 

 


47. 다음 SQL문에서 빈칸에 들어갈 내용으로 옳은 것은?

UPDATE 회원 (        ) 전화번호 = '010-14'
WHERE 회원번호 = 'N4';

① FROM

② SET

③ INTO

④ TO

 

 

정답) 

UPDATE 테이블 SET 컬럼명;
SELECT 조회할 컬럼명 FROM 테이블명;
INSERT INTO 테이블명(컬럼명) VALUES(해당컬럼에 입력할 데이터값);
DELETE FROM 테이블명;

 

 


48. 데이터웨어하우스의 기본적인 OLAP(on-line analytical processing) 연산이 아닌 것은?

① translate

② roll-up

③ dicing

④ drill-down

 

 

정답) 

OLAP(on-line analytical processing)의 연산

  • Roll-up(Drill-up) : 분석할 항목에 대하여 한 차원의 계층 구조를 따라 단계적으로 작은 범위에서 큰 범위로 들어가서 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
  • Drill-down(Roll-down) : 분석할 항목에 대하여 한 차원의 계층 구조를 따라 단계적으로 큰 범위에서 작은 범위로 들어가서 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능. Roll-up과 반대
  • Pivoting : 보고서의 행과 열의 위치를 변경하여 페이지 차원을 바꾸어 보는 기능
  • Slicing : 3차원 큐브를 특정 관점으로 잘라서 보는 개념으로, 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
  • Dicing : 슬라이싱 기법과 동일하지만 슬라이싱 기법에서 더 쪼개어 비교하는 기법으로, 슬라이싱된 2차원 정보들을 조합하여 작은 큐브형의 분석 정보로 보는 방법

 


49. 데이터 모델에 표시해야 할 요소로 거리가 먼 것은?

① 논리적 데이터 구조

② 출력 구조

③ 연산

④ 제약조건

 

 

정답) 

데이터 모델은 데이터베이스 구조를 명시하기 위한 개념들의 집합을 말한다.
따라서 데이터 모델에 표시해야 할 요소로 출력 구조는 제외된다.

 

 


50. 제3정규형에서 보이스코드 정규형(BCNF)으로 정규화하기 위한 작업은?

① 원자값이 아닌 도메인을 분해

② 부분함수 종속 제거

③ 이행함수 종속 제거

④ 결정자가 후보키가 아닌 함수 종속 제거

 

 

정답) 

정규화의 절차 
- 비정규 릴레이션 
       ↓ ← 원자값이 아닌 속성 분해(반복속성 제거) 
- 1차 정규형 
       ↓ ← 기본키에 대한 부분 함수 종속성 제거 
- 2차 정규형 
       ↓ ← 이행함수 종속성 제거 
- 3차 정규형 
       ↓ ← 결정자가 후보키 아닌 종속 제거 
- BCNF차 정규형 
       ↓ ← 함수 종속이 아닌 다중값 종속성 제거 
- 4차 정규형 
       ↓ ← 후보키를 통하지 않은 조인 종속성 제거 
- 5차 정규형

 

 


51. 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법은?

① 인덱스정규화

② 반정규화

③ 집단화

④ 머징

 

 

정답) 

반정규화에 대한 설명이다.

 

 


52. 다음 SQL문의 실행 결과는?

 

정답)

과정1)

SELECT 과목이름 FROM 성적 WHERE EXISTS( ~ );

→ [성적] 테이블에서 WHERE EXISTS절의 내용에 해당하는 과목이름을 고르는 문제이다.

 

과정2)

SELECT 학번 FROM 학생 WHERE 학생.학번 = 성적. 학번 AND 학생.학과 IN ('전산', '전기') AND 학생.주소 = '경기';

→ [학생] 테이블에 존재하는 학번 중에서 [성적] 테이블에 존재하는 학번을 고르고 이 학생의 학과가 '전산' 또는 '전기'이고 주소가 '경기'인 [학생] 테이블의 학번만을 선택한다.

* 결과값 : 2000, 4000

 

과정3)

과정2)에서 선택된 학번을 기반으로 [성적] 테이블에서 이 학번의 학생이 선택한 과목이름을 출력하면 끝

* 결과값 : 과목이름 / DB, DB, 운영체제

 

 


53. 다음 설명과 관련 있는 트랜잭션의 특징은?

"트랜잭션의 연산은 모두 실행되거나, 모두 실행되지 않아야 한다."

① Durability

② Isolation

③ Consistency

④ Atomicity

 

 

정답)

영속성(Durability) : 트랜잭션의 실행이 성공적으로 완료된 후에는 시스템의 오류가 발생하더라도 트랜잭션에 의해 변경되 내용은 보존되야 한다.

독립성(Isolation) : 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 다른 트랜잭션이 그 데이터에 접근하지 못하게 해야 한다.

일관성(Consistency) : 트랜잭션 수행이 성공적으로 완료되면, 언제나 일관성 있는 데이터베이스 상태로 변환한다.

원자성(Atomicity) : 트랜잭션의 연산은 DB에 모두 반영되던지, 아니면 전혀 반영되지 않아야 한다.

 

 


54. A1, A2, A3 3개 속성을 갖는 한 릴레이션에서 A1의 도메인은 3개 값, A2의 도메인은 2개 값, A3의 도메인은 4개 값을 갖는다. 이 릴레이션에 존재할 수 있는 가능한 튜플(Tuple)의 최대 수는?

① 24

② 12

③ 8

④ 9

 

 

정답)

3 * 2 * 4 = 24

 

 


55. 뷰(VIEW)에 대한 설명으로 틀린 것은?

① 뷰 위에 또 다른 뷰를 정의할 수 있다.

② 뷰에 대한 조작에서 삽입, 갱신, 삭제, 연산은 제약이 따른다.

③ 뷰의 정의는 기본 테이블과 같이 ALTER문을 이용하여 변경한다.

④ 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거된다.

 

 

정답)

뷰의 정의는 기본 테이블과 같이 ALTER문을 이용하여 변경할 수 없다.

 

ALTER문은 테이블에 정의된 내용을 수정할 때 사용한다.

 

 


56. DBA가 사용자 PARK에게 테이블 [STUDENT]의 데이터를 갱신할 수 있는 시스템 권한을 부여하고자 하는 SQL문을 작성하고자 한다. 다음에 주어진 SQL문의 빈칸을 알맞게 채운 것은?

SQL>GRANT  ___㉠___  ___㉡___
       STUDENT TO PARK;

㉠ INSERT, ㉡ INTO

㉠ ALTER, ㉡ TO

㉠ UPDATE, ㉡ ON

㉠ REPLACE, ㉡ IN

 

 

정답)

GRANT 권한 부여 방법

GRANT UPDATE ON 테이블명 TO 사용자명; 

GRANT SELECT ON 테이블명 TO 사용자명;

GRANT INSERT ON 테이블명 TO 사용자명;

GRANT DELETE ON 테이블명 TO 사용자명;

 

 


57. 로킹(Locking) 기법에 대한 설명으로 틀린 것은?

① 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다.

② 로킹 단위가 작아지면 병행성 수준이 낮아진다.

③ 데이터베이스도 로킹 단위가 될 수 있다.

④ 로킹 단위가 커지면 로크 수가 작아 로킹 오버헤드가 감소한다.

 

 

정답) 

로킹 단위가 작아지면 병행성 수준은 높아진다.

 

 


58. 학생 테이블을 생성한 후, 성별 필드가 누락되어 이를 추가하려고 한다. 이에 적합한 SQL 명령어는?

① INSERT

② ALTER

③ DROP

④ MODIFY

 

 

정답) 

ALTER문은 테이블에 정의된 내용을 수정할 때 사용한다.

 

 


59. 한 릴레이션 스키마가 4개 속성, 2개 후보키 그리고 그 스키마의 대응 릴레이션 인스턴스가 7개 튜플을 갖는다면 그 릴레이션의 차수(degree)는?

① 1

② 2

③ 4

④ 7

 

 

정답)

차수(degree) : 릴레이션을 구성하는 속성의 수

카디널리티(cardinality) : 릴레이션에 입력된 튜플의 수

 

 


60. 사용자 X1에게 department 테이블에 대한 검색 연산을 회수하는 명령은?

① delete select on department to X1;

② remove select on department from X1;

③ revoke select on department from X1;

④ grant select on department from X1;

 

 

정답)

REVOKE 권한 FROM 사용자명;