Database

ACID(Atomicity, Consistency, Isolation, Durability) 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질이다.
Atomicity: 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되면 안된다. 이체를 할 때 송금자에게서는 돈이 빠졌지만 그 상태에서 멈춰서 수신자에게 돈이 안들어 갔다면 전체 트랜잭션이 취소되어야 한다.
Consistency: 트랜잭션 후에도 데이터베이스가 제약 조건을 만족해야 한다.
Isolation: 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못한다.
Durability: 성공한 트랜잭션은 데이터베이스에 반영이 되고 그 반영이 의도와 다르게 되돌려 지지 않아야 한다.


DBMS(Database Management System)
데이터들을 일정 단위로 저장하고 유지보수 하는 시스템
CRUD: Create, Retrieve, Update, Delete
대부분은 R이 압도적으로 많기 때문에 효율적인 검색을 위한 디자인이 필요하다.
이진탐색 or B-Tree

RDBMS란 관계형 DBMS로서 테이블 기반으로 저장이 된다.
테이블과 테이블 간의 연관관계를 통해 정보를 찾는다.

병렬 DBMS는 다중 중앙 처리 장치로 디스크를 병렬로 사용함으로써 처리 및 입출력 속도를 높인다.
MPP구조를 하고 있는 경우가 많다.

MPP(Massively Parallel Processing)에서는 존재하는 processor가 각각 전용의 메모리를 갖추어 동작한다.
메모리를 공유하지 않기 때문에 shared nothing architecture라고도 한다.
메모리에서의 접근 충돌이 일어나지 않고 lock manager가 불필요하다.
프로세스의 수가 많아지면 오버헤드가 커져서 시간이 느려진다.

SMP(Symmetric Multi Processing)에서는 모든 processor가 공통의 메모리를 이용하며 동작한다.
효율이 좋은 병렬 처리를 할 수 있다.
한 개의 메모리가 다수의 processor의 접근을 동시 처리 할 수 없었는데 개선됐다고 한다.

분산 데이터베이스는 하나의 DBMS가 여러 CPU에 연결된 저장 장치들을 제어하는 형태이다.
네트워크상의 여러 노드에 분산되어 있으나 단일의 데이터베이스 관리 시스템으로 제어된다.
여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한다.

OLTP(Online Transaction Processing) 데이터베이스 처리로 해석할 수 있다. 여러 과정의 연산이 하나의 단위 프로세스(트랜잭션)로 실행되고 중간에 오류가 발생하는 경우 모든 단계를 되돌린다.
OLAP(Online Analytical Processing) 주로 대용량의 데이터를 분석하는 기술이다.


Map-Reduce는 대용량의 데이터를 처리하는 기술이다.
Map-Reduce나 Dryad와 같은 병렬 데이터 연산 프레임워크는 어느 정도 진입 장벽이 있다.
좀 더 높은 수준의 추상화로 데이터를 더 쉽게 처리할 수 있도록 나온 프레임워크가 Apache Pig와 Apache Hive이다.
Apache Pig는 C나 Java와 같이 절차적 프러그램 언어로 데이터를 처리하고, Apache Hive는 SQL처럼 선언적 데이터 처리를 한다.






--------------------------------------------------------
Reference
https://d2.naver.com/helloworld/29533

댓글

이 블로그의 인기 게시물

논문 정리 - MapReduce: Simplified Data Processing on Large Clusters

논문 정리 - The Google File System

kazoo: Using zookeeper api with python