본문으로 건너뛰기

단원 모의 문제

정보처리기사 목차데이터 전환문제 11개

18단원 '데이터 전환'의 네 레슨에서 6문제, 앞 단원(14·16)에서 2문제를 섞었고, 끝에 실기 꼴 3문제가 있습니다. 앞 단원 문제가 어느 레슨인지는 정답을 펼치면 보입니다. 문제의 SQL은 아래 네 표로 Oracle에서 돌린다고 보고 풀어 보세요. 실기 꼴은 종이에 답을 끝까지 쓴 뒤 펼치세요. 띄어쓰기만 다르면 같은 답입니다.

학과

학과코드학과명건물
CS컴퓨터공학관
EE전자공학관
BA경영경영관

학생

학번이름학년학과코드
101김민수3CS
102이서준2CS
103김지민2CS
104박서연1EE
105최민준3EE
106정하윤3EE
107강도현1NULL

과목

과목코드과목명학점선수과목
DS자료구조3NULL
OS운영체제3DS
NW네트워크2OS

수강

학번과목코드점수
101DS85
101OS75
101NW80
102DS70
102OS60
103DS65
103NW55
104OS75
104NW95
105DS100
105NW90
107NW50

문제 1

대학이 학사 시스템을 새로 만들어 옛 데이터를 옮깁니다. 계획을 세운 뒤 할 일 (가)~(라)를 차례대로 든 것을 고르세요.

  • (가) 전환 프로그램을 만들어 시험으로 돌려 본다

  • (나) 옛 표의 열을 새 표의 열에 맞추고 바꿀 규칙을 정한다

  • (다) 옮긴 데이터가 원천과 맞는지 확인한다

  • (라) 실제 데이터를 추출·변환·적재한다

  • ① (가) → (나) → (라) → (다)

  • ② (나) → (가) → (다) → (라)

  • ③ (나) → (가) → (라) → (다)

  • ④ (나) → (라) → (가) → (다)

정답

③ — 바꿀 규칙을 먼저 정해야 그 규칙대로 전환 프로그램을 만들 수 있고, 만든 프로그램을 돌려 본 뒤에 실제 데이터를 옮깁니다. 맞는지 확인하는 일은 옮긴 데이터가 생긴 다음입니다.

  • ① 프로그램을 먼저 만든다고 봤습니다. 어느 열을 어떤 규칙으로 바꿀지 정하지 않으면 만들 것이 정해지지 않습니다.
  • ② 확인을 전환 앞에 두었습니다. 옮긴 데이터가 있어야 원천과 맞춰 볼 것이 생깁니다.
  • ④ 시험으로 돌려 보지 않고 실제 데이터를 옮긴다고 봤습니다. 전환 프로그램은 만든 뒤 돌려 보고 나서 실제 데이터에 씁니다.

다시 볼 레슨: 데이터 전환과 ETL

문제 2

어느 병원이 진료 기록을 새 시스템으로 옮기며, 업무를 멈추고 전체를 한 번에 옮기는 빅뱅 방식을 골랐습니다. 이 방식에서 (가) 업무를 멈추는 시간과 (나) 전환이 실패했을 때 되돌리는 범위로 알맞은 것을 고르세요.

  • ① (가) 길지만 한 번뿐이다 · (나) 옮긴 토막만 되돌린다
  • ② (가) 길지만 한 번뿐이다 · (나) 옮긴 것 전체를 되돌린다
  • ③ (가) 짧게 여러 번이다 · (나) 옮긴 토막만 되돌린다
  • ④ (가) 짧게 여러 번이다 · (나) 옮긴 것 전체를 되돌린다
정답

② — 전체를 한 번에 옮기므로 업무를 멈추는 시간이 길지만 한 번으로 끝납니다. 토막으로 나누지 않았으니 실패했을 때 되돌릴 범위도 옮긴 것 전체입니다.

  • ① (나)를 단계적 방식의 것으로 봤습니다. 실패한 토막만 되돌릴 수 있는 쪽은 업무·기간으로 나누어 여러 번 옮기는 쪽입니다.
  • ③ 두 자리를 모두 단계적 방식의 것으로 봤습니다. 짧게 여러 번 멈추는 것도 나누어 옮기는 쪽의 모습입니다.
  • ④ (나)는 맞게 봤지만 (가)를 단계적 방식의 것으로 봤습니다. 한 번에 옮기면 멈추는 시간이 한 번으로 모입니다.

다시 볼 레슨: 데이터 전환과 ETL

문제 3

