반응형 CS/Database3 [Database] NoSQL NoSQL 등장 배경 과거에는 비즈니스 모델이 다양하지 않았습니다. 대부분의 비즈니스 모델은 기업이 상품을 생산하고 고객에게 판매하는 것이었습니다. 이러한 비즈니스 모델에서 생성되는 데이터는 다음과 같은 특징을 가지고 있습니다. 데이터가 단순하지 않다. 데이터의 양이 많지 않다. 이러한 특징을 갖는 데이터를 관계형 데이터베이스를 관리해왔는데 그로 인해 얻을 수 있는 이점은 다음과 같습니다. 데이터는 항상 일관성을 유지한다. 데이터를 갱신할 경우 해당 데이터가 존재하는 테이블에서만 갱신하면 된다. 다양한 데이터(상품, 고객, 주문 등)의 관계를 정의하고 정규화를 통해 중복을 최소화할 수 있다. 대부분의 비즈니스 모델에서 관계형 데이터베이스는 좋은 선택지가 되어왔습니다. 그런데 2000년대에 들어 새로운 종.. 2022. 6. 22. [Database] 트랜잭션 격리 수준 트랜잭션 격리 수준은 여러 트랜잭션이 동시에 수행될 때 한 트랜잭션에서 갱신된 데이터를 다른 트랜잭션에서 조회 시 어떻게 보일지를 결정하는 기준입니다. 데이터베이스의 격리 수준은 Read Uncommitted, Read Committed, Repeatable Read, Serializable 4가지로 나뉩니다. 뒤로 갈수록 트랜잭션 간의 격리 수준은 높아지고 동시 처리 성능은 낮아집니다. 하지만 Serializable 격리 수준이 아니라면 성능의 저하는 크지 않습니다. 일반적으로 Read Committed, Repeatable Read 격리 수준을 사용합니다. MySQL의 경우 디폴트 격리 수준이 Repeatable Read 입니다. 격리 수준에 따른 데이터 부정합 문제 각 격리 수준에 따라 3가지의 데.. 2022. 6. 7. [Database] 트랜잭션 트랜잭션 트랜잭션은 데이터베이스에서 처리되는 작업의 논리적 단위입니다. 삽입, 수정, 삭제 등 데이터 갱신을 위해 복수의 연산를 수행할 때 이러한 연산들을 한 단위로 묶은 것이라고 할 수 있습니다. 트랜잭션은 작업을 마치고 Commit 되거나 Rollback 되어야 합니다. ACID 특성 트랜잭션은 네 가지 특성으로 정의되며 이를 ACID 특성이라고 합니다. 원자성(Atomicity) 데이터를 갱신하는 복수의 연산이 모두 반영되거나 반영되지 않아야 합니다. 모든 연산은 완벽히 수행되어야 하고 하나라도 오류가 발생하면 모든 연산이 취소되어야 합니다. eg. 기차표 예매를 예시로 들어보겠습니다. 기차 좌석을 예약하고 결제를 시도합니다. 이 때 결제 승인에 실패하게 되면 결제가 취소되고 기차 좌석 예약도 취소.. 2022. 5. 10. 이전 1 다음 반응형