OCP 082 문제 풀이

#1~20

1번 문제(A, C)

키워드 : SMALLFILE, BIGFILE

: 충분한 공간이 /u01에 할당(?)되어있다.

: 둘 중에 어떤 상태가 진짜 BIG_TBS 테이블 스페이스일까?(두 개)

A : 데이터 파일은 언제든지 autoextend로 설정할 수 있다

C : bigfile는 하나의 데이터 파일만을 가지기 때문

(smallfile은 데이터 파일의 크기가 계속 증가할 수 있다)

2번 문제(B)

키워드 : INTERSECT

A : 여러 INTERSECT문을 같은 SQL에서 수행할 수 있다

B : O
C : 집합 연산자는 모두 우선순위가 같다
D : null을 무시하지 않는다

3번 문제(C,D,F)

키워드 : SOURCE ROUTING, ROAD BALANCING

: oracle net에서 oracle database 인스턴스에 연결하는데 지원하는 고급 연결 옵션 선택하기

A : CTF가 장애가 나면 TAF를 자동으로 재연결시킨다.

B : 소스 라우팅에 name server를 반드시 필요로 하지 않는다.
C : O – CMAN이 방화벽 뒤에 있는 데이터베이스로 접근할 때 소스 라우팅을 이용해 트래픽을 허용된 경로로 전달함 → 게이트웨이 역할
D : O – 로드 밸런싱
E : 부하 분산과 이름 서버는 관련이 없음
F : O

4번 문제(C, F)

키워드 : SYSDATE, CURRENT_DATE, CURRENT_TIMESTAMP

NLS_DATE_FORMAT이 DD-MON-YYYY HH24:MI:SS로 설정된 세션에서 날짜/시간 함수에 관한 사실은?(2개)

A : current_timestamp와 sysdate는 서로 다른 세션을 참고함(X)
B : dual과 일반 테이블에서도 조회 가능(X)
C : O
D : sysdate는 기본 날짜 형식을 바꿔도 사용할 수 있음
E : sysdate와 current_date가 참조하는 세션이 다름
F : O

5번 문제(E)

키워드 : temporary UNDO

temporary UNDO는 어디에 저장되나?

A : UNDO TBS
B : SYSAUX → AWR(성능 리포트) 정보를 저장
C : SGA X
D : PGA → TEMP
E : O

6번 문제(B)

키워드 : 은행, TIME

은행 애플리케이션용 테이블을 만드는 과제가 주어졌습니다.

  1. 변환 함수를 사용하지 않고 날짜 산술을 지원하는 형식으로 저장되어야 합니다 .
  2. 최대 10년의 대출 기간을 저장해야 합니다.
  3. 대출이 미납된 일수에 대한 이자를 계산하는 데 사용되어야 합니다.

3가지 모두를 만족하는 날짜 데이터 유형 선택

A → 일수를 구할 수 없어서 틀림

C,D,E → timestamp는 기간을 구할 수 없기 때문에 틀림

7번 문제(B or C) 50%씩 입니다. 팀은 B를 고름(페이지엔 C)

키워드 : LREG는 동적 서비스 기능을 수행하는가?

단일 인스턴스 데이터베이스에서 리스너_1이 로컬리스너로 설정되어있다. 맞는 구문을 고르시오.

B. The LREG process registers services dynamically with the LISTENER_1 listener

  • LREG 프로세스는 동적 서비스 등록 기능을 수행하는 주요 프로세스(PMON)임.

C. LISTENER_1 must also be defined in the LISTENER.ORA file to enable dynamic service registration Most

  • LISTENER.ORA 파일에 동적 서비스 등록 정보가 반드시 정의되어 있을 필요는 없습니다. LREG 프로세스가 자동으로 처리함.

8번 문제(C,D,F)

키워드 : SEGMENT의 특징

논리적 및 물리적 데이터 베이스 구조에 대해 맞는 세가지를 고르시오.

