NoSQL
                 Part 8. Key-Value Database




13년	 4월	 6일	 토
Key-Value Database
                     RDB(Oracle)             Riak

                   Database Instance      Riak Cluster

                         Table              Bucket

                         Row               Key-Value

                        RowID                 Key

                 * Java 의 HashMap 과 동일함

13년	 4월	 6일	 토
What’s the Key-Value
                      Database
                     <Bucket = userData>
                      <Key = sessionID>
                       <Value = Object>
                                 UserProfile

                                 SessionData

                          Shopping Cart
                                 Cart Item1

                                 Cart Item2




13년	 4월	 6일	 토
What’s the Key-Value
                        Database
                 <Bucket = userData>
                  <Key = sessionID_userProfile>
                   <Value = UserProfileObject>
                                                   세션아이디_객체명
                  <Key = sessionID_sessionData>    으로 한 버킷 내에서
                   <Value = SessionDataObject>
                                                   다른 타입과의 충돌을
                  <Key = sessionID_shoppingCart>   회피할 수 있다.
                   <Value = ShoppingCartObject>




13년	 4월	 6일	 토
Consistency

                 • 1. 한 키에 대해 값을 얻거나 저장, 삭제 연산.
                 • 2. 일관성은 한 키에 대한 연산에만 적용가능.
                 • 3. 결과적 일관성으로 구현되어있음.
                 • 4. 쓰기 정족수, 복제 정족수 로 일관성을 제공.

13년	 4월	 6일	 토
Transaction


                 • 1. 트랜잭션에 대한 보장이 없음.
                 • 2. 쓰기 정족수를 이용함.


13년	 4월	 6일	 토
Inquiry

                 • 1. Key-Value Database 는 Key로 조회한다.
                 • 2. Key 를 모를 때 Riak 은 Riak Search 를 제
                   공.

                 • 3. Key 는 사용자가 정의한 것으로 사용된다.
                   예로 세션아이디, 타임스탬프 등으로 사용. 일
                   반적으로 세션아이디를 사용한다.



13년	 4월	 6일	 토
Extendability
                 •   1. 샤딩을 이용한 확장.

                 •   2. CAP 정리를 통한 확장성 제어 가능.

                     •   N : 복제 정족수

                     •   R : 읽기 정족수

                     •   W : 쓰기 정족수

                         •   총 노드 수 : 5

                         •   N : 3 = 최소 3개의 노드에 복제가 되어야 복제 성공

                         •   R : 3 = 최소 3개의 노드에서 데이터를 읽어야 읽기 성공

                         •   W : 3 = 최소 3개의 노드에 데이터를 써야 쓰기 성공

                 •   3. CAP 정리를 통해 가용성의 높낮이를 조절 할 수 있다.




13년	 4월	 6일	 토
Tip
                 •   1. Key-Value 를 적절히 사용할 수 있는 기능

                     •   세션 정보 저장.

                     •   사용자 프로파일 설정

                     •   장바구니

                 •   2. Key-Value 가 맞지 않는 기능

                     •   데이터간의 관계가 존재 하는 경우

                     •   다중 연산 트랜잭션을 사용하는 경우

                     •   데이터로 조회하는 경우

                     •   집합에 의한 연산이 이루어지는 경우



13년	 4월	 6일	 토

키 값 데이터베이스

  • 1.
    NoSQL Part 8. Key-Value Database 13년 4월 6일 토
  • 2.
    Key-Value Database RDB(Oracle) Riak Database Instance Riak Cluster Table Bucket Row Key-Value RowID Key * Java 의 HashMap 과 동일함 13년 4월 6일 토
  • 3.
    What’s the Key-Value Database <Bucket = userData> <Key = sessionID> <Value = Object> UserProfile SessionData Shopping Cart Cart Item1 Cart Item2 13년 4월 6일 토
  • 4.
    What’s the Key-Value Database <Bucket = userData> <Key = sessionID_userProfile> <Value = UserProfileObject> 세션아이디_객체명 <Key = sessionID_sessionData> 으로 한 버킷 내에서 <Value = SessionDataObject> 다른 타입과의 충돌을 <Key = sessionID_shoppingCart> 회피할 수 있다. <Value = ShoppingCartObject> 13년 4월 6일 토
  • 5.
    Consistency • 1. 한 키에 대해 값을 얻거나 저장, 삭제 연산. • 2. 일관성은 한 키에 대한 연산에만 적용가능. • 3. 결과적 일관성으로 구현되어있음. • 4. 쓰기 정족수, 복제 정족수 로 일관성을 제공. 13년 4월 6일 토
  • 6.
    Transaction • 1. 트랜잭션에 대한 보장이 없음. • 2. 쓰기 정족수를 이용함. 13년 4월 6일 토
  • 7.
    Inquiry • 1. Key-Value Database 는 Key로 조회한다. • 2. Key 를 모를 때 Riak 은 Riak Search 를 제 공. • 3. Key 는 사용자가 정의한 것으로 사용된다. 예로 세션아이디, 타임스탬프 등으로 사용. 일 반적으로 세션아이디를 사용한다. 13년 4월 6일 토
  • 8.
    Extendability • 1. 샤딩을 이용한 확장. • 2. CAP 정리를 통한 확장성 제어 가능. • N : 복제 정족수 • R : 읽기 정족수 • W : 쓰기 정족수 • 총 노드 수 : 5 • N : 3 = 최소 3개의 노드에 복제가 되어야 복제 성공 • R : 3 = 최소 3개의 노드에서 데이터를 읽어야 읽기 성공 • W : 3 = 최소 3개의 노드에 데이터를 써야 쓰기 성공 • 3. CAP 정리를 통해 가용성의 높낮이를 조절 할 수 있다. 13년 4월 6일 토
  • 9.
    Tip • 1. Key-Value 를 적절히 사용할 수 있는 기능 • 세션 정보 저장. • 사용자 프로파일 설정 • 장바구니 • 2. Key-Value 가 맞지 않는 기능 • 데이터간의 관계가 존재 하는 경우 • 다중 연산 트랜잭션을 사용하는 경우 • 데이터로 조회하는 경우 • 집합에 의한 연산이 이루어지는 경우 13년 4월 6일 토