-
정보처리기사 실기 스터디[2022-10-05] - SQL 응용(데이터베이스 기본)자격증/정보처리기사 2022. 10. 5. 23:17
📌 Study
🔸 2022-10-05
[SQL 활용]
1. 데이터베이스 기본
트랜잭션
: DB에서 하나의 논리적 기능을 위한 작업 기본 단위
- 트랜잭션 특성
Atomicity(원자성)
: 연산 전체가 모두 실행하거나 모두 취소, 모두 성공 또는 실패되어야 하는 성질, (커밋
,롤백
,회복성
)Consistency(일관성)
: 시스템 구성요소가 트랜잭션 수행 전과 후 상태가 같아야 하는 성질, (무결성 제약조건, 동시성 제어)Isolation(격리성)
: 동시 실행하는 트랜잭션들이 서로 영향을 미치지 않아야 하는 성질Durability(영속성)
: 성공 후 완료된 트랜잭션 결과가 DB에 저장되어야 하는 성질
- 트랜잭션 상태변화
활동 상태
(Active) : 초기 상태, 트랜잭션이 실행 중일 때 가지는 상태부분 완료 상태
(Partially Committed) : 마지막 명령문이 실행된 후에 가지는 상태완료 상태
(Committed) : 트랜잭션이 성공적으로 완료된 후 가지는 상태실패 상태
(Failed) : 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태철회 상태
(Aborted) : 트랜잭션이 취소되고, 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태
- 트랜잭션 제어어(TCL) : 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어
커밋
:트랜잭션 확정
, 트랜잭션을 메모리에 영구적으로 저장하는 명령어롤백
:트랜잭션 취소
, 트랜잭션 내역을 저장 무효화시키는 명령어체크포인트
:저장 시기 설정
, 롤백을 위한 시점을 지정하는 명령어
- 병행제어 : 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, DB 일관성 유지를 위해 상호작용 제어
- 병행제어 미 보장 문제점
갱신 손실
: 먼저 실행된 트랙잭션 결과를 나중 실행된 트랜잭션이 덮을 때 오류현황 파악 오류
: 중간 수행 결과를 다른 트랜잭션이 참조하여 오류모순성
: 두 트랜잭션이 동시 실행되어 DB 일관성 결여연쇄 복귀
: 두 트랜잭션이 공유하다가 한ㅈ 쪽이 취소되어 다른 트랜잭션이 부분 취소하지 못하는 오류
- 병행제어 기법
로킹
: 다중 트랜잭션 환경에서 DB 일관성, 무결성 유지를 위해 트랜잭션의 순차적 진행을 보장하는 기법, 로킹 단위가 작아지면 DB 공유도 증가, 로킹 단위가 작아지면 로킹 오버헤드 증가낙관적 검증
: 트랜잭션 검증을 수행하지 않고, 일단 수행 후 종료 시 검증하여 DB 반영타임 스탬프 순서
: 트랜잭션 실행 전 타임 스탬프를 부여하여 부여 시간에 따라 트랜잭션 작업 수행다중버전 동시성 제어
: 트랜잭션 타임 스탬프와 데이터 타임 스탬프를 비교하여 직렬 가능성이 보장되는 적절한 버전 선택하여 접근하도록 함
- 고립화 수준 : 다른 트랜잭션이 현재 데이터에 대한 무결성을 해치지 않기 위해 잠금을 설정하는 정도
Read Uncommitted
: 연산 중인 데이터를 트랜잭션이 읽기 허용Read Committed
: 연산이 완료될 때까지 읽기 제한Repeatable Read
: 선행 트랜잭션이 종료 시 까지 갱신, 삭제를 제한Serializable Read
: 선행 트랜잭션이 특정 데이터를 읽을 때, 해당 데이터 전체 접근 제한
- 회복 기법 : 트랜잭션의 장애로 인해 DB 손상 이전 상태로 복구
- 회복 기법 종류
로그기반
회복 기법- 지연 갱신 : 트랜잭션이 완료되기 전까지 DB에 기록되지 않는 기법
- 즉시 갱신 : 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영
체크기반
회복 기법 : 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전 상태로 복원그림자 페이징
회복 기법 : 복제본 생성하여 DB 장애 시 복구
DDL(데이터 정의어)
: 데이터를 정의하는 언어, 테비블 관계 구조 생성 관련된 명령어
- DDL 대상
도메인
: 하나의 속성이 가질 수 있는 원자값 집합스키마
: DB구조, 제약조건 등을 담는 구조테이블
: 데이터 저장 공간뷰
: 하나의 물리 테이블에서 유도되는 가상 테이블인덱스
: 검색을 빠르게 하기 위한 데이터 구조
- 스키마
외부 스키마
사용자, 개발자 관점의 DB 논리적 구조(사용자 뷰), 서브 스키마 개념 스키마
DB 전체적인 논리적 구조(전체적인 뷰), ER, 제약조건, 보안 등 정의 내부 스키마
물리적 저장장치 관점, DB 구조 테이블
: 데이터 저장 항목인 필드들로 구성된 데이터 집합체- 행들이 유일해야 하고, 중복 행 x
- 행들 간 순서 존재 x
- 열들 간 순서 존재 x
- 테이블 관련 용어
튜플
= 행, (= 레코드)애트리뷰트
= 열식별자
= 관계형 DB에서 구분점도메인
= 하나의 속성이 가질 수 있는 원자값들의 집합카디널리티
= 튜플 수차수
= 행 수 (= 디그리)
뷰
:논리 테이블
, 사용자에게 테이블과 동일
- 뷰 특징
- 논리적 데이터 독립성
- 데이터 조작 연산 간소화
- 보안 기능
- 뷰 변경 불가(ALTER 문 이용하여 변경 불가)
- 단순 질의어 사용 가능
- 테이블 중요 데이터만 제공
인덱스
: 검색을 빠르게 할 수 있는 구조- 기본 키(PK) 컬럼은 자동으로 인덱스 생성
- 연월일이나 이름 기준하는 인덱스는 자동 생성하지 않음
- 테이블의 컬럼에 인덱스 없는 경우 테이블의 전체 내용 검색
- 인덱스 종류
순서 인덱스
: 데이터 정렬 순서로 생성, B-Tree 알고리즘 활용해시 인덱스
: 해시 함수에 의해 직접 데이터 키 값에 접근, 데이터 접근 비용이 균일비트맵 인덱스
: 각 컬럼에 적은 개수 값이 저장되는 경우 선택, 수정이 적을 경우 유용(생년월일, 상품번호 등)함수기반 인덱스
: 수식이나 함수 적용단일 인덱스
: 하나의 컬럼만 구성(주 사용 컬럼이 하나일 경우)결합 인덱스
: 두 개 이상의 컬럼 구성(WHERE 조건으로 사용하는 빈도 높은 경우)클러스터드 인덱스
: 기본 키(PK) 기준으로 레코드 묶어서 저장(특정 범위 검색 시 유리)
- 인덱스 SQL 문
인덱스 생성
: CREATE[UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명);인덱스 삭제
: DROP INDEX 인덱스명;인덱스 변경
: ALTER[UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명);
- 인덱스 스캔 방식
범위 스캔(Range)
: 필요한 범위만 수직적 탐색전체 스캔(Full)
: 처음부터 끝까지 수평적 탐색단일 스캔(Unique)
: 수직적 탐색만으로 데이터 스캔생략 스캔(Skip)
: 선두 컬럼이 조건절에 빠졌어도 인덱스 활용
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 실기 스터디[2022-10-07] - SQL 응용(데이터베이스 기본, 응용 SQL 작성, 활용) (0) 2022.10.07 정보처리기사 실기 스터디[2022-10-06] - SQL 응용(데이터베이스 기본) (0) 2022.10.06 정보처리기사 실기 스터디[2022-10-04] - 프로그래밍 언어 활용(클래스) (0) 2022.10.04 정보처리기사 실기 스터디[2022-10-03] - 프로그래밍 언어 활용(사용자 정의함수, 재귀함수) (0) 2022.10.03 정보처리기사 실기 스터디[2022-10-02] - 프로그래밍 언어 활용(명령문) (0) 2022.10.02