풀스택 과정 day11_DBMS

정유섭·2022년 4월 20일
0

2022.4.20.(수)

DDL과 DML

COMMIT과 ROLLBACK

컬럼속성( 무결성 제약조건 )


1. Drop vs Truncate vs Delete

1-1. Drop

- Drop table 테이블명

- 테이블의 존재 자체가 삭제

1-2. Truncate

- Truncate table 테이블명;

- 데이터만 통으로 삭제

- 테이블을 Drop 했다가 Create 하기 때문에, 모든 행을 삭제하는 데에는
  가장 빠르고 효율적인 방법이다.

- DDL

1-3. Delete

- delete from 테이블명 where ~ ;
- 데이터를 골라서 삭제

- DML

- 내부 방식이 다르기 때문이다. delete는 한 줄 한 줄 삭제가 된다.

- 로그( log )  


< Table 생성 예제 및 DELETE >


2. COMMIT

- 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어이다.  

- 트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서, 
  변경된 내용을 모두 영구 저장한다.

- commit을 수행하면, 하나의 트랜잭션 과정을 종료하게 된다.

- transaction 작업 내용을 실제 DB에 저장한다.

- 이전 데이터가 완전히 update 된다.

- 모든 사용자가 변경한 데이터의 결과를 볼 수 있다.

2-1. auto commit

- 자동 commit 옵션


< COMMIT의 기본 원리 >


3. ROLLBACK

- 작업 중 문제가 발생했을 때, 트랜잭션의 처리 과정에서 발생한 변경 사항을
  취소하고, 트랜잭션 과정을 종료시킨다.

- 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.

- transaction 작업 내용을 취소한다.

- 이전 commit 한 위치까지만 복구한다. 

- 트랜잭션 작업 중 하나라도 문제가 발생하면, 모든 작업을 취소해야 하기 때문에
  하나의 논리적인 작업 단위로 구성해 놓아야 한다. 문제가 발생하면, 논리적인
  작업의 단위를 모두 취소해 버리면 되기 때문이다.

3-1. 자동 ROLLBACK 되는 경우

- 비정상적인 종료

3-2. 자동 COMMIT 되는 경우

- DDL문( CREATE, ALTER, DROP, TRUNCATE )

- DCL문( GRANT, REVOKE ) 사용권한

- INSERT, UPDATE, DELETE 작업 후 COMMIT을 하지 않고 오라클 정상 종료 시,
  COMMIT 명령어를 입력하지 않아도 정상 COMMIT 후 오라클 종료
  


< COMMIT, ROLLBACK과 NOT NULL 컬럼속성 >


4. 컬럼속성( 무결성 제약조건 )

- NOT NULL 	: 널값이 입력되지 못하게 하는 조건
	
- UNIQUE	: 중복된 값이 입력되지 못하게 하는 조건

- CHECK		: 주어진 값만 허용하는 조건

- PRIMARY KEY	: NOT NULL + UNIQUE의 의미

- FOREIGN KEY	: 외래키, 다른 테이블의 필드(컬럼)을 참조해서 
		  		  무결성을 검사하는 조건                  


< UNIQUE와 동시 컬럼속성 >

profile
도비는 자유에요!😝

0개의 댓글