![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvQjHV%2FbtsdsRhNLVE%2FfqUpXfOrJKsf5hkgJbVPr1%2Fimg.png)
[Database] Isolation level에 따른 동시성 문제 분석
2023. 4. 30. 23:42
Database/Database 필수
데이터베이스 트랜잭션은 설정된 isolation level에 따라 방지할 수 있거나 방지할 수 없는 동시성 문제가 존재합니다. ANSI SQL(미국 표준 협회의 SQL 표준)은 isolation level에 따라 방지해야 하는 최소한의 동시성 문제를 다음과 같이 정의합니다. Isolation level Dirty ReadNonrepeatable ReadPhantom ReadSerialization Anomaly Read uncommittedOOOORead committedXOOORepeatable read XXOOSerializableXXXX데이터베이스 구현체(MySQL, PostgreSQL 등)는 위 ANSI SQL을 따르기도 하지만 각각의 구현 방법에 따라 방지할 수 있는 동시성 문제가 달라질 수 있..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFTCMj%2FbtrKZ0H8vDF%2FnUMkBuR9hvxw7hQghWbpa0%2Fimg.png)
[Database] DBA급 개발자로 - #0 소개
2022. 12. 18. 13:27
Database/DBA급 개발자로
DBA급 개발자로 시리즈는 데이터베이스를 더 깊게 학습하고 싶은 개발자들을 위한 시리즈입니다. 해당 시리즈는 Youtube의 CMU Database Group 강의를 기반으로 작성됐습니다. 목차 1. Relational Model 2022.08.31 - [Database] - [Database] DBA급 개발자로 - #1 Relational Model Relational model Tuple VS Record 2. Intermediate SQL 2022.08.31 - [Database] - [Database] DBA급 개발자로 - #2 Intermediate SQL Aggregation functions Window functions CTE(Common Table Expressions) 3. Databa..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNToir%2FbtrQ661ZbV9%2FaAe5liWICaQtvrTBIAp2Zk%2Fimg.png)
[Database] DBA급 개발자로 - #17 Timestamp Ordering Concurrency Control
2022. 11. 13. 11:25
Database/DBA급 개발자로
이전 포스팅에서는 2 phase locking을 통해 어떻게 concurrent transaction을 처리하는지 살펴봤습니다. 이번 포스팅에서는 timestamp를 통해 concurrent transaction을 처리하는 방법을 살펴보겠습니다. Timestamp Ordering Timestamp ordering 방식도 2 phase locking처럼 concurrent transaction을 처리하기 위한 프로토콜입니다. 주된 차이점은 2 phase locking의 경우 트랜잭션이 실행되는 과정에서 충돌이 발생하면 해당 트랜잭션을 롤백하지만 timestamp ordering의 경우 트랜잭션이 실행되기 전에 충돌 여부를 미리 확인합니다. 두 트랜잭션 Ti, Tj이 동시에 진행되고 트랜잭션이 시작된 시간이..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgvZPS%2FbtrK4DFeLY6%2FoPX0u5sXpdN9j9ukdWe65K%2Fimg.png)
[Database] DBA급 개발자로 - #1 Relational Model
2022. 8. 31. 19:01
Database/DBA급 개발자로
Relational Model 이번 포스팅에서는 다양한 데이터베이스가 탄생할 수 있었던 계기인 관계형 모델(Relational Model)에 대해 알아보겠습니다. 개발자에게 가장 큰 관심사는 역시 데이터베이스입니다. 그럼 데이터베이스가 무엇인지부터 살펴보겠습니다. 데이터베이스는 데이터를 쉽게 접근, 관리하고 업데이트할 수 있도록 구성된 데이터의 모음입니다. 따라서 우리는 데이터를 flat file에 저장을 하던, csv에 저장을 하던 상관없이 데이터를 저장하는 것을 데이터베이스라고 부를 수 있습니다. 하지만 데이터를 아무런 생각 없이 저장하게 된다면 무슨 문제가 발생할 수 있을까요? 첫 번째로는 데이터가 정확한지 확신할 수 없습니다. 만약 중복 데이터가 있다면 어떤 게 정말 내가 원하는 데이터인지 어떻게..