한국어

About_LINUX

오라클 데이터베이스관리자

2003.11.06 12:52

jun 조회 수:22140

Oracle7 : Database Administration 정리 및 문제
제 1 장

1. 프로세스가 비정상적으로 종료시 lock 을 해제하는 프로세스는?

2. 필수적인 background process가 아닌 것은?
   1) PMON   2) SMON   3)LGWR   4) ARCH

3. redo log file의 최소갯수는?

4. DB 생성시 control file default 개수는?

5. 자기 자신에 관한 user 정보를 볼 수 있는 data dictionary view는?

6. dirty buffer를 datafile에 write하는 process는?

7. DBWR가 데이터를 DB에 write하는 시점 4가지는?

8. LGWR가 redo log buffer를 redo log file에 쓰는 시점은?

9. transaction이 시작하고 끝나는 시기?

10. rollback segment의 minextent최소값?

11. pctfree와 chain의 관계?

12. bitmap indexing 에 적합한 data column 유형은?

13. cluster index 에 관해?

14. constraint 유형

15. system권한과 object 권한을 revoke 할때 with admin option의 cascade 여부는?

16. role이란 무엇이고 언제 사용하는가?

17. system auditing과 object auditing에 관해 구별하라.

18. control file 전반


[ 해 답 ]

1.        PMON        

2. 4

3. 2개

4. 1개

5. user_users

6. DBWR




7.  - LRU list를 1/3이상 검색하고도 free buffer를 찾지 못한 경우
    - dirty list의 limit에 도달한 경우
    - checkpoint 발생
    - timeout

8.  - commit
    - redo log buffer가 1/3이상 찼을때
    - checkpoint 발생
    - timeout

9. transaction의 시작
       - session의 시작
       - 그이전의 transaction이 끝났을때
    transaction의 끝
       - commit/ rollback
       - DDL/DCL문
       - shutdown ( normal, immediate)
       - disk failure, db shutdown abort등

10. 2

11. pctfree가 작으면 row migration이 많이 일어남

12. - data의 cardinality가 작은 column
    - join이 자주 되는 column
    - table에 공통적으로 있는 column

13. cluster의 data에 접근하려면 반드시 cluster index 가 존재해야 한다.

14. not null, unique, primary key, foreign key, check

15. with admin option은 system privilege에 적용되며 with grant option은 object
    privilege에 적용된다. with admin option은 revoke 후에 cascade되지 않고
    with grant option은 cascade된다.

16. role이란 privilege들의 집합으로 사용자별로 privilege를 하나씩 grant하지 않고
    한번에 control 할 수 있도록 해준다.

17. system auditing에는 create, drop (table, index, cluster, ...)이 있고
    object auditing에는 insert, delete, update, 등이 있다.

18. control file은 db start mount, open, access시에 사용된다.
    log sequence number등 동기화정보와  backup에 필요한 정보가 저장된다.



제 2 장

1. oracle 에 필수적인 process 4개는?

2. datafile에서 생기는 빈공간을 coalesce시키는 process는?

3. diftributed transaction에서 failure를 resolve시키는 process는?

4. server process의 역할은?

5. DB의 physical structure 를 가지는 file 은?

6. PGA란?

7. control file의 최소 개수 및 최적화

8. multiflexed redo log file에 대해

9. alter file에 저장되는 정보들 및 위치
   trace file에 저장되는 정보들 및 위치

10. password file을 생성하는 법

11. startup 의 단계별 목적 및 상태구분

12. shutdown 단계 중 uncommited transaction을 rollback시키는 것은?

13. parameter file의 comment 방법은?

14. default NLS는?

15. Data dictionary category?

16. rollback block에는 어떤 정보가 담겨져 있나?

17. redo log buffer에 저장되는 정보는?

18. LRU list에서 현재 사용중인 buffer는? (덤으로 LRU list에 관해)

19. when DBWR write dirty buffer to disk?

20. when LGWR write redo log buffer to redo log file?

21. when COMMIT operation occur?

22. when ARCH active?

23. where is log sequence number stored in?

24. when checkpoint occurs?

25. what is LOG_CHECKPOINT_INTERVAL?

26. sort 전용으로 SMON에 의해 coalsce되는 segment는?

27. rollback segment에 대해서
    - optimal parameter에 대해
    - 한 transaction에 할당되는 rollback segment의 개수는?
    - pctincrease 값은?
    - MINEXTENTS의 최소값은?

28. [control block space] migration을 줄일려면 어떻게 해야하나?

29. PCTFREE, PCTUSED 값에 따른 결과

30. backup을 받으려할때  datafile의 정보를 보기위한 data dictionary 는?

31. row delete 시 high water mark는?

32. select (100*s.wait/s.gets)|| '%' from v$rollstat s
    에서 value가 3%라면 어떤 일을 해야하나?

33. 대량의 batch job을 돌려야 할때 rollback segment를 어떻개 해야 하는가?

34. bitmap index의 장점은?

35. when creating table if INIT = 50k, NEXT = 20K, PCTINCREASE = 30
    what's the third extention size?

36. PMON, SMON의 비교 분석

37. create user jang identified by externally의 의미는?

38. audit 정보가 저장되는 data dictionary table은?

39. profile에 대해서

40. hash cluster에서 hashkey = 40 일때 몇개의 hash key가 생성되는가?

41. clustering을 해야 하는 경우

42. lock을 monitor할 수 있는 utility는?

43. A가 B, B가 C로 privilege를 with grant option으로 줄때 A가 B에게서 revoke한다면
     C의 privilege는?

44. user와 schema의 관계?

45. object privilege와 system privilege의 구분

46. contraint의 종류는?


[ 해 답 ]

1. SMON, PMON, DBWR, LGWR

2. SMON

3. RECO

4. parse, execute, fetch
   read data block from disk into data buffer
   return the results of SQL statement to user to user process

5. control file

6. 각 user마다 공유하지 않고 할당되는 server process에 관한 variable, 등등의 정보
   (책 참조)


7. 필요한 최소갯수는 1.
   최적화는 최소 2개 이상 서로 다른 disk에 저장

8. 2개

9. SMON에 error발생시 trace file에 저장
   internal error, STARTUP등 administration정보 : Alert file에 저장
   Server process에 문제시 trace file

10. ORAPWD utility

11. nomount : instance open / create database, create control file시 사용
    mount :  database mount / database 구조변경, recovery시
    open : database open

12. shutdown immediate시

13. #, --

14. US7ASCII

15. user_
    all_
    dba_

16. before image

17. all database changed information (before image, after image)

18. pinned buffer

19. dirty list limit에 도달시
    LRU list 1/3검색시 free buffer를 찾지 못할때
    timeout / checkpoint 발생

20. commit실행
    redo log buffer가 1/3이상 사용시
    timeout / checkpoint 발생

21. commit;실행시
    ddl, dcl statement 실행시 (create , drop, grant, revoke, truncate)
    sql이 정상적으로 종료되었을때

22. archive mode 시 log switch가 일어날때

23. control file, 각 datafile header

24. log switch / log_checkpoint_timeout/ log_checkpoint_interval
    shutdown normal, immediate / tablespace online --> offline
    dba가 checkpoint를 강제로 발생시킬때

25. log file이 사용된 block의 수
    이전 checkpoint가 발생한 이후 사용된 lot buffer의 수가 interval에 기록된 수보다
    커지면 checkpoint발생

26. temporary segment





27. - optimal에 정해준 size이상 rollback segment extent가 할당될때 size만큼 de-allocate된다.
    - only one
    - 0
    - 최소 2

28. pctfree값을 크게 해준다.

29. 책 참조

30. dba_data_files

31. 안바뀐다.
    high water mark 이전의 빈 block을 de-allocate하기 위해서는 truncate를 하거나
    export/import하는 수밖에 없다.

32. rollback segment 수를 늘려준다.

33. rollback segment 크기를 늘린당.

34. column cardinarity가 낮고 table이 크고, row의 수가 많은 경우 사용한다.
    perfomence가 좋다.

35. 20 * 1.3 = 26k

36. 책보고 해!

37. OS에 의해 인증된 user jang을 생성

38. SYS.AUD$

39. user에게 할당된 system resource limit를 설정해놓은 list
    ( system resource에 관해 공부할것!)

40. 41개 ( 40이상의 최소의 솟수)

42. utlockt.sql

43. B와 C 모두 privilege를 빼았긴다.

44. user가 생성되면 자동으로 같은 이름의 schema가 생성된다.

45. system privilege - create, drop, truncate...
    object privilege - insert, delete, update, alter

46. primary, foreign, not null, unique, check



제 3 장

1. Oracle Instance 란 ?

2. 기본적인 background process 4개를 적으시오.

3. SMON이 하는 일? ( 첨가 : PMON이 하는일)