C : Bigfile Tablespace의 크기는 작은 데이터 파일을 여러 개 사용하는 Smallfile Tablespace보다 크거나 작을 수 있습니다
D : 세그먼트는 여러 개의 테이블 스페이스안의 데이터 파일들이 확장된다.

F : 세그먼트는 하나의 익스텐트를 가질 수 도 있고, 여러 개의 익스텐트를 가질 수도 있다.

9번 문제(D,E)

키워드 : SAVEPOINT 의 특징

SAVEPOINT 에 대하여 맞는 설명 두개를 고르시오.

D : A SAVEPOINT does not issue a COMMIT

  • savepoint는 commit을 문제 삼지 않는다( 상관X )

E : Rolling back to a SAVEPOINT can undo a DELETE statement

  • sqvepoint 시점으로 롤백하면 delete문에서 삭제된 데이터를 되돌릴수 있다.

A, B : create index와 truncate는 savepoint 지점으로 롤백할수 없다.

10번 문제(A,C,F)

키워드 : 디스패처의 역할

공유 서버 구성에서 디스패처가 수행하는 세가지 기능은 무엇인가?

A : 모든 공유 서버 연결에서 공통 요청 큐로 들어오는 요청을 작성하는 것

  • 모든 공유 서버 연결로부터 받는 공통된 요청들을 작성하는 것은 디스패처의 역할 입니다.
  • 큐 : 순서대로 처리해야 하는 작업이나 요청을 저장하는 구조

C : 공유 서버 연결을 사용하는 프로세스들로부터 들어오는 요청을 받는 것

  • 여러 클라이언트가 하나의 서버 프로세스들을 공유하여 데이터를 처리하는 구조에서, 클라이언트 또는 프로세스가 서버에 연결을 요청하는 방식 → 디스패처의 역할입니다.

F : 적절한 연결을 통해 공유 서버 세션의 응답을 요청자에게 반환하는 것 → 디스패처의 역할입니다.

  • 디스패처의 역할 :
  1. 디스패처는 클라이언트로부터 오는 연결 요청을 수신하고, 적절한 서버 프로세스에 할당함(→ 서버 프로세스가 클라이언트의 실제 데이터베이스의 요청 처리)
  2. 서버 프로세스와 클라이언트 간의 연결을 관리( 결과를 클라이언트에게 반환, 요청받을 준비 등)
  3. 여러 서버 프로세스가 있을때, 디스패처는 요청을 균등하게 분해하여 시스템 부하 분산

11번 문제 (C,E)

키워드 : SET VERIFY ON

SET VERIFY ON의 설명으로 맞는 두가지를 고르시오.

  • SET VERIFY ON은 바인드 변수 또는 REPLACE 같은 변수 치환이 실제로 실행되기 전에 그 값이 어떤 값으로 치환될지 화면에 표시한다.

C : It can be used in SQL Developer and SQL*Plus

  • SET VERIFY ON은 오라클 SQL에서 사용하는 명령어로, SQL-PLUS나 SQLcl에서 사용 가능하다.
  • A : SQL-PLUS에서만 사용 가능하지 않다.

E : It displays values for variables prefixed with &&

  • &&로 접두사 붙은 변수들의 값을 표시한다
  • SET VERIFY ON 쿼리문에서 변수의 값을 ‘&’ 나 ‘&&’를 사용해 표시한다.

D : It displays values for variables created by the DEFINE command

  • SET VERIFY ON의 쿼리문에서 DEfINE으로 변수의 값을 사용하지만 사용하지 않을수 있음.

12번 문제(B, E, F)

키워드 : self join

셀프 조인에 대하여 맞는 세가지를 고르시오.

B : The query must use two different aliases for the table Most Voted

  • 테이블 알리아스는 서로 다른 두가지를 반드시 사용하여야 한다.

E : The ON clause can be used

  • 기본으로는 사용하지 않지만 사용할 수는 있다.

F : It can be an outer join

  • self join은 outer join에 포함된다.

