NoSQL 박훈 2013.08.13.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

데이터 베이스 (MYSQL) 장수용. MYSQL 이란 ? -MySQL 은 DBMS( 데이터베이스 관리 시스템 ) 이다. - MySQL 은 RDBMS( 관계형 데이터베이스 ) 이다. - MySQL 은 오픈소스이다. - MySQL 은 빠르고, 안정적이고.
이혁재 /KASA NoSQL. 요약 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머.
시스템 프로그래밍 박진희 컴퓨터 시스템 연구실. 2 Project 3 Key-value store 유일한 Key 에 하나의 Value 를 가지고 있는 방식 - Key 와 Value 를 쌍으로 관리 - Hash table, B-Tree, B+ Tree 등 분산형 데이터베이스에서.
최우영 기초 자료 수집 데이터가 증가함에 따라 서비스는 필연적으로 저장소 의 확장을 요구한다. 클라우드 서비스 Facebook – 5 억명 이상의 가입자 Google – 500 PB/Month Flicker – 500 만개 이상의.
주사위를 이용한 땅 따먹기 청솔초 영재학급 4 학년 장 택 민 목차 1. 제작 동기와 원리 2. 필요한 도구 3. 게임규칙 설명 4. 게임 분석 및 전략 1. 제작 동기와 원리 2. 필요한 도구 3. 게임규칙 설명 4. 게임 분석 및 전략.
의료자원 규제현황과 개선방향 자원평가실. 의료자원 관리 개요 규제개혁 토론과제.
뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금. 뇌를 자극하는 SQL Server 장. 트랜잭션과 잠금 2 / 18 트랜잭션 개념과 문법 트랜잭션 개념  하나의 논리적 작업단위로 수행되는 일련의 작업  전부 되거나, 전부 안 되거나의.
D-Guard Security Suites 제품 소개서
연 합 남 전 도 회 월 례 회 1부 예배- 찬 송 장 다같이 2011년 1월 2일 1부 예배- 찬 송 장 다같이 기 도
금속의 종류와 액체의 성질에 따른 금속의 부식 창의적 산출물 연구 보고서 부명 초등 학교 임재윤 지도교사 노지은선생님
사 업 계 획 2011년 제1호 - 2월 1일 2011 주 안에서 소통하며 화합하고 참여하며 헌신하는 남신도회
Mongo DB.
NoSQL Data Store 최원기.
소리가 작으면 이어폰 사용 권장!.
의사결정 향상을 위한 빅데이터 활용 강윤선 김민성.
빅데이터 분석 과정.
관계 대수와 SQL.
웹어플리케이션 보안 Web application security
빅데이터 순환 과정과 플랫폼.
IT R&D Global Leader [별첨 5] 시맨틱 IoT 서비스 플랫폼 기술 ETRI
제 5 장 인덱스 생성 및 관리.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
NoSQL 개요 콘텐츠서비스연구팀 최완.
공공정보와 Linked Data 공공데이터의 LOD 활용
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
Information Technology
Advanced Data Analytics 데이터분석 전문가
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
Korea University of Technology and Education Hongyeon Kim
오라클 데이터베이스 성능 튜닝.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
교육팀 도경모 Big.
What is‘Big Data’? - 빅 데이터에 대한 전반적인 이해 네트워크 컴퓨팅 프로젝트 김충현
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
Database 소개.
Edus 충남 통합인증을 위한 교과부 표준보안 모듈 설치 안내 (smart.edus.or.kr)
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
트랜잭션(Transaction) I DBMS는 다수 사용자(Multi User) 용 대표적인 DB 응용
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
트랜잭션 처리(Transaction Processing)
영원한 복음.
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
Chapter11 웹 스토리지 & 웹 데이터베이스
SQL Query in the SSMS : DB, Table
KRISTAL 2006 워크숍 KRISTAL 개발 업체 발표
학습목표 학습목표 본 장은 동시성 제어와 잠금(lock) 등 효과적인 트랜잭션 관리 기법 과 필요한 명령을 다룬다. 또한 데이터베이스의 장애에 대비하여 안전한 데이터의 관리를 위한 백업과 복원 기법, 서로 다른 DBMS 간이나 다른 서버 사이의 데이터 교환을 위한 데이터.
10장. 회복과 병행 제어 트랜잭션 장애와 회복 병행 제어.
제안 목적 고객성향 분석으로 매출 증대 유사업체 분석으로 신상품 홍보 원가요소 분석 및 피드백으로 원가율 관리
청각기관의 구조와 기능2 옥정달.
제 8장 데이터베이스.
식물의 성장조건 만 든 이 : 김지혁 지도교사 : 김경순선생님.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
상세 개념적 모델링. 상세 개념적 모델링 정규화를 하는 이유 데이터의 중복성 제거 데이터 모형의 단순화 Entity, Attribute의 누락 여부검증 데이터 모형의 안전성 검증.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
1장. 서 론 데이터베이스의 개요 모델의 종류 관계형 모델과 객체 지향형 데이터베이스 SQL이란 무엇인가?
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
차세대 뱅킹시스템 프로젝트의 DBMS 튜닝 이슈 극복 사례
Python Tutorial 4: Data Structures
Jre 설치 확인 방법 규제정보화 시스템 운영팀.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
제 5 장 MariaDB인덱스 생성 및 관리.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
Presentation transcript:

