본문 바로가기
IT ▶/Data

데이터베이스 비등가 조인, 등가 조인 (JOIN) / 트랜잭션 (Transaction) 개념

by 오프로 2020. 3. 7.

 

 

 

 

# JOIN : 여러 테이블의 데이터를 검색하는 것

 

 

- 등가 조인 : 테이블 간 동일한 값을 이용 관련된 정보를 검색

 

- 비 등가 조인 : 테이블 간에 다른 값을 비교해서 검색

 

  

 

 

1> 외부 조인

 

 

[문법]

 

SELECT 테이블1.컬럼, 테이블2.컬럼……
FROM 테이블1, 테이블2, …
WHERE 조인조건(+)
AND 조건…

 

 

-> +’기호는 데이터가 부족한 쪽에 기술

 

 

아래 두 조인 쿼리는 동일한 결과가 조회됩니다.

 

 

1]

 

SELECT a.name, a.num

FROM table_A a

JOIN table_B b ON a.num = b.num

 

2]

 

SELECT a.name, a.num

FROM table_A a

WHERE a.num = b.num

 

 

 

 

 

2> 좌우 외부 조인 (LEFT RIHGT OUTER JOIN)

 

 

[문법]

SELECT 테이블1.컬럼, 테이블2.컬럼……
FROM 테이블1
[LEFT, RIGHT, FULL] [OUTER] JOIN 테이블2 [ON 조인 조건 | USING 조인컬럼] 
WHERE 조건…

 

 

-       LEFT JOIN 테이블 : 왼쪽 테이블에 조인 조건과 일치하지 않은 데이터도 검색

 

-       RIGHT JOIN 테이블 : 오른쪽 테이블에 조인 조건과 일치하지 않은 데이터도 검색

 

-       FULL JOIN 테이블 : 양쪽 테이블에 조인 조건과 일치하지 않은 데이터도 검색

 

 

 

 

 

# GROUP BY절

 

SELECT [DISTINCT / ALL] 컬럼 OR 그룹함수 …
FROM 테이블
WHERE 조건 
GROUP BY 그룹대상
ORDER  BY 정렬대상 [ASC/DESC] 

 

->  GROUP BY 절에는 SELECT 절의 그룹함수와 컬럼을 그룹화 줘해야 한다.

 

->  그룹함수를 GROUP BY 절에 지정된 컬럼의 값이 같은 행에 대해서 통계 정보를 계산하는 의미

 

 

 

 

# 트랜잭션 (Transaction) 정리

 

 

- 함께 실행되는 작업의 단위

 

- 더 이상 쪼갤 수 없는 최소한의 작업 단위

 

(예시 : 입금과 출금을 하나의 트랜잭션으로 묶어 둘 중에 하나라도 오류가 나면 둘 다 취소가 되도록 처리)

 

 

- 특징

 

 

원자성 : 전체 처리 or 취소 (일부 X)

 

일관성 : 데이터베이스 무결성 유지

 

독립성 : 동시 실행되는 트랜잭션 간 서로 영향 X

 

영속성 : 종료된 트랜잭션 결과는 DB에 반영

 

 

 

- 트랜잭션 시작 : DML, DDL, DCL 문장이 실행 되었을 때 시작

 

 

- 트랜잭션 종료 :

 

 

COMMIT, ROLLBACK 명령 실행 시 종료 (DML)

 

DDL, DCL 문장 실행 완료되면 자동 종료

 

사용자의 정상 종료 시 종료

 

데드락 경우 일부 트랜잭션 종료

 

 

 

 

- 언두 세그먼트 : DML 작업 경우 ROLLBACK 작업을 위해 작업 이전 정보를 저장하기 위한 언두(Undo) 테이블스페이스와 언두 세크먼트 구조 사용

 

 

 

1. Update 문장이 수행되면, 원래의 값 A는 언두 세그먼트 위치에 저장되고, 테이블에는 변경할 값 B가 저장

 

2. 변경된 값B의 행과 테이블은 잠금(Lock) 상태로 변경

 

3. COMMIT 이 되면, 해당 행과 테이블의 잠금이 해제되면서 변경된 값으로 저장

 

4. ROLLBACK 이 되면, 언두 세그먼트에 저장되었던 원래의 값 A로 원복되고 잠금 해제 

 

 

 

 

728x90
300x250