C, D : self join은 inner join이 아니다. self join에서 등호외 다른 연산자를 사용할수 있기 때문에 무조건 equl join이라는 말을 틀린 답이다.

13번 문제(B)

키워드 : &, condition

세션에서 실행할 때마다 두 개의 열 이름과 WHERE 조건을 묻는 쿼리를 작성하고, 처음 실행할 때만 테이블 이름을 묻는 쿼리를 작성

B : 이미 있는 변수는 &&로 표시

14번(A)

키워드 : D로 시작하는 도시

D로 시작하고 뒤에 최소 두 글자가 붙은 도시에 거주하는 모든 고객의 세부 정보 표시

A : % 쓰려면 like 사용, 최소 2글자 이상이므로 ‘_ + %’에 맞는 답은 A

15번(A,E)

키워드 : datafile, OMF

image.png

A : 위 명령어를 실행하는 동안 DML이 수행되어질 수 있다(12C부터 가능)

E : 파일은 같은 공간 안에서 저장되고 rename 되어야 함

16번(A,D,F)

키워드 : CASCADE, UNUSED COLUMNS

dropping column과 unused column에 대한 사실 중 옳은 것은?

A : cascade 옵션을 사용하면 foreign key를 한 번에 삭제 가능함

D : Partition key는 drop될 수 없다

F : UNUSED로 설정된 열은 테이블당 1000개 열 제한에 포함됨

17번(B,D)

키워드 : ASSM, PCTREE

ASSM(자동 세그먼트 공간 관리)으로 관리되는 블록 내에서의 Oracle DB 공간 관리와 관련하여 사실은?

B : 4가지 충만도 범주 중 하나에 할당함
D : ASSM에 insert, update 나오면 걍 insert

18번(B,C)

키워드 : sequence, ord_seq

image.png

B : ORD_ITEMS 테이블에 행을 삽입하는 모든 사용자는 ORD_SEQ 시퀀스에 대한 액세스 권한이 부여돼야 함

C : 열 ORD_NO는 ORD_ITEMS에 행이 삽입되고 ORD_NO에 대한 명시적 값이 제공되지 않을 때마다 시퀀스 ORD_SEQ에서 다음 숫자를 가져옴

19번(A,B,D)

키워드 : without multi-tenant

: 멀티 테넌트 없이 Oracle Database 서버에서 발생할 수 있는 세 가지 인스턴스 상황은?

A : 별도의 서버에 있는 두 개 이상의 인스턴스가 모두 하나의 데이터베이스와 연결

B : 하나의 데이터베이스에 연결된 하나의 서버의 하나의 인스턴스
D : 어떤 데이터베이스와도 연관되지 않은 한 서버의 한 인스턴스

20번(B,C)

키워드 : UNION, ORDER BY, SET

: UNION과 같은 SET 연산자가 포함된 SQL 명령문과 함께 ORDER BY 절을 사용할 때 맞는 것은?

B : 복합 쿼리의 첫 번째 SELECT 문의 열 이름만 인식됨
C : UNION 연산자가 있는 복합 쿼리의 첫 번째 SELECT의 첫 번째 열은 ORDER BY 절이 없는 경우 기본적으로 출력을 정렬하는 데 사용됨

#21~33

21번

키워드 : account management capabilities, oracle profiles, inactive, required, attempts

comment 답 : A,B,E,F

  • D는 아예 비밀번호를 재사용할 수 없는 것이라고 판단한다면 틀린 것. 하지만, 아래 써있는 명령어들을 조합한다면 재사용 되지 않도록 가능하게 만들 순 있음.
    A를 답으로 한 결론에서 D가 틀린 이유는 오라클 프로파일 비밀번호 정책에서 [password_REUSE_TIME], [password_REUSE_MAX] 는 비밀번호를 재사용 하는 것을 아예 피할 순 없다. 비밀번호를 재사용 하기 전까지 최대 비밀 번호 수와 일수를 설정할 순 있지만, 영원히 사용할 순 없다.

