본문 바로가기

DB12

[DB] Concurrency Control Techniques & Dealing with Deadlock Concurrency Control Protocols- Locking!!- Timestamps- Muliversion CC Protocols- Optimistic protocols: 일단 수행을 하고 나중에 문제 수정 Locking Rule1. transaction에서 read(x) 또는 write(x)하기 전에 lock(x)를 수행2. transaction이 종료하기 전에 t에 의해 잠긴 모든 object에 대해 잠금을 해제3. 다른 transaction에 의해 잠긴 object를 잠글 수 없다. 4. 다른 transaction에 의해 잠긴 object를 잠금 해지할 수 없다.  Locking Modes- read_lock(x): shared_lock라고 한다. : 읽는 동안 다른 Transaction.. 2024. 12. 14.
[DB] Transactions & Serializability Transaction 이란? : DB 처리의 논리적 단위를 이루는 실행 프로그램이다.  특징은 다음과 같다. - 하나의 Transaction에는 하나 이상의 DB Access 작업이 포함된다. (삽입, 삭제, 수정, 검색) - 하나의 응용 Program에는 둘 이상의 Transaction이 포함 가능하다. - read-only transaction / read-write transaction이 존재한다.  Transaction이 만족해야 하는 ACID는 다음과 같다. - Atomicity (원자성): 트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 한다. 즉, "All or Nothing" 원칙을 따른다.즉, 트랜잭션을 구성하는 여러 작업 중 일부만 적용되는 일은 없어야 하며, 전부 실행되거나 아예 실행.. 2024. 12. 14.
[DB] Index Structures for files (Primary, Clustering, Secondary) Index란? : 파일에 저장된 레코드에 빠르게 접근하기 위해 추가적으로 생성되는 보조적인 접근 구조이다. 특정 검색 조건에 따라 레코드를 효율적으로 검색할 수 있도록 설계되었다.  Indexing Field(or Indexing Attribute)를 기반으로 record에 효율적으로 access할 수 있는 방법을 제공하는데, 이는 검색 시간을 대폭 단축 시킨다. 즉, 전체 파일을 순차적으로 검색해야 하는 비효율성을 줄여준다.  더불어, Secondary Access Path(보조 접근 경로)를 제공하여, 디스크에 저장된 레코드의 물리적 위치와 상관없이 데이터를 빠르게 검색할 수 있게 한다.  Index는 level에 따라 두 종류로 나뉘는데, 이는 다음과 같다. 1. Single-level ordere.. 2024. 12. 14.
[DB] Collision Management in Database Hashing Techniques 해싱(Hashing)이란 무엇일까?해싱은 다양한 분야에서 쓰이는데, 키(Key = Field)를 입력으로 받아, 이를 해시 함수(Hash Function)를 사용하여 데이터가 저장될 위치(주소)를 계산하는 기술이다. 해시 함수의 결과는 보통 고정된 크기의 숫자나 값으로 변환되며, 이를 해시 값(Hash Value)이라고 한다.  Hashing 기법이 DB에서 왜 필요할까? 데이터베이스에서는 방대한 양의 데이터를 다루는 경우가 많아, 특정 검색 조건에서 레코드에 빠르게 접근할 수 있는 효율적인 방법이 필요했다. 단순히 레코드가 정렬된 파일에서는 이진 탐색(Binary Search)을 사용하여 검색하며, 이는 O(log n)의 시간 복잡도를 가진다. 그러나 레코드 수가 크게 증가하면 이 방식의 성능은 점차 .. 2024. 12. 14.