NoSQL 박훈 2013.08.13

[ ] 1. NoSQL 2. Mongo DB Contents

Not Only SQL What is NoSQL? 기존의 RDBMS 의 한계를 극복하기 위한 비관계형 DB로 분산시스템을 기반으로 한 수평적 확장성을 특징으로 함 데이터 량의 급격한 증가 > RDBMS는 확장이 어렵다. > 수직적확장 비용이 비싸다. 사용자의 데이터 요구가 다양 > 저장할 데이터 형태가 변화 > 비정형 데이터 저장 불가 RDBMS에 필요 없는 특성이 존재 > UPDATE, DELETE > JOIN > ACID 트랜잭션 > 고정된 스키마 Not Only SQL Update와 Delete는 전통적으로 정보의 손실이 발생하기 때문에 잘 사용되지 않으며 후에 데이터 검사 및 재활성화를 위해서 기록해둘 필요가 있습니다. 그리고 사용자가 커뮤니티를 탈퇴한다고 그들의 글을 지우지 않듯이 도메인 관점에서는 실제로 삭제되지 않습니다. 이런 접근을 하게 되면 Update / Delete를 모두 Insert로 모델할수 있고 과거 데이터는 버전을 붙혀서 기록할 수 있으며 이 데이터들은 비활성데이터들이 됩니다. 이 INSET-only 시스템에서는 2개의 문제가 있는데 데이터베이스에서 종속(cascade)에 대한 트리거를 이용할 수 없으며 Query가 비활성 데이터를 걸러내야 할 필요가 있습니다. JOIN 데이터가 많을 때 JOIN은 많은 양의 데이터에 복잡한 연산을 수행해야 하기 때문에 비용이 많이 들며 파티션을 넘어서는 동작되지 않기 때문에 피해야 합니다. 정규화는 일관된 데이터를 가지기 쉽게 하고 스토리지의 양을 줄이기 위해서 하는건데 반정규화(De-normalization)를 하면 JOIN문제를 피할 수 있습니다. 반정규화로 일관성에 대한 책임을 디비에서 애플리케이션으로 이동시킬수 있는데 이는 INSERT-only라면 어렵지 않습니다. ACID 트랜젝션 Atomic (원자성) : 여러 레코드를 수정할 때 원자성은 필요없으며 단일키 원자성이면 충분합니다. Consistency (일관성) : 대부분의 시스템은 C보다는 P나 A를 필요로 하기 때문에 엄격한 일관성을 가질 필요는 없고 대신 결과의 일관성(Eventually Consistent )을 가질 수 있습니다. Isolation (격리성) : 읽기에 최선을 다하는(Read-Committe) 것 이상의 격리성은 필요하지 않으며 단일키 원자성이 더 쉽습니다. Durability (지속성) : 각 노드가 실패했을때도 이용되기 위해서는 메모리가 데이터를 충분히 보관할 수 있을정도로 저렴해지는 시점까지는 지속성이 필요합니다. 고정된 스키마 RDBMS에서는 데이터를 사용하기 전에 스키마를 정의해야하고 Index등을 정의해야 하는데 현재의 웹환경에서는 빠르게 새로운 피쳐를 추가하고 이미 존재하는 피쳐를 조정하기 위해서는 스키마 수정이 필수적으로 요구됩니다. 하지만 컬럼의 추가/수정/삭제는 row에 lock을 걸고 index의 수정은 테이블에 락을 걸기 때문에 스키마 수정이 어렵습니다.