4. parameter중에서 변경이 불가능한 것은?

5. ORACLE 수행시 control file이 참조되는 경우는?

6. startup option?

7. SGA 구성영역?

8. checkpoint 발생경우?

9. control file에 저장되는 정보는?

10. DB의 운영시 필요한 redo log file의 최소갯수는?


[ 해 답 ]

1. SGA(memory) + backgroud process

2. SMON, PMON, DBWR, LGWR

3. instance recovery, 사용된 temporary 영역을 회수, fragment 병합(아주 가끔)
   (비정상종료된 process의 resource  release, lock 풀기, ..찾아보슈!)

4. DB_BLOCK_SIZE (변경시 ORACLE backup후 다시 database를 create해야함)

5. db mount +  open + access

6. nomount, mount, open

7. Shared Spool(shared SQL Area + Data Dictionary) +  Data Buffer Cache +
    Redo  Log File

8. log switch발생,  check_point_timeout 초과시, check_point_interval 초과시,
    shutdown (normal, immediate), tablespace offline시

9. DB_NAME, redo log file정보, datafile 정보, recovery에 필요한 동기화정보,
   등등....(user/table에 관한 직접적인 정보는 없당!)

10. 2개




제 4 장

1. Password File 내용을 볼수있는 View?

2. 가장 fragment가 많이 발생하는 segment는?

3. User_ ...인 data dictionary에 대한 설명? (Dba_, All_ 도)

4. SQL statement에서 access권한을 check하는 부분은?

5. update수행과정은?

6. DBWR가동 시점은?  

7. LGWR가동 시점은?

8. 변경이 불가능한 storage parameter 2개는?

9. PCTFREE를 작게하면? (또는 크게하면?)

10. PCTUSED를 크게하면? (또는 작게하면?)


[ 해 답 ]

1. V$PWFILE_USERS

2. temporary segment  (data segment = 0에 가까움, > index , rollback )

3. USER_..S : User가 Owner인 모든 object에 관한 정보
   ALL_..S : User가 access할 수 있는 모든 object에 관한 정보
   DBA_..S : DBA만 볼수있으며 모든 object에 관한 정보.

4. Parse시

5. data를 data buffer cache에 가져온다.  -->  rollback 에 쓰일 부분을 획득한다. -->
   두 영역에 lock을 설정 -->  redo log buffer에 before image, after image 기록  -->
   rollback 영역에 before image를 저장  --> data 영역 변경

6. - dirty list의 한계 초과시
- LRU list를 1/3이상 검색할동안
   free buffer를 찾지 못한경우
- timeout
- check point발생시

7.- commit수행시
- redo log buffer가 1/3이상 기
   록된 경우
- timeout
- check point 발생시

8. INITIAL, MINEXTENTS

9. block 사용율이 높다.  - 필요한 block수 감소
   row migration이 많다  -  비용 증가

10. block 사용율이 높다. - 필요한 block수 감소
    비용이 증가 - free list에 삭제/삽입이 자주 일어난다.
   ( )는 반대겠쥐?


제 5 장

1. 다음중 segment 종류가 아닌것은?
    1 data segment  
    2 index segment  
    3 temporary segment  
    4 system segment

2. tablespace내 fragmentation을 병합하는 command는
    ALTER  TABLESPACE tablespace명  COALESCE;  이다.  (T/F)

3. rollback segment의 설명이 아닌것은?
    1 읽기 일관성, recovery에 필요하다
    2 optimal parameter는 할당되었던 영억을 자동적으로 회수한다.
    3 MINEXTENTS는 최소한 2이상이다.
    4 특정 transaction에 rollback segment를 지정할 수 없다.

4. bitmap index에 관한 내용이 아닌것
    1 table이 큰 경우                    
    2 cardinality가 낮은 column
    3 data warehouse에 적합하다          
    4 lead column에 제약이 있다.

5. index cluster 에 대한 설명이 아닌것은?
    1 index를 생성해야 data access가 가능하다.
    2 자주 join이 일어나는 table로 구성한다.
    3 공통 column을 갖는 table로 구성한다.
    4 SIZE parameter는 block 크기를 결정한다.

6. cluster 변경시 추가되는 data block에만 영향을 미치는 parameter는?

7. self referncing foreigh key를 갖는 table에 row를 insert하는 방법이 아닌것?
    1 FK column에 null값을 갖는 행을 insert
    2 data insert 후에 enable한다.
    3 data insert 후에 enable 하는 방법밖에 없다.
    4 단일 insert 문장을 사용하여 처음 몇개의 항을 insert한다.

8. primary key constraint 설명중 틀린것?
    1 PK column의 값은 유일하다.      
    2 null 값을 허용한다.
    3- index를 자동으로 생성해준다.

9. User와 schema의 설명으로 맞는것
    1 user가 생성되면 schema가 같은 이름으로 생성된다.
    2 user 생성후 다른 이름으로 별도의 schema를 생성해야 한다.
    3 user 생성후 다음번 instance 시작시 자동으로 생성된다.

10. ALTER SYSTEM KILL SESSION comman시 필요한 사항


[ 해 답 ]

1. (4)   2. T   3. (4)  4. (4)  5. (4)  6. INITRANS   7. (3)   8. (2)   9. (1)
10.  SESSION ID , Serial No






제 6 장

1. Create Tablespace로 크기가 2M인 Tablespace를 생성했는데,
   initial 1M, next 1M인 table이 만들어 질것인가?
    ① 만들어지지만 다음 extent가 할당되어 지지 않는다.
    ② 만들어지지만 한개의 extent만 더 늘어날수 있다.
    ③ 만들어지지 않는다.

2. Tablespace가 1M인 Tablespace에 initial 1M인 table이 만들어질것인가?

3. redo log와 control file의 최소 갯수
   -> redo log : group 2개(각 group당 member 1개씩), control file : 1개

4. With Grant option에 대한 문제 다수
   (Ann이 With Grant Option으로 John 에게 select 권한을 주고, John은 select권한을
    role에게 주었는데, Ann이 John의 권한을 revoke 시키면 role을 받은 사람들은
    select를 할 수 있는가?)

5. 건물에 곧 정전이 나게되어 System을 Shutdown해야하는데, 15명의 user가 계속 접속을
   하고있을 경우 어떤 option으로 DB를 Shutdown 시켜야 하는가?
   -> Shutdown immediate (abort 옵션은 아님..)

6. Bitmap index가 효과적인 Data 형태
   -> Large data, low cardinality

7. Hash Cluster를 만드는 명령어 (예문중 하나 고르는 것임)
   CREATE CLUSTER cluster
   SIZE 100M
   TABLESPACE tablespace
   STORAGE storage_cluause
   HASHKEYS 50M;

8. Rollback segment에 Highwater mark가 실제 Data보다 높은곳에 설정되어 있다.
   왜 그런가?

9. 대량의 Data를 삭제해야 하는데, Rollback segment가 조금 모자란다.
   이럴경우 Truncate를 사용하면 어떻게 되는가?

10. 여러 작은 freespace를 하나로 만드는 기능과 그것을 담당하는 Background process
    -> Coalesce, SMON

11. 어떤 application이 느리다고 불평이 나왔다, 분석결과 같은 SQL문들이 불규칙하게
    쓰여졌기 때문이었다.(어떤 SQL문은 소문자, 어떤 SQL문은 대문자...)
    이것을 고쳤을때 Performance는 어떤 부분에서 향상될것인가?
    -> Parce tree만드는 부분에서 절약

12. 내가 어떤 table을 내 스키마 안에 create했다. 이 table을 select 하는 권한을
    test_role에 줄 수있는가?
    ① 만들어진다.
    ② sys user라야만 권한을 줄수 있다.
        ③ test_role을 소유한 user가 권한을 줄수 있다.

13. Mutiplexed redolog file에 대한 문제

14. 에러가 trace 파일에 쓰여지게 하려면 어떻게 해야하는가?
    ① System default이므로 아무런 일도 할필요 없다.
    ② SQL_TRACE를 TRUE로 해야한다.
    ③ SQL_TRACE를 TRUE로 하고 instance를 다시 start시켜야 한다.


15. Database를 Create할려면 DB가 어떤 상태이어야 하는가?
    -> Startup nomount

16. DB의 parameter중 변경할 수 있는 것은? (CHOOSE 3)
    -> DB_BLOCK_SIZE는 변경 불가

17. ROLE은 누가 소유하는가?
      
18. rollback segment의 기능
    -> user가 rollback이나 savepoint로 rollback하기 위함
       read consisty를 보장

19. system 유저로 접속을 했을때 다른 system 유저의 session을 kill session으로 죽일수 있는가?
    ① sys user는 가능
    ② system user로는 다른 권한없이 가능

20. User를 Drop시키고자 할때 User에게 Data가 있을경우 어떻게 되는가?

