[정처기 - DB구축 오답] 오답정리 (DB구축)

0_0·2023년 5월 17일
0

정보처리기사

목록 보기
7/10

[ 기출문제집 01회 ] 2022년 7월 기출

  • 80 / 70 / 55 / 80 / 60
  • 평균 69점

2022년 7월 기출


43. 트랜잭션의 특성

  • Atomicity (원자성)
    : 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.

    • 연산은 데이터베이스에 모두 반영되도록 완료 (Commit)되거나
      아니면 전혀 반영되지 않도록 복구 (Rollback)되어야 한다.
  • Consistency (일관성)
    : 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

    • 트랜잭션이 실행을 성공적으로 완료하면, 언제나 일관성 있는 데이터베이스 상태로 변환한다.
  • Isolation (독립성, 격리성, 순차성)
    : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.

    • 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
  • Durability (영속성, 지속성)
    : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함.



44. 분산 데이터베이스

: 논리적으로는 같은 데이터베이스에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스.

  • 목표

    • 위치 투명성 (Location Transparency)
      : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있음.
    • 중복 투명성 (Replication Transparency)
      : 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용 가능.
      시스템은 자동으로 여러 데이터에 대한 작업을 수행함.
    • 병행 투명성 (Concurrency Transparency)
      : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않음.
    • 장애 투명성 (Failure Transparency)
      : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행됨.
  • 구성 요소

    • 분산 처리기
      : 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템을 말함.
    • 분산 데이터베이스
      : 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성됨.
    • 통신 네트워크
      : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크를 말함.
  • 장점

    • 지역 자치성이 높음
    • 자료의 공유성이 향상됨
    • 분산 제어가 가능함
    • 시스템 성능이 향상됨
    • 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음
    • 효용성과 융통성이 높음
    • 신뢰성 및 가용성이 높음
    • 점진적 시스템 용량 확장이 용이함
  • 단점

    • ?


45. 파티션의 종류

  • 범위 분할 (Range Partitioning)
    : 지정한 열의 값을 기준으로 범위를 지정하여 분할.

    • 단점 : 특정 파티션에 데이터가 집중됨.
    • 예) 일별, 월별, 분기별 등
  • 해시 분할 (Hash Partitioning)
    : 해시 함수를 적용한 결과 값에 따라 데이터를 분할.

    • 범위 분할의 단점 보완 -> 데이터를 고르게 분산할 때 유용.
    • 특정 데이터가 어디에 있는지 판단할 수 없음.
  • 조합 분할 (Composite Partitioning)
    : 범위 분할 후 해시 함수 적용하여 다시 분할.

    • 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용.
  • 목록 분할 (List Partitioning)
    : 지정한 열 값에 대한 목록을 만들어 분할.

    • 예) '국가'열에 '한국', '미국', '일본'이 있을 때, '미국' 제외를 위해 '아시아'라는 목록을 만들어 분할.
  • 라운드 로빈 분할 (Round Robin Partitioning)
    : 균일하게 분배.

    • 각 레코드가 순차적으로 분배.
    • 기본키 필요없음.


48. 논리적 설계 vs 물리적 설계

  • 논리적 설계 (데이터 모델링)
    : 현실 자료 -> 특정 DBMS가 지원하는 논리적 자료 구조.
    (컴퓨터가 이해하고 처리할 수 있도록)

    • 개념 스키마를 평가 및 정제.
    • DBMS에 따라 서로 다른 논리적 스키마를 설계.
    • 트랜잭션의 인터페이스를 설계.
    • 관계형 데이터베이스에서는 테이블을 설계.
  • 물리적 설계 (데이터 구조화)
    : 논리적 구조로 표현된 데이터 -> 물리적 구조의 데이터.
    (디스크 등의 물리적 저장장치에 저장할 수 있도록)

    • 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정.
    • 데이터가 컴퓨터에 저장되는 방법을 묘사.
    • 고려사항 : 트랜잭션 처리량, 응답 시간, 디스크 용량, 저장 공간의 효율화 등


49. 정규화 과정

: 도부이결다조

  • 비정규 릴레이션

  • 제1정규형 (1NF)
    : 비정규 릴레이션에서 모든 도메인이 원자값

  • 제2정규형 (2NF)
    : 제1정규형에서 부분적 함수 종속 제거
    -> 기본키 제외한 모든 속성이 기본키에 대해 완전 함수적 종속을 만족.

  • 제3정규형 (3NF)
    : 제2정규형에서 이행적 함수 종속 제거

  • BCNF형 (BCNF)
    : 제3정규형에서 결정자이면서 후보키가 아닌 것 제거
    -> 결정자가 모두 후보키.

  • 제4정규형 (4NF)
    : BCNF형에서 다치 종속 제거

  • 제5정규형 (5NF)
    : 제5정규형에서 조인 종속성 제거



