SQL 첫걸음(ch35. 정규화 ~ ch36. 트랜잭션) - 마지막

김도형·2022년 10월 19일
0

35장 정규화

제 1정규형

  • 테이블 분할과 기본키 지정
  • 반복되는 데이터 가로가 아닌 세로 방향으로 늘리는 것

제 2정규형

  • 기본키가 중복되면 테이블 분할
  • 함수종속어르 찾아내서 테이블 분할

제 3정규형

  • 기본키 이외의 중복이면 테이블 분할

36장 트랜잭션

문법

START TRANSACTION
COMMIT
ROLLBACK

예제

START TRANSACTION
INSERT INTO 주문 VALUES(4, '2014-03-01', 1);
INSERT INTO 주문상품 VALUES(4, '0003', 1);
INSERT INTO 주문상품 VALUES(4, '0004', 2);
COMMIT

복수 테이블에 INSERT 할 때 주로 사용됨.
쿼리문 중 한 개의 Insert 실패 시, ROLLBACK 처리되고 실패 이전의 쿼리문에 대한 임시 데이터는 저장되지 않고 삭제됨.

즉, 트랜잭션을 롤백하면 변경한 내용이 적용되지 않음

트랜잭션을 사용 시, 자동커밋을 꺼야함.

COMMIT, ROLLBACK 내부 처리

COMMIT 시 임시 데이터 영역 -> 정식 데이터 영역으로 변경
ROLLBACK 시 임시 데이터 영역에서의 처리는 버려짐

자동 커밋

자동 커밋은 클라이언트 툴 기능
데이터베이스 서버에서는 언제나 트랜잭션 걸 수 있는 상태로 SQL 명령 실행

제품마다 트랜잭션 처리 다름

MySQL

START TRANSACTION 사용

SQL Server, PostgreSQL

BEGIN TRANSACTION 사용

Oracle, DB2

사용 안함

출처 : SQL 첫걸음 아사이 아츠시 지음 [한빛미디어]

profile
3년간 웹/앱, 자동제어 QA 🔜 개발자로 전향하여 현재 교육 회사에서 백엔드 개발자로 근무 중입니다.(LinkedIn : https://www.linkedin.com/in/dohyoung-kim-5ab09214b)

0개의 댓글