21. PCTFREE를 크게 잡으면 어떻게 되는가?

22. rollback segment에서 OPTIMAL의 정의에 관한 문제

23. SQL Loader를 이용해 대량의 Data를 insert할때 constraint를 off 시켰다가, inster가 끝난후
    자동으로 on시킬때 reject된(error가난) row들은 어디에 저장되어 있는가?
    -> BAD File

24. PASSWORD File을 생성하고자 한다. 어떻게 하는가?

25. Foreign Key 관련으로 error가 났다. 이것에 관한 내용을 보려면 어떤것을 보아야 하는가?
    ① DBA_CONSTRAINTS
    ② USER_CONSTRAINTS
    ③ USER_CONSTRAINTS와 USER_CON_COLUMN의 JOIN

26. A 유저가 자신의 스키마 안에서 TABLE을 생성하였다. B 유저에게 그 TABLE을 SELECT(?)하는 권한을 주었을때
    B 유저가 TABLE을 SELECT할때 A 유저의 TABLESPACE의 ROLLBACK SEGMENT가 할당되는가?

27. TABLESPCE의 PCTINCREASE를 10으로 늘렸을 경우 그 TABLESPACE 안에 있는 TABLE들은
    어떤 영향을 받는가?
    ① TABLE에서 PCTINCREASE값이 0이었던 TABLE들만 PCTINCREASE 값이 변화
    ② 모든 TABLESPACE안의 TABLE들의 PCTINCREASE값이 변화
    ③ ORACLE SYSTEM DEFAULT로만 적용됨. 변화 없음.

28. 시스템 성능을 저하시키는 요인으로 developer들이 idle로 계속 접속해 있는 문제가 꼽혔다.
    그래서 5분동안 idle이면 자동으로 접속해제되게 하려면...
    ① ALTER USER 명령 이용
    ② ROLE을 수정
    ③ PROFILE을 수정

29. CLUSTER를 하였을경우 잇점은?

30. OLTP 관련 문제

31. CHECKPOINT가 빈번하게 발생될 경우, 이로 인한 결과.



제 7 장

1. Redo Log의 최소 갯수
        - Redo Log Member 2개   - each Logfile 1개

2. Server나 Background Process에서 Error 발생시 조치해야 하는 방법
        - BACKGROUND_DUMP_DESC 에 있는 Trace file 을 보고 조치

3. 어떤 유저가 있는데 이사람은 startup, shutdown, 그리고 OS Backup 만 주로 한대네요..
        그리고, 이 유저는 table 조회 등은 하지 않습니다. 이때 부여해야 하는 권한은 ??
        - OSOPER 인것 같음. 공부 해보셔.

4. DATABASE을 새로 생성한후 non-system RBS을 생성하지 않고, user Tablespace을 생성후
        여기에 table을 등록하고 data을 insert할때 어떻게 되겠냐???

5. 망가진 INDEX을 새로 생성하기 위한 START UP은?
        - STARTUP restrict PFILE =

6. ARCHIVE을 AUTOSTART 하기 위해서 EDITING해야 하는 PARAMETER는?
        - LOG_ARCHIVE_START = TRUE

7. USER_xxx : View accessible to user, going information on their own objects

8. DATABASE에서 unused space information이 있는 것은?
        - DBA_FREE_SPACE

9. ORA-1118 eroor arise - MAXDATAFILES limit가 넘었을 경우 하는 방법은?
        -

10. DBWR가 disk에 dirty buffer을 저장할 때는?
        - The dirty ...(책을 보셩.)

11. LOG_CHECKPOINT_INTERVAL 발생시 최초로 발생하는 일은?
        즉, Checkpoint 발생시 최초로 동작하는 일은 무엇인가?
        - 각 Database file header와 control file에 checkpoint sequence number을 write한다(나의 생각)

12. 어떤 table에서 Update는 거의 일어나지 않고 insert만 무진장 일어 난다면 storage option을 어떻게
        해주어야 하는가?
        - Lower PCTFREE

13. Temporary sequence에서 reclaim 하는 process는 ? SMON

14. RBS에서 OPTIMAL의 사용용도.

15. RBS에서 Shrink의 의미와 사용 방법은?

16. User 관리하는 Dictionary는?
        - DBA_USERS, DBA_TS_QUOTAS

17. A    index을 하였는데 저번주 보다 index가 많이 drop하였을 경우 해주어야 하는 것은?
        - 아마도 deallocate unuse해야 하지 않을까요?

18. BITMAP index을 써야 할 때
        
19. wormstart 관련. Rollback은 언제하는가?
        - 다 알죠.



20. Roll-forward란?


21. Constraints의 정보가 들어가 있는 dirctionary들..
        - 공부할 것.

22. ROLL 과 GRANT에 관련된 다수의 문제. WITH ADMIN OPTION의 정확한 의미를 알아둘 것.
        
23. 어떤 Develpor들이 있는데 이 들은 create, drop, alter table의 작업을 무진장 한다.
        이때 어떤 auditing을 해주어야 하는가?
        - Objec Auditing

24. Audit 자료가 insert 되는 Ditionary는?
        - SYS.V$AUID

25. SQL*Loader에서 Direct-Path에 관련된 문제들.


                  출제된 문제들                     문항수
===========================    =======
1. Overview Of Oracle7 Architecuter                   4
2. Start Up and Shut Down an Instance                 3
3. Create a Database                                   3
4. Accessing and Updating Data                        3
5. Manage Transaction Concurrency                   3
6. Manage The Database Structure                     5
7. Manage Storage Allocation                          5
8. Manage Rollback Segments                          5
9. Manage Table And Index Segments                  5
10. Manage Cluster Segments                          2
11. Manage Constraints                                3
12. Manage Users                                      4
13. Manage Resource Usage                            2
14. Manage Database Access                           5
15. Manage Roles                                      4
16. Audit The Database                                2
17. SQL*Loader                                        2



제 8 장

1. 다음 프로세스중 오라클 인스턴스 기동시에 반드시 작동되어져야 하는 필수프로세스가 아닌 것은?
A. DBWR
B. LGWR
C. CKPT
D. PMON


2. 다음 프로세스중 TEMPORARY SEGMENT에 의하여 이미 사용되었으나 더 이상 사용되지 않는 공간에 대하여 재할당작업을 수행하는 프로세스는 어느것인가?
A. SMON
B. PMON
C. RECO
D. CKPT


3. SQL문장이 수행될때 Server Process가 수행하는 다음의 단계중 보안의 체크는 어느단계에서 이루어 지는가?
A. Parse
B. Execute
C. Fetch


4. 다음은 SGA의 크기를 결정하는 파라미터들이다. 이중 초기화 파라미터화일을 이용하여 수정할수 없는 파라미터는 무엇인가?
A. SHARED_POOL_SIZE
B. DB_BLOCK_SIZE
C. DB_BLOCK_BUFFERS
D. LOG_BUFFER


5. 현재 사용하고 있는 데이터베이스를 원격 관리하고자 한다. PASSWORD화일을 이용하여 DABATASE 인증을 받고자 할 때 다음중 어떤 방법을 이용하여야 하는가?
A. CONNECT / AS SYSDBA명령으로 LOGIN한다.
B. REMOTE_LOGIN_PASSWORDFILE = SINGLE로 SET하여 이용한다.
C. ORACLE INTERNAL UTILITY ORAPWD를 이용하여 PASSWORD FILE을 생성한다.
D. ORACLE EXTERNAL UTILITY ORAPWD를 이용하여 PASSWORD FILE을 생성한다.

6. 오라클 인스턴스를 STARTING UP할때 실행되지 않는 것을 모두 택하시오.
A. 백그라운드 프로세스를 기동한다.
B. 파라미터화일 init.ora를 읽는다.
C. CONTROL화일을 읽는다.
D. TRACE와 ALERT화일을 OPEN한다.
E. SGA를 할당한다.


7. FULL DATABASE MEDIA RECOVERY를 수행하며, DBA엑세스만을 허용하고자 할 때 이용되어야 할 STARTUP MODE는?
A. STARTUP MOUNT
B. STARTUP NOMOUNT
C. START RESTRICT OPEN
D. START RESTRICT MOUNT

8. 당신은 DBA로서 DATABASE를 관리하고 있다. 어느날 정전이 될것이란 통보를 받고 DATABASE를 이용중인 모든 사용자에게 정전이 될 시간 10분이전까지 하던 작업을 끝내고 세션을 끝내주기를 당부했다.
정전이 되기 5분전까지 아직 세션이 끝나지 않은 사용자들이 있다면 당신은 지금 DATABASE를 SHUPDOWN하기 위하여 다음중 어느 MODE를 이용해야 하는가?
A. SHUTDOWN
B. SHUTDOWN NORMAL
C. SHUTDOWN IMMEDIATE
D. SHUTDOWN ABORT