병원이 진료 기록을 환자번호 순으로 쌓은 색인 순차 파일로 둡니다. 기본 구역이 꽉 찬 뒤, 환자번호 순으로 보면 가운데 자리에 들어가야 하는 새 기록을 넣을 때 일어나는 일로 알맞은 것을 고르세요.

  • ① 뒤에 있는 기록을 모두 한 칸씩 옮겨 쓴 뒤 그 자리에 넣는다
  • ② 색인 구역에 그 기록을 적어 둔다
  • ③ 들어갈 자리를 계산해 그 자리에 바로 넣는다
  • ④ 미리 비워 둔 오버플로 구역에 적고, 원래 자리에서 그곳을 가리킨다
정답

④ — 색인 순차 파일은 기본 구역에 빈자리가 없을 때를 대비해 오버플로 구역을 미리 비워 둡니다. 넘친 기록을 그곳에 적고 원래 자리에서 가리키므로 뒤에 있는 기록을 옮겨 쓰지 않습니다. 다만 오버플로 구역이 쌓이면 찾는 데 걸리는 시간이 늘어나 파일을 다시 정리해야 합니다.

  • ① 순차 파일에 끼워 넣을 때의 일입니다. 색인 순차 파일은 그 비용을 오버플로 구역으로 줄입니다.
  • ② 색인 구역을 기록이 들어가는 자리로 봤습니다. 색인 구역에는 기본 구역 기록의 위치를 찾아가는 색인만 들어갑니다.
  • ③ 직접 파일에 넣을 때의 일입니다. 색인 순차 파일은 자리를 계산하지 않고 키 값 순으로 쌓습니다.

다시 볼 레슨: 파일 처리 기술: 파일 편성

문제 4

학생이 100만 명인 학생 표에 이름으로 찾는 인덱스를 하나 만들어 두었습니다. 이름이 '김민수'인 학생의 학번과 학년을 찾는 쿼리를 돌릴 때 DBMS가 하는 일로 알맞은 것을 고르세요.

  • ① 정렬된 인덱스를 따라 몇 칸만 읽어 행의 위치를 알아낸 뒤 그 행을 읽는다
  • ② 표의 모든 행을 처음부터 읽으며 이름을 하나씩 견준다
  • ③ 이름으로 저장 자리를 계산해 그 자리의 행을 바로 읽는다
  • ④ 인덱스에 담긴 값만 읽고 표의 행은 읽지 않는다
정답

① — 인덱스는 열의 값과 그 값이 든 행의 위치를 정렬해 표와 따로 저장한 구조입니다. 정렬되어 있어 몇 칸만 내려가면 찾는 이름에 닿고, 거기 적힌 위치로 표의 행을 읽습니다.

  • ② 인덱스가 있어도 전체를 훑는다고 봤습니다. 모든 행을 읽는 전체 테이블 스캔은 인덱스가 없을 때 하는 일입니다.
  • ③ 키 값을 저장 자리로 바꾸는 계산으로 찾는다고 봤습니다. 그렇게 찾는 것은 사상 함수를 쓰는 직접 파일이고, 인덱스는 정렬된 구조를 따라 내려갑니다.
  • ④ 인덱스가 행의 모든 값을 담고 있다고 봤습니다. 인덱스에는 이름과 행 위치만 있어, 학번과 학년을 보려면 표의 행을 읽어야 합니다.

다시 볼 레슨: 인덱스

문제 5

전환을 준비하며 데이터 전환 체크리스트를 만듭니다. 이 문서에 적는 것으로 알맞은 것을 고르세요.

  • ① 옛 열을 새 열로 바꾸는 규칙과 코드 대응
  • ② 오류마다 어느 행인지와 처리 상태·심각도
  • ③ 작업 상세 항목과 예정 시작·종료 시각, 담당자
  • ④ 원천과 목적 시스템의 환경 구성과 비상 계획
정답

③ — 체크리스트는 전환 작업을 잘게 나누어 작업 상세 항목과 예정 시작·종료 시각, 담당자를 적고 끝낼 때마다 표시하는 문서입니다. 전환을 하다 만나는 위험에 미리 대비하려고 만듭니다.

  • ① 매핑 정의서에 적는 것입니다. 어느 열을 어느 열로, 어떤 규칙으로 바꿀지 미리 적어 두는 문서입니다.
  • ② 오류 관리 목록에 적는 것입니다. 센 오류를 하나씩 적어 두는 쪽입니다.
  • ④ 데이터 전환 계획서에 적는 것입니다. 대상·범위·일정과 함께 전환의 큰 그림을 적는 쪽입니다.

