Database

    Dead Lock(교착상태)

    DeadLock 데이터베이스에 데드락이란 여러개의 트랜잭션이 실행되지 못하고 서로를 무한정 기다리고 있는 교착상태를 뜻한다. 교착상태란 두개 이상의 작업이 서로의 작업이 끝나기를 기다리고 있는 상태로 결과적으로 아무것도 완료되지 못한다. Transaction 트랜잭션은 작업의 안정성을 보장해주는 것이다. 여러개의 작업을 하나의 논리적 단위로 묶어 반영과 원상복귀를 조정할 수 있게 하기 위해 사용된다. 사용자의 입장에서는 작업의 논리적 단위로 이해할 수 있고 시스템의 입장에서는 데이터들을 접근 혹은 변경하는 프로그램의 단위가 된다. Locking(교착상태 예방) 로킹은 하나의 트랜잭션이 데이터를 액세스하는동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 병행제어 기법이다. 사실상 필요한 데이..

    [mongoDB] MongoDB에 대하여

    NoSQL "Non Relation Operation Database SQL" 관계형 데이터베이스가 아닌 SQL 나는 관계형 DB만을 사용해봤고 사용해왔다. NoSQL 비관계형 데이터베이스에 대해선 들어보기만 했지 실제로 사용해본적은 없었다. 데이터직군에 있는 지인도 NoSQL을 사용하고 요즘 채용공고에도 MongoDB와 같은 비관계형 데이터베이스가 많이 보인다. NoSQL에 대해 알아보자 feat.몽고디비 일반적인 관계형데이터베이스는 데이터의 중복을 제거하고 무결성을 보장하기 위해 정규화를 진행한다. (1,2,3 정규화) 이러한 정규화 과도한 JOIN으로 성능저하의 문제를 야기한다. 당장 내가 사용하는 쿼리만 봐도 JOIN이 난무한다. 하지만 NoSQL은 중첩데이터 형태를 띔으로 불필요한 JOIN을 최..

    Redis에 대하여

    Redis Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템이다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소이다. db-engines.com 에서 key, value 저장소 중 가장 순위가 높다. Redis 의 특징 Key, Value 구조이기 때문에 쿼리를 사용할 필요가 없다. 데이터를 디스크에 쓰는 구조가 아닌 메모리에서 데이터를 처리하기 때문에 속도가 빠르다. String, Lists, Sets, Sorted Sets, Hashes 자료 구조를 지원한다. String : 가장 일반적인 key-value 구조의 형태 Sets : String의 집합. 여러개의 값을 하나의 value 에 넣을 수 있..