What is NoSQL? – Cap Theorem 데이터베이스는 Availability, Consistency, Partitioning 세가지 중 두 가지만 만족시킬 수 있다. Consistency Availability Partition Tolerance 일관성 : 모든 사용자들에게 같은 시간에 같은 데이터를 보여 주어야 한다 유효성 : 모든 클라이언트 들이 읽기 및 쓰기가 가능해야 한다. 즉, 하나의 노드가 장애가 일어 나더라도 다른 노드에는 영향을 미치면 안된다. 분산가능 : 물리적 네트워크 분상 환경에서 시스템 동작이 원할하게 이루어 져야 한다. 즉, 네트워크 전송 중 데이터 손실 상황이 와도 시스템은 정상적으로 동작을 해야한다

Why NoSQL? NoSQL은 기존의 RDBMS의 한계를 극복 NoSQL은 데이터간 관계를 정의하지 않는다. > 고정되지 않은 테이블 스키마로 테이블간 Join도 불가능하다. RDBMS에 비해 대용량의 데이터를 저장할 수 있다. 분산형 구조로, 비용이 저렴하고 장애 발생시 대처가 유연하다. > 하나의 고성능 머신에 DB를 구축하는것이 아니라, 일반적인 서버 수십대를 연결해 데이터를 저장, 처리한다. 하지만.. > RDBMS는 자체적으로 무결성을 지원하기 위한 방법이 있지만 NoSQL은 어플리케이션 단에서 모든 무결성을 보장해야 한다. > Schemaless 이므로, Join과 같은 복잡한 형태의 데이터 조회가 어렵다. Update와 Delete는 전통적으로 정보의 손실이 발생하기 때문에 잘 사용되지 않으며 후에 데이터 검사 및 재활성화를 위해서 기록해둘 필요가 있습니다. 그리고 사용자가 커뮤니티를 탈퇴한다고 그들의 글을 지우지 않듯이 도메인 관점에서는 실제로 삭제되지 않습니다. 이런 접근을 하게 되면 Update / Delete를 모두 Insert로 모델할수 있고 과거 데이터는 버전을 붙혀서 기록할 수 있으며 이 데이터들은 비활성데이터들이 됩니다. 이 INSET-only 시스템에서는 2개의 문제가 있는데 데이터베이스에서 종속(cascade)에 대한 트리거를 이용할 수 없으며 Query가 비활성 데이터를 걸러내야 할 필요가 있습니다. JOIN 데이터가 많을 때 JOIN은 많은 양의 데이터에 복잡한 연산을 수행해야 하기 때문에 비용이 많이 들며 파티션을 넘어서는 동작되지 않기 때문에 피해야 합니다. 정규화는 일관된 데이터를 가지기 쉽게 하고 스토리지의 양을 줄이기 위해서 하는건데 반정규화(De-normalization)를 하면 JOIN문제를 피할 수 있습니다. 반정규화로 일관성에 대한 책임을 디비에서 애플리케이션으로 이동시킬수 있는데 이는 INSERT-only라면 어렵지 않습니다. ACID 트랜젝션 Atomic (원자성) : 여러 레코드를 수정할 때 원자성은 필요없으며 단일키 원자성이면 충분합니다. Consistency (일관성) : 대부분의 시스템은 C보다는 P나 A를 필요로 하기 때문에 엄격한 일관성을 가질 필요는 없고 대신 결과의 일관성(Eventually Consistent )을 가질 수 있습니다. Isolation (격리성) : 읽기에 최선을 다하는(Read-Committe) 것 이상의 격리성은 필요하지 않으며 단일키 원자성이 더 쉽습니다. Durability (지속성) : 각 노드가 실패했을때도 이용되기 위해서는 메모리가 데이터를 충분히 보관할 수 있을정도로 저렴해지는 시점까지는 지속성이 필요합니다. 고정된 스키마 RDBMS에서는 데이터를 사용하기 전에 스키마를 정의해야하고 Index등을 정의해야 하는데 현재의 웹환경에서는 빠르게 새로운 피쳐를 추가하고 이미 존재하는 피쳐를 조정하기 위해서는 스키마 수정이 필수적으로 요구됩니다. 하지만 컬럼의 추가/수정/삭제는 row에 lock을 걸고 index의 수정은 테이블에 락을 걸기 때문에 스키마 수정이 어렵습니다.