53. 데이터베이스의 키 (Key)

  • 슈퍼키 (Super Key)
    : 한 릴레이션 내에 있는 속성들의 집합으로 구성.
    • 유일성 (Unique) 만족, 최소성 (Minimality) 불만족.
  • 후보키 (Candidate Key)
    : 튜플을 고유하게 식별하기 위해 사용되는 속성들의 부분집합.
    • 유일성 만족, 최소성 만족.
  • 기본키 (Primary Key)
    : 후보키 중에서 선정.
    • 중복 불가. NULL값 불가.
  • 대체키 (Alternate Key)
    : 후보키 중에서 기본키를 제외한 나머지 후보키.
  • 외래키 (Foreign Key)
    : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합.
    • 릴레이션 간의 관계를 표현.


57. 트리거 (Trigger)

: 데이터베이스 시스템에서 이벤트(Event)가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL

  • 이벤트 (Event) : 데이터의 삽입(Insert), 갱신(Update), 삭제(Delete) 등


58. 관계대수 vs 관계해석

  • 관계대수 (Relational Algebra)
    : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적 언어.

    • 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시.
    • 연산자와 연산규칙을 제공.
    • 피연산자 : 릴레이션, 결과 : 릴레이션.
    • 순수 관계 연산자 + 일반 집합 연산자
      • 순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVISION
      • 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)
  • 관계해석 (Relational Calculus)
    : 관계 데이터의 연산을 표현. 원하는 정보 정의에는 계산 수식 사용.
    비절차적 특징.

    • 질의어로 표현.
    • 튜플 관계해석, 도메인 관계해석.
    • 관계대수로 표현한 식 -> 관계해석으로 표현 가능.
    • Predicate Calculus에 기반.


60. CRUD 분석

: 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석.

  • 트랜잭션의 주기별 발생 횟수 파악 + 연관된 테이블들 분석
    -> 데이블에 저장되는 데이터의 양 유추가능.
  • 많은 트랜잭션이 몰리는 테이블 파악 가능
    -> 디스크 구성 시 유용한 자료로 활용가능.
  • 외부 프로세스 트랜잭션의 부하가 집중되는 데이터베이스 채널 파악 가능
    -> 분산시킴 -> 연결 지연이나 타임아웃 오류를 방지가능.













[ 기출문제집 02회 ] 2022년 4월 기출

  • 80 / 90 / 80 / 85 / 85
  • 평균 84점

2022년 4월 기출


46. 개념적 설계 vs 논리적 설계 vs 물리적 설계

  • 개념적 설계 (정보 모델링, 개념화)
    : 현실세계 무한성과 계속성을 이해, 현실세계 인식을 추상적 개념으로 표현.

    • 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해.
    • 통신하기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현.
    • 개념 스키마 모델링, 트랜잭션 모델링 병행 수행.
    • 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성.
    • DBMS에 독립적인 개념 스키마를 설계.
  • 논리적 설계 (데이터 모델링)
    : 현실세계 자료 -> 특정 DBMS가 지원하는 논리적 자료 구조로 변환.

    • 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장하기 위해 변환.
    • 데이터타입과 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화.
    • DBMS에 따라 서로 다른 논리적 스키마를 설계.
    • 트랜잭션의 인터페이스를 설계.
    • 관계형 데이터베이스의 테이블 설계.
  • 물리적 설계 (데이터 구조화)
    : 논리적 구조로 표현된 데이터 -> 물리적 구조의 데이터로 변환.

    • 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정.
    • 레코드 양식, 순서, 접근 경로 등의 정보로 데이터가 컴퓨터에 저장되는 방법을 묘사.
    • 고려사항 : 트랜잭션 처리량, 응답 시간, 디스크 용량, 저장 공간의 효율화 등


48. 데이터 사전

= 시스템 카탈로그 = 시스템 데이터베이스
: 메타데이터 (Metadata) (데이터베이스에 대한 데이터)를 저장.

  • 직접 내용 추가불가. 직접 수정 불가.
  • 내용 검색만 가능.
  • 데이터 디렉토리 (Data Directory)
    : 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보 관리.


52. SQL 명령

  • DDL (데이터 정의어)
    : CREATE, ALTER, DROP
  • DML (데이터 조작어)
    : SELECT, UPDATE, INSERT, DELETE
  • DCL (데이터 제어어)
    : COMMIT, ROLLBACK, GRANT, REVOKE


55. 기본키 (Primary Key)

  • NOT NULL (널 값을 가지지 않음)
  • 튜플을 구분 가능.
  • 외래키로 참조 가능.













0개의 댓글