ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정보처리기사 필기 2018년 3회 - 데이터베이스
    정보처리기사 2020. 4. 8. 17:59

    1. Linear Search의 평균 검색 회수는?
    ①n-1
    ②(n+1)/2
    ③n
    ④n/2

    더보기
    • 다른이름으로 순차 검색(Sequential Search) 이라고도 함
    • 평균 검색 회수: (n+1)/2

    데이터를 순서대로 처음부터 끝까지 하나씩 비교하며 원하는 값을 찾아내는 알고리즘

     

    4. 뷰에 대한 설명으로 옳지 않은 것은?
    ①뷰는 삽입, 삭제, 갱신 연산에 제약사항이 없다.
    ②뷰는 데이터 접근 제어로 보안을 제공한다.
    ③뷰는 독자적인 인덱스를 가질 수 없다.  o
    ④뷰는 데이터의 논리적 독립성을 제공한다.

    더보기

    관계형 데이터베이스에서 기본 테이블로부터 파생하여 만든 가상의 테이블

    • 사용자에게 접근이 허용된 제한된 데이터만 보여주기 위해 구성
    • 저장장치 내에 물리적으로 존재하지 않지만 사용자 입장에선 동일하게 보여짐
    • 데이터 임시 열람, 보안적인 목적으로 제한된 범위 내 데이터 제공 등의 목적으로 사용될 수 있다.

    뷰의 특징

    • 뷰는 삽입, 삭제, 갱신 연산에 제약사항이 따른다.
    • 뷰는 데이터 접근 제어로 보안을 제공한다.
    • 뷰는 물리적이 아닌 논리적으로 구현되는 테이블이다. -> 
    • 뷰는 데이터의 논리적 독립성을 제공한다.

    뷰는 독자적인 인덱스를 가질 수 없다. 

    7. 다음 postfix로 표현된 연산식의 연산 결과로 옳은 것은?
    ----------
    3 4 * 5 6 * +
    ----------
    ②42


    더보기

    Postfix

    • 스택(Stack)을 이용하여 연산자가 뒤에 위치하도록 한 수식
    • 사람 입장에선 이해하기 어려우나 컴퓨터 입장에선 계산하기 수월하다
    • ex) 3 4 * 5 6 * +
      1. 3
      2. 3 4
      3. 3 4 *
      4. 12
      5. 12 5
      6. 12 5 6
      7. 12 5 6 *
      8. 12 30
      9. 12 30 +
      10. 42

     

     

    8. 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법은?
    ①로킹 기법
    ②타임스탬프 기법
    ③검증 기법
    ④배타 로크 기법

    더보기

    데이터베이스 병행제어

    Transaction Concurrency Control

    여러 트랜잭션들이 동시에 실행되면서도 데이터베이스의 일관성을 유지할 수 있게 하는 기법

    • 병행제어의 목적
      • 데이터베이스 일관성 유지

    병행제어 기법

    • 로킹(Locking)
      • 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹 수행
      • 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음
      • 트랜잭션은 로킹이 된 데이터에 대해서만 연산 수행
      • 로킹 단위: 필드, 레코드, 파일, 데이터베이스 모두 로킹 단위가 될 수 있음
      • 로킹 단위가 크면
        • 관리하기 용이(로킹 오버헤드 감소)하지만 병행성 수준(동시성 수준) 낮아짐
      • 로킹 단위가 작으면
        • 병행성(동시성 수준)이 높아지지만 관리가 까다로움(로킹 오버헤드 증가)
    • 2단계 로킹 규약(Two-Phase Locking Protocol)
      • Lock과 Unlock이 동시에 이루어지면 일관성이 보장되지 않으므로 Lock만 가능한 단계와 Unlock만 가능한 단계를 구분
      • 확장단계: 새로운 Lock은 가능하고 Unlock은 불가능하다.
      • 축소단계: Unlock 은 가능하고 새로운 Lock은 불가능하다.
      • 직렬가능성을 보장한다.
      • 교착상태가 발생할 수 있다
    • 타임스탬프(Time Stamp)
      • 데이터에 접근하는 시간을 미리 정하여서 정해진 시간(Time Stamp)의 순서대로 데이터에 접근 하여 수행
      • 직렬가능성을 보장한다.
      • 교착상태가 발생하지 않는다.
      • 연쇄복귀(Cascading Rollback)를 초래할 수 있음
    • 낙관적 병행제어(Optimistic Concurrency Control)
      • 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사
      • 트랜잭션 수행 동안 그 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신
      • 트랜잭션 종료 시에 동시성을 위한 트랜잭션 직렬화가 검증되면 일시에 DB로 반영
    • 다중 버전 병행제어(Multi-version, Concurrency Control)
      • 여러 버전의 타임스탬프를 비교하여 스케줄상 직렬가능성이 보장되는 타임스탬프를 선택
      • 충돌이 발생할 경우 복귀 수행. 연쇄 복귀 발생 가능성

     

     

    11. 해싱 테이블의 오버플로우 처리 기법이 아닌 것은?
    ①개방 주소법
    ②폐쇄 주소법
    ③로그 주소법
    ④재해싱

     

    더보기
      • 개방 주소법(Open Addressing)
        • 선형 방법(Linear Method)이라고도 함
        • Collision이 발생했을 때 순차적으로 다음 빈 버킷을 찾아 저장
      • 폐쇄 주소법(Close Addressing)
        • Overflow된 레코드들을 별도의 Overflow 영역에 저장하고 Chain(Pointer)으로 홈 버킷에 연결
        • Direct Chaining: 해시표 내의 빈 자리(Cylinder Overflow Area)에 Overflow 레코드를 보관
        • Indirect Chaining: 해시표와는 별도의 기억공간(Independent Overflow Area)에 Overflow 레코드를 보관

     

    • 재해싱(Rehashing)
      • Collision이 발생하면 새로운 해싱 함수로 새로운 홈 주소를 구하는 방식

    15. 다음 그림에서 트리의 차수는?
    ①3 제일 높은 레벨 - 1
    ②4
    ③6
    ④8

    17. 데이터베이스에서 널(NULL) 값에 대한 설명으로 옳지 않은 것은?
    ①아직 모르는 값을 의미한다.
    ②아직 알려지지 않은 값을 의미한다.
    ③공백이나 0(ZERO)과 같은 의미이다. ㅌ
    ④정보 부재를 나타내기 위해 사용한다.

    20. 3NF에서 BCNF가 되기 위한 조건은?
    ①이행적 함수 종속 제거
    ②부분적 함수 종속 제거
    ③다치 종속 제거
    ④결정자이면서 후보키가 아닌 것 제거

     

    더보기

    정규화 목적

     - 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지.

     - 각 릴레이션에 중복된 종속성을 여러개의 릴레이션에 분할

     - 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함.

     - 데이터 삽입 시 릴레이션을 재구성할 필요성 감소

     - 효과적인 검색 알고리즘을 생성 감소

     

    1NF : 도메인이 원자값이어야 한다.

    2NF : 부분적 함수 종속을 제거해야 한다.

    3NF : 이행적 함수 종속을 제거해야 한다.

    BCNF : BCNF를 만족하려면 결정자이면서 후보키가 아닌 것을 제거해야 한다.

    4NF : 다치 종속성 제거

    5NF :  조인종속성 제거

Designed by Tistory.