There is.. NoSQL은 데이터 저장 구조에 따라 4종류로 나눌 수 있다. Key-Value, Document, Column Family, Graph ey/Value Store의 확장된 형태로, 기본적으로는  Key/Value Store이다. Key에 해당하는 Value 필드에 데이타를 저장하는 구조는 같으나, 저장되는 Value의 데이타 타입이 Document 라는 타입을 사용하는데, Document 타입은 MS-WORD와 같은 문서를 이야기 하는것이 아니라, XML,JSON,YAML과 같이 구조화된 데이타 타입으로, 복잡한 계층 구조를 표현할 수 있다. Key/Value Store의 확장된 형태로 Key/Value Store와 데이타 저장 방식은 동일하나, 데이타가 내부적으로 Key를 순서로 Sorting되서 저장된다.

There is.. 데이터 모델 제품 언어 설명 Column, Column Family HBase Java 하둡 기반에서 동작하고, 다양한 하둡 도구와 상호 운영성이 좋다. 아파치 라이선스. Cassandra 구글 BigTable 데이터 모델과 Dynamo의 분산 기술을 결합해 구현. 아파치 라이선스. Document MongoDB C++ 설치 개발이 매우 쉽고, 빠른 성능을 제공. JSON과 같이 웹서비스 영역에서 많이 활용되는 데이터를 바로 저장, 접근할 수 있는 다양한 언어의 API를 제공한다는 강점. PaaS와 같은 플랫폼 클라우드에서 기본적으로 지원. Key / Value DynamoDB Unknown 최근 아마존이 클라우드 기반으로 공개한 NoSQL 데이터베이스. Graph Neo4J C++, Java 속성을 가진 노드와의 관계 정보를 저장, 처리하고 ACID 트랜잭션을 지원하는 데이터베이스다. 시멘틱 웹에서 곧잘 얘기하는 RDF정보를 저장 처리하는데 최적이라 할 수 있으며 이를 위한 SparQL라는 질의 도구도 제공. 월드와이드웹(WWW)에서의 정보검색은 사람의 해석과 판단을 요구한다. 만약 검색엔진에 `술'을 입력했다면 이 단어가 포함된 수없이 많은 웹문서가 나온다. 이의 대부분은 필요치 않은 문서인 경우가 많다. 검색자는 문서 하나 하나를 열어 확인하면서 원하는 정보를 재차 확인하는 번거로움을 감내해야 한다. 사람이 눈으로 보고 이해해야 하는 웹인 셈이다. 여기서 한발 더 나아가 컴퓨터가 이해할 수 있는 웹을 만들려는 시도가 활발히 이뤄지고 있다. `시맨틱 웹'(Semantic Web)은 생각하는 웹이다. 텍스트 위주에서 벗어나 단어의 유사성과 상관관계 등을 파악해서 결과물을 보여주려는 것이다. 웹 상에서의 그림, 문서 등의 모든 객체를 대상으로 에이전트라는 소프트웨어를 이용해 목적에 맞는 정보를 수집ㆍ가공ㆍ응용까지 시도한다. 인간의 언어를 이해하고 어떤 측면에서는 인간과 의사소통을 하는 똑똑한 웹기술이다. 자원 속성 표현의 세분화로 인해 자원에 대한 좀 더 정교한 기술이 가능해지고, 자원들 간의 관계 설정이 속성(Predicate)를 통해 무한으로 가능하게 되어진다.