하나 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블
사용예시 : 판매부에 속한 사원들만을 사원테이블에서 찾아서 다른 테이블로 만들면 중복성이 발생한다. -> 무결성을 지키기 위해서 뷰가 필요하다.
SQL처리를 하는 위치에서의 차이가 있다. 속도면에서는 프로시저가 더 빠른 성능을 보인다.
프로시저 같은 경우 실행, 처리를 할 때 주로 사용됨. 함수는 간단한 계산이나 수치 결과를 나타낼 때 사용됨
사실 프로시저는 처리성능과 재사용면에서 좋지 않다. 하지만 그럼에도 사용하는 이유는
1) 하나의 요청으로 여러 SQL문을 실행가능
2) 네트워크 소요 시간을 줄일 수 있음(여러개의 쿼리를 처리하는 시저멩서 네트워크 부하 줄임)
3) 보수성이 뛰어나다.
4) 개발 업무를 구분하여 개발할 수 있다.(DB관련 처리를 API처럼 만들어서 제공)
데이터베이스의 상태를 변화시키기 위해 수행하는 작업단위 또는 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다.
하나의 트랜잭션은 Commit되거나 Rollback된다.
Commit : 한개의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났고 데이터베이스가 다시 일관된 상태에 있을 때,이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산
Rollback : Rollback연산은 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 이 트랜잭션의 일부가 정상적으로 처리됐다 하더라고, 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소(Undo)하는 연산이다. Rollback시 해당 트랜잭션을 재시작하거나 폐기한다.
상태를 변화시킨다 -> SQL질의어(SELECT, INSERT, DELETE, UPDATE)를 통해 DB에 접근하는 것
1) 원자성 : 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다.
2) 일관성 : 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다.
3) 독립성 : 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.
4) 지속성 : 트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 한다.