-
정보처리산업기사 모의고사 (2020.08.22) - 1. 데이터 베이스 / 문제 풀이 및 해설 (CBT)자격증/정보처리산업기사 2022. 4. 5. 18:10728x90
# 기출문제 전자문제집 CBT
최강 자격증 기출문제 전자문제집 CBT
전자문제집, CBT, 컴씨비티, 씨비티, 기사, 산업기사, 기능사, 컴활, 컴퓨터활용능력, 1급, 2급, 워드, 정보처리, 전기, 소방, 기계, 사무자동화, 정보기기, 제과, 제빵, 한국사, 공무원, 수능, 필기,
www.comcbt.com
[ 제 1과목 데이터베이스 ]
1. 시스템 카탈로그에 대한 설명으로 옳지 않은 것은?
① 시스템 자체에 관련 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
② 카탈로그들이 생성되면 자료 사전에 저장되기 때문에 좁은 의미로는 자료 사전이라고도 한다.
③ 무결성 확보를 위하여 일반 사용자는 내용을 검색할 수 없다.
④ 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 정보를 저장한다.
시스템 카탈로그(System Catalog) : 데이터베이스 관리자의 도구, DB 내에 저장되어 있는 모든 개체들의 정의, 명세 등을 저장하는 시스템 테이블이다. ( 하나의 작은 데이터베이스 데이터 사전(Data Dictionary)이라고도 한다. )
- ③ 일반 사용자도 내용을 검색할 수 있다.2. 테이블, 뷰, 인덱스 제거 시 사용하는 명령문은?
① CREATE 문 ② DROP 문
③ ALERT 문 ④ CLOSE 문
SQL 명령어 종류에는 DML(Data Manipulation Language : 조작어), DDL(Data Definition Language : 정의어),
DCL(Data Control Language : 제어어), TCL(Transaction Control Language : 트랜잭션 제어어)이 있다.
+ TCL에 대한 정의가 없을 땐, 이에 대한 내용이 DCL 이라 생각하면 된다.
- ② DROP 문DML
DDL
DCL
TCL
SELECT
INSERT
UPDATE
DELETECREATE
ALTER
DROP
RENAME
TRUNCATEGRANT
REVOKECOMMIT
ROLLBACK
SAVEPOINT3. 관계해석에 대한 설명으로 틀린 것은?
① 관계 데이터의 연산을 표현하는 방법이다.
② 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 언어이다.
③ 튜플 관계해석과 도메인 관계해석이 있다.
④ 관계대수로 표현한 식은 관계해석으로 표현할 수 있다.
* 관계대수
: 관계형 데이터베이스에서 원하는 정보를 검색하기 위해 어떻게 유도하는지에 대한 절차적 언어이다.
* 관계해석
: 관계 데이터의 연산을 표현하는 방법. [ 즉, 이는 정보에 대한 정의만을 지닌 비절차적 언어인 셈. ]4. 트랙잭션의 특성 중 “all or nothing”, 즉 트랙잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함을 의미하는 특성은?
① atomicity ② consistency
③ isolation ④ durability
+ 트랜잭션(transaction) : 데이터베이스의 상태에 변화를 주기 위해 수행하는 작업의 단위 ( 유사한 시스템의 상호작용 단위 )
atomicty(원자성) : 하나의 트랜잭션은 모두 성공하거나 또는 실패하여야 한다.
consistency(일관성) : 트랜잭션을 완료하면 언제나 일관성있는 데이터베이스 상태로 변환한다.
isolation(독립성, 격리성, 순차성) : 하나의 트랜잭션이 수행 중, 다른 트랜잭션의 연산이 끼어들 수 없다.
Durability(영속성, 지속성) - 성공적으로 완료된 트랜잭션의 결과를 영구적으로 반영한다.
- ① atomicity5. 데이터베이스 3단계 구조 중 사용자나 응용프로그래머가 사용할 수 있도록 데이터베이스를 정의한 것은?
① 외부 스키마(External Schema)
② 개념 스키마(Conceptual Schema)
③ 내부 스키마(Internal Schema)
④ 관계 스키마(Relational Schema)
데이터베이스 3단계 구조는 외부(External Level), 개념(Conceptual Level), 내부(Internal Level) 스키마로 이루어져 있다.
* 외부 단계
- 추상화의 최상위 단계, 뷰 단계.
- 사용자나 응용 프로그래머에게 설명을 제공한다.
* 개념 단계
- 물리적 저장 구조를 숨기고, 데이터의 유형 / 속성 / 관계를 기술한다. => 논리적 단계
- 데이터베이스의 전체 구조를 추상화한다. -> 개념스키마를 통해 기술
+ 모든 외부 스키마는 개념 스키마로 부터 생성
* 내부 단계
- 물리적 단계, 최하위 단계.
- 하나의 내부 스키마가 존재. -> 개념 스키마에 대한 저장 구조를 정의한 것 => 저장 스키마 라고도 함.
- 물리적 저장 구조에 대한 정의를 한다.
① 외부 스키마(External Schema)6. 데이터베이스 물리적 설계의 옵션 선택시 고려사항으로 거리가 먼 것은?
① 트랜잭션 처리량 ② 공간 활용도
③ 응용프로그램의 양 ④ 응답 시간
데이터베이스 설계에는 1. 요구사항 분석 / 2. 개념적 설계 / 3. 논리적 설계 / 4. 물리적 설계 / 5. 구현 이 있다.
* 물리적 설계(데이터 구조화)
- 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터베이스로 변환
- 데이터베이스 파일의 저장 구조, 레코드의 형식, 접근 경로
- 트랜잭션 작성
- 물리적 설계 옵션 선택 시 고려사항
[ 반응 시간(Response Time), 공간 활용도(Space Utilization), 트랜잭션 처리량(Transaction Throughput) ]
반응 시간(Response Time) : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을 때까지의 경과 시간
공간 활용도(Space Utilization) : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장 공간의 양
트랜잭션 처리량(Transaction Throughput) : 단위 시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수7. 데이터베이스 설계 단계 중 논리적 설계 단계에 해당하는 것은?
① 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계한다.
② 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.
③ 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
④ 저장 레코드의 형식, 순서, 접근 경로 등의 정보가 컴퓨터에 저장되는 방법을 묘사한다.
3. 논리적 설계 에 대한 문제로,
논리적 설계(데이터 모델링)
- 현실 세계의 자료를 컴퓨터가 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환.
- 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
- 개념적 설계 = 개념 스키마 설계
- 논리적 설계 = 개념 스키마 평가, 정제 그리고 특정 DBMS에 종속적인 논리적 스키마 설계
- 트랜잭션의 인터페이스를 설계
- 관계형 데이터베이스라면 테이블을 설계하는 단계
- 문제에서의 나머지 개념은 4. 물리적 설계에 대한 개념이다.8. 다음 인접 행렬(Adjacency Matrix) 대응되는 그래프(Graph)를 그렸을 때, 옳은 것은?
* 인접 행렬(adjacency matrix) : 그래프에서 어느 꼭짓점들이 변으로 연결되었는지 나타내는 정사각 행렬
그래프의 연결 관계를 이차원 배열로 나타내는 방식.
adj[i][j] : 노드 i에서 노드 j로 가는 간선이 있으면 1, 아니면 0
즉, 위의 문제를 풀기 위해 A와 A에 대한 관계를 보면, 0 으로 연결되지 않아야 한다. -> 1, 3번 제외
이후 다른 점을 보이는 C와 B의 관계에서 또한 0으로 연결되지 않아야 하기에 4번이 제외된다.
- ②9. 다음 자료를 삽입 정렬을 이용하여 오름차순으로 정렬할 경우 “pass 5”의 결과는?
① 14, 15, 27, 32, 38, 6, 21
② 14, 15, 32, 38, 27, 6, 21
③ 6, 14, 15, 27, 32, 38, 21
④ 6, 14, 15, 21, 27, 32, 38
* 삽입 정렬(insertion sort)
: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교해 자신의 위치를 찾아 삽입하는 정렬 알고리즘.
- k번째 반복 후, 결과 배열은 k+1.
1회전 14 32 15 38 27 6 21 - 첫번째 값인 32를 key(바로 뒤의 값)와 비교
2회전 14 15 32 38 27 6 21 - 이후 32를 key(15)와 비교, key와 그 앞까지 계속 비교. 변화 없음.
3회전 14 15 32 38 27 6 21 - 32를 key(38)과 비교. 이 경우에는 변경이 없음.
4회전 14 15 27 32 38 6 21 - key(27)로 설정 후 비교.
5회전 6 14 15 27 32 38 21 - key(6)로 설정 후 비교.
즉, 답은 ③10. 정렬 알고리즘 선택시 고려하여야 할 사항으로 거리가 먼 것은?
① 데이터의 양
② 초기 데이터의 배열상태
③ 키 값들의 분포상태
④ 운영체제의 종류
* 정렬 알고리즘 석택 시 고려사항
- 데이터의 양
- 초기 데이터의 분포(배열)상태
- 키 값들의 분포상태
- 소요공간 및 작업시간
- 사용 시스템의 특성11. 총 6개의 튜플을 갖는 EMPLOYEE 테이블에서 DEPT_ID 필드의 값은 “D1”이 2개, “D2”가 3개, “D3”가 1개로 구성되어 있다. 다음 SQL문 ㉠, ㉡의 실행 결과 튜플 수로 옳은 것은?
① ㉠ 3, ㉡ 1
② ㉠ 3, ㉡ 3
③ ㉠ 6, ㉡ 1
④ ㉠ 6, ㉡ 3
- ㉠ 실행시, EMPLOYEE 테이블에 DEPT_ID 필드를 출력한다. 필드 값이 2, 3, 1 이므로 튜플 수는 6.
㉡ 실행시, DISTINCT 키워드는 중복을 제거할때 사용된다. 이때, 필드에서의 중복을 제거하여 산출하기에 3.
+ ④12. 다음의 중위(infix) 표기식을 전위(prefix) 표기식으로 옳게 변환한 것은?
① - + * A B C / D E
② A B * C + D E / -
③ A B C D E * + - /
④ * + - / A B C D E
수식 표기법에는 전위(prefix), 후위(postfix), 중위(infix) 표기법이 있다.
* 전위(prefix) 표기법
- 연산자를 먼저 표시하고 연산에 필요한 피연산자를 나중에 표시하는 방법
* 후위(postfix) 표기법
- 피연산자를 먼저 표시하고 연산자를 나중에 표시하는 방법
* 중위(infix) 표기법
- 연산자를 두 피연산자 사이에 표기하는 방법으로 가장 일반적으로 사용되는 표현 방법.
( 이항 연산자 표현에 적합하며 산술 연산, 논리 연산, 비교 연산 등에 주로 사용함 )
- 전위 표기법 사용하기
1 . 우선순위에 따라 괄호로 묶는다.
( ( A * B ) + C ) - ( D / E )
2 . 연산자를 해당 괄호의 앞으로 이동
( ( * A B ) + C ) - ( / D E )
3 . 한번더 실행
( + * A B C ) - ( / D E )
4 . 마지막 실행 후 괄호 벗기기
- + * A B C / D E
- 후위표기법 사용하기
1 . 우선순위에 따라 괄호로 묶는다.
( ( A * B ) + C ) - ( D / E )
2 . 연산자를 해당 괄호의 앞으로 이동
( ( A B* ) + C ) ( DE / ) -
3 . 한번더 실행
( A B* ) C + ( DE / ) -
4 . 마지막 실행 후 괄호 벗기기
A B * C + D E / -13. 다음 내용과 관련되는 SQL 명령은?
① KILL ② DELETE
③ DROP ④ ERASE
* 릴레이션(Relation)
: 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위, 테이블(Table)이라고도 함.
* 튜플(Tuple)
: 릴레이션의 각 행(row) = 레코드(recode)
즉, 릴레이션에서 튜플을 제거하는 SQL 명령으로 DELETE가 정답이 된다.
+ DROP 은 릴레이션을 제거한다.14. 입력 데이터가 R = (71, 2, 38, 5, 7, 61, 11, 26, 53, 42)일 때 2-Way Merge Sort를 2회전한 후 결과는?
① R = (2, 5, 38, 71, 7, 11, 26, 61, 42, 53)
② R = (71, 2, 5, 38, 7, 61, 11, 26, 42, 53)
③ R = (5, 2, 7, 11, 26, 38, 61, 71, 42, 53)
④ R = (2, 5, 7, 11, 26, 38, 42, 53, 71, 61)
* 합병 정렬(Merge Sort) : 여러개의 정렬된 자료의 집합을 결합해 한개의 정렬된 집합으로 만드는 방법
여기서 2-Way Merge Sort는 결합을 2개씩 기준으로 한다고 생각하면 된다.
입력 데이터를 각각 하나씩으로 분리합니다.
71, 2, 38, 5, 7, 61, 26, 53, 42
2개씩 묶어 정렬합니다. => 1회전
(2,71) (5,38) (7,61) (42,53)
다시 2개씩 묶어 정렬합니다. => 2회전
(2, 5, 38, 71) (7, 42, 53, 61)
즉, R = (2,5,38,71,7,42,53,61) 이 된다.15. n개의 원소를 정렬하는 방법 중 평균 수행시간 복잡도와 최악 수행시간 복잡도가 모두 O(nlog2n)인 정렬은?
① 삽입 정렬
② 힙 정렬
③ 버블 정렬
④ 선택 정렬
* 삽입 정렬(insertion sort)
: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 [ 최선 시간 복잡도 n, 평균 / 최악 시간 복잡도 n^2 ]
* 힙 정렬(heap sort)
: 최대 힙 트리나 최소 힙 트리를 구성해 정렬을 구하는 알고리즘
+ Heap = 완전 이진 트리의 일종. 우선순위 큐를 위해 만들어진 자료구조
[ 최선 / 평균 / 최악 시간 복잡도 nlog2n ]
* 버블 정렬(bubble sort)
: 인접한 두 원소를 검사하여 정렬하는 알고리즘
[ 최선 / 평균 / 최악 시간 복잡도 n^2 ]
* 선택 정렬(selection sort)
: 해당 순서에 원소를 넣을 위치를 정해두고, 어떤 원소를 넣을지 선택하는 알고리즘
-> 즉, 오름차순 정렬시, 최솟값을 탐색하여 배치함.
+ 제자리 정렬(in-place sorting) 알고리즘 중 하나.
[ 최선 / 평균 / 최악 시간 복잡도 n^2 ]
* 셸 정렬(Shell sort)
: 삽입 정렬을 보완한 알고리즘. ( 이웃한 위치로만 이동, 리스르틑 한번에 정렬함. ...)
-> 셸 정렬은 전체의 리스트를 한번에 정렬하지 않는다.
간격(gap)을 k를 정해 정렬해야 할 리스트의 각 k번째 요소를 추출해 부분 리스트로 만든다.
[ 최선 시간 복잡도 n, 평균 시간 복잡도 nlog2n, 최악 시간 복잡도 n^2 ]
* 퀵 정렬(Quick sort)
: 분할 정복 알고리즘의 하나로, 매우 빠른 속도로 수행하는 것이 특징.
-> 리스트에서 요소(pivot)를 선택한다. 이를 기준으로 작은 요소는 왼쪽, 큰 요소는 오른쪽으로 옮긴다.
+ 불안정 정렬에 속하며, 비교 정렬에 속한다.
[ 최선 / 평균 시간 복잡도 nlog2n, 최악 시간 복잡도 n^2 ]
* 병합정렬(Merge sort) = 합병 정렬
: 하나의 리스트를 균등한 크기로 분할 후, 정렬한다. 이후 정렬된 리스트를 합해 전체가 정렬되도록 수행한다.
+ 안정 정렬에 속하며, 분할 정복 알고리즘의 하나이다. (퀵)
[ 최선 / 평균 / 최악 시간 복잡도 nlog2n ]
참고 블로그 : https://gmlwjd9405.github.io/2018/05/10/algorithm-heap-sort.html16. 정규화의 원칙으로 거리가 먼 것은?
① 하나의 스키마에서 다른 스키마로 변환시킬 때 정보의 손실이 있어서는 안 된다.
② 이상현상 제거를 위해 데이터의 종속성이 많아야 한다.
-> 종속성을 제거하여 독립성을 높인다.
③ 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리시켜 표현한다.
④ 데이터의 중복성이 감소되어야 한다.
* 정규화(Normalization)
: 관계형 데이터베이스의 설계에서 중복을 최소화(Integrity : 무결성)할 수 있도록 데이터를 구조화하는 프로세스.
정규화에는 제 1, 제2, 제3, BCNF 정규화가 있다.
* 제 1정규화 (1NF)
- 테이블 컬럼(column = 열, 필드, 어트리뷰트) 이 원자값을 갖도록 테이블을 분해하는 것.
즉, 속성이 더이상 쪼개지지 않을 값으로 존재해야 한다.
* 제 2정규화 (2NF)
- 제 1정규화를 만족하고, 이에 대한 테이블이 완전 함수 종속을 만족하도록 분해해야 한다.
즉, 기본키의 부분집합이 결정자가 되어선 안된다는 것이다.
* 제 3정규화 (3NF)
- 제 2정규화를 만족하고, 이에 대한 테이블에 이행적 종속을 없애는 것이다.
즉, A->B, B->C가 성립되는 경우, A->C가 성립되는 것을 이행적 종속이라 하며 이를 없애야 하는 것이다.
* BCNF 정규화
- 제 3정규화를 만족하고, 이 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것이다.17. 관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성을 무엇이라 하는가?
① 후보 키(Candidate Key)
② 외래 키(Foreign Key)
③ 슈퍼 키(Super Key)
④ 대체 키(Alternate Key)
* 후보키(Candidate Key)
: 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
* 외래키(Foreign Key)
: 관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성
* 슈퍼키(Super Key)
: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키 (각 행을 식별할 수 있음)
* 대체키(Alternate Key)
: 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들
* 기본키(Primary Key)
- 후보키들 중에서 하나를 선택한 키로 최소성과 유일성을 만족하는 속성18. 다음 ( ) 에 알맞은 용어는?
① Concurrency Control ② Backup
③ Normalization ④ Transaction
* 문장 해석()은 데이터베이스를 복사하는 활동입니다. 그렇게해서 장비문제(equipment failure) 혹은 재앙(catastrophe)이 있을 때 보존(preserved)될 것입니다.
① Concurrency Control
: 동시성 제어, 빠른 조회와 동시에 병행되는 동작의 정확한 결과를 발생한다. -> 무결성(Integrity) 보호
② Backup
: 임시 보관. 문제가 일어나도 데이터를 복구할 수 있도록 준비해두는 것.
③ Normalization
: 정규화, 데이터베이스의 중복을 최소화하기 위해 데이터를 구조화하는 프로세스
④ Transaction
: 상호작용의 단위. 데이터베이스에서 수행하는 작업의 단위19. 릴레이션의 기본키를 구성하는 어떤 속성도 널(Null) 값이나 중복 값을 가질 수 없음을 의미하는 것은?
① 참조 무결성 제약조건
② 정보 무결성 제약조건
③ 개체 무결성 제약조건
④ 주소 무결성 제약조건
* 개체 무결성
: 릴레이션에서 기본키를 구성하는 속성은 널(NULL)값이나 중복값을 가질 수 없음
* 참조 무결성
: 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함, 즉 릴레이션은 참조할 수 없는 외래키값을 가질 수 없음
* 도메인 무결성
: 특정 속성의 값이, 그 속성이 정의된 도메인(범위)에 속한 값이어야 한다는 규정
* 키 무결성
: 릴레이션에는 최소한 하나의 키가 존재해야 함.
* null 무결성
: 특정 속성은 null값을 가질 수 없음. - 중요한 정보는 null이 올 수 없음.
* 고유 무결성
: 특정 속성값은 서로 달라야 함. _ 삽입되는 데이터가 고유한 값을 가져야 한다.20. E-R 다이어그램에서 개체를 의미하는 기호는?
① 사각형 ② 오각형
③ 삼각형 ④ 타원
사각형 : 개체(Entity)
마름모 : 관계(Relationship)
타원 : 속성(Attribute)
E-R다이어그램 참고 사이트 : [ https://m.blog.naver.com/gongtong/150135598792 ]728x90