다시 볼 레슨: 데이터 전환 계획과 검증 · 데이터 전환과 ETL

문제 6

전환 프로그램이 오류 없이 끝났고 적재 로그에도 실패가 남지 않았습니다. 그런데 원천에 있던 회원 300명이 새 표에 들어가지 않았습니다. 이 빠짐을 알아내는 방법으로 알맞은 것을 고르세요.

  • ① 원천의 건수와 적재된 건수를 양쪽에서 세어 맞춰 본다
  • ② 적재 로그에 남은 처리 건수와 오류 메시지를 다시 읽는다
  • ③ 새 시스템의 회원 조회 화면을 열어 자료가 보이는지 본다
  • ④ 매핑 정의서에 적어 둔 규칙을 처음부터 다시 읽어 본다
정답

① — 프로그램이 알아채지 못한 누락은 로그에 남지 않습니다. 양쪽에서 건수를 세어 맞춰 보는 것은 프로그램이 남긴 말을 믿지 않고 데이터를 직접 세는 일이라, 300건이 모자란 것이 그대로 드러납니다.

  • ② 프로그램이 남긴 말을 다시 읽는 것입니다. 짝을 찾지 못해 조용히 빠진 행은 실패로 적히지 않아 로그에서는 보이지 않습니다.
  • ③ 들어간 자료가 화면에 보이는지만 봅니다. 남아 있는 회원이 제대로 보이면 넘어가게 되어 없는 300명은 드러나지 않습니다.
  • ④ 규칙에 빠진 것이 없는지 다시 읽는 일입니다. 규칙이 제대로 적혀 있어도 짝이 없는 값은 빠지므로, 읽는 것만으로는 몇 건이 빠졌는지 알 수 없습니다.

다시 볼 레슨: 데이터 전환 계획과 검증

문제 7

원천에 있었는데 새 표에 짝이 없는 행을 찾는 꼴을 익혀 둡니다. 학생 표에서 수강 기록이 하나도 없는 학생을 찾으려고 다음 쿼리를 돌렸습니다. 결과로 알맞은 것을 고르세요.

SELECT S.학번,
  S.이름
FROM 학생 S
  LEFT JOIN 수강 E
  ON E.학번 = S.학번
WHERE E.학번 IS NULL
ORDER BY S.학번;
  • ① 한 행도 나오지 않는다
  • ② 106 정하윤 한 행이 나온다
  • ③ 106 정하윤과 107 강도현 두 행이 나온다
  • ④ 학생 일곱 행이 모두 나온다
정답

② — LEFT JOIN은 왼쪽 학생 표의 행을 모두 남기고, 짝이 없는 행은 오른쪽 수강 표에서 오는 칸을 NULL로 채웁니다. 그 뒤 WHERE E.학번 IS NULL이 NULL로 채워진 행만 골라내므로 수강 표에 행이 하나도 없는 106번만 남습니다.

  • ① 짝이 없는 행은 조인에서 버려진다고 봤습니다. 짝만 남기는 것은 내부 조인이고, 외부 조인은 짝 없는 행을 남깁니다.
  • ③ 학과코드가 NULL인 107번까지 넣었습니다. 107번은 네트워크(NW)를 듣고 있어 수강 표에 행이 있습니다. 여기서 보는 NULL은 조인이 채운 칸입니다.
  • ④ LEFT JOIN이 왼쪽 행을 모두 남기니 결과도 일곱 행이라고 봤습니다. 조인한 뒤의 WHERE가 다시 골라냅니다.
학번이름
106정하윤

다시 볼 레슨: 조인

문제 8

도서관이 옛 대출 시스템의 기록을 새 시스템으로 옮기다 두 가지가 걸렸습니다.

  • (가) 옛 기록 300건에 반납일이 비어 있습니다. 반납일은 꼭 있어야 하는 값입니다.
  • (나) 옛 기록의 대출 상태는 '대출중'·'연체'로 바르게 들어 있는데, 전환 프로그램에 이 글자를 새 시스템의 코드로 바꾸는 규칙이 빠져 있습니다.

(가)·(나)의 정제 방법으로 알맞은 것을 고르세요.

  • ① (가) 전환을 고친다 · (나) 전환을 고친다
  • ② (가) 전환을 고친다 · (나) 원천을 고친다
  • ③ (가) 원천을 고친다 · (나) 원천을 고친다
  • ④ (가) 원천을 고친다 · (나) 전환을 고친다
정답

