EMPLOYEE_DEPARTMENT위와 같은 테이블이 있다고 가정합시다.위에 테이블에서 dept_id, dept_name, dept_leader_id는 짱구와 철수 모두 중복된 데이터입니다.이런 중복 데이터가 많아지면 문제가 하나만 저장하면 되는데 여러 번 저장해야 되
✔️Functional Dependency 우리 말로 함수 종속성이라고 합니다. >functional dependency란 한 테이블에 있는 두 개의 attribute(s) 집합(set) 사이의 제약(a constraint)입니다. EMPLOYEE |emplid
트랜잭션은 "논리적으로 봤을 때 하나의 작업 단위" 를 의미합니다. 트랜잭션의 예로 가장 많이 드는 이체 작업을 생각해봅시다.A가 B에게 20만원을 이체하려고 합니다. 간단하게 나누어서 살펴봅시다.A의 계좌에서 20만원을 빼야합니다.(SQL문)B의 계좌에 20만원을 더
✔️Schedule schedule에 대해서 알아보겠습니다. 앞선 포스팅에서 예로 들었던 이체를 생각해봅시다. transaction1: A가 B의 계좌에 20만원을 이체하는 작업 transaction2: B가 자신의 계좌에 30만원을 입금하는 작업 이렇게 두 개
지난 포스팅에서 schedule과 serializable에 대해서 알아보았습니다. schedule은 여러 트랜잭션이 실행될 때 각 트랜잭션에 속한 operation들의 실행 순서이며, 여러 케이스의 schedule이 존재한다고 했습니다. 그리고 schedule에는
📒 저번 포스팅에서는 recoverability에 대해서 알아보았습니다. 요약해봅시다. 여러 트랜잭션이 실행될 때 나올 수 있는 schedule 중 unrecoverable schedule과 recoverable schedule이 있다고 했습니다. unreco
지난 시간에는 isolation이 지켜지지 않고 트랜잭션이 겹쳐서 실행될 때 일어날 수 있는 이상 현상들에 대해서 알아보았습니다.SQL 표준에서는dirty read: commit 되지 않은 데이터를 읽었을 때 발생하며, 데이터를 읽은 이후에 이 데이터를 rollback
📒 지난 포스팅에서는 여러 트랜잭션이 겹쳐서 실행될 때 발생할 수 있는 이상 현상들에 대해서 알아보았고, 그 이상 현상들을 정의한 SQL표준과 이 SQL표준을 비판한 논문에서 다룬 이상 현상들도 살펴보았습니다. 또한 이러한 이상 현상을 기준으로 어떤 이상 현상까
지난 시간에는 lock이 무엇인지 lock을 활용해서 concurrency control을 어떻게 구현할 수 있는지 알아보았습니다.lock은 해당 데이터에 대한 작업을 하기 위해 취득(점유)해야 하는 리소스입니다.read-lock, write-lock이 있습니다.wri
📒 지난 시간에 lock과 lock-based concurrency control에 대해서 알아보았습니다. lock을 기반으로 concurrency control을 구현하고자 하였는데 lock을 사용하기만 해서는 deadlock현상이 발생하였습니다. 그래서 최초의
👉serializable tx1이 serializable로 동작할 때 결과는 repeatable read일 때와 동일합니다. 하지만 serializable level일 때 MySQL과 PostgreSQL 동작에서 차이가 있습니다. 🚨MySQL MVCC로 동작하
백엔드 서버와 DB 서버는 각각 다른 컴퓨터에서 동작하기 때문에 백엔드 서버에서 쿼리를 요청하고 쿼리 응답을 받는 과정은 네트워크 통신을 하는 것입니다.백엔드 서버와 DB 서버는 TCP 기반으로 네트워크 통신을 하게 됩니다.TCP 기반으로 동작하기 때문에 높은 신뢰성을