오늘은 data infra 중 Source 부터 살펴보자
Transaction, ACID
transaction:
쪼갤 수 없는 업무 처리의 최소 단위를 말함 = 거래내역,
데이터베이스 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻함
데이터베이스 상태 변화-> SQL를 이용하여 데이터베이스를 접근
ACID:
Transaction이 안전하게 수행된다는 것을 보장하기 위한 성질
Atomicity-'원자성' Transaction과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력, 중간 단계까지 실행되다가 실패하는 일이 없도록 하는 것, 즉 모든 작업이 성공하거나 실패한다
Consistency-'일관성' Transaction이 실행을 성공적으로 완료하면 언제나 일관성있는 Valid한 DB 상태를 유지하는 것을 의미, valid 한 상태는 트랜잭션의 결과로 업데이트된 데이터가 각종 Rule을 위반하지 않는 것, 무결성 제약에 위반하는 Transaction은 중단됨.
Isolation-'고립성' Transaction을 수행 시 다른 Transaction의 연산 작업이 끼어들지 못하도록 보장하는 것, Transaction 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미.
Durability-'지속성' 성공적으로 수행된 Transaction은 영원히 반영되어야 함을 의미, System 문제나 DB 일관성 체크 등을 하더라도 유지되어야 하고, 모든 Transaction은 로그로 남긴 채로 Rollback(취소) 가능, transation은 로그에 모든 것이 저장된 후에만 Commit(성공) 상태로 간주
OLAP => 적재된 데이터에 대한 분석 또는 SELECT Query를 통한 데이터 스캔 Operation
OLTP => Transaction의 과정에서 INSERT/UPDATE를 중점적으로 수행하는 것
ERP(전사적 자원 관리)
이전까지는 비즈니스 관점(회사 데이터), 지금부터는 사용자 데이터
ex) google analytics