9. DATABASE생성시 DEFAULT로 몇 개의 LOG GROUP과 각 GROUP당 몇 개의 LOG FILE MEMBER가 만들어 지는가?
A. 1개의 LOG GROUP, 각 GROUP당 1개의 LOG FILE MEMBER
B. 1개의 LOG GROUP, 각 GROUP당 2개의 LOG FILE MEMBER
C. 2개의 LOG GROUP, 각 GROUP당 1개의 LOG FILE MEMBER
D. 2개의 LOG GROUP, 각 GROUP당 2개의 LOG FILE MEMBER

10. 당신이 관리하는 DATABASE에 예약주문 시스템을 개발하여 이용중이며 이 시스템을 위한 테이블스페이스는 APP_DATA, APP_INDEX이다. 다음 테이블스테이스중 DATABASE가 작동중일때 항상 OFFLINE으로 될수 없는 것을 모두 고르시오.
A. SYSTEM
B. TEMP
C. ROLLBACK
D. APP_DATA
E. APP_INDEX


[ 해 답 ]

1. <정답> C
<관련 Contents> OVERVIEW OF ORACLE7 ARCHITECTURE
- BACKGROUND PROCESSES
<해설> DBWR, LGWR, SMON,PMON의 4개 프로세스는 오라클 인스턴스
       기동시에 반드시 필요한 필수 프로세스임. 이들 프로세스는 초기화
       파라미터를 수정함으로써 제어할수 업고, 이들 프로세스중 하나라도
       실패하면 오라클 인스턴스는 작동되지 않으며 재기동 되어져야 한다.

2. <정답> A
<관련 Contents> OVERVIEW OF ORACLE7 ARCHITECTURE
- BACKGROUND PROCESSES
   <해설> 개별 프로세스의 실패등에 관련된 일은 주로 PMON이 담당하고
           시스템 전반에 관련된 일들은 SMON이 담당한다.
           SMON은 자동 인스턴스복구수행, TEMPORARY SEGMENT에 의하여  
           이미 사용되었으나 더 이상 사용되지 않는 공간에 대하여 재할당
           작업수행, 데이터화일의 자유공간에 대하여 연속적인 공간으로의 합병등의 역할을 한다.

3. <정답> A
<관련 Contents> OVERVIEW OF ORACLE7 ARCHITECTURE
- SERVER PROCESSES
   <해설> Parse단계에서 Syntax Check, Security Access, Object Resulution,  
          Optimization등이 이루어진다. 이때 Parsing은 Shared SQL Area를 이용한다.
          Execute단계에서는 Parse단계에서 만들어진 Parse Tree를 실제 데이터
          에 적용한다. 따라서 이때 Physical Read 또는 Change가 일어난다.
          Fetch단계에서는 SQL문장이 SELECT문일 경우에 데이터를 USER 에게 전달한다.

4. <정답> B
<관련 Contents> OVERVIEW OF ORACLE7 ARCHITECTURE
- PARAMETER FILE
   <해설> DB BLOCK SIZE는 DB생성시에 주어져야 하며 일단 DB가 생성되고
          나면 절대 수정할수 없다. 이 값을 수정하려면 DB를 다시 생성하여야 한다.
          이 파라미터의 DEFAULT값은 OS에 따라 다르다.

5. <정답> D
<관련 Contents> STARTING UP AND SHUTTING DOWN AN INSTANCE
   - AUTHENTICATION METHODS
   <해설> DATABASE를 원격관리하기 위해서는 OS인증을 이용하는 방법과
          PASSWORD FILE을 이용하는 방법이 있다.
          PASSWORD FILE을 이용하기 위해서는 다음의 절차가 필요하다.
    - ORACLE EXTERNAL UTILITY ORAPWD를 이용하여 PASSWORD FILE을 생성한다.
    - REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE로 SETTING한다.
    - DATABASE관리자에게 sysoper 또는 sysdba권한을 부여한다.
    - CONNECT user AS sysdba 또는 sysoper을 이용하여 CONNECT한다.

6. <정답> C
<관련 Contents> STARTING UP AND SHUTTING DOWN AN INSTANCE
- STARTING UP AN INSTANCE
   <해설> CONTROL화일은 DATABASE를 MOUNT 하고 OPEN할 때 사용되며
          INSTANCE를 STARTING UP할 때는 사용되지 않는다.
          파라미터 파일은 INSTANCE STARTING UP시 INSTANCE(백그라운드
          프로세스등)의 정보를 알아내기 위하여, TRACE 및 ALERT화일은
          INSTANCE 기동시 및 프로세스 오류시 LOG를 기록하기 위하여 OPEN된다.

7. <정답> D
<관련 Contents> STARTING UP AND SHUTTING DOWN AN INSTANCE
- STARTING UP AN INSTANCE
<해설> INSTANCE RECOVERY를 수행하여야 할 때 MOUNT OPTION을
  이용한다. NOMOUNT OPTION은 DATABASE생성을 위하여 사용된다.
  RESTRICT OPTION은 일반적인 사용자들이 DATABASE에 로그온하지 못하도록 할 때 이용된다.

8. <정답> C
<관련 Contents> STARTING UP AND SHUTTING DOWN AN INSTANCE
- SHUTTING DOWN THE DATABASE
   <해설> 갑작스럽게 DATABASE가 다운되는 것이 아니므로 INSTANCE
          RECOVERY가 필요한 ABORT OPTION를 이용할 필요가 없다.
          또한 사용자들이 있으므로 NORMAL OPTION으로는 모든 사용자들이  
          그들의 세션을 종료할 때까지 SHUTDOWN이 되지 않을것이다.
          따라서 DATABASE를 안전하게 SHUPDOWN하기 위해서는  
          IMMIDIATE OPTION을 이용해야 한다.

9. <정답> C
<관련 Contents> CREATING A DATABASE
   <해설> DATABASE생성시 DEFAULT는 2개의 LOG GROUP, 각 GROUP당
          1개의 LOG FILE MEMBER이다. 하지만 REDO LOG자료의 손실을
          방지하기 위하여 각 GROUP당 2개이상의 MEMBER를 가지도록 권장하고 있다.

10. <정답> A
<관련 Contents> CREATING A DATABASE - DETERMINING TABLESPACES
   <해설> SYSTEM 테이블스페이스만이 항상 OFFLINE으로 될수 없다.
          ROLLBACK 테이블스페이스는 현재 이용중인 ROLLBACK SEGMENT
          가 없을때 OFFLINE이 가능하고, TEMP 테이블스페이스는 현재 이용
          중인 SORT작업을 없을때 OFFLINE이 가능하다.



제 9 장

1. SEGMENT를 분리하여야 하는 이유로서 타당하지 않은 것은?

A. 각각 다른 BACKUP의 필요에 따라서
B. 질의에 대한 응답속도를 빠르게 하기 위하여
C. 엑세스할 필요가 각각 다른 경우에 대하여
D. 각각 다른 LIFE SPAN을 가지는 경우에 대하여


2. 일반사용자로서 DATABASE에 로그온했다. 다음의 SQL명령을 실행하였을때 볼수있는 내용은 무엇인가?

SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE'

A. 로그온한 사용자가 볼수있는 권한을 가진 모든 테이블
B. 로그온한 사용자가 소유한 모든 테이블
C. DATABASE내에있는 모든 테이블
D. 일반사용자로 로그온 하였기 때문에 이 SQL문장을 실행할수 없다

3. DEDICATED SERVER 프로세스가 이용될 때 SESSION VARIABLE과 ARRAY가 저장되는 곳은 어디인가?
A. SHARED POOL
B. SGA
C. PGA
D. DATABASE BUFFER CACHE

4. 동일한 SQL 문장을 공유하기 위하여 SHARED SQL AREAS 가 이용되는데 다음 동일한 SQL문장을 만족하기 위한 조건중 틀린 것은?
A. 참조되는 모든 OBJECT들이 동일해야 함
B. 이용되는 변수의 TYPE과 명이 동일해야 함
C. TEXT STRING의 UPPERCASE, LOWERCASE가 모두 동일해야 함
D. TEXT STRING에 이용된 SPACE도 동일해야 함
E. 특정값이 참조되었다면 참조된 값도 동일해야 함
F. 위의 모든 내용이 동일한 SQL문장을 만족하기 위한 조건임


5. UPDATE문장이 실행될때의 과정중 CHANGE를 하려는 ROW에 EXCLUSIVE ROW LOCKS이 주어진 직후 일어나는 EVENT는 무엇인가?

