개발자 끄적끄적

트랜잭션, 순위 함수, order by 본문

MySQL

트랜잭션, 순위 함수, order by

햏치 2023. 3. 8. 00:35

<트랜잭션이 가지는 특징>
1. 원자성(Atomicitiy)
- 트랜잭션은 데이터베이스 연산의 전부 또는 일부(ALL OR NOTHING)실행 만이 있으며,
  일부 실행으로 트랜잭션의 기능을 갖지 않느다
- 즉, 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 전혀 이루어지지 않는 것과 같아야 한다
- Commit, Rollback

2. 일관성(Consistency)
- 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다
- 트랜잭션 실행 후에도 일관성이 유지되어야 한다

3. 고립성(Isolation)
- 트랜잭션이 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다
- 즉, 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다

4. 지속성(Durability)
- 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다 



<순위(RANK)관련 함수>
1. RANK
- 특정 항목 및 파티션에 대해서 순위를 계산한다
- 동일한 순위는 동일한 값이 부여된다

2. DENSE_RANK
- 동일한 순위를 하나의 건수로 계산한다

3. ROW_NUMBER
- 동일한 순위에 대해서 고유의 순위를 부여한다



<Oracle, SQL SERVER>
- ORACLE의 경우 기본값이 auto commit off로 설정된 상태로 DDL이 수행되면 묵시적으로 commit가 실행된다
- SQL SERVER일 경우 기본값이 auto commit off로 설정된 상태로 DDL이 수행되어도 묵시적으로 commit가 수행되지 않는다
  (SET IMPLICT_TRANSACTIONS ON 설정 후 수행을 하면 CREATE TABLE도 취소된다)
- 하지만 CREATE TABLE 문구와 같은 DDL 문구는 ROLLBACK으로 취소되지 않는다


<Order by 특징>
- Order by 속성에 숫자와 칼럼을 혼용하여 사용할 수 있다
- Select 구문에 사용되지 않은 칼럼에도 Order by 구문에서 사용할 수 있다
- Oracle은 NULL을 가장 큰 값으로 취급하고 SQL SERVER는 가장 작은 값으로 취급한다

'MySQL' 카테고리의 다른 글

인덱스  (0) 2023.03.08
정규화, 반정규화, 클리스터링  (0) 2023.03.08
도메인, 주식별자 특징, 정규화, PL/SQL, 속성의 종류  (0) 2023.03.08