2021 정보처리기사 실기 요약정리 - 7. SQL 응용
📯 데이터베이스 기본
▶ 트랜잭션
하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
▶ 트랜잭션의 특성
⦁ 원자성(Atomicity) : 분해가 불가능한 작업의 최소단위, 연산 전체가 성공 또는 실패
⦁ 일관성(Consistency) : 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존
⦁ 격리성(Isolation) : 트랜잭션 실행 중 연산의 중간 결과를 다른 트랜잭션이 접근 불가
⦁ 영속성(Durability) : 성공 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장
▶ 트랜잭션 제어언어 TCL
⦁ 커밋(COMMIT) : 트랜잭션을 메모리에 영구적으로 저장
⦁ 롤백(ROLLBACK) : 오류가 발생했을 때, 오류 이전의 특정 시점 상태로 되돌려주는 제어어
⦁ 체크포인트(CHECKPOINT) : 롤백을 위한 시점을 지정
▶ 병행제어(Concurrency Control) - 일관성 주요 기법
다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스의 일관성 유지를 위해 상호작용을 제어하는 기법
▶ 병행제어 기법 종류
⦁ 로킹(Locking) : 일관성과 무결성을 유지하기 위한 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
⦁ 낙관적 검증 : 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행
⦁ 타임 스탬프 순서 : 타임 스탬프를 부여해 부여된 시간에 따라 트랜잭션 수행
⦁ 다중버전 동시성 제어(MVCC) : 타임스탬프를 비교해 직렬가능성이 보장되는 적절한 버전을 선택해 접근하도록 함
▶ 고립화 수준 – 격리성 주요 기법
다른 트랜잭션이 현재의 데이터에 대한 무결성을 해치치 않기 위해 잠금을 설정하는 정도
▶ 고립화 수준 종류
⦁ Read Uncommitted : 한 트랜잭션에서 연산 중인 데이터를 다른 트랜잭션이 읽는 것 허용
⦁ Read Committed : 한 트랜잭션의 연산이 완료된 후 읽기 가능
⦁ Repeatable Read : 트랜잭션 종료 시까지 해당 데이터에 대한 갱신, 삭제 제한
⦁ Serializable Read : 특정 데이터 영역을 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근 제한
▶ 회복(Recovery) 기법 – 영속성 주요 기법
트랜잭션 수행 도중 장애로 인해 손상된 데이터베이스를 손상 이전의 정상적인 상태로 복구시키는 작업
▶ 회복 기법의 종류
⦁ 로그 기반 회복 기법
- 지연 갱신 회복 기법(Deferred) : 트랜잭션이 완료된 후에 데이터베이스에 기록
- 즉각 갱신 회복 기법(Immediate) : 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영
⦁ 체크 포인트 회복 기법 : 장애 발생 이전의 상태로 복원
⦁ 그림자 페이징 회복 기법 : DB 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법
▶ DDL의 대상
⦁ 도메인 : 하나의 속성이 가질 수 있는 원자 값들의 집합
⦁ 스키마 : 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
- 외부, 개념, 내부 스키마
⦁ 테이블 : 데이터 저장 공간
⦁ 뷰 : 가상의 테이블
⦁ 인덱스 : 검색을 빠르게 하기 위한 데이터 구조(순해비함 단결클)
📯 응용 SQL 작성하기
▶ 데이터 분석 함수의 종류
⦁ 집계 함수 : 여러 행 또는 테이블 전체 행으로부터 하나의 결과 값을 반환하는 함수
⦁ 그룹 함수 : 소그룹 간의 소계 및 중계 등의 중간 합계 분석 데이터를 산출하는 함수, 컬럼 값에 따라 그룹화해 그룹별로 결과를 출력하는 함수
→ ROLLUP, CUBE, GROUPING SETS
⦁ 윈도 함수 : DB를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능, OLAP(온라인 분석 처리, 의사결정 지원 시스템) 함수라고도 함
→ 순위함수, 행 순서 함수, 그룹 내 비율 함수
📯 절차형 SQL 활용하기
▶ 절차형 SQL의 종류
프로시저, 사용자 정의함수, 트리거
▶ 프로시저(Procedure)
일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
⦁ 프로시저 구성(디비컨SET) : DECLARE(선언부)BEGIN/ENDCONTROL(제어부)SQLEXCEPTION(예외부)TRANSACTION(실행부)
▶ 사용자 정의 함수
일련의 SQL처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
⦁ 사용자 정의 함수 구성(디비컨 SER) : RETURN(반환부)가 추가됨
▶트리거(Trigger)
데이터베이스 시스템에서 삽입, 삭제, 갱신 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
⦁ 트리거의 구성(디이비컨 SE) : EVENT(이벤트부)가 추가됨
📯 데이터 조작 프로시저 최적화
▶ 옵티마이저(Optimizer)
SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 핵심엔진
▶ 옵티마이저 유형
⦁ 규칙기반 옵티마이저(RBO) : 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행계획을 선택
⦁ 비용기반 옵티마이저(CBO) : 통계 정보로부터 모든 접근 경로를 고려한 질의 실행계획을 선택
▶ (SQL)힌트
실행하려는 SQL문에 사전에 정보를 주어 SQL문 실행에 빠른 결과를 가져오는 효과를 만드는 기법
⦁ 옵티마이저의 실행 계획을 원하는 대로 변경할 수 있게 함
⦁ 옵티마이저가 항상 최선의 실행 계획을 수립할 수 없어 힌트를 사용
📯 SQL 정리
▶ DDL 명령어
- CREATE : 테이블 생성
CREATE TABLE 테이블명
(
컬럼명 데이터타입 [제약조건],
컬럼명 데이터타입 NOT NULL,
컬럼명 데이터타입 CHECK(조건식)
컬럼명 데이터타입 DEFAULT 값,
)
- ALTER : 테이블 컬럼 추가, 컬럼 수정, 컬럼 삭제
ALTER TABLE 테이블명 ADD 컬럼 데이터타입 [제약조건];
ALTER TABLE 테이블명 MODIFY 컬럼 데이터타입 [제약조건];
ALTER TABLE 테이블명 DROP 컬럼명;
- DROP : 테이블 삭제
DROP TABLE 테이블명 [CASCADE| RESTRICT];
CASCADE : 참조하는 테이블까지 연쇄적으로 제거하는 옵션
RESTRICT : 다른테이블이 삭제할 테이블을 참조중이면 제거하지 않는 옵션
- TRUNCATE : 테이블 내의 데이터 삭제
TRUNCATE TABLE 테이블명;
▶ VIEW, INDEX 관련 DDL
- VIEW
CREATE VIEW 뷰이름 AS
SELECT
FROM
WHERE
---
CREATE OR REPLACE VIEW 뷰이름 AS
SELECT
FROM
WHERE
---
DROP VIEW 뷰이름;
- INDEX
CREATE INDEX 인덱스명 ON 테이블명(컬럼명)
---
ALTER INDEX 인덱스명 ON 테이블명
---
DROP INDEX 인덱스명;
▶ DML : 데이터 조작언어
- SELECT : 데이터를 조회
SELECT [DISTINCT] 속성명, 속성명,
FROM 테이블이름
WHERE 조건
(BETWEEN A AND B)
(LIKE 패턴)
(IS NULL)
GROUP BY 속성명
HAVING 그룹조건
ORDER BY 속성 [ASC|DESC];
* 서브쿼리 : 쿼리 안에 쿼리
1. 내부조인
SELECT A.책번호,
2. 왼쪽외부조인
3. 오른쪽외부조인
4. 완전외부조인
5. 교차조인
6. 셀프조인
UNION : 중복이 제거됨
UNION ALL : 중복을 허용
INTERSECT : 공통적으로 존재하는 결과 반환
MINUS : 첫쿼리에 있고 두번째 쿼리에 없는 결과 반환
- INSERT : 데이터를 삽입
INSERT INTO 테이블명 (속성명)
VALUES (데이터)
- UPDATE : 데이터를 수정
UPDATE 테이블명
SET 속성명 = 데이터
WHERE 조건;
- DELETE : 데이터를 삭제
DELETE FROM 테이블명
WHERE 조건;
▶ DCL
- 권한 부여 / 권한 회수
GRANT 권한 ON 테이블 TO 사용자
REVOKE 권한 ON 테이블 FROM 사용자
출처 : https://powerdev.tistory.com/83
Author And Source
이 문제에 관하여(2021 정보처리기사 실기 요약정리 - 7. SQL 응용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chestnut1044/2021-정보처리기사-실기-요약정리-7.-SQL-응용저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)