A. DATABASE BUFFER CHCHE내로 데이터 블록을 읽어들인다
B. DATA BLOCK BUFFER에 변경된 내용를 저장한다
C. ROLLBACK SEGMENT BLOCK BUFFER에 ROLLBACK DATA를 저장한다
D. REDO LOG BUFFER에 BEFORE와 AFTER IMAGE를 구분하기 위하여 저장한다


6. DBWR이 항상 DIRTY BUFFERS를 DISK에 WRITE하는 경우가 아닌 것은?

A. DBWR CHECKPOINT가 발생했을 경우
B. TIME-OUT이 발생했을 경우
C. COMMIT이 발생했을 경우
D. 프로세스가 자유버퍼를 찾기전에 LRU LIST에서 특정수의 버퍼를 SCAN했을경우


7. A라는 사용자가 다음 문장을 실행하였다.

1. TABLE_A의 A ROW에 대한 UPDATE문장
2. TABLE_B의 CREATION
3. COMMIT 실행

B라는 사용자가 TABLE_A에 대한 SELECT권한이 있다고 가정할 때
TABLE_A의 A ROW에 대한 변경사항을 가장 빨리 볼수 있는 것은
언제인가?

A. 1번 - 2번사이
B. 2번 - 3번사이
C. 3번이후
D. 변경사항을 볼수 없다

8. CKPT PROCESS가 ENABLE되면 다음중 어느 프로세스의 작업을 인계받아 CHECKPOINT시에 FILE을 UPDATE하는 작업을 하게 되는가?

A. LGWR
B. DBWR
C. ARCH
D. SMON


9. LGWR이 REDO LOG FILE에 REDO LOG BUFFER를 WRITE하는 경우가 아닌 것은?

A. LGWR TIME OUT 발생시
B. COMMT이 일어난 직후
C. CHECKPOINT가 일어난 직후
D. REDO LOG BUFFER POOL의 1/3이 찼을때

10. SYSTEM 테이블스페이스에 대한 설명중 잘못된 것은?

A. DATABASE가 운영되기 위하여 반드시 존재해야 한다
B. SYSTEM ROLLBACK SEGMENT를 포함할수도 있고 안할수도 있다
C. USER DATA를 포함할수도 있고 안할수도 있다
D. DATA DICTIONARY정보, STORED PROCEDURE등을 포함한다


[ 해 답 ]

1. <정답> B
<관련 Contents> CREATING A DATABASE - SEPARATING SEGMENTS
   <해설> 단순히 속도를 위하여 SEGMENT를 분리해서는 안된다.
           BACKUP의 필요가 다르거나,  엑세스 필요가 다르거나, 서로다른
           LIFE SPAN을 가지는 경우에 SEGMENT를 분리한다.

2. <정답> A
<관련 Contents> CREATING A DATABASE - DATA DICTIONARY USERS
   <해설> USER_xxx 뷰는 자신이 소유한 오브젝트에 대한 정보를 보여주며
          모든 사용자에게 엑세스 가능한 뷰이다.
          ALL_xxx 뷰는 사용자에게 엑세스가능한 모든 오브젝트에 대한
          정보를 보여주며 모든 사용자에게 엑세스 가능한 뷰이다.
          DBA_xxx 뷰는 DATABASE내에있는 모든 OBJECT에 대한 정보를
          보여주며 DBA에게만 엑세스 가능한 뷰이다

3. <정답> C
<관련 Contents> ACCESSING AND UPDATING DATA - USER REQUEST
   <해설> 사용자가 오라클 DATABASE에 연결하고 세션을 설정하면 오라클
          서버에 의해서 PGA가 할당되며 이 PGA는 사용자나 서버 프로세스
          의 제어정보나 데이터를 가지는 영역이다. 따라서 사용자의 SESSION
          VARIABLE이나 ARRAY등은 PGA에 저장되어진다.

4. <정답> F
<관련 Contents> ACCESSING AND UPDATING DATA - SHARED SQL AREAS
   <해설> 동일한 SQL문장을 만족하기 위해서는 보기 A-E까지의 모든 조건이
           만족해야 한다. 따라서 WHERE절에서 특정값이 참조될 경우에는
           참조되는 값을 변수로 지정하여 이용하여야 동일한  SQL문장으로 처리된다.

5. <정답> D
<관련 Contents> ACCESSING AND UPDATING DATA
- THE UPDATE OPERATION
   <해설> UPDATE 문장의 실행과정은 다음과 같다.(중요하므로 꼭 숙지)
- 변경하려는 ROW에 EXCLUSIVE ROW LOCK을 둔다
- REDO LOG BUFFER에 BEFORE와 AFTER IMAGE를 구분하기 위하여 저장한다
- ROLLBACK SEGMENT BLOCK BUFFER에 ROLLBACK DATA를 저장한다
- DATA BLOCK BUFFER에 변경된 내용를 저장한다.

6. <정답> C
<관련 Contents> ACCESSING AND UPDATING DATA - DBWR PROCESS
   <해설> DBWR이 DISK에 DIRTY BUFFER를 WRITE하는 경우는 다음과
  같다.
- DIRTY LIST가 THRESHOLD LENGTH에 도달하는 경우
- DBWR CHECKPOINT가 발생했을 경우
- TIME-OUT이 발생했을 경우
- 프로세스가 자유버퍼를 찾기전에 LRU LIST에서 특정수의 버퍼를 SCAN했을경우

7. <정답> B
<관련 Contents> MANAGE TRANSACTION CONCURRENCY AND
                   CONSISTENCY - READ CONSISTENCY
<해설> READ CONSISTENCY에 따라 수정중인 자료는 COMMIT된 후에
  다른 사용자들이 볼수 있게 된다. 모든 DDL은 실행될때 자동으로
  COMMIT이 일어나므로 위의 문제에서는 TABLE_B의 CREATION시
  COMMIT이 자동으로 일어난다는 것을 알수 있다.

8. <정답> A
<관련 Contents> MANAGE TRANSACTION CONCURRENCY AND
                   CONSISTENCY - CKPT PROCESS
   <해설> CKPT PROCESS는 OPTIONAL PROCESS이므로 반드시 오라클 인스턴
  스 기동시 필요한 프로세스는 아니다. 따라서 CKPT PROCESS가
  ENABLE되어있지 않으면 LGWR이 그 기능을 대신하다가 CKPT
  PROCESS가 ENABLE되면 LGWR의 기능을 CKPT 가 인계받아 작업을 하게된다.
          CKPT PROCESS를 ENABLE하려면 초기화 파라미터 파일에서
          CHECKPOINT_PROCESS = TRUE로 설정한다. DEFAULT는 FALSE이다.

9. <정답> C
<관련 Contents> MANAGE TRANSACTION CONCURRENCY AND
                   CONSISTENCY - LGWR PROCESS
<해설> LGWR이 REDO LOG FILE에 REDO LOG BUFFER를 WRITE하는
   경우는 다음과 같다.
- COMMT이 일어난 직후
- REDO LOG BUFFER POOL의 1/3이 찼을때
- CHECKPOINT에서 DBWR이 BUFFER BLOCK에 대한 CLEANING을 완료했을 경우
- LGWR TIME OUT 발생시

10. <정답> B
<관련 Contents> MANAGE THE DATABASE STRUCTURE - TABLESPACE
   <해설> 시스템 테이블스페이스는 SYSTEM이라 불리는 ROLLBACK SEGMENT를 항상 가지고 있다.



제 10 장

1. TRANSACTION에 대한 사용자의 실수를 보전하고, READ-CONSISTENCY를 보장하며, DATABASE RECOVERY를 위한 자료를 갖고 있는곳은 어디인가?

A. REDO LOG FILES
B. DATABASE BUFFER CACHE
C. REDO LOG BUFFER
D. ROLLBACK SEGMENTS

2. ROLLBACK SEGMENT에 관한 다음내용중 틀린 것을 2개 골라라.

A. 확장(EXTEND)되어졌다면 자동적으로 OPTIMAL에 지정된 크기로 SHRINK되어진다
B. 특정 TRANSACTION을 수행할 때 특정 ROLLBACK SEGMENT에 ASSIGN시킬수 있다
C. PCTINCREASE PARAMETER는 수정할 수 없으며 항상 100으로 고정된다
D. ROLLBACK SEGMENT는 순환적으로 쓰여지므로 모든 ROLLBACK SEGMENT는 그 SIZE가 같아야 한다
E. MAXEXTENTS PARAMETER를 UNLIMITED로 지정하면DISK의 모든 공간을 다 써 버릴수 있기 때문에 절대 UNLIMITED로 지정해서는 안된다


3. ROLLBACK SEGMENT에서 MINEXTENTS의 값은 DEFAULT로 얼마인가?

A. 0
B. 1
C. 2
D. 4
E. 10


4. 다음중 STORAGE구에 명시할 수 없는 것을 모두 골라라

