노에스큐엘 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
2번째 줄: 2번째 줄:
  
 
==개요==
 
==개요==
NoSQL이 무엇의 약자인지는 사람에 따라 NoSQL, Not Only SQL, Non-Relational Operational Database SQL로 엇갈리는 의견들이 있지만, 현재 Not Only SQL로 풀어 설명하는 것이 다수를 차지하고 있다고 한다. 이 말의 의미를 풀어보면, 기존의 [[관계형 DBMS]]가 갖고있는 특성 뿐만 아니라 다른 특성들을 부가적으로 지원한다는 것을 의미한다. 이 용어가 처음으로 등장한 것은 1998년 카를로 스트로찌[[(Carlo Strozzi)]]라는 엔지니어가 공개한 표준 [[SQL인터페이스]]를 채용하지 않은 자신의 경량 Open Source [[관계형 데이터베이스 관리 시스템]]를 NoSQL이라고 명명한 데서 유래했다고 한다. 이후 2009년에는 [[요한 오스칼손]](Johan Oskarsson)이라는 엔지니어가 Open Source기반의 [[분산데이터베이스]] 관련 행사를 준비하며 NoSQL이라는 용어를 사용했다. 이때부터 기존의 관계형 데이터베이스 시스템의 주요 특성을 보장하는 [[ACID]](Atomic, Consistency, Integrity, Duarabity)특성을 제공하지 않는, 그렇지만 뛰어난 확장성이나 성능 등의 특성을 갖는 수많은 비관계형, 분산 데이터 베이스들이 등장했고, 이때부터 NoSQL이라는 용어가 보편적으로 사용되었다. 이러한 접근의 동기는 다음을 포함한다. 설계의 단순성, 머신들의 [[클러스터]]에 대한 더 단순한 수평 확장(관계형 데이터베이스의 문제), 이용성에 대한 더 세밀한 통제. NoSQL 데이터베이스에 의해 사용되는 자료 구조(예: 키-값, [[와이드 컬럼]], 그래프, [[도큐먼트]])들은 관계형 데이터베이스에서 기본적으로 사용되는 것들과는 다르며 일부 작업들은 NoSQL에서 속도가 더 빠른 편이다. 주어진 NoSQL 데이터베이스의 특정한 적합 여부는 해결해야 하는 문제에 따라 다르다. NoSQL 데이터베이스에 쓰이는 자료 구조들은 관계형 데이터베이스 테이블보다 "더 유연한" 것으로 간주되기도 한다. 수많은 NoSQL 스토어들은 이용성, [[파티션]] 내구성, 속도의 선호로 ([[CAP]] 정리 측면에서) 일관성을 타협한다. NoSQL 스토어를 채용하는 데 생기는 장벽에는 저급의 [[쿼리 언어]]의 사용(SQL 사용 대신. 예: 테이블을 경유하여 애드혹 조인-join을 수행하는 기능이 부족), 표준화된 [[인터페이스]]의 부족, 기존 관계형 데이터베이스의 상당한 개선이 포함된다. 대부분의 NoSQL 스토어는 진정한 [[ACID]] 트랜잭션이 결여되어 있으나 [[마크로직]], [[에어로스파이크]], [[페어컴]](FairCom) c-treeACE, [[구글 스패너]](기술적으로 NewSQL 데이터베이스이긴 하지만), [[Symas LMDB]], [[OrientDB]] 등의 일부 데이터베이스들은 이를 염두에 두고 설계하였다. 그 대신, 대부분의 NoSQL 데이터베이스들은 "궁극적인 일관성" 개념을 제공함으로써 데이터베이스의 변경사항이 모든 노드에 "궁극적으로"(일반적으로 밀리초 내) 전파되므로 데이터에 대한 모든 쿼리들이 즉각 업데이트된 데이터를 반환하지 않을 수 있고 정확하지 않은 데이터를 읽는 결과가 발생할 수 있는데 이 문제를 [[스테일 리드]](stale read)라고 부른다. 게다가 일부 NoSQL 시스템들은 손실된 쓰기([[write]])와 기타 형태의 데이터 손실을 보이는 경우도 있다. 일부 NoSQL 시스템들은 로그 선행 기입과 같은 개념들을 제공하여 데이터 손실을 막는다. 여러 데이터베이스를 거치는 분산 트랜잭션 처리의 경우 데이터 일관성은 NoSQL과 관계형 데이터베이스에게 훨씬 더 큰 도전이 된다. 현행의 관계형 데이터베이스들 조차도 데이터베이스 스팬을 위한 [[참조 무결성 제약]](referential integrity constraint)을 허용하지 않는다. 분산 [[트랜잭션]] 처리를 위해 [[ACID 트랜잭션]]과 [[X/Open XA]] 표준을 모두 준수하는 시스템들도 일부 있다.<ref name="티">티,〈[https://jwprogramming.tistory.com/70 개발자를 꿈꾸는 프로그래머]〉,《티스토리 블로그》, 2016-04-24</ref>
+
NoSQL이 무엇의 약자인지는 사람에 따라 NoSQL, Not Only SQL, Non-Relational Operational Database SQL로 엇갈리는 의견들이 있지만, 현재 Not Only SQL로 풀어 설명하는 것이 다수를 차지하고 있다고 한다. 이 말의 의미를 풀어보면, 기존의 [[관계형 DBMS]]가 갖고있는 특성 뿐만 아니라 다른 특성들을 부가적으로 지원한다는 것을 의미한다. 이 용어가 처음으로 등장한 것은 1998년 카를로 스트로찌[[(Carlo Strozzi)]]라는 엔지니어가 공개한 표준 [[SQL인터페이스]]를 채용하지 않은 자신의 경량 Open Source [[관계형 데이터베이스]]를 NoSQL이라고 명명한 데서 유래했다고 한다. 이후 2009년에는 [[요한 오스칼손]](Johan Oskarsson)이라는 엔지니어가 Open Source기반의 [[분산데이터베이스]] 관련 행사를 준비하며 NoSQL이라는 용어를 사용했다. 이때부터 기존의 관계형 데이터베이스 시스템의 주요 특성을 보장하는 [[ACID]](Atomic, Consistency, Integrity, Duarabity)특성을 제공하지 않는, 그렇지만 뛰어난 확장성이나 성능 등의 특성을 갖는 수많은 비관계형, 분산 데이터 베이스들이 등장했고, 이때부터 NoSQL이라는 용어가 보편적으로 사용되었다. 이러한 접근의 동기는 다음을 포함한다. 설계의 단순성, 머신들의 [[클러스터]]에 대한 더 단순한 수평 확장(관계형 데이터베이스의 문제), 이용성에 대한 더 세밀한 통제. NoSQL 데이터베이스에 의해 사용되는 자료 구조(예: 키-값, [[와이드 컬럼]], 그래프, [[도큐먼트]])들은 관계형 데이터베이스에서 기본적으로 사용되는 것들과는 다르며 일부 작업들은 NoSQL에서 속도가 더 빠른 편이다. 주어진 NoSQL 데이터베이스의 특정한 적합 여부는 해결해야 하는 문제에 따라 다르다. NoSQL 데이터베이스에 쓰이는 자료 구조들은 관계형 데이터베이스 테이블보다 "더 유연한" 것으로 간주되기도 한다. 수많은 NoSQL 스토어들은 이용성, [[파티션]] 내구성, 속도의 선호로 ([[CAP]] 정리 측면에서) 일관성을 타협한다. NoSQL 스토어를 채용하는 데 생기는 장벽에는 저급의 [[쿼리 언어]]의 사용(SQL 사용 대신. 예: 테이블을 경유하여 애드혹 조인-join을 수행하는 기능이 부족), 표준화된 [[인터페이스]]의 부족, 기존 관계형 데이터베이스의 상당한 개선이 포함된다. 대부분의 NoSQL 스토어는 진정한 [[ACID]] 트랜잭션이 결여되어 있으나 [[마크로직]], [[에어로스파이크]], [[페어컴]](FairCom) c-treeACE, [[구글 스패너]](기술적으로 NewSQL 데이터베이스이긴 하지만), [[Symas LMDB]], [[OrientDB]] 등의 일부 데이터베이스들은 이를 염두에 두고 설계하였다. 그 대신, 대부분의 NoSQL 데이터베이스들은 "궁극적인 일관성" 개념을 제공함으로써 데이터베이스의 변경사항이 모든 노드에 "궁극적으로"(일반적으로 밀리초 내) 전파되므로 데이터에 대한 모든 쿼리들이 즉각 업데이트된 데이터를 반환하지 않을 수 있고 정확하지 않은 데이터를 읽는 결과가 발생할 수 있는데 이 문제를 [[스테일 리드]](stale read)라고 부른다. 게다가 일부 NoSQL 시스템들은 손실된 쓰기([[write]])와 기타 형태의 데이터 손실을 보이는 경우도 있다. 일부 NoSQL 시스템들은 로그 선행 기입과 같은 개념들을 제공하여 데이터 손실을 막는다. 여러 데이터베이스를 거치는 분산 트랜잭션 처리의 경우 데이터 일관성은 NoSQL과 관계형 데이터베이스에게 훨씬 더 큰 도전이 된다. 현행의 관계형 데이터베이스들 조차도 데이터베이스 스팬을 위한 [[참조 무결성 제약]](referential integrity constraint)을 허용하지 않는다. 분산 [[트랜잭션]] 처리를 위해 [[ACID 트랜잭션]]과 [[X/Open XA]] 표준을 모두 준수하는 시스템들도 일부 있다.<ref name="티">티,〈[https://jwprogramming.tistory.com/70 개발자를 꿈꾸는 프로그래머]〉,《티스토리 블로그》, 2016-04-24</ref>
  
 
==역사==
 
==역사==

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)