NoSQL 이란.. ?
Posted 2012. 12. 27. 16:14NoSQL은 not only SQL 이라고도 한다.
(SQL이 아니다.. SQL 만은 아니다)
기본적으로 데이터베이스는 계층형->네트워크형->관계형으로 발전해 왔으며 최근 대용량 데이터
처리가 이슈되면서 관계형 데이터 베이스의 장단점의 보완 및 활용을 위해 no-sql에 대한 관심이 높아
지고 있다.
관계형 데이터 베이스의 장점
1. 데이터의 일관성을 보증 할 수 있다. ( 트랜잭션 )
2. 정규화를 전제로 하고 있기 때문에 갱신 시의 비용이 적제 든다.
3. 조인이나 복잡한 검색 조건으로 검색이 가능하다.
4. 참고 자료나 노하우가 많다.( 검증되고 성숙된 기술 )
관계령 데이터 베이스의 단점
1. 대량의 데이터 입력 처리 시 성능 이슈
2. 갱신이 발생한 테이블의 인덱스 생성이나 스키마 변경에 대한 처리 이슈
3. 컬럼을 확실히 정의하기 어려운 경우에 대한 처리 이슈
4. 단순히 빨리 결과를 조회하고자 할때의 성능 이슈
일반적으로 데이터 베이스 저장소의 처리 성능을 확장하기 위한 노력은 2가지로 분류 될 수 있다.
스케일업과 스케일 아웃이다.
스케일 업 방식
-> 사용중인 서버 자체를 고성능으로 바꿔서 처리능력을 향상시키는 방법
-> 말 그대로 장비 업그래이드 이기에 비용이 많이 들지만 소스에 대한 변경이 없다.
스케일 아웃 방식
-> 저가의 여러 장비를 사용하여 처리 능력을 향상 시킴
-> 저가의 비용으로도 원하는 성능을 확보 할 수 있지만 소스 수정이 필요하다
-> no-sql 에서 제공하는 방식
NO-SQL 데이터 베이스
조인 연산이 불가능 하며, 각 데이터가 독립적으로 설계 되어 있어 데이터를 여러 서버에 분산하여
작업하는 방식. 데이터를 여러 서버에 분산하는 것을 통하여 각 서버에서 처리하는 데이터의 양이 줄고
따라서 대량의 데이터의 입출력이 있어도 처리가 쉬워진다.
일반적으로 관계형 데이터 베이스의 경우에는 고가의 장비를 마스터-슬래이브 혹은 액티브-스탠바이
형태로 구성하여 서비스하고 있는 경우가 많으니 NO-SQL에서 이야기하는 구성은 이런 구성이 아닌
10대 혹은 100대 정도의 저가의 서버들을 클러스터링 혹은 샤팅 등의 방법으로 데이터를 쪼개서 나누어
처리하는 방식을 말한다.
*조인연산 이란?
하나 이상의 테이블에서 원하는 데이터를 뽑아내는것, 또는 두개의 데이터베이스 에서 동시에..
self -> 자신테이블 조인
inner -> join 할 테이블에 모두 데이터가 존재
outer -> join 할 어느한쪽에만 데이터가 존재해도 조회
cross join -> 양쪽 테이블 모두 참조해서 조회(속도낮음) 사용 안함
natural join -> 조인시에 사용 할 컬럼명이 하나로 유지되게 하는 조인
inner join
select 테이블명, 컬럼명..
from 테이블명 별칭
inner join 조인할 테이블명
on 조인조건 두개의 테이블을 연결하는 조건(관계)
NO-SQL 데이터 베이스 종류
NO-SQL 서버는 특징에 따라 3가지로 분류 될 수 있다.
1. 키-값 형 스토어
MEMCACHED
REDIS
2. 문서형 데이터 베이스
문서형이라 함은 여러가지 형태의 값들을 모아놓은 논리적 구조라고 표현 할 수 있다.
MONGODB
3. 컬럼형 데이터 베이스
관계형 데이터 베이스가 ROW단위로 데이터를 관리 하였다면, ROW가 아닌 컬럼 단위로 관리
하는 데이터 베이스를 말한다
HBASE
CASSANDRA
- Filed under : NoSQL/NoSQL 이란..?