본문 바로가기
IT★자격증/정보시스템감리사 기출문제 풀이

2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 데이터베이스(66-70)

by 꼬모부 2023. 12. 4.
728x90

[오늘부터 데이터베이스 기출문제 65-70를 풀어보겠습니다.]

 

문제 66

66. 다음 그림은 트랜잭션의 동시성 제어에서 격리 성(isolation)을 나타내는 예로써, 트랜잭션 T1, T2가 ➀~➄ 순서대로 수행할 때 생길 수 있 는 현상으로 가장 적절한 것은? 

➀ SELECT 도시, COUNT(*) FROM 고객 GROUP BY 도시;
➁ INSERT INTO 고객 (고객번호, 이름, 도시, 나이) VALUES (3, ‘김민재’, ‘통영’, 27);
➂ COMMIT;
➃ SELECT 나이, COUNT(*) FROM 고객 GROUP BY 나이;
➄ COMMIT;


① 오손 데이터 읽기(dirty read)
② 유령 데이터 읽기(phantom read)
③ 연쇄 데이터 읽기(cascading read)
④ 직렬 데이터 읽기(serializable read) 

 

출제의도

트랜잭션의 동시성 제어에서 격리성(isolation)을 테스트하려는 의도로 보입니다. 트랜잭션 T1과 T2가 주어진 순서대로 수행될 때 발생할 수 있는 현상을 묻고 있습니다.

 

각 선택지에 대한 설명은 다음과 같습니다:

① 오손 데이터 읽기(dirty read):

한 트랜잭션이 아직 커밋되지 않은 다른 트랜잭션의 변경 내용을 읽는 현상입니다. 이 경우, 해당 트랜잭션이 롤백되면 오손 데이터를 읽게 됩니다.

 

② 유령 데이터 읽기(phantom read):

한 트랜잭션이 수행되는 도중 다른 트랜잭션에 의해 새로운 레코드가 삽입되어 같은 쿼리의 결과가 달라지는 현상입니다.

 

③ 연쇄 데이터 읽기(cascading read):

한 트랜잭션이 다른 트랜잭션에 의해 변경된 값을 읽고, 이를 기반으로 자신의 작업을 수행하는 현상입니다. 이 경우, 첫 번째 트랜잭션이 롤백되면 연쇄적인 롤백이 발생할 수 있습니다.

 

④ 직렬 데이터 읽기(serializable read):

모든 트랜잭션이 순차적으로 수행되어 동시성 문제가 발생하지 않는 현상입니다.

이 문제의 경우, ➀에서 도시별 고객 수를 집계한 후 ➁에서 새로운 고객이 추가되고, ➃에서 나이별 고객 수를 집계합니다.

 

따라서, ➃에서는 ➁에서 추가된 고객이 포함되어 결과가 달라질 수 있습니다.

이는 유령 데이터 읽기(phantom read) 현상으로 볼 수 있으므로, 가장 적절한 답변은 ②입니다.

 

문제 67

67. 동시성 제어(concurrency control)의 로킹 (locking) 단위에 대한 다음 설명 중 옳은 것을 모두 나열한 것은?

가. 로킹 단위가 작아지면 동시성(병행) 수준은 낮아진다.
나. 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
다. 로킹 단위가 작아지면 일반적으로 로킹 오버 헤드가 증가한다.
라. 한꺼번에 로킹할 수 있는 데이터의 크기를 로킹 단위라 한다.


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

 

출제의도

동시성 제어에서의 로킹 단위에 대한 이해를 평가하는 것입니다.

 

각 항목에 대한 설명은 다음과 같습니다:

가. 로킹 단위가 작아지면 동시성(병행) 수준은 낮아진다.

이 설명은 잘못되었습니다. 실제로는 로킹 단위가 작아질수록 동시성 수준이 높아집니다. 이는 더 작은 단위로 데이터를 잠글 수 있기 때문에, 더 많은 트랜잭션이 동시에 수행될 수 있기 때문입니다.

 

나. 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.

