[정보처리기사 실기] 7. SQL 응용

HaYeong Jang·2021년 4월 6일
1

정보처리기사

목록 보기
5/7
post-thumbnail

📝 Chapter 01. 트랜잭션

✔️ 트랜잭션의 특성

원자성(Atomicity): 하나라도 실패할 경우 전체가 취소되어야하는 특성
일관성(Consistency): 항상 일관된 데이터베이스 상태를 보존해야하는 특성
격리성(Isolation): 생성하는 연산 중간 결과를 다른 트랜잭션이 접근 불가한 특성
지속성(Durability): 트랜잭션의 결과는 지속적으로 데이터베이스에 저장하는 특성

✔️ 트랜잭션의 상태변화

활동 상태(Activity): 초기 상태
부분 완료 상태(Partially Committed): 마지막 명령문이 실행된 후에 가지는 상태
완료 상태(Committed): 트랜잭션이 성공적으로 완료된 후 가지는 상태
실패 상태(Failed): 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
철회 상태(Aborted): 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태

✔️ 트랜잭션 제어

커밋(COMMIT): 트랜잭션 확정
롤백(ROLLBACK): 트랜잭션 취소
체크포인트(CHECKPOINT): 저장 시기 설정

✔️ 병행 제어의 개념

병행 제어: 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법

✔️ 병행 제어의 목적

  • 데이터베이스 공유 최대화
  • 시스템 활용도 최대화
  • 데이터베이스 일관성 유지
  • 사용자 응답시간 최소화

✔️ 병행 제어 기법의 종류

로킹: 로킹 단위 작아지면 데이터베이스 공유도 증가, 로킹 오버헤드 증가
낙관적 검증: 일단 트랜잭션을 수행하고, 종료 시 검증 수행하여 데이터베이스에 반영
타임 스탬프 순서: 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
다중버전 동시성 제어(MVCC): 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법

✔️ 회복 기법의 개념

회복 기법: 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업

✔️ 회복 기법 종류

로그 기반 회복 기법:

- 지연 갱신 회복 기법: 트랜잭션이 완료되기 전까지 DB에 기록하지 않는 기법
- 즉각 갱신 회복 기법: 갱신 결과를 바로 DB에 반영하는 기법

체크 포인트 회복 기법: 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복 기법
그림자 페이징 회복 기법: 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법

✔️ 데이터 정의어의 개념

데이터 정의어(DDL): 데이터를 담는 그릇을 정의하는 언어

✔️ DDL의 대상

도메인(Domain): 하나의 속성이 가질 수 있는 원자값들의 집합
스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조

- 외부 스키마: 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조
- 개념 스키마: 데이터베이스의 전체적인 논리적 구조
- 내부 스키마: 물리적 저장장치의 관점에서 보는 데이터베이스 구조

테이블(Table): 데이터 저장 공간
뷰(View): 가상의 테이블
인덱스(Index): 검색을 빠르게 하기 위한 데이터 구조

✔️ 테이블 관련 용어

튜플: 테이블 내의 행
애트리뷰트: 테이블 내의 열
식별자: RDB에서 각각의 구분할 수 있는 논리적인 개념
카디널리티: 튜플의 개수
차수: 애트리뷰트의 개수

✔️ 인덱스 종류

순해비함 단결클(순서-해시-비트맵-함수기반-단일-결합-클러스터드)

✔️ TABLE 관련 DDL

CREATE TABLE 테이블명;
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 (제약조건);
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 (제약조건);
ALTER TABLE 테이블명 DROP 컬럼명;
DROP TABLE 테이블명 (CASCADE | RESTRICT);
TRUNCATE TABLE 테이블명;

✔️ VIEW 관련 DDL

CREATE VIEW 뷰이름 AS
조회쿼리;

✔️ INDEX 관련 DDL

CREATE INDEX 인덱스명 ON 테이블명(컬럼명);

✔️ DML 명령어

SELECT (ALL | DISTINCT) 속성명
FROM 테이블명
(WHERE 조건)
(GROUP BY 속성명)
(HAVING 그룹조건)
(ORDER BY 속성 (ASC | DESC) );
INSERT INTO 테이블명(속성명, ...)
VALUES (데이터, ...);
UPDATE 테이블명
SET 속성명 = 데이터, ...
WHERE 조건;
DELETE FROM 테이블명
WHERE 조건;

✔️ DCL 명령어 (그온투, 리온프)

GRANT 권한 ON 테이블 TO 사용자;
REVOKE 권한 ON 테이블 FROM 사용자;

📝 Chapter 02. 응용 SQL 작성하기

✔️ 데이터 분석 함수 종류

집계 함수: 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
그룹 함수: 중간 합계 분석 데이터를 산출하는 함수
윈도 함수: 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능

✔️ 집계 함수 종류

COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN

✔️ 그룹 함수 유형

ROLLUP: 지정된 컬럼 소계
CUBE: 결합 가능한 모든 값에 대해 다차원 집계 생성

✔️ 윈도 함수

순위 함수: RANK, DENSE_RANK, ROW_NUMBER
행 순서 함수: FIRST_VALUE, LAST_VALUE, LAG, LEAD
그룹 내 비율 함수: RATIO_TO_PERCENT, PERCENT_RANK


📝 Chapter 03. 절차형 SQL 활용하기

✔️ 절차형 SQL 종류

프로시저: 하나의 함수처럼 실행하기 위한 쿼리의 집합
사용자 정의함수: 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
트리거: 데이터베이스 시스템에서 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL


📝 Chapter 04. 데이터 조작 프로시저 최적화

profile
기억하기 위해 기록하는 개발로그👣

0개의 댓글