Replies: 2 comments 1 reply
-
최종적인 목표는 시리얼 스케쥴(격리수준 serializable)을 구현해 동시성 문제(lost update, dirty read, 팬텀 리드)를 해결하는 것이다. |
Beta Was this translation helpful? Give feedback.
1 reply
-
이레 선생님 강의 듣고 정리해보기
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Cascadeless schedule, strict schedule 공부하다가 궁금해진 점..
스케줄링 제약 조건과 격리 수준은 어떤 관계가 있는가..
이번에도 GPT 선생님께 여쭤봤습니다..ㅎ (GPT 의존 학습^-^;)
격리 수준은 스케줄 제약과 밀접하게 관련되어 있으며, 격리 수준을 선택하여 데이터베이스 시스템에서 스케줄 제약을 관리하고 데이터 일관성과 동시성을 조절할 수 있습니다. 격리 수준은 트랜잭션 간의 상호작용 수준을 정의하며, 이를 통해 데이터베이스의 스케줄링을 제어하는 데 사용됩니다.
예를 들어, Read Committed 격리 수준은 Cascadeless schedule을 만족하는 데 도움을 주고, Serializable 격리 수준은 strict schedule을 만족하는 데 사용될 수 있습니다. 각 격리 수준은 다른 수준의 스케줄 제약과 데이터 일관성을 유지하는 데 도움이 되며, 개발자나 데이터베이스 관리자는 요구 사항에 따라 적절한 격리 수준을 선택하고 구성할 수 있습니다.
따라서 격리 수준과 스케줄 제약은 데이터베이스에서 동시성과 일관성을 관리하기 위한 중요한 요소로 상호작용하며, 데이터베이스 시스템을 설계하고 구성할 때 고려해야 하는 주요 개념 중 하나입니다.
Read Committed 격리 수준 (RC): Read Committed 격리 수준은 많은 데이터베이스 시스템의 기본 격리 수준으로, 일반적으로 Cascadeless schedule을 만족하는 데 사용됩니다. 이 격리 수준에서는 한 트랜잭션의 커밋이 다른 트랜잭션에게 보이기 시작하는 시점까지 변경 내용을 공유하지 않습니다. 이를 통해 쓰기-읽기 의존성을 방지하고 업데이트 연산 간의 의존성을 최소화할 수 있습니다.
Serializable 격리 수준 (SER): Serializable 격리 수준은 가장 엄격한 격리 수준으로, strict schedule을 만족하는 데 사용됩니다. 이 격리 수준에서는 모든 트랜잭션을 직렬화된 순서대로 처리하여 상호작용을 완전히 방지합니다. 이로써 스케줄 제약을 강화하고 엄격한 일관성을 제공합니다.
뭔가 분리되는 개념 같으면서도 동일한 개념 같아서 헷갈려서 공유해봅니다..
Beta Was this translation helpful? Give feedback.
All reactions