본문 바로가기

자격증/정보처리기사

[정보처리기사] 데이터베이스

  • 병행 제어 미보장 시
    • 갱신 손실: 트랜잭션 결과를 덮어씀
    • 현황 파악 오류: 중간 결과를 다른 트랜잭션이 참조
    • 모순성: 동시에 실행되어 관성이 결여
    • 연쇄복귀: 롤백 시에 이미 처리된 트랜잭션을 롤백하지 못함.
  • 정규형
    • 1: 원잣값으로 구성
    • 2: 부분 함수 종속 제거
    • 3: 이행함수 종속 제거
    • BCNF: 결정자 함수이면서 후보 키가 아닌 것 제거
    • 4: 다치 종속성 제거
    • 5: 조인 종속성 제거
  • 테이블 용어 정리
    • 내포: 릴레이션 스키마
    • 외연: 릴레이션 인스턴스
    • 튜플: 로우, 레코드
    • 애트리뷰트: 컬럼
    • 카디널리티: 튜플의 개수
    • 디그리(차수): 컬럼의 개수
  • 윈도우 함수(OLAP 함수): 온라인 분석 처리 용도
  • RANK 함수: SELECT RANK() OVER (PARTITION BY <컬럼> ORDER BY <컬럼> {DESC})
    • RANK: 1 2 2 4
    • DENSE_RANK: 1 2 2 3
    • ROW_NUMBER: 1 2 3 4
  • DML
    • INSERT INTO <테이블>(<컬럼>) VALUES(<값>)
    • DELETE FROM <테이블> WHERE ~
    • UPDATE <테이블> SET <컬럼> = <값> WHERE ~
  • DDL
    • ALTER TABLE <테이블> MODIFY <컬럼> <데이터타입> <제약조건>
    • ALTER TABLE <테이블> DROP COLUMN <컬럼>
    • ALTER TABLE <테이블> ADD <컬럼> <데이터타입> <제약조건>
    • DROP TABLE <테이블> {CASCADE | RESTRICT}
  • DCL
    • REVOKE <권한 or 옵션> ON <테이블> FROM <사용자>
    • GRANT <권한> ON <테이블> TO <사용자> {WITH GRANT OPTION}
  • TCL
    • COMMIT
    • ROLLBACK {TO <체크포인트>}
    • SAVEPOINT <체크포인트>
  • 집합
    • UNION
    • UNION ALL
    • INTERSECT
    • MINUS
  • VIEW
    • DROP VIEW <뷰>
    • CREATE VIEW <뷰> AS SELECT ~
  • 인덱스
    • CREATE INDEX <인덱스> ON <테이블>(<컬럼>)
    • DROP INDEX <인덱스>
  • 모델링 순서
    • 요구사항 분석
    • 개념 모델링: E-R 다이어그램 설계 (추상화)
    • 논리 모델링: 관계형 스키마 설계
    • 물리 모델링: 실제 DBMS에 맞게 물리적 설계
  • 이상 현상
    • 삽입 이상: 불필요한 정보 삽입 (NOT NULL인 경우)
    • 삭제 이상: 원하지 않는 정보 삭제 (튜플처럼)
    • 갱신 이상: 중복된 데이터를 다 고쳐야 하는데 하나만 고침
  • 병행 제어
    • 로킹: 읽기는 허용하는 공유 로킹, 읽기조차 안되는 배타 로킹
    • 낙관적 검증: 일단 저지르고 문제가 되면 수습
    • 타임 스탬프 순서 기법: 타임스탬프를 찍어줘서 병행 제어.
    • 다중버전 동시성 제어(MVCC): 타임스탬프를 n개 찍어줘서 최선의 선택지를 고름
  • 절차형 SQL 종류
    • 프로시저: 하나의 함수처럼 실행하는 쿼리 집합
    • 사용자 정의함수: 단일 반환값이 존재하는 하나의 함수처럼 실행하는 쿼리 집합
    • 트리거: 이벤트 발생 시마다 자동으로 수행
  • 체크 포인트 기법
    • 로그 기반 회복 기법: 로그에 쌓고 DB에 적용 (바로 쌓으면 즉각 갱신, 커밋하고 쌓으면 지연 갱신)
    • 체크 포인트 회복 기법: 체크포인트로 복원
    • 그림자 페이징 회복 기법: 트랜잭션 수행 시 복제본 생성하여 복구
  • 무결성
    • 개체: PK 중복 및 NULL 불허
    • 참조: 외래 키가 참조하는 값이 존재해야 함.
    • 속성: 속성의 값이 이상할 수 없다.
    • 사용자: 의미적 요구사항 준수
    • 키: 같은 키값을 가진 튜플 없어야 함.
  • 고립화 수준
    • Read Uncommitted: 연산 중인 데이터를 읽는 것까지는 허용
    • Read Committed: 연산 중에는 읽는 것도 허용하지 않음
    • Repeatable Read: 선형 트랜잭션의 종료 시까지 읽고 있는 데이터 갱신/삭제 제한
    • Serializable Read: 선형 트랜잭션이 읽고 있는 영역 전체 제한
  • DBMS 특징
    • 무결성
    • 일관성
    • 회복성
    • 보안성
    • 효율성
  • 데이터베이스 특징
    • 통합된 데이터: 중복 배제
    • 저장된 데이터: 저장 매체에 존재
    • 운영 데이터: 업무 수행에 사용
    • 공용 데이터: 시스템들이 공동으로 사용
  • 데이터베이스 장애
    • 실행 장애: 연산 실패
    • 트랜잭션 장애: 트랜잭션 오류
    • 시스템 장애: 하드웨어 오류
    • 미디어 장애: 저장장치 DB 손상
  • 트랜잭션 상태
    • 활동 상태: 트랜잭션 실행 중
    • 부분 완료 상태: 마지막 명령까진 끝난 상태
    • 완료 상태: 트랜잭션 성공적
    • 실패 상태: 정상적 실행이 불가능한 상태
    • 철회 상태: 롤백
  • 파티셔닝
    • 범위 분할: 분할 키값이 범위 내에 있는지 구분
    • 해시 분할: 해시 함수의 값에 따라 파티셔닝 결정
    • 목록 분할: 값 목록에 파티션 할당, 분할 키를 목록에 맞게 구분
    • 조합 분할: 2개 이상의 분할 기법 적용
  • 순수 관계 연산자
    • Select: WHERE과 같음
    • Project: SELECT와 같음
    • Join
    • Division: 관련된 모든 튜플 반환
    • 기본 키: PK
    • 후보 키: 구별이 가능한 모든 컬럼
    • 대체 키: 후보 키지만 PK는 아님
    • 슈퍼 키: 유일하지만 단위가 큼
    • 외래 키: 참조를 위함