이번에는 DB DeadLock 교착 상태에 대해 정리하겠습니다. DB 데드락이란? DB 데드락이란 트랜잭션의 교착 상태입니다. 두 개 이상의 트랜잭션이 서로의 작업이 완료되기를 기다리면서 영원히 대기 상태에 빠지는 상황을 말합니다. 데드락은 동시에 여러 트랜잭션이 실행되는 다중 사용자 DB 시스템에서 자주 발생합니다. 데드락 발생 원인 데드락은 4가지 상황이 충족되면 발생합니다. 4가지 상황은 상호 배제, 소유와 대기, 비선점, 순환 대기 입니다. 하나씩 알아보겠습니다. 상호 배제(Mutual Exclusion) 각 트랜잭션 자원에 대해 베타적인 제어권을 가지고 있습니다. 베타적 제어권이란 한 트랜잭션이 자원을 독점하고 있어 다른 트랜잭션이 접근할 수 없는 것입니다. 소유와 대기(Hold and Wait..
이번에는 DB 이상 현상에 대해 정리해보겠습니다. DB 이상 현상이란? 이상 현상(Anomaly)란 현실 세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제입니다. 데이터를 부적절하게 저장하거나 관리할 때 발생하는 문제점들로 주로 정규화를 제대로 수행하지 않을 때 발생합니다. 정규화를 제대로 수행하지 않으면 중복이 발생하고 일관성과 무결성이 깨지기 때문입니다. (이상 현상은 정규화를 통해 해결할 수 있습니다.) 이상 현상은 삽입 이상, 갱신 이상, 삭제 이상 세 가지 유형이 존재합니다. DB에 데이터를 변경하는 작업에서 발생합니다. 아래는 설명을 도와주기 위한 예시 테이블입니다. 학번 학생 이름 강의코드 강의 이름 담당 교수 1 김길동 101 Spring 김일한 2 고길동 101 Spring..
이번에는 가상 테이블인 View에 대해 정리해 보겠습니다. View란? View란 하나 이상의 테이블이나 뷰로 만들어지는 '가상 테이블' 입니다. View는 아래와 같은 쿼리로 생성할 수 있습니다. CREATE VIEW 뷰 이름 AS SELECT 컬럼명 FROM 테이블명 [WHERE 조건]; CREATE VIEW MEMBER_INFO AS SELECT NAME, EMAIL FROM MEMBER; 뷰는 하나의 SELECT 문과 같다고 생각할 수 있습니다. 원하는 필드를 선택할 수 있어 전체 데이터 중에서 보여주고 싶은 것만 보여줄 수 있습니다. 테이블은 디스크 공간이 할당되어 데이터를 저장하지만, 뷰는 데이터 딕셔너리 테이블에 뷰에 대한 정의만 저장하고 디스크에 공간이 할당되지 않습니다. 그래서 가상 테이..