A : 구성된 로그인 시도 횟수에 도달한 후 계정이 잠기는 시간

A가 맞는 이유는 1/24는 1시간, 1/96은 15분 즉 hour도 답이될수있다.

B : 계정이 잠기기 전에 비활성화 될 수 있는 일수

C : 계정이 잠기기 전에 사용자의 세션에 허용되는 최대 CPU 시간

D : 비밀번호가 재사용되지 않도록 방지하는 기능

  • PASSWORD_REUSED_TIME : 이전 비밀번호를 다시 사용할 수 있기까지의 기간 (일 기준)
  • PASSWORD_REUSED_MAX : 같은 비밀번호를 재사용할 수 있는 최대 횟수 → 0회는 불가

E : 비밀번호를 재사용할 수 있는 기간 내에 필요한 비밀번호 변경 횟수

F : 구성된 로그인 시도 횟수에 도달한 후 계정이 잠기는 일수

G : 계정이 잠기기 전 사용자에게 허용되는 최대 세션 수 → 세션 뜻 : 기간, 시간, 세션 / 횟수랑은 의미가 달라서 X

22번

키워드 : statements, single-row functions

정답 : B,C,D

  • 틀린 이유

A : can be used in many parts of a SELECT statement

E : They can accept multiple arguments depending on the specific function.

F : per table(x) per row

23번

키워드 : compression, OLTP, advanced

정답 : E

OLTP 환경은 트랜잭션 빈도가 높고, 대개 실시간으로 많은 데이터를 읽고 쓰는 특성이 있음.

압축 적용할 때 읽기 성능 & 쓰기 성능에 미치는 영향 고려

ROW STORE COMPRESS ADVANCED을 지정하여 테이블 압축을 활성화하면 고급행 압축을 활성화 함. oracle database는 table의 모든 DML 작업 중에 데이터를 압축. 이러한 형태의 압축은 OLTP 환경에서 권장.

24번

키워드 : space-saving, metadata, no segment

정답 : A,B

A : memory에만 메타 데이터를 저장

B : 논리적으로 존재하지만 실제로 segment가 할당되진 않음

C : 세션이 존재하면 drop 되지 않고 존재한다

D : UNUSABLE로 변경하면 해당 인덱스의 segment는 제거됨

E : 기본적으로 segment를 유지함

25번

키워드 : PMON background, abnormally, kills

정답 : B,E

  • 틀린 이유

A: is done by LREG

C: is done by CKPT

D: is done by SMON

26번

키워드 : new transaction, update, DML

정답 : A,D,F

A : CTAS로 하면 commit 된거니 새로운 transaction 시작

B : select 후 truncate는 truncate 이후에 commit 되니 틀림

C : select 후 create도 마찬가지

D : create table과 create index는 동일한 세션 내에서 가능함

E : 새 트랜잭션이 아닌 같은 트랜잭션에서 처리가 가능하다.

F : DML이 실패하면 일반적으로 rollback되거나 오류가 발생하면 트랜잭션이 종료됨. 해당 트랜잭션 내에서 실행된 DML 작업은 전부 취소.

27번

키워드 : SALES1, output, MINUS

정답 : E

sales2에 없는 sales1 테이블의 행을 표시하려고 함

28번

키워드 : PFILE, 1024M, applied

정답 : D

buffer cache size를 늘리려 하고, 사용 가능한 메모리가 있음
ALTER SYSTEM SET DB_CACHE_SIZE = 1024M;

결과는?

A : pfile에서만 변경되고 pfile에서만 변경되고 다음 인스턴스 startup 시 적용 → pfile scope 설정 안함

B : 현재 인스턴스와 pfile에서 값이 변경됨 → 현재 인스턴스만 변경됨
pfile을 직접 수정해야만 적용됨

C : scope 선언이 누락되어 작업이 실패한다. → 실패는 아님