A. PCTFREE
B. INITIAL
C. NEXT
D. PCTUSED
E. PCTINCREASE
F. MINEXTENTS


5. 테이블을 DROP시 DROP되어지는 테이블의 PRIMARY 또는 UNIQUE KEY를 참조하는 REFERENTIAL INTEGRITY CONSTRAINT가 있을경우 어떻게 하여야 하는가?

A. 관련되는 REFERENTIAL INTEGRITY CONSTRAINT를 먼저 DROP한뒤 테이블을 DROP하여야 한다
B. DROP TABLE table_name 명령으로 그 테이블에 관련된 REFERENTIAL INTEGRITY CONSTRAINT는 모두 자동으로 DROP된다
C. CASCADE CONSTRAINTS 명령을 이용하여 관련된 REFERENTIAL INTEGRITY CONSTRAINT를 모두 DROP한다
D. DROP TABLE table_name 명령으로는 REFERENTIAL INTEGRITY CONSTRAINT를 DROP할 수 없다


6. 다음중 BITMAP INDEXING을 이용하지 않아야 하는 경우는 어느것인가?

A. 테이블이 매우 클 경우
B. 테이블이 LOW-CARDINALITY(분포도가 적음)를 가질경우
C. INSERT, UPDATE활동이 잦은경우
D. STORAGE를 더 효과적으로 이용하고자 할 경우


7. INDEX를 생성하는 내용중 맞지 않는 것은  어느것인가?

A. TABLE의 내용이 이미 SORT되어 있다면 NOSORT 키워드를 이용하여 SORT를 생략할 수 있다
B. PARALLEL 키워드를 이용하여 병렬로 INDEX를 생성할 수 있다
C. UNRECOVERABLE 키워드를 이용하여 INDEX의 생성작업을 REDO LOG에 기록하지 않을 수 있다
D. INDEX 생성시 PCTUSED와 PCTFREE는 지정할 수 없다

8. 많은 사용자가 INDEX를 이용하는 SQL문장을 사용함으로 인하여 INDEX에 대한 MAXTRANS값의 TRANSACTION ENTRY SPACE를 모두 이용중이라면 어떤 현상이 일어나는가?

A. ORACLE SERVER는 ERROR MESSAGE를 반환하고 해당 SQL문장은 실행되지 않는다
B. 사용자는 TRANSACTION ENTRY SPACE가 FREE로 될때까지 기다려야 한다
C. 새로운 TRANSACTION ENTRY SPACE를 추가로 할당받아 이용한다
D. ORACLE INSTANCE가 DOWN된다


9. CLUSTER를 ALTERING할때 추가되는 DATA BLOCK에만 영향을 미치는 PARAMETER는 무엇인가?

A. INITRANS
B. MAXTRANS
C. PCTFREE
D. SIZE
E. INITIAL
F. MINEXTENTS

10. TABLESPACE가 TS_USERS인 곳에서 JOB이라는 COLUMN을 이용하여 EMP_CLU라는 이름으로 HASH CLUSTER를 만들려고 한다.  50개정도의 HASH VALUE가 존재하고, 같은 HASH VALUE를 가지는 ROW를 저장하기 위해서는 약 400BYTE가 필요하다고 할 때 처음 CLUSTER를 생성했을때 CLUSTER가 가지게 되는 BLOCK수는 얼마인가?
   (BLOCK SIZE가 2K이고 한 BLOCK에서 사용가능한 DATA SPACE가 약    
   1800BYTE가 된다고 가정한다.)

A. 7
B. 9
C. 11
D. 13


[ 해 답 ]

1.   <정답> : D
     <관련분야> : MANAGE ROLLBACK SEGMENTS - ROLLBACK SEGMENTS
  <해설>
    ROLLBACK SEGMENT는 TRANSACTION에 의하여 수정되기 전의 데이
    터를 기록하는 데이터베이스의 한 영역이다. 이것은 특정환경에서 수정
    된 자료를 ROLLED BACK하기 위함이다. 따라서 ROLLBACK SEGMENT
    는 사용자의 실수로 수정되어진 자료를 다시 ROLLED BACK함으로써
    원래자료로 복구할수 있고, 이전 데이터를 갖고 있음으로 해서 다른 사
    용자들이 수정된 자료를 읽을 때 READ-CONSISTENCY를 제공하며,
    DATABASE RECOVERY시에도 복구를 위하여 이용되어진다.

2.   <정답> : C,D
  <관련분야> : MANAGE ROLLBACK SEGMENTS - ROLLBACK SEGMENTS
<해설>
A. OPTIMAL은 ROLLBACK SEGMENT의 최적크기를 지정하는 것으로
   확장된 후에는 이 OPTIMAL의 크기로 SHRINK되어진다.
        B. SET TRANSACTION USE ROLLBACK SEGMENT 명령으로 특정
          ROLLBACK SEGMENT를 지정할 수 있다.
        C. ROLLBACK SEGMENT에서의 PCTINTREASE는 지정할수 없고
          항상 0으로 고정된다.
        D. ROLLBACK SEGMENT의 각각의 크기가 모두 같을 필요는 없다.
          긴 트랜잭션인 경우에 특정 ROLLBACK SEGMENT만 크기를 크게하
          여 그 ROLLBACK SEGMENT를 이용하도록 지정할 수 있다.
        E. MAXEXTENTS는 절대 UNLIMITED로 지정해서는 안된다.

3.   <정답> : C
  <관련분야> : MANAGE ROLLBACK SEGMENTS
                   - CREATING A ROLLBACK SEGMENT
  <해설>
    ROLLBACK SEGMENT는 연속적이고 순환적으로 쓰여져야 하기 때문에
    MINEXTENTS의 값이 최소한 2이상 되어야 한다. ROLLBACK
    SEGMENT생성시 또는 DATABASE가 FRAGMENT되어 있거나 특정
    테이블의 데이터량 전체를 LOAD할 정도의 큰 ROLLBACK SEGMENT
    를 원할 경우에 MINEXTENTS의 값을 2이상으로 증가시킬수 있다.

4.   <정답> : A,D
  <관련분야> : MANAGE TABLE AND INDEX SEGMENTS - TABLES
     <해설>
       STORAGE구에 명시되는 것은 INITIAL, NEXT, PCTINCREASE,
       MINEXTENTS, MAXEXTENTS등이다. SPACE사용에 관한 PARAMETER
       인 PCTFREE, PCTUSED등은 STORAGE구의 부분이 아니다.

5.   <정답> : C
  <관련분야> : MANAGE TABLE AND INDEX SEGMENTS
- DROPPING TABLES
     <해설>
       테이블을 DROP시 REFERENTIAL INTEGRITY CONSTRAINT가 있을
       경우에는 CASCADE CONSTRAINTS OPTION을 추가하여 관련된 모든
       REFERENTIAL INTEGRITY CONSTRAINT가 같이 DROP되도록 하여
       야 한다.
       만일 이 옵션을 생략할 경우에는 ORACLE SERVER는 ERROR
       MESSAGE를 반환하고 테이블을 DROP하지 않는다.

6.   <정답> : C
  <관련분야> : MANAGE TABLE AND INDEX SEGMENTS
- BITMAP INDEXING
     <해설>
       BITMAP INDEXING은 QUERY를 효과적으로 하고, 기억장소를  효과적  
       으로 활용하고자 할 경우 이용된다. UPDATE시에는 그 비용이 비싸므로
       주로READ-ONLY이거나 LOW-UPDATE활동이 있을경우 활용되어야
       한다.
       또한 QUERY가 낮은 분포도를 가진 COLUMN을 포함하거나, 여러개의
       WHERE절의 조건을 가질경우, 또는 ROW의 ROW의 개수가 매우 많을
       경우에 효과적이다.

7.   <정답> : D
  <관련분야> : MANAGE TABLE AND INDEX SEGMENTS
- CREATING INDEXES
      <해설>
        INDEX생성시 PCTUSED는 지정할 수 없으나 PCTFREE는 추가적인
        INDEX 엔트리를 위한 공간을 확보해 두기 위하여 지정할 수 있다.

8.   <정답> : B
  <관련분야> : MANAGE TABLE AND INDEX SEGMENTS
- MANAGING INDEXES
      <해설>
        INDEX에 대한 TRANSACTION ENTRY SPACE를 모두 사용했다면
        TRANSACTION ENTRY SPACE가 FREE가 될때까지 기다려야 한다.
        따라서 사용자가 TRANSACTION ENTRY SPACE가 FREE가 될때까지
        기다리는 것을 방지하기 위해서는 충분한 MAXTRANS를 주어야 한다.
        또한 새로운 TRANSACTION ENTRY SPACE를 생성하는 OVERHEAD
        를 피하기 위해서는 충분한 INITRANS를 주어야 한다.

9.   <정답> : A
  <관련분야> : MANAGE CLUSTER SEGMENTS
