SQL언어정리

원래벌레·2022년 9월 19일
0
post-custom-banner

Restrict

  • A라는 데이터를 지울 때, 이와 연관되어 있는 다른 테이블의 데이터가 있을 때 A라는 데이터를 지우지 않는 것

Cascade

  • A라는 데이터를 지울 때, 이와 연관되어 있는 다른 테이블의 데이터도 지우는 것

SetNull

  • A라는 데이터를 지울 때, 이와 연관되어 있는 다른 테이블의 데이터의 A라는 데이터를 NULL로 변경한다.

Trigger

  • 특정 테이블에 INSERT, DELETE, UPDATE와 같은 DML 문이 수행됐을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램 ex) CASCADE,RESTRICT,SETNULL

View

  • 하나 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블

  • 사용예시 : 판매부에 속한 사원들만을 사원테이블에서 찾아서 다른 테이블로 만들면 중복성이 발생한다. -> 무결성을 지키기 위해서 뷰가 필요하다.

스토어드 프로시저

  • 여러 쿼리를 한번에 실행하는 것

함수 : 클라이언트에서 처리, 리턴값 필수, 리턴값 하나만 반환가능

프로시저 : 서버로 보내서 처리, 리턴값 선택, 리턴값 여러개 반환가능

  • 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) 지속성 : 트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 한다.

profile
학습한 내용을 담은 블로그 입니다.
post-custom-banner

0개의 댓글