본문 바로가기

DB

NoSQL 정의 특성 No SQL? Not Only SQL?NoSQL은 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로 수평적 확장성을 특징으로 한다. 관계형이 아니기 때문에 join이 없고 고정된 스키마를 갖지 않는다.대표적인 NoSQL 제품은 Google의 BigTable, Amazon의 Dynamo이 있고, 이외에 비롯해 다양한 오픈소스 제품이 소개되어 있다. (BigTable, Dynamo, Cassandra, CouchDB, MongoDB, Hbase, Riak, Voldemort 등)구글의 BigTable paper에 보면 구글의 BigTable이 대체 무엇인지에 대해 간단하고 명료하게 기술하고 있다. A Bigtable is a sparse, distributed, persistent m.. 더보기
Intent Lock 의도락킹(Intent Lock)의 목적서로 달리 로크할 수 있는 단위의 로크에 대한 상이한 단계를 지정하고 최대의 병행성을 얻게 함즉!, Lock의 단위를 세분화해서 데이터의 접근성을 좀 더 유연하게 해 성능을 높힐 수 있다.예를들어 T1이 A란 데이터를 READ하고 있다면, T2도 동시에 READ작업이 가능하다. A. 주어진 트랜잭션이 주어진 튜플에 대해 S-Lock을 얻기 전에 먼저 그 튜플을 포함한 릴레이션에 IS-Lock나 그 이상의lock을 획득해야 함.B. 주어진 트랜잭션이 주어진 튜플에 대해 X-Lock을 얻기 전에 먼저 그 튜플을 포함한 릴레이션에 IX-Lock나 그 이상의lock을 획득해야 함. 더보기
트랜잭션 ACID 트랜잭션 ACIDAtomicity(원자성) 트랜잭션은 원자적이다. 즉, 모두 수행되거나 모두 수행되지 않아야 한다. (all-or-nothing)Consistency(일관성) 트랜잭션의 변환은 데이터베이스의 일관성을 유지해야 한다. 즉, 트랜잭션 수행후에 데이터는 일관성을 갖는다. (한쪽에서 -100이 되었다면, 다른쪽에서는 +100되어야만 한다.)Isolation(독립성) 트랜잭션은 서로 독립적이다. 즉, 일반적으로 여러 트랜잭션이 병행수행되더라도 각각의 트랜잭션은 서로에게 영향을 주지 않는다.Durability(지속성) 트랜잭션이 일단 완료되면 시스템 붕괴가 일어나도 갱신은 남아있게 된다. 더보기