티스토리 뷰

정보처리기사20180819(교사용).docx
0.07MB

장장 한달여간 정보처리기사 기출문제 한편을 들여다 봤다. 오늘부터는 다시 작년도 기출문제를 들여다볼 계획이다. 지난번엔 처음이니까 좀 오래걸렸지만 다음부터는 점점 빨라질거다. 금방금방 배워서 꼭 필기 통과하자.

 

1. Linear Search의 평균 검색 회수는?

순차검색(Sequential Search, Linear Search)

- 첫번째 또는 마지막 레코드를 시작으로 특정 레코드의 탐색 작업이 순차적으로 처리

- 프로그램 작성이 쉽고, 정렬되지 않은 레코드 검색이 가능

- 파일이 크면 탐색 시간 증가

- 평균비교횟수: ( n + 1 ) / 2 

- 평균 검색시간 : O(n)

 

정답은 ( n + 1 ) / 2, 2번이 되겠다.

2. 관계 데이터베이스 제약조건 중 한 릴레이션의 기본 키를 구성하는 어떠한 속성 값도 널(NULL) 값이나 중복 값을 가질 수 없다는 조건은?

https://blog.thereis.xyz/110 에 보면 3월 3일에도 기출된 문제로 "개체 무결성" 제약을 보면 되겠다.

 

혹시 모르니까 무결성 조건에 대해서 다시 한번 읽어보도록 하자.

 

 

  • 개체 무결성
    - 기본키 속성은 Null, 중복값 불가
  • 참조 무결성
    - 외래키(FK)는 Null 또는 참조 릴레이션(테이블)의 기본키(PK) 값과 동일
  • 도메인 무결성
    - 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다....
      도메인이란 속성값이 가질 수 있는 원자값의 집합인데 예를 들어 속성이 "성별"이라면 가질 수 있는 속성 값은 "남"과 "여"라는 두가지만 가질 수 있다. 이 이외의 값을 갖는다면 도메인 무결성이 깨진 것이라고 할 수 있다.
  • 고유 무결성
    - 속성값에 고유한 값을 가져야만 할 때 모두 다른 값을 갖는 것을 고유 무결성이라고 한다. 예를 들어 로그인 "아이디"와 같은 값이다.
  • Null 무결성
    - 특정 속성 값이 Not Null인 경우 속성의 값에 Null을 부여할 수 없다는 제약조건
  • 키 무결성
    - 한 릴레이션(테이블)에는 최소한 하나의 키(PK)가 존재해야만 한다는 제약조건

 

3. 해싱에서 동일한 홈 주소로 인하여 충돌이 일어난 레코드들의 집합을 의미하는 것은?

데이터베이스에서 해싱관련 용어에 대해서 좀 알아보자.

 

- 해시 함수(Hash Function) : 데이터를 키로 변환하는 함수

- 홈 주소(Home Address) : 해시 함수에 의해 변환된 키 값의 주소

- 해시 테이블(Hash Table) : 해시 함수가 키 값을 생성할 때 참조하는 테이블

- 버킷(Bucket) : 하나의 주소를 갖는 파일의 한 구역

- 슬롯(Slot) : 한 개의 레코드를 저장할 수 있는 공간. 한 버킷 안에는 여러개의 슬롯이 있다.

- 충돌(Collision): 다른 레코드가 갘은 키를 가지는 충돌 현상. 레코드는 버킷의 다음 슬롯에 들어가게 된다.

- 동의어(Synonym): 충돌이 일어난 레코드의 집합. 키 값이 같은 레코드의 집합으로, 동의어가 슬롯의 갯수보다 많으면 오버플로우가 발생할 수 있다.

- 오버 플로우(Overflow) : 한 홈 주소의 버킷 내에 더이상의 레코드를 저장할 슬롯이 없는 상태

 

정답은 1번! 동의어 Synonym이 되시겠다아!

 

4. 뷰에 대한 설명으로 옳지 않은 것은?

https://blog.thereis.xyz/110 여기 가면 8번에 같은 문제가 있는 것을 확인할 수 있다. 뷰에 대한 간략산 설명이 있는데 요점은 뷰도 하나의 테이블이라고 볼 수 있는데 다만 다른 테이블들의 정보를 참조하여 만들어낸 테이블이라서 삽입, 삭제, 갱신 연산에 제약사항이 계속 발생한다.

 

1번이 정답이다.

 

5. 다음 정규화에 대한 설명으로 틀린 것은?

정규화는 논리적 설계 단계에서 수행하게 된다. 개념적 설계는 E-R 다이어그램을 그린다.