④ — 데이터 자체가 틀렸으면 원천을, 데이터는 맞는데 새 시스템이 받을 꼴로 바꾸지 못했으면 전환 프로그램을 고칩니다. (가)의 반납일은 옛 시스템에 값이 아예 없으니 원천에서 채워야 합니다. (나)의 상태 값은 바르게 들어 있고 빠진 것이 바꾸는 규칙이라 전환 프로그램에 그 규칙을 넣습니다.

  • ① (가)도 전환에서 메울 수 있다고 봤습니다. 전환은 있는 데이터를 옮기는 일이라 없는 값을 만들어 내지 못합니다.
  • ② 두 자리를 거꾸로 봤습니다. 빈 값은 원천에서 채우고, 바꾸는 규칙은 전환 프로그램에 넣습니다.
  • ③ (나)도 원천을 고친다고 봤습니다. 옛 시스템은 아직 돌고 있어 그 글자를 쓰는 화면과 보고서가 함께 깨집니다.

다시 볼 레슨: 데이터 정제와 품질

문제 9 (실기)

데이터 전환의 세 걸음 가운데 (가)의 이름을 영문 원어로, (나)를 영문 약어로 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

  • (가) 쓰던 시스템의 데이터를 고치지 않고 읽어 내어 파일로 받아 두는 걸음
  • (나) 세 걸음을 묶어 부르는 이름
정답

받는 답: (가) Extraction · (나) ETL

(가)의 실마리는 '원천을 고치지 않고 읽어 낸다'이고, (나)는 세 걸음의 머리글자를 이은 이름입니다.

  • 같은 이름의 다른 꼴: (가) 추출 — 한글 이름입니다. 문제가 영문 원어로 물었습니다. Extract처럼 명사형이 아닌 꼴도 받지 않습니다.
  • 틀리는 꼴 Transformation — (가)에: 새 시스템의 구조·코드·형식에 맞게 값을 바꾸는 걸음입니다. (가)에서는 값을 바꾸지 않습니다.
  • 틀리는 꼴 Loading — (나)에: 세 걸음 가운데 마지막 걸음 하나의 이름입니다. 묶어 부르는 이름은 머리글자 셋을 이은 것입니다.

다시 볼 레슨: 데이터 전환과 ETL

문제 10 (실기)

어느 통신사가 가입자 기록을 파일로 둡니다. 가입자번호를 저장 자리로 바꾸는 계산을 두고, 넣을 때도 찾을 때도 그 계산으로 자리를 구해 다른 기록을 거치지 않고 바로 읽습니다. 이 파일 편성의 이름을 한글 이름과 영문으로 함께 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

정답

받는 답: 직접 파일(Direct File)

실마리는 '키 값을 계산해 자리를 정하고, 다른 기록을 거치지 않고 바로 읽는다'입니다.

  • 같은 이름의 다른 꼴: 한글 이름만, 또는 영문만 쓴 꼴 — 문제가 둘을 함께 쓰라고 했습니다.
  • 틀리는 꼴 색인 순차 파일(Indexed Sequential File): 키 값 순으로 쌓아 두고 색인을 먼저 보아 묶음을 골라 건너뜁니다. 자리를 계산하지 않습니다.
  • 틀리는 꼴 순차 파일(Sequential File): 처리할 순서대로 이어 붙여 두어, 하나를 찾으려면 앞에서부터 차례로 읽습니다.

다시 볼 레슨: 파일 처리 기술: 파일 편성

문제 11 (실기)

어느 쇼핑몰 데이터베이스가 주마다 월요일 새벽에 저절로 깨어나, 지난주 주문을 모아 집계 표에 넣습니다. 표의 데이터가 바뀌지 않아도 때가 되면 돌고, 어느 한 표에 매여 있지도 않습니다. 이것의 이름을 한글 이름과 영문으로 함께 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

정답

받는 답: 이벤트(Event)

실마리는 '정해진 때가 되면 돈다'와 '어느 한 표에 매여 있지 않다'입니다.

  • 같은 이름의 다른 꼴: 한글 이름만, 또는 영문만 쓴 꼴 — 문제가 둘을 함께 쓰라고 했습니다.
  • 틀리는 꼴 트리거(Trigger): 표의 데이터가 바뀔 때 깨어납니다. 데이터가 그대로면 돌지 않습니다.
  • 틀리는 꼴 저장 프로시저(Stored Procedure): 누군가 EXECUTE나 CALL로 불러야 돕니다. 때가 되어 저절로 돌지 않습니다.

다시 볼 레슨: 트리거와 이벤트

끝까지 내려오면 저절로 표시됩니다. 이 기기에만 저장합니다.

정보처리기사 목차로