- ALTERING CLUSTERS
      <해설>
        CLUSTER를 ALTERING할때 PCTFREE, PCTUSED, SIZE, MAXTRANS
        등은 모든 CLUSTER DATA BLOCK에 영향을 미치고, INITRANS는
        추가되는 DATA BLOCK에만 영향을 미친다.
        INITIAL과 MINEXTENTS는 ALTERING될 수 없다.

10.   <정답> : D
  <관련분야> : MANAGE CLUSTER SEGMENTS
- CREATING HASH CLUSTERS
      <해설>
        우선 각 BLOCK에 들어가는 HASH KEY의 수를 살펴보면
        1800(BLOCK당 사용가능한 BYTE수)/400(SIZE) = 4가 된다.
        그리고 HASH KEYS는 51이 된다.
        따라서 각 BLOCK당 4개의 HASH KEY가 들어가게 되고 필요한
        HASH KEYS의 수는 51이 되므로 초기에 필요해 지는 BLOCK의 수는 51/4 = 13이 된다.



제 11 장

1. 다음중 CONSTRAINTS 선언시 INDEX가 자동적으로 생성되는 것을 전부 골라라

A. NOT NULL
B. UNIQUE
C. CHECK
D. PRIMARY KEY
E. FOREIGN KEY

2. SELF-REFERENCING CONSTRAINT는 어떤 경우에 이용되는가?

A. FOREIGN KEY가 같은 테이블의 UNIQUE 또는 PRIMARY KEY를 참조할때
B. FOREIGN KEY가 같은 테이블의 같은 FOREIGN KEY COLUMN을 참조할때
C. FOREIGN KEY가 같은 테이블의 어떤 COLUMN이든지 참조할 필요가 있을경우
D. FOREIGN KEY가 다른 테이블의 KEY COLUMN을 참조할때

3. 모든 테이블에 대한 CONSTRAINT의 NAME과 TYPE, STATUS를 모두 볼 수 있는 VIEW는 어느것인가?

A. ALL_OBJECTS
B. DBA_CONSTRAINTS
C. DBA_CONS_COLUMNS
D. ALL_CONSTRAINTS


4. USER생성시 DATABASE AUTHENTICATION을 위하여 지정가능한 것이 아닌 것은?

A. DEFAULT TABLESPACE
B. TEMPORARY TABLESPACE
C. ROLLBACK TABLESPACE
D. TABLESPACE QUOTA

5. USER 생성시 IDENTIFIED EXTERNALLY는 어떤 경우에 이용하는가?

A. PASSWORD FILE을 이용하여 USER ACCESS를 인정
B. 다른 시스템으로부터의 접근을 가능하게 함
C. OS를 통하여 USER ACCESS를 인정
D. PASSWORD없이 DATABASE 접근가능

6. USER와 SCHEMA에 관한 설명으로 맞는 것은?

A. USER를 생성한 후 다른이름으로 별도의 SCHEMA를 생성하여야 한다
B. USER를 생성한 후 같은이름으로 별도의 SCHEMA를 생성하여야 한다
C. USER를 생성하면 같은이름의 SCHEMA가 자동적으로 생성된다
D. USER를 생성한 후 INSTANCE를 다시 시작될 때 같은이름의 SCHEMA가 자동적으로 생성된다

7. DEFAULT TABLESPACE에 OBJECT를 생성하여 이용중인 USER에 대하여 해당 DEFAULT TABLESPACE의 QUOTA를 0으로 ALTERING하였을 때 어떤 결과가 나타나는가?

A. 해당 USER는 DROP된다
B. 해당 USER가 DROP되지는 않지만 관련되는 모든 OBJECT는 삭제된다
C. USER가 OBJECT를 생성하여 이용중일때는 QUOTA를 O으로 ALTERING할 수 없다
D. 해당 USER의 OBJECT는 그대로 남아있게 되지만 향후 새로운 SPACE를 할당받을 수는 없다

8. USER SESSION을KILL할때 반드시 있어야 할 내용을 두가지 골라라

A. USER ID
B. USER PASSWORD
C. USER SESSION ID
D. USER PROCESS ID
E. USER SERIAL NUMBER

9. 다음중 PROFILE정보를 볼 수 있는 VIEW가 아닌것은?

A. DBA_USERS
B. USER_RESOURCE_LIMITS
C. DBA_SYS_PRIVS
D. RESOURCE_COST

10. PROFILE에 관계된 다음내용중 틀린 것을 두개 골라라

A. SESSION-LEVEL LIMIT가 초과되면 COMMIT작업은 허용되지 않는다
B. CALL-LEVEL LIMIT가 초과되어도 USER SESSION은 그대로 유지된다
C. PROFILE을 ENABLE 또는 DISABLE하려면 RESOURCE_LIMIT 초기화 PARAMETER를 이용하여야만 한다
D. DATABASE가 만들어질때 DEFAULT PROFILE이 만들어지며 이 PROFILE은 DROP되어질수 없다


[ 해 답 ]

1.   <정답> : B, D
  <관련분야> : MANAGE CONSTRAINTS - DEFINING CONSTRAINTS
<해설>
  UNIQUE와 PRIMARY KEY CONSTRAINT를 생성시는 자동적으로
    해당 CONSTRAINTS와 같은 이름의 INDEX가 만들어진다.

2.   <정답> : A
  <관련분야> : MANAGE CONSTRAINTS - FOREIGN KEY CONSTRAINTS
   <해설>
     SELF-REFERENCING CONSTRAINT는 FOREIGN KEY가 같은
     테이블의 UNIQUE 또는 PRIMARY KEY를 참조할때 사용하게 된다.
     예를들어 사원번호와 해당사원의 매니저번호을 동시에 갖는 테이블에
     필요할 때 매니저번호는 사원번호에 대해 SELF-REFERENCING
     CONSTRAINT를 설정하게 된다.
        FOREIGN KEY CONSTRAINT는 반드시 UNIQUE 또는 PRIMARY KEY에 대해서만 참조가 가능한 것도 알아두어야 할 것이다.

3.   <정답> : B
  <관련분야> : MANAGE CONSTRAINTS - DISABLING CONSTRAINTS
     <해설>
       CONSTRAINTS에 대한 정보를 볼 수 있는 VIEW는 xxx_CONSTRAINTS,    
       xxx_CONS_COLUMNS등이다.
       모든 테이블에 대한 CONSTRAINTS를 보려면 'DBA_'로 시작하는
       VIEW를 보아야 하고, ACCESS가능한 테이블에 대해서 볼 수 있는
       VIEW는 'ALL_'로 시작한다.
       xxx_CONSTRAINTS VIEW는 CONSTRAINTS의 NAME, TYPE, STATUS등
       에 관한 정보를 볼수 있고 , xxx_CONS_COLUMNS VIEW는 그
       CONSTRAINTS NAME에 대한 COLUMN들을 볼수있는 VIEW이다.

4.   <정답> : C
  <관련분야> : MANAGE USERS
  - MANAGING DATABASE SECURITY FOR USERS
<해설>
USER생성시 지정할 수 있는 AUTHENTICATION SPECIFICATION
으로 DEFAULT TABLESPACE, TEMPORARY TABLESPACE,
각 TABLESPACE에 대한 TABLESPACE QUOTA, 그리고 PROFILE을 이
용하여 SYSTEM RESOURCE LIMITS등이 있다.
ROLLBACK SEGMENT는 순환적으로 이용되므로 USER생성시 특정  
ROLLBACK SEGMENT를 지정할 수 없고 대신 특정 TRANSACTION을
실행시는 SET TRANSACTION USER ROLLBACK SEGMENT xxx명령을 이
용하여 특정 ROLLBACK SEGMENT를 지정할 수 있다.

5.   <정답> : C
  <관련분야> : MANAGE USERS  - CREATING A USER
<해설>
       USER 생성시 IDENTIFIED EXTERNALLY구는 OS로부터 USER ACCESS
       를 인정받아 이용가능토록 하는 것이다.

6.   <정답> : C
  <관련분야> : MANAGE USERS
  - MANAGING DATABASE SECURITY FOR USERS
      <해설>
     USER가 생성되어질때 같은이름의 대응되는SCHEMA가 해당 USER를
     위하여 자동적으로 생성되어진다.

7.   <정답> : D
  <관련분야> : MANAGE USERS - ALTERING A USER
      <해설>
     QUOTA가 일단 0으로 ASSIGN되면 해당 USER의 OBJECT는
     REVOKE된 TABLESPACE에 그대로 남아있게 되지만 향후 새로운 SPACE를 할당받을 수는 없다