이 설명은 올바릅니다. 로킹 단위는 데이터베이스 시스템에서 설정할 수 있으며, 데이터베이스 전체, 테이블, 페이지, 레코드 등 다양한 수준에서 설정될 수 있습니다.

 

다. 로킹 단위가 작아지면 일반적으로 로킹 오버 헤드가 증가한다.

이 설명은 올바릅니다. 로킹 단위가 작아질수록 더 많은 수의 잠금이 필요하게 되므로, 잠금 및 잠금 해제에 대한 오버헤드가 증가합니다.

 

라. 한꺼번에 로킹할 수 있는 데이터의 크기를 로킹 단위라 한다.

이 설명은 올바릅니다. 로킹 단위는 한 번에 잠글 수 있는 데이터의 양을 나타냅니다. 이는 데이터베이스의 동시성 제어를 위한 중요한 요소입니다.

 

따라서, 올바른 설명은 ③번 '나, 다, 라’입니다.

 

문제 68

68. 로킹 규약 중에서 strict 2단계 로킹 규약(strict 2PLP)에 해당하는 설명으로 가장 적절한 것은?

① 데이터 항목에 대해 read나 write 연산을 하려면 반드시 lock을 걸고 트랜잭션 실행을 종료하기 전에 unlock을 수행
② 로크를 걸기만 하는 확장 단계와 로크를 풀기만 하는 축소 단계로 구성
③ 로킹이 2단계일 뿐 아니라 모든 독점 로크는 그트랜잭션이 완료될 때까지 unlock하지 않고 그대로 유지
④ 로킹이 2단계일 뿐 아니라 모든 로크는 그 트랜잭 션이 완료될 때까지 unlock하지 않고 그대로 유지 

 

출제의도

동시성 제어에서의 strict 2단계 로킹 규약에 대한 이해를 평가하는 것입니다.

 

각 항목에 대한 설명은 다음과 같습니다:

① 데이터 항목에 대해 read나 write 연산을 하려면 반드시 lock을 걸고 트랜잭션 실행을 종료하기 전에 unlock을 수행 이 설명은 2단계 로킹 규약(2PL)에 대한 일반적인 설명입니다. 2PL은 트랜잭션이 데이터 항목에 대해 read나 write 연산을 수행하기 전에 반드시 lock을 걸어야 하며, 트랜잭션이 종료하기 전에는 unlock을 수행하지 않습니다. 하지만 이 설명은 strict 2PL에 대한 구체적인 내용을 포함하고 있지 않습니다.

 

② 로크를 걸기만 하는 확장 단계와 로크를 풀기만 하는 축소 단계로 구성 이 설명은 2단계 로킹 규약(2PL)의 기본적인 구조를 설명하고 있습니다. 2PL은 확장 단계에서 lock을 걸고, 축소 단계에서 lock을 풉니다. 하지만 이 설명은 strict 2PL에 대한 구체적인 내용을 포함하고 있지 않습니다.

 

③ 로킹이 2단계일 뿐 아니라 모든 독점 로크는 그 트랜잭션이 완료될 때까지 unlock 하지 않고 그대로 유지 이 설명은 strict 2단계 로킹 규약(strict 2PL)에 대한 올바른 설명입니다. strict 2PL은 2PL의 확장 단계와 축소 단계를 따르며, 추가로 모든 독점 lock(exclusive lock)은 트랜잭션이 완료될 때까지 unlock 하지 않습니다.

 

④ 로킹이 2단계일 뿐 아니라 모든 로크는 그 트랜잭 션이 완료될 때까지 unlock하지 않고 그대로 유지 이 설명은 strict 2단계 로킹 규약(strict 2PL)에 대한 설명이지만, 모든 lock에 대해 적용되는 것으로 잘못 설명하고 있습니다. 실제로는 독점 lock에 대해서만 트랜잭션이 완료될 때까지 unlock 하지 않습니다.

 

따라서, strict 2단계 로킹 규약에 대한 올바른 설명은 ③번입니다.

 

문제 69

69. 대표적인 분산 파일 시스템인 HDFS(Hadoop Distributed File System)는 여러 노드(node) 로 구성되어 있다.