D : 현재 인스턴스에 적용, 인스턴스 재시작 후엔 적용 X

DB_CACHE_SIZE는 동적 변경 가능하다. 하지만, pfile, spfile에 수정한 게 아니라서 재시작하면 적용 X

SCOPE 절이 없어도 명령은 실패하지 X (기본적으로 memory로 적용)

29번

키워드 : OMF, AUTO EXTEND, AWR

정답 : A, D, E

A : OMF(Oracle Managed Files) : datafile, controlfile, redo log file을 자동 관리
파일 관리를 자동화하여 테이블스페이스 관리 방식에 상관없이 작동

B : Online table segment shrink → LMT에서만 지원됨

C : Online index segment shrink → LMT에서만 지원됨

D : Automatic data file extension (AUTO EXTEND)

E : AWR의 과거 데이터를 기반으로 한 용량 계획 성장 보고서

  • DMT : 옛날 (8i) 방식, 성능 ↓, 수동 관리
  • LMT : 현대 방식, 성능 ↑, 자동 관리
  • AWR : CPU, 메모리, I/O 작업, SQL 성능 통계, tablespace 및 datafile 사용량 등 제공 (데이터베이스 사용 및 성장 추세를 기록하는 기능, 테이블스페이스 관리 방식과 독립적으로 작동함)
  • 용량 계획 성장 보고서 : 현 상태 분석, 성장 예측, 병목 현상 분석, 제안 사항

30번

키워드 : STOP_JOB, reattach, resumed

정답 : B, C

A : 더 이상 모니터링 X → 재연결하면 가능

B : 다시 연결하면 모니터링 O – DBA_SCHEDULER_JOBS 뷰 등을 통해 모니터링 가능

C : 일시 중지 되고 재시작 할 수 있음 – 수동으로 재시작 가능

D : 백그라운드에서 계속 실행된다. → 아님

E : 종료된다. → 일시 정지됨. 재시작 가능함

31번

키워드 : with admin option, session, log

정답 : A, B, C, D

  • E, F가 틀린 이유 : quota 설정을 하지 않으면 insert, select 등 불가 → quota 부여하면 DDL,DML 모두 가능

32번

키워드 : where and having, subqueries, before

정답 : C, D

A : having절에 사용된 집계함수와 컬럼은 select절에 없어도 됨

B : 같은 컬럼, 같은 쿼리에도 작성 가능
다만, where절은 그룹화 이전에 작동하고, having절은 그룹화 이후에 작동함

E : having절이 하는 일

33번

키워드 : undo, redo (순서 중요!, 질문, 답 둘 다)

정답 : A, E

B : redo도 생성
oracle 데이터베이스에서 undo 블록 (이전 상태 정보)을 생성하는 작업도 데이터 변경으로 간주되므로, 이를 기록하기 위해 redo log가 생성됨

C : undo는 rollback 될 때랑 쿼리 실행 전에 생성. redo랑 undo는 다름

D : undo도 생성

E : DML은 undo, redo 모두 생성 → redo : 확실히 반영하기 위해 undo : rollback을 대비해서

DML (insert, update, delete)은 데이터베이스 객체를 수정할 때, undo(변경 전 상태)와 redo(변경 후 상태)를 모두 생성.

redo → 장애 복구를 위해 사용

#41~60

#160~166

160번(a, d) → 공식문서 확인 완료

키워드 : segment

오라클 데이터베이스에서 세그먼트에 대한 설명으로 맞는 두가지를 고르시오.

A : Temporary segments are only stored in a temporary tablespace.

  • temporary segment는 임시 세그먼트들로 오직 임시 테이블스페이스인 temporary tablespace에만 저장됩니다.

D : Cluster segments may contain data from multiple tables.

  • 클러스터 세그먼트는 여러 테이블의 데이터를 포함할 수 있다.
  • 클러스터는 여러 테이블을 공통된 키를 기준으로 묶어서, 동일한 데이터 블록에 데이터를 저장하는 방식입니다.