8.   <정답> : C,E
  <관련분야> : MANAGE USERS - KILLING A USER SESSION
      <해설>
     USER를 KILLING하기 위한 문법은
        ALTER SYSTEM KILL SESSION 'integer1, integer2' 이며    
        여기서 integer1 - USER SESSION ID, integer2 - USER SERIAL NUMBER   이 된다.
        이러한 SID나 SERIAL NUMBER를 알기위해서는 V$SESSION VIEW를   참조하면 된다.

9.   <정답> : C
     <관련분야> : MANAGE RESOURCE USAGE
                 - VIEWING PROFILE INFORMATION
  <해설>
       PROFILE에 관계된 DATA DICTIONARY VIEW는 다음과 같다.
- DBA_USERS
- USER_RESOURCE_LIMITS
- DBA_PROFILES
- RESOURCE_COST

10.   <정답> : A,C
     <관련분야> : MANAGE RESOURCE USAGE - PROFILES
  <해설>
       SESSION-LEVEL LIMIT가 초과되면 현재의 STATEMENT는 ROLLBACK
       되며 COMMIT, ROLLBACK, DISCONNECT작업만이 허용된다.
       CALL-LEVEL LIMIT가 초과되면 현재의 STATEMENT는 ROLLBACK되
       며 USER의 SESSION은 그대로 유지된다.
       PROFILE을 ENABLE 또는 DISABLE하는 방법에는 RESOURCE_LIMIT
       초기화 PARAMETER를 이용하는 방법과 ALTER SYSTEM COMMAND를
       이용하는 방법 2가지가 있다.



제 12 장

1. 다음중 COMPOSITE LIMIT를 이용하기 위하여 WEIGHTED SUM을 계산하는데 이용되는 항목이 아닌 것은?

A. PRIVATE_SGA
B. LOGICAL_READS_PER_SESSION
C. CPU_PER_SESSION
D. IDLE_TIME

2. DBA가 scott라는 USER에게 CREATE TABLE의 권한을 부여하려고 한다. 이때 scott USER가 john이라는 USER에게 CREATE TABLE의 권한을 재 부여할수 있도록 하고자 할 때의 문장으로 맞는 것은?

A. GRANT CREATE TABLE TO scott WITH GRANT OPTION
B. GRANT CREATE TABLE TO scott WITH ADMIN OPTION
C. GRANT CREATE TABLE TO scott
D. GRANT CREATE TABLE TO PUBLIC

3. USER A가 USER B에게 TABLE_A 테이블에 대한 ALTER 권한을 부여하였고 다시 USER B가 USER C에게 TABLE_A에 대한 ALTER권한을 부여하였다고 가정하자. 이때 USER A가 USER B에 대하여 TABLE_A 테이블에 대한 ALTER권한을 REVOKE하였다고 할때 USER C의 TABLE_A테이블에 대한 ALTER권한은 어떻게 되는가?

A. USER C의 TABLE_A테이블에 대한 ALTER권한은 여전히 유효하다
B. USER C의 TABLE_A테이블에 대한 ALTER권한도 같이 REVOKE된다
C. USER A는 USER B의 TABLE_A테이블에 대한 ALTER권한을 REVOKE할수 없다
D. USER B가 USER C에 대하여 TABLE_A테이블에 대한 ALTER권한을 REVOKE해야만 USER C의 권한이 REVOKE된다

4. USER A가 ROLL_A, ROLL_B, ROLL_C를 DEFAULT ROLL로서 권한을 부여받고 있다. 현재 SESSION에서 SET ROLL명령으로 ROLL_C를 부여하였을때 어떤 현상이 일어나는가?

A. USER A는 ROLL_A, ROLL_B, ROLL_C 의 모든 권한을 부여받는다
B. USER A는 ROLL_A, ROLL_B의 권한만 그대로 유지한다
C. USER A는 ROLL_C의 권한만 부여받는다
D. SET ROLL명령으로 ROLL_C의 권한을 지정할 수 없다


5. ROLL에 관한 설명으로 맞지 않는 것은?

A. USER나 ROLL에게 부여될수 있지만 자신에게는 부여될수 없다
B. PASSWORD를 포함할수도 안할수도 있다
C. DEFAULT ROLL은 USER 생성시 또는 ALTERING시 지정할수 있다
D. ROLL B가 ROLL A에게 GRANT하였다면 ROLL A는 ROLL B를 GRANT할 수 없다

6. 현재의 INSTANCE가 AUDITING을 하지 않고있다. DBA가 DATABASE를 AUDITING가능하도록 하고자 할 때 어떻게 하여야 하는가?

A. INITIALIZATION PARAMETER를 수정하면 바로 AUDITING이 가능해진다
B. INITIALIZATION PARAMETER를 수정하고 INSTANCE를 SHUTDOWN, RESTART시켜야 한다
C. SET AUDIT TRAIL명령을 이용하면 바로 AUDITING이 가능해진다
D. SET AUDIT TRAIL명령을 이용한후 INSTANCE를 SHUTDOWN, RESTART시켜야 한다

7. STATEMENT AUDITING시 AUDIT_TRAIL의 값을 DB로 지정하였다면 AUDITING된 레코드들은 어느 DATA DICTIONARY에서 조회해 볼 수 있는가?

A. DBA_STMT_AUDIT_OPTS
B. DBA_PRIV_AUDIT_OPTS
C. SYS.AUD$
D. V$AUDIT_TRAIL

8. AUDIT DELETE, ALTER, SELECT, RENAME ON DEFAULT라는 문장을 실행하였다. 이때 SNAPSHOT에 관련되어 AUDITING되는 OPTION을 모두 골라라.

A. DELETE
B. ALTER
C. SELECT
D. RENAME

9. PARALLEL SERVER OPTION의 특징이 아닌 것은?

A. 모든 INSTANCE는 각각 자신의 REDO LOG FILE을 가지고 있으며 다른 INSTANCE의 REDO LOG FILE을 읽을수 있다
B. 모든 INSTANCE는 같은 DATAFILE 및 CONTROL FILE을 공유한다
C. 하나의 NODE에서 FAILURE가 되면 모든 데이터에 대한 접근은 불가능하게 된다
D. 추가의 HARDWARE가 필요해질수 있다

10. 다음중 MULTI-THREADED SERVER의 이용에 대한 설명중 틀린 것은?

A. USER SESSION DATA는 SGA에 저장된다
B. 사용가능한 사용자의 수를 증가시킬수 있다
C. 메모리 이용과 시스템의 OVERHEAD를 줄일수 있다
D. 주로 BATCH JOB등에 이용된다

11. SQL*Loader에서 NOT NULL COLUMN에 NULL값을 입력하고자 하여 REJECT된 RECORD는 다음중 어느 파일에 저장되는가?

A. BAD FILE
B. CONTROL FILE
C. DISCARD FILE
D. LOG FILE

12. SQL*Loader에서 CONTROL FILE에 대한 설명으로 틀린 것은?

A. LOAD되어질 DATA를 기술한다
B. UPPER, LOWER CASE등의 FORMAT에 상관없이 기술한다
C. COMMENT는 DOUBLE DASHES로 시작한다
D. OPTION구를 지정할수 있으며 LOAD DATA구 다음에 기술한다


[ 해 답 ]

1.   <정답> : D
     <관련분야> : MANAGE RESOURCE USAGE - COMPOSITE LIMITS
  <해설>
       COMPOSITE LIMIT는 4가지의 RESOURCE LIMIT에 대한 WEIGHTED
       SUM을 이용하여 SYSTEM RESOURCE의 사용을 제한할수 있도록 한다.
       4가지의 RESOURCE LIMIT는 다음과 같다.
    PRIVATE_SGA, LOGICAL_READS_PER_SESSION, CPU_PER_SESSION,  
    CONNECT_TIME

2.   <정답> : B
     <관련분야> : MANAGE DATABASE ACCESS
                 - GRANTING SYSTEM PRIVILEGES
  <해설>
       CREATE TABLE PRIVILEGE는 특정 OBJECT에 관계된 PRIVILEGE가
       아니므로 SYSTEM PRIVILEGE이다.
       그리고 다른 USER에게 자신이 부여받은 권한을 재 부여할수 있도록
       할 때 SYSTEM PRIVILEGE의 경우에는 WITH ADMIN OPTION을,
       OBJECT PRIVILEGE의 경우에는 WITH GRANT OPTION을 이용한다.

3.   <정답> : B
  <관련분야> : MANAGE DATABASE ACCESS
  - REVOKING OBJECT PRIVILEGES
<해설>
       WITH GRANT OPTION을 이용하여 OBJECT PRIVILEGE를 REVOKING
    할때에는 CASCADING EFFECT가 발생한다. 즉 상위의 USER에게 부여
    한 OBJECT PRIVILEGE를 REVOKE하면 그 USER가 하위 USER에게
    부여했던 모든 OBJECT PRIVILEGE도 같이 REVOKE된다.

4.