3.1 관계
• 집합 - 지향 데이터베이스
• 부분적인 데이터를 개별적으로 처리하기 불편 - 관계형 데이터베이스
와 같이 각 집합을 대표하는 키를 두어 각각 처리
• ACID 보장이 힘듦
• 관계형 데이터베이스도 성능면에서 관계의 복잡함에 대한 이슈가 있음
3.
ACID
• 원자성 , 일관성 , 독립성 , 지속성
• 데이터베이스 트랜젝션이 안전하게 수행된다는 것을 보장하기 위한 성질
• 원자성 (Atomicity) : 트랜잭션과 관련된 작업들이 모두 수행되었는지 아니면 모두 실행이 안되었는지를 보장하는 능력이
다.
• 일관성 (Consistency) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을
의미한다 .
• 고립성 (Isolation) : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다 .
• 지속성 (Durability) : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다 .
4.
CAP 이론
CAP 이란?
•Consistency: 모든 사용자들에게 같
은 시간에 같은 데이터를 보여 주어야
한다
•Availability: 모든 클라이언트 들이
읽기 및 쓰기가 가능해야 한다 . 즉 ,
하나의 노드가 장애가 일어 나더라도
다른 노드에는 영향을 미치면 안된다 .
•Partition tolerance: 물리적 네트워크
분상 환경에서 시스템 동작이 원할하
게 이루어 져야 한다 . 즉 , 네트워크
전송 중 데이터 손실 상황이 와도 시
스템은 정상적으로 동작을 해야한다
RDB : CA
Cassandra : AP
BigTable, MongoDB : CP
5.
3.2 그래프 데이터베이스
• RDBMS 의 대안으로써 나타남
• node( 노드 ), relationship( 방향과 타입 ), property( 노드들과의 관계 )
• 그래프 데이터베이스 프로젝트 ( 오픈소스 ) : Neo4j, HyergraphDB
6.
3.3 스키가 없는데이터베이스
• 모든 NoSQL 은 스키마가 없음
• 데이터 삽입 시 제약이 없어 쉽게 데이터 추가가 가능
• 균일하지 않은 데이터를 처리하는 것이 수월
• 어플리케이션에 암묵적 스키마를 가짐 - 확인을 위해선 소스를 봐야함
7.
3.4 구체화 뷰
• 집합 지향 DB 는 많은 데이터를 한 집합에 포함시키는 이점이 있음
• 쿼리 결과를 미리 계산해 캐시하는 것 .
• 기본데이터가 바뀔 때 구체화 뷰도 함께 바뀜
8.
요점
• 집합 지향 데이터베이스에서는 집합 내 관계보다 집합 간 관계 처리가 힘듦
• 그래프 데이터베이스는 데이터를 노드와 간선의 그래프 구조로 만들며 , 복
잡한 관계를 가지는 데이터에 최적 .
• 무스키마 데이터베이스는 레코드에 필드를 자유롭게 추가 가능하나 , 보통
데이터 사용자가 기대하는 암묵적 스키마가 있다 .
• 집합지향 데이터베이스는 주요 집합과 구조가 다른 데이터 제공을 위해 구
체화 뷰를 사용 , 구체화 뷰를 만드는 작업은 보통 맵 - 리듀스 계산을 통해
수행된다 .