CS/데이터베이스
-
쿼리 프로세싱(Query processing)CS/데이터베이스 2021. 12. 14. 00:01
쿼리 프로세싱(Query Processing)이란? 데이터베이스에서 데이터를 가져오거나 데이터를 삽입할 때 사용하는 언어를 Query라고 한다. Query Processing이란 우리가 보낸 Query를 데이터베이스가 처리하는 과정을 말한다. 기본적인 쿼리 프로세싱 과정 1. 입력받은 Query(SQL)를 parser and translator(Compiler)가 relational-algebra expression 형태로 변환한다. Query(SQL) 예시 SELECT balance FROM account WHERE blanace < 2500; Relational-algebra expression 예시 parser and translator의 결과가 1개 이상일 수 있다. 2. optimizer가 데이..
-
트랜잭션 격리 수준(Isolation Level)CS/데이터베이스 2021. 12. 13. 18:14
격리 수준(Isolation Level)이란 무엇일까? 동시에 여러 트랜잭션이 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지 결정하는 것 4가지의 Level로 구분됩니다 READ UNCOMMITTED COMMIT 되지 않은 데이터를 읽을 수 있다. READ COMMITTED COMMITTED된 데이터만 읽을 수 있다. REPETABLE READ COMMITTED 된 데이터만 읽을 수 있다. 어떤 데이터를 읽는 도중 변경이 허용되지 않는다. SERIALIZABLE COMMITTED 된 데이터만 읽을 수 있다. 어떤 데이터를 읽는 도중 변경(Update)이 허용되지 않는다. 어떤 데이터를 읽는 도중 삭제(Delete)나 추가(Insert)를 허용하지 않..
-
동시성 제어(Concurrency Control)CS/데이터베이스 2021. 12. 12. 23:37
Lock-based protocol 트랜잭션 A, B가 가 동시에 수행될 때 다른 트랜잭션이 권한을 요청할 때 사용되고 있다면 lock을 걸어 사용할 수 없도록 하는 방식 데이터베이스 전체를 lock 하면 쉽지만 본질적으로 Concurrent 하지 않음 Lock의 범위를 테이블로 축소하면 동시성은 늘어나지만 문제는 생길 여지는 있음. 동시성을 최대한 늘리면서 비일관성이 일어나지 않게 하는 것이 우리의 목표 Lock을 걸면 항상 동시성이 제어될까? lock을 짧게 걸게 되면 비일관성이 발생함 A+B = 항상 300으로 유지되어야 하는데 display(A + B) = 250이 돼버렸음.. 어떻게 해결하면 될까? lock을 밑에 걸어버리면 비일관성을 해결할 수 있음. 밑에 걸면 모든 게 끝인가? 하지만 교착상..
-
동시 트랜잭션(Concurrent Transaction)CS/데이터베이스 2021. 12. 9. 23:41
지난번에 트랜잭션에 대하여 알아보았습니다 https://junuuu.tistory.com/18 트랜잭션(Transaction)이란? 트랜잭션(Transaction)의 정의 Transaction은 "거래"라는 뜻을 가지지만 컴퓨터 과학분야에서는 "쪼개질 수 없는 업무처리의 단위"를 의미합니다. 데이터베이스의 상태를 변환시키는 하나의 논리적 기 junuuu.tistory.com 간단하게 복습하자면 트랜잭션이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위해 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. Concurrent Transaction이란? 트랜잭션A와 트랜잭션 B가 있다면 A를 끝내고 B를 수행하는것이 아닌 A와B를 동시에 수행하는 것 왜 Concur..
-
트랜잭션(Transaction)이란?CS/데이터베이스 2021. 11. 23. 05:21
트랜잭션(Transaction)의 정의 Transaction은 "거래"라는 뜻을 가지지만 컴퓨터 과학분야에서는 "쪼개질 수 없는 업무처리의 단위"를 의미합니다. 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위해 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 트랜잭션은 왜 필요할까요? 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위해서 사용합니다. ATM으로 계좌이체를 한다고 생각해봅시다. 1. A 은행에서 출금하여 B은행으로 송금하려고 합니다. 2. 송금 중, 알 수 없는 오류가 발생하여 A은행 계좌에서 돈이 출금됐지만 B은행의 계좌에는 입금되지 않았습니다. 3. 이와 같은 상황을 막기위해 거래가 성공적으로 끝내야 거래가 승인되고, 거래 도중에 ..
-
B+Tree 검색, 삽입, 삭제CS/데이터베이스 2021. 11. 17. 17:21
B+Tree의 검색, 삽입, 삭제에 대해서 알아보도록 하겠습니다 B+Tree를 모른다면 아래의 링크를 참고하세요 또한 B-Tree의 검색, 삽입, 삭제를 보고 오시기 바랍니다. https://junuuu.tistory.com/15 B-Tree 검색, 삽입, 삭제 B-Tree의 검색, 삽입, 삭제에 대해 알아보고자 합니다 B-Tree에 대해 모르신다면 아래의 링크를 보고 오시면 좋을 것 같습니다. https://junuuu.tistory.com/13 B-Tree 와 B+Tree B-Tree란? 데이터베이스와 파일.. junuuu.tistory.com https://junuuu.tistory.com/13 B-Tree 와 B+Tree B-Tree란? 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의..
-
B-Tree 검색, 삽입, 삭제CS/데이터베이스 2021. 11. 15. 18:58
B-Tree의 검색, 삽입, 삭제에 대해 알아보고자 합니다 B-Tree에 대해 모르신다면 아래의 링크를 보고 오시면 좋을 것 같습니다. https://junuuu.tistory.com/13 B-Tree 와 B+Tree B-Tree란? 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종으로 , 이진트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조입니다. 많은 junuuu.tistory.com 또한 검색, 삽입, 삭제를 처음 공부하신다면 아래의 링크에서 직접 데이터를 추가, 삭제하면서 같이 보면 이해하는데 큰 도움이 됩니다. https://www.cs.usfca.edu/~galles/visualization/BTree.html B-Tree Visualiz..
-
B-Tree 와 B+TreeCS/데이터베이스 2021. 11. 12. 02:34
B-Tree란? 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종으로 , 이진트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조입니다. 많은 자료구조중에 하필 왜 B-Tree를 사용하는 것일까? 탐색 시간이 제일 빠른 해시 테이블을 DB 인덱스로 사용할 수 없는 이유 모든 자료구조와 어떤 알고리즘을 비교해도 탐색 시간이 가장 빠른 것은 바로 해시 테이블이다. 해시 테이블은 해시 함수를 통해 나온 해시 값을 이용하여 저장된 메모리 공간에 접근하기 때문에 O(1)이라는 시간 복잡도를 가진다. 하지만 '단 하나의 데이터를 탐색하는 시간'에만 O(1)이며 우리는 DB에서 (=) 뿐만 아니라 () 부등호를 사용하기 때문에 해시 테이블은 DB 인덱스에 어울리지 ..