다음의 (가), (나)에 들어갈 노드 이름으로 가장 옳은 것은?

(가)는 메타정보를 관리하며 데이터 블록들이 어느 (나)에 있는지를 유지한다.
(나)는 실제 데이터 블록을 저장하고 클라이언 트에 이를 제공한다.
Secondary (가)는 primary (가)가 고장(fail)일 때를 대비하는 백업 노드이다.

① (가) master node, (나) data node
② (가) name node, (나) data node
③ (가) master node, (나) slave node
④ (가) name node, (나) slave node 

 

출제의도

HDFS(Hadoop Distributed File System)의 구조와 노드의 역할에 대한 이해를 테스트하려는 의도로 보입니다. HDFS는 분산 파일 시스템으로, 여러 노드로 구성되어 있습니다.

 

각 선택지에 대한 설명은 다음과 같습니다:

① (가) master node, (나) data node:

일반적으로 분산 시스템에서 사용되는 용어입니다. 하지만 HDFS의 컨텍스트에서는 정확하지 않습니다.

 

② (가) name node, (나) data node:

HDFS에서 사용하는 용어입니다. NameNode는 메타데이터를 관리하고, DataNode는 실제 데이터 블록을 저장합니다.

 

③ (가) master node, (나) slave node:

일반적으로 분산 시스템에서 사용되는 용어입니다. 하지만 HDFS의 컨텍스트에서는 정확하지 않습니다.

 

④ (가) name node, (나) slave node:

이 선택지는 NameNode와 SlaveNode라는 두 가지 용어를 혼합한 것으로, HDFS의 컨텍스트에서는 정확하지 않습니다.

 

따라서, 가장 적절한 답변은 ② (가) name node, (나) data node입니다.

이 문제는 HDFS의 구조와 노드의 역할에 대한 이해를 테스트합니다. NameNode는 HDFS의 메타데이터를 관리하며, DataNode는 실제 데이터 블록을 저장하고 클라이언트에 제공합니다. Secondary NameNode는 primary NameNode가 고장 났을 때를 대비하는 백업 노드입니다. 이는 HDFS의 내결함성을 보장합니다.

 

문제 70

70. 다음 SQL 구문은 테이블 STUDENT에 대한 SELECT 와 UPDATE 권한을 admuser에게 부여하는 기능을 한다.

그런데 이때 권한을 부여받은 admuser가 다른 사용자에게 SELECT나 UPDATE 권한을 다시 부여할 수 있도록 하기 위해서 (가)에 들어갈 구문으로 가장 옳은 것은?

GRANT SELECT, UPDATE ON STUDENT TO admuser (가);


① WITH OPTION GRANT
② WITH OPTION REGRANT
③ WITH GRANT OPTION
④ WITH REGRANT OPTION 

 

출제의도

SQL의 권한 부여 구문에 대한 이해를 테스트하려는 의도로 보입니다. SQL에서는 GRANT 구문을 사용하여 사용자에게 특정 테이블에 대한 권한을 부여할 수 있습니다.

 

각 선택지에 대한 설명은 다음과 같습니다:

① WITH OPTION GRANT:

이 선택지는 SQL의 정확한 구문이 아닙니다.

 

② WITH OPTION REGRANT:

이 선택지는 SQL의 정확한 구문이 아닙니다.

 

③ WITH GRANT OPTION:

이 선택지는 SQL의 정확한 구문입니다. 이 구문을 사용하면, 권한을 부여받은 사용자가 다른 사용자에게 동일한 권한을 부여할 수 있습니다.

 

④ WITH REGRANT OPTION:

이 선택지는 SQL의 정확한 구문이 아닙니다.

 

따라서, 가장 적절한 답변은 ③ WITH GRANT OPTION입니다.

이 문제는 SQL의 권한 부여 구문에 대한 이해를 테스트합니다. GRANT 구문에 WITH GRANT OPTION을 추가하면, 권한을 부여받은 사용자가 다른 사용자에게 동일한 권한을 부여할 수 있습니다.

 

[다음 시간에는 데이터베이스 기출문제 71-75까지 풀어보도록 하겠습니다.]

반응형
LIST