트랜잭션은 일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 모두 다 실패하는걸 말한다.
Atomicity(원자성)
트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야한다.
Consistency(일관성)
트랜잭션의 작업 처리 결과가 항상 일관성 있어야 한다.
트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는것이 아니라, 처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다. 이렇게 함으로써 각 사용자는 일관성 있는 데이터를 볼 수 있는 것이다.
Isolation(독립성, 격리성)
둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
하나의 특정 트랜잭션이 완료될때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다.
Durability(지속성)
트랜잭션이 성공적으로 완료됐을 경우, 결과는 영구적으로 반영되어야 한다.
Commit 연산
Commit 연산은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산
Rollback 연산
Rollback 연산은 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 이 트랜잭션이 행한 모든 연산을 취소하는 연산
Savepoint
현재의 트랜잭션을 작게 분할하는 명령어(저장점 생성)
외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
ex) 한 사용자는 SELECT * FROM TABLE; 을 사용해 데이터를 볼 수 있다.
개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것(기관이나 조직 전체의 입장, 전체적인 뷰)
ex) 테이블의 구성과, 속성이 어떻게 되는지, 또한 어떤 테이블과 릴레이션을 갖고 있는지 등
내부 스키마(Internal Schema) : 데이터베이스의 물리적 구조를 가리킴, 프로그래머나 설계자의 관점에서 바라보는 스키마
ex) INSERT문에 의해 저장되는 VALUES가 어떠한 알고리즘으로 하드디스크의 어떠한 부분에 저장이 되는데, 이러한 시스템점, 물리적인 시각의 스키마