database/DB Concept
-
[DB] 트랜잭션 격리수준 (Isolation Level)database/DB Concept 2022. 1. 31. 19:00
트랜잭션 격리수준 (Isolation Level) 동시성(Concurrency) 문제 실제 서비스에서는 많은 사용자가 동시 다발적으로 서버에 요청을 하게 되고 서버는 데이터베이스에 다시 트랜잭션을 요청하게 됩니다. 모든 요청을 순서대로 처리하게 된다면 동시성(Concurrency) 문제가 생길 것입니다. 반대로 동시성을 보장하기 위해 모든 요청을 동시에 처리하려고 한다면 데이터의 값이 맞지 않는 일관성(Consistency) 문제가 생기게 됩니다. Isolation 이 낮다면 발생하는 문제들 아래와 같은 회원 테이블이 있습니다. 이 테이블에 대한 트랜잭션이 동시에 일어나면 어떤 문제가 있을까 회원 테이블 이름 VARCHAR 장장스 잔액 BIGINT 10000 등급 VARCHAR BRONZE 지역 VARC..
-
[DB] 트랜잭션의 장애와 복구database/DB Concept 2021. 11. 25. 12:36
트랜잭션의 장애와 복구 트랜잭션 장애와 복구 트랜잭션 동작 시 장애가 발생하면 어떻게 해야 할까. 보통 로그를 통한 복구를 진행하게 된다. 복구 방법으로 REDO 복구와 UNDO 복구가 있다. DBMS는 어떻게 복구를 해야할지 판단한 후 REDO와 UNDO를 통해 복구를 진행하게 된다. DBMS의 페이지 버퍼 데이터베이스 시스템은 보통 비휘발성 저장 장치인 디스크에 데이터를 저장하며 전체 데이터베이스의 일부분을 메인 메모리에 유지한다. DBMS는 데이터를 고정 길이의 페이지(page)로 저장하며, 디스크에서 읽거나 쓸 때에 페이지 단위로 입출력이 이루어진다. 메인 메모리에 유지하는 페이지들을 관리하는 모듈을 보통 페이지 버퍼(page buffer) 관리자 또는 버퍼 관리자라고 부르는데, DBMS의 많은 ..
-
[DB] 트랜잭션database/DB Concept 2021. 11. 23. 19:25
# A친구의 통장 잔액은 300,000원 일때, UPDATE account SET balance = balance - 500000 WHERE name = 'A'; [DB]트랜잭션 트랜잭션이란 데이터베이스 트랜잭션은 일반적으로 데이터베이스의 모든 변경 사항을 나타냅니다. 트랜잭션은 논리 또는 작업의 단일 단위이며 때로는 여러 작업으로 구성됩니다. 데이터베이스의 일관된 모드에서 수행되는 모든 논리적 계산을 트랜잭션이라고 합니다. 트랜잭션은 왜 필요할까? 친구에게 빌린 돈 10,000원을 이체했습니다. 그런데 예기치 못한 오류가 발생해 버렸습니다. 제 계좌에서는 10,000원이 출금되어 나갔는데 친구 계좌에는 입금이 되지 않았습니다. 이러한 상황이 발생하지 않도록 중간에 거래가 실패하면 처음의 상태로 되돌려야..
-
[데이터베이스]옵티마이저 (Optimizer)database/DB Concept 2021. 7. 13. 00:16
옵티마이저 (Optimizer) 옵티마이저란(Optimizer)? DBMS에는 개발자가 작성한 SQL을 어떻게 실행할 것인지 실행 계획(Execution Plan)을 수립하고 SQL을 실행하게 되는데, 바로 이 실행 계획을 수립을 옵티마이저가 하게 됩니다. 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해 주는 DBMS 내부의 핵심 엔진입니다. 실행계획(Execution Plan) 동일한 결과가 나오는 SQL이더라도 어떻게 실행하는지에 따라서 성능이 달라질 수 있습니다. 옵티마이저는 데이터 딕셔너리(Data Dictionary)에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해서 예상되는 비용을 평가하여 여러 실행 계획(Execution Plan)을 작성합니다. 옵티마이..
-
[데이터베이스] 인덱스(INDEX)database/DB Concept 2021. 7. 12. 00:24
데이터베이스 인덱스(INDEX) 안녕하세요? 장장스입니다. 오늘은 데이터베이스 인덱스에 대해 알아보겠습니다! 인덱스(INDEX) ? 우리는 교과서와 같은 책의 맨 뒤를 보면 색인(INDEX)을 볼 수가 있었습니다. ㄱ-ㅎ 순서로 잘 정리된 인덱스 목록을 통해 우리가 찾고자 하는 내용의 페이지를 빠르게 찾을 수가 있었습니다. 데이터베이스의 인덱스는 무엇일까요? 데이터베이스의 인덱스는 테이블의 검색 속도를 향상시키기 위한 동작의 속도를 높여주는 자료 구조를 일컫습니다. 장점과 단점 인덱스를 사용할 때의 보편적인 장단점을 살펴보면 아래와 같습니다. 그러나 예외적인 상황도 많이 있으니 인덱스 사용에 신중해야 합니다! 장점 검색(SELECT) 속도가 향상 될 수 있다.(단, 항상 그런 것은 아니다.) 그 결과 검..
-
[DB] NoSQL 처음보는 초보 개발자가 쓰는 NoSQL이란?database/DB Concept 2021. 2. 1. 18:57
NoSQL 처음보는 초보 개발자가 쓰는 NoSQL이란? 안녕하세요? 장장스입니다. 오늘은 NoSql에 대해 포스팅해보려고 합니다. 그동안 저는 오라클, MySql, MariaDB 같은 테이블 형태의 관계형 데이터베이스만을 사용해 봤었습니다. 그런데 유튜브를 보다보면 NoSql이라는 단어를 종종 보곤 했는데요. NoSql이 무엇인지 초보 개발자의 시선으로 풀어보려고 합니다! NoSQL은 왜? 어떻게? 두둥등장 했을까? 그래프를 보면 2009년을 기점으로 NoSQL이 SQL을 추월하여 사용되고 있는 것과 SQL이 점점 하향세를 타고 있음을 알 수가 있습니다. 이렇게 많이 사용되고 있지만 개발자인 제가 정작 NoSQL이 무엇이지 모르고 있다는 사실이 참 부끄러워지네요,, ㅠㅠ 구글이나 페이스북과 같은 글로벌 ..