■ 트랜잭션은 다양한 데이터 항목을 액세스하고 갱신하는 프로그램실행의 논리적인 단위이다. 트랜잭션 개념을 이해하는 것은 동시 실행뿐만 아니라 다양한 형태의 오류로 인해 데이터베이스가 비일관성 상태에빠지지 않도록 데이터베이스의 데이터갱신을 이해하고 구현하기 위한 필수조건이다.

■ 트랜잭션들은 ACID 속성들을 가져야 한다.
 ① Atomicity : 원자성은 트랜잭션에 의한 모든 영향이 데이터베이스에 전부 반영되거나 아니면 하나도 반영되지 않도록 보장하는 것이다. 즉 오류로 인해 실패가 발생했을 때 데이터베이스에 트랜잭션이 일부만 실행된 상태로 존재하지 않도록 하는 것이다.
 ② Consistency : 일관성은 만약 데이터베이스가 처음에 일관된 상태에 있었다면 트랜잭션이 실행되고 난 후에도 계속 일관된 상태로 유지되어야 한다는 것을 보장하는 것이다.
 ③ Isolation : 고립성은 동시에 수행하는 트랜잭션들이 서로 고립된 상태, 즉 동시에 수행중인 다른 트랜잭션의 실행에 영향을 주지 않도록 한다는 것이다.
 ④ Durability : 지속성은 일단 트랜잭션이 정상적으로 완료되고 난 후에는 오류로 인해 시스템이 멈추더라도 그 트랜잭션이 수행한 갱신 내용은 지속되어야 한다는 것이다.

■ 트랜잭션의 동시 실행은 트랜잭션의 처리율과 시스템 이용률을 높이고 트랜잭션의 대기시간을 줄인다.

Posted by 정훈승
■ 디스크 엑세스 수를 줄이기 위한 한 ㅏ지 방법은 메모리에 가능한 많은 블록을 유지하는 것이다. 메모리에 모든 블록을 유지하는 것은 불가능하기 때문에 블록 저장할 수 있는 메인 메모리의 공간 할당을 관리해야 한다. 버퍼는 디스크 블록의 복사본을 저장하기 위해 이용할 수 있는 메인 메모리의 일부분이다. 버퍼 공간의 할당을 책임지는 하부시스템을 버퍼 관리자라고 부른다.

■ 파일을 디스크 블록에 대응되는 일련의 레코드들로서 논리적으로 구성할 수 있다. 데이터베이스를 파일에 대응시키는 방법은 몇 개의 파일을 사용해서 주어진 파일에 어떤 고정된 길이의 레코드들을 저장하는 것이다. 다른 방법은 레코드의 다양한 길이를 저장할 수 있도록 하기 위해서 파일을 구조화 하는 것이다. 디스크 블록 내의 가변 길이 레코드를 다루기 위해 슬롯 페이지 방법이 널리 사용된다.

■ 데이터는 디스크 저장장치와 메인 메모리 사이에 블록 단위로 전송되기 때문에 레코드를 블록에 할당할 때 관련된 레코드들을 하나의 블록에 포함시키는 것이 아주 좋다. 블록 하나의 액세스로 원하는 몇개의 레코드를 액세스할 수 있다면 디스크 액세스를 절약할 수 있다. 디스크 액세스는 보통 데이터베이스 시스템의 성능에 있어서 병목(bottleneck)현상을 발생시키기 때문에 레코드를 블록에 주의 깊게 할당함으로써 성능에 상당한 이익을 얻을 수 있다.

■ 시스템 카탈로그로도 불리는 자료 사전은 릴레이션 이름들, 속성 이름과 형들, 저장 정보, 무결성 제약 조건들, 사용자 정보 등 자료에 대한 자료인 메타데이터를 놓치지 않고 기록한다.
Posted by 정훈승

교집합을 사용한 어떤 관계 대수식도, 차집합 연산으로 바꿀 수 있다.

교집합
A ∩ B

차집합
A-(A-B) 와 같다.

Posted by 정훈승
Posted by 정훈승