https://blog.thereis.xyz/115 에서 11번 문제를 참고 바란다.

 

6. n개의 노드로 구성된 무방향 그래프의 최대 간선 수는?

이건 햇깔리기 쉬운데 일단 "완전 그래프"에서

 

정점이 n개인 무방향 그래프에서 최대의 간선 수는 n(n - 1 ) / 2개

정점이 n개인 그래프에서 최대 간선 수는 n(n -1)개가 되겠다.

 

그러므로 정답은 2번, n(n - 1)/2가 됩니당.

 

7. 다음 postfix로 표현된 연산식의 연산 결과로 옳은 것은?

3 4 * 5 6 * +

일단 "postfix로 표현된 연산식"이 무슨 뜻인지 부터 알아보자.

 

- 스택(Stack)을 이용하여 연산자가 뒤에 위치하도록 한 수식

- 사람 입장에선 이해하기 어려우나 컴퓨터 입장에선 계산하기 수월하다.

 

그러면 우리가 알아보기 쉬운 식으로 바꿔주면

 

( 3 * 4 ) + ( 5 * 6 ) = 12 + 30 = 42

이렇게 되는 거다. 설명이 너무 간단해서 이해가 어렵다면 이렇게 이해하면 되겠다.

 

3 4 * | 5 6 * | + 

일단 맨 처음엔 연산 기호를 기준으로 구분해준다.

그 다음에 연산 기호를 두개의 순자 사이에 위치시킨다.

 

3 * 4 | 5 * 6 | +

이렇게 배치되어 계산이 가능해지면 아래와 같이 값이 나올거다.

 

12 30 +
12 + 30
42

그러면 위 처럼 숫자 두개에 연산자 하나가 나오고 결국 이 두개의 숫자를 더해주면 42의 값이 나오게 된다.

이게 Postfix 방식으로 표현된 연산식을 계산하는 방법이다.

 

8. 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법은?

동시성 제어(Concurrency Control)란 서로 다른 작업들이 번갈아 수행되어 동시에 실행하는 것 처럼 보이는 것을 제어하는 방법을 의미한다.

 

이 방법들은 여러가지 것들이 있는데 그 종류에 대해서 잠깐 알아보면

 

구분 제어기법 내용
Locking Shared Lock 데이터 항목에 대해 읽기만 가능
Exclusive Lock 데이터 항목에 대해 읽기와 기록(입력/삭제)가 모두 불가능
2 Pahase Locking 모든 트랜잭션들이 Lock과 Unlock연산을 확장 단계와 수축 단계로 구분하여 수행함
Timestamp Ordering DB시스템에 들어오는 트랜잭션 순서대로 System Clock / Logical Counter 할당 하고 순서를 부여하여 동시성 제어의 기준으로 사용
Validation(낙관적 검증) 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시 일괄적으로 검사 기법
MVCC(다중 버전 동시성 제어) 트랜잭션의 타임 스탬프와 접근 데이터의 여러 버전 타임 스탬프 비교하여 직렬 가능성이 보장되는 버전 선택

이렇게 되시겠다. 먼저 정답부터 알려주면 2번 타임스탬프 기법인데 위의 표에 설명에는 없지만 추가적으로 설명하자면 DB시스템에 들어오는 트랜잭션 순서대로 나열하는 작업 자체가 "순서를 미리 정하는 방법"이 된다.

그래서 "타임스탬프 기법"이 정답이 된다.

 

9. SQL 문장 중 DDL문이 아닌 것은?

https://blog.thereis.xyz/115 에 가서 12번 문제를 잘 파악하도록. Data Definition Language의 명령어 종류는 CREATE, ALTER, DROP, GRANT, REVOKE, COMMENT, TRUNCATE 가 있다.

 

DELETE는 DML(Data Manipulation Language)에 속한다.

 

10. 다음 문장의 빈칸에 들어갈 단어는?

A (        ) is an ordered list in which all insertions and deletions are made at one end, called the top.

대충 해석하면 "(  ) 은 모든 입력, 삭제가 한쪽끝에서 이뤄지는 순서 목록이다."가 되는데 이건 뭐 Stack이 되겠다.

Queue는 LIFO라서 한 쪽은 입력, 다른 한 쪽은 삭제가 된다.

Stack은 FIFO라서 한 쪽에서 입력, 삭제가 이뤄진다.

 

Tree는 비선형 구조라서 "Ordered List"가 될 수 없다.

List는 뭐 목록이지.

 

댓글
댓글쓰기 폼