컴퓨터 사이언스/데이터베이스 7

데이터베이스 관리 시스템의 아키텍처(DBMS Architecture)

데이터베이스 관리 시스템 아키텍처 쿼리 평가 엔진 쿼리 평가 엔진은 사용자로부터 입력받은 SQL 구문을 분석하여 어떤 순서로 기억장치의 데이터에 접근할지 결정한다. 이때 결정되는 계획을 '실행 계획'이라고 한다. 이러한 실행 계획에 기반을 둬 데이터에 접근하는 방법을 '접근 메서드'라 한다. 쿼리 평가 엔진은 계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈이다. 디스크 공간 매니저 DBMS에서 가장 낮은 Layer에서 디스크의 공간을 관리한다. 상위 컴포넌트에서 페이지를 할당하거나 할당 해제, 페이지를 읽거나 쓰는 요청을 받아서 처리한다. 디스크 공간 매니저는 성능을 위해서 페이지들을 최대한 순차적으로 배치한다. 왜냐하면 seek time이나 rotation 지연을 최대한 줄이기 위함이다. ..

트랜잭션의 병행 수행(concurrency)와 병행 제어(concurrency control)

일반적인 데이터베이스 개론에서 트랜잭션 개념과 회복 다음 내용이므로 순서대로 공부하는 것을 선호하신다면 데이터베이스 트랜잭션 개념과 회복까지 학습하시면 도움이 될 수 있습니다. 잘못된 부분이 있다면 피드백 부탁드립니다. 들어가기 앞서 이 글을 읽기 전에 이전에 다룬 견고하게 트랜잭션 스케줄(Transaction Schedules) 개념 잡기 를 먼저 읽는 다면 도움이 될 것이다. 일반적으로는 트랜잭션의 병행 수행에 의한 문제를 다루고, 스케줄링을 공부한 이후 병행 제어를 배운다. 하지만 반대로 나는 문제가 생기지 않는 병행 수행을 이해하기 위한 스케줄링에 대한 개념을 먼저 다루었다. 비직렬 스케줄에 따라 여러 트랜잭션을 인터리빙 방식으로 병행 수행한다면 갱신 분실, 모순성, 연쇄 복귀 등의 문제가 일어날..

데이터베이스 장애(failure)와 회복(recovery)

일반적인 데이터베이스 개론에서 트랜잭션 개념 다음 내용이므로 순서대로 공부하는 것을 선호하신다면 데이터베이스 트랜잭션 개념까지 학습하시면 도움이 될 수 있습니다. 잘못된 부분이 있다면 피드백 부탁드립니다. 들어가기 앞서 트랜잭션의 ACID를 보장하고, 데이터베이스를 모순이 없는 일관된 상태로 유지하기 위해서 DBMS는 회복 기능을 제공한다. 회복이란 장애가 발생했을 때, 데이터베이스를 장애 발생하기 전 일관된 상태로 복구하는 것이다. 장애(failure)의 유형 시스템이 제대로 동작하지 않은 상태를 장애(failure)라고 한다. 가볍게 표만 보고 넘어가 보자. 유형 설명 트랜잭션 장애 의미 트랜잭션 수행 중 오류가 발생하여 정상적으로 수행을 계속 할 수 없는 상태 원인 트랜잭션의 논리적 오류. 잘못된 ..

견고하게 트랜잭션 스케줄(Transaction Schedules) 개념 잡기

일반적인 데이터베이스 개론에서 트랜잭션 개념과 회복 다음 내용이므로 순서대로 공부하는 것을 선호하신다면 데이터베이스 트랜잭션 개념과 회복까지 학습하시면 도움이 될 수 있습니다. 잘못된 부분이 있다면 피드백 부탁드립니다. 스케줄이 없는 세상 만약 컴퓨터과학에서 스케줄링이 없었다면 세상은 위와 같을 것이다. 운영체제를 배울 때도 스케줄링은 소중하구나 느꼈는데, 트랜잭션 스케줄링을 공부할 때도 다시 한번 소중함을 느낄 수 있었다. 트랜잭션 스케줄(Transaction Schedules) 이란? 데이터베이스의 일관적인 상태를 유지하기 위해서 동시에 실행되는 트랜잭션(병행 수행)들의 연산 순서를 정하는 것을 의미한다. 연산 순서에 따라서 결과가 달라지기 때문에 병행 수행을 하기 위해서는 스케줄이 중요하다. 병행 ..

트랜잭션(Transaction) 개념과 트랜잭션의 특성(ACID)

일반적인 데이터베이스 개론에서 정규화 다음 내용이므로 순서대로 공부하는 것을 선호하신다면 데이터베이스 정규화까지 학습하시면 도움이 될 수 있습니다. 잘못된 부분이 있다면 피드백 부탁드립니다. 데이터 무결성이란? 데이터 무결성은 컴퓨팅 분야에서 완전한 수명 주기를 거치며 데이터의 정확성, 일관성을 유지하고 보증하는 것이다. RDBMS에서 중요한 기능이며 무결성을 위한 제약은 개체 무결성, 참조 무결성, 도메인 무결성, NULL 무결성, 고유 무결성, 키 무결성 등이 있다. 제약 조건까지 다룬다면 글의 범주를 벗어나므로 여기선 복습의 의도로 언급만 하겠다. 트랜잭션은 데이터 무결성(integrity)을 보장해주는 핵심 개념이다. 본격적으로 트랜잭션에 대해서 알아보자. 트랜잭션(Transaction)이란? 트..