본문 바로가기

전체 글294

교착상태(Dead Lock) 교착상태(Dead Lock) : 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무기한으로 기다리는 현상 교착상태 발생의 필요 충분 조건 : 교착상태가 발생하기 위해서는 아래의 네 가지 조건이 모두 충족되어야 하고, 하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 상호 배제(Mutual Exclusion) : 한번에 한 개의 프로세스만이 공유 자원을 사용해야 한다. 점유와 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기중인 프로세스가 있어야 한다. 비선점(Non-preemption) : 다른 프로세스에 할당된 자.. 2023. 1. 8.
트랜잭션(Transaction) 트랜잭션(Transaction) : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 하는 일련의 연산들을 의미한다. 데이터의 상태를 변경시킨다는 것은 SELECT, UPDATE, INSERT, DELETE 의 질의어를 통해 접근하는 것을 의미 트랜잭션의 특징 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태변환 과정의 작업단위이다. 하나의 트랜잭션은 Commit 되거나 Rollback 된다. 트랜잭션의 성질 1. 원자성(Atomicity) 트랜잭션의 연산은 데이터베이스에 모두 반경되거나 전혀 반영되지 않아야 한다. 트랜잭션 내의 .. 2023. 1. 2.
정규화(Normalization) 정규화(Normalization) : 정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이며 분해하는 과정에서 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 장점 데이터베아스 변경 시 이상 현상(Anomaly)을 제거할 수 있다. 정규화된 데이터베이스 구조에서 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경할 수 있다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용 프로그램의 생명을 연장시킨다. 단점 릴레이션의 분해로 인해 릴레이션 간의 JOIN 연산이 많아진다. 질의에 대한 응답 시간이 느려질 수 있다. JOIN이 많이 발생하여 성능 저하가 나타나면 반정규화(.. 2023. 1. 2.
B-Tree B-Tree 탐색 성능을 높이기 위해 균형 있게 높이를 유지하는 Balanced Tree 의 일종으로, 모든 leaf node(자식X) 가 같은 level로 유지되도록 자동으로 밸런스를 맞춰줌 자식 node 의 개수가 2개 이상이며 node 내의 key 가 1개 이상일 수 있음 node 의 자식 수 중 최댓값을 K 라고 하면, 해당 B-Tree 를 K차 B-Tree 라고도 함 B-Tree 의 조건 1. 노드(node) 에는 2개 이상의 데이터(key) 가 들어갈 수 있으며 항상 정렬된 상태로 저장된다. 2. 내부 노드는 M/2 ~ M 개의 자식을 가질 수 있고 최대 M 개의 자식을 가질 수 있는 B-Tree 를 M차 B-Tree라고 한다. 3. 특정 노드의 데이터(key) 가 K 개라면, 자식 노드의 개.. 2022. 12. 25.