개발이글스
[정처기 실기]6-1 데이터베이스 기본 본문
📚 트랜잭션
📙트랜잭션
🏷️트랜잭션 개념
➡️ 트랜잭션은 인가받지 않은 사용자로부터 데이터를 보장하기 위해 dbms가 가져야하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위이다.
🏷️트랜잭션 개념
1️⃣ 원자성(Atomicity): 트랜잭션을 구성하는 연산 자체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질
2️⃣ 일관성(Consistency): 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야하는 성질
3️⃣ 격리성(Isolation): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질
4️⃣ 영속성(Durability): 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질
🏷️트랜잭션 상태 변화
1️⃣ 활동상태
2️⃣ 부분완료상태
3️⃣ 완료상태
4️⃣ 실패상태
5️⃣ 철회상태
🏷️트랜잭션 제어언어 (TCL)
1️⃣커밋
2️⃣롤백
3️⃣체크포인트
🏷️병행제어 개념
➡️ 병행제어는 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법이다.
🏷️병행제어 미보장 시 문제점
1️⃣ 갱신손실: 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어 쓸 때 발생하는 오류
2️⃣ 현황 파악오류: 트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조하여 발생하는 오류
3️⃣ 모순성: 두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류
4️⃣ 연쇄복귀: 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류
🏷️병행제어 기법 종류
1️⃣ 로킹: 하나의 트랜잭션을 실행하는 동안 특정 데이터 항목에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 상호배제기능을 제공
2️⃣ 낙관적 검증: 트랜잭션이 어떠한 검증도 수행하지 않고 일단 트랜잭션을 수행하고 트랜잭션 종료시 검증을 수행하여 DB에 반영하는 기법
3️⃣ 타임 스탬프 순서: 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대하여 트랜잭션이 실행시작하기 전에 타임스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
4️⃣ 다중버전 동시성 제어: 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법
🏷️회복기법
회복기법은 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업이다.
REDO: 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업하는 기법
UNDO:트랜잭션의 시작은 있지만 완료는 없는 트랜잭션들의 작업한 변경 내용들을 모두 취소하는 기법
🏷️회복기법 종류
1️⃣ 로그기반 회복기법: 자연갱신회복기법(트랜잭션이 완료되기 전까지 DB에 기록X), 즉각갱신회복기법(수행중 갱신결과를 DB에 바로 반영)
2️⃣ 체크 포인트 회복기법: 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복기법
3️⃣ 그림자 페이징 회복기법: 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법
📙DDL
🏷️DDL(데이터 정의어)
➡️ 데이터 정의어는 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들이다. 생성,변경,삭제,이름변경 등..
🏷️DDL대상
1️⃣ 도메인
2️⃣ 스키마: 외부스키마, 개념스키마, 내부스키마
3️⃣ 테이블
4️⃣ 뷰
5️⃣ 인덱스
🏷️DDL 명령어
1️⃣ CREATE
2️⃣ ALTER
3️⃣ DROP(데이터오브젝트삭제), TRUNCATE(데이터오브젝트 내용삭제)
📙DML
🏷️DML(데이터 조작어)
➡️데이터 조작어는 DB 에 저장된 자료들을 입력,수정,삭제,조회하는 언어이다.
🏷️DML명령어
1️⃣ SELECT
2️⃣ INSERT
3️⃣ UPDATE
4️⃣ DELETE
📙DCL
🏷️DCL(데이터 제어어)
➡️데이터 제어어는 DB관리자가 데이터 보안, 무결성유지, 병행제어회복을 위해 관리자가 사용하는 언어이다.
🏷️DCL명령어
1️⃣ GRANT: GRANT 권한 ON 테이블 TO 사용자
2️⃣ REVOKE: REVOKE 권한 ON 테이블 FROM 사용자
'Others > 정보처리기사' 카테고리의 다른 글
[정처기 실기] 7-1 개발환경 구축 (1) | 2024.10.13 |
---|---|
[정처기 실기]6-2 응용 SQL 작성하기 (1) | 2024.10.13 |
[정처기 실기] 5-2 인터페이스 구현 검증 (1) | 2024.10.13 |
[정처기 실기] 5-1 인터페이스 기능 구현 (1) | 2024.10.13 |
[정처기 실기] 4-2 내외부 연계 모듈 구현 (1) | 2024.10.13 |