**C : Undo segments are only stored in an undo tablespace.

[ 공식문서 확인 ]

  • “When the database instance starts, the database automatically selects the first available undo tablespace. If no undo tablespace is available, then the instance starts without an undo tablespace and stores undo records in the SYSTEM tablespace.”*를 해석하면 다음과 같습니다:

“데이터베이스 인스턴스가 시작될 때, 데이터베이스는 자동으로 첫 번째로 사용 가능한 undo 테이블스페이스를 선택합니다. 만약 사용할 수 있는 undo 테이블스페이스가 없다면, 인스턴스는 undo 테이블스페이스 없이 시작되며, undo 기록은 SYSTEM 테이블스페이스에 저장됩니다.”

161번(A,D,E)

키워드 :

오라클 데이터베이스 인스턴스에서 백그라운드 프로세스의 기능에 관한 설명으로 맞는 세가지를 고르시오.

A : writing dirty database block images from the buffer cache

  • 버퍼 캐시에서 dirty 데이터베이스 블록 이미지를 쓰기/저장
  • DBWR이 하는 역할입니다.

D : writing redo to log files

  • LGWR이 하는 역할입니다.

E : registering services with Oracle Net listeners

  • 오라클넷 리스너에 서비스 등록하는 프로세스는?
  • PMON이 하는 역할입니다.

**B : reading database blocks into the buffer cache

  • 버퍼 개시에서 데이터블럭들을 읽는 역할은 서버 프로세스나 사용자 프로세스가 수행합니다.

162번 문제(A,D,F)

키워드 : Views

오라클 데이터베이스의 View 에 대한 설명으로 맞는 세가지를 고르시오.

A : Rows inserted into a table using a view are retained in the table if the view is dropped.

  • 뷰에 추가된 행들은 뷰가 드랍이 되어도 테이블에 남아있습니다 – 뷰의 기본 특징입니다.

D : Views have no segment.

  • 뷰는 메모리 저장공간을 필요로 하지 않기 때문에 segment를 가지고 있지 않습니다 – 뷰의 기본적 특징입니다.

F : A view can be created that refers to a non-existent table in its defining query.

  • 뷰는 쿼리에서 참조한 테이블이 존재하지 않아도 Create 할 수 있을 수도 있다.
  • 일단 뷰를 만들고 테이블을 나중에 만드는 경우.(바로 만들어야함)

E : A SELECT statement cannot contain a WHERE clause when querying a view containing a WHERE clause in its defining query.

  • where절이 포함된 뷰를 쿼리문으로 사용할때 select문에는 where절을 사용할수 없다는 것은 틀린 답이다 → 상관없음.

163번(A,D)

키워드 : ORCL:SH, ORCL:OE

image.png

A : ORCL:SH와 ORCL:OE의 모든 인덱스를 건너뜀

D : ORCL:SH와 TESTDB:HR에 모두 존재하는 테이블을 삭제하고 다시 생성

164번(B,C,D)

키워드 : ROLE, SET ROLE

B : SET ROLE 문은 세션에 대해 하나 이상의 ROLE을 활성화할 수 있음

C : ROLE은 ROLE에 부여될 수 있음

D : SET ROLE 문은 세션에 대해 하나 이상의 ROLE을 비활성화할 수 있음

165번(E:200)

키워드 : TRUNC, ROUND

이 쿼리의 결과는? → SELECT TRUNC(ROUND(156.00,-2),-1) FROM DUAL;

166번(BCF or BDF – 반반이지만 우리는 BCF)

키워드 : SHUTDOWN TRANSACTIONAL

SHUTDOWN TRANSACTIONAL 중과 직후에 Oracle Database 서버에 대한 세 가지 진술 중 올바른 것은?

B : 커밋되지 않은 트랜잭션은 다음 COMMIT으로 계속 진행 가능
C :
D :
F : 데이터베이스 인스턴스에 대한 새로운 연결 요청이 거부됨

Leave a Comment