NoSQL에 대한 많은 소문이 있습니다. 안티-RDBMS라는 밈이 유행하고 있습니다. 하지만 저는 그 카테고리 이름이 마음에 들지 않습니다. NoSQL? 미래 지향적인 의미가 아니라 거꾸로 참조하는 것이거든요.
사람들은 말을 타지 않고 타고 다니던 멋진 새 장치를 가리킬 때 '마차'라는 단어를 사용하곤 했습니다. 하지만 얼마 지나지 않아 자동차와 "자동차"와 같은 새로운 용어가 등장했습니다. 그리고 오늘날에는 머스탱, 야생마, 핀토라고 불러도 혼동하지 않고 안전하게 사용할 수 있게 되었습니다. 저는 이 모든 새로운 종류의 데이터 저장소에 대한 새로운 카테고리 이름이 벌써부터 생겼으면 좋겠습니다. "AltDB"에 대해 들어본 적은 있지만 여전히 거꾸로 참조하는 용어입니다. RDBMS의 대안? 하지만 사실 RDBMS를 완전히 없앨 수는 없을 것입니다. 이러한 새로운 것들은 RDBMS 데이터베이스를 보완하는 것입니다. 노드나 서버를 추가하기만 하면 이러한 시스템을 확장할 수 있다는 점이 공통점입니다. 이러한 이점을 함축하는 카테고리 레이블을 JustAddMoreNodesDB - Jam-N-DB로 지정하는 것은 어떨까요? Jam-N-Database. 그런데, 제가 NoSQL/반(反)RDBMS 라벨링이 싫은 이유가 하나 더 있습니다... 장기적으로 보면 이러한 노드만 추가하는 시스템이 관계형 및 SQL과 유사한 기능을 점점 더 많이 채택하게 될 것이라는 데 제 베팅을 걸고 싶습니다. 예를 들어, 일괄 처리, 분석 세계에서 활약하고 있는 Hadoop에서는 이미 그런 일이 일어나고 있습니다. Hadoop에서는 SQL 쿼리 대신 맵 축소 프로그램을 작성합니다. 하지만 다음과 같은 추가적인 Hive SQL과 유사한 쿼리를 작성하면 후드 아래에서 자동으로 맵 축소 프로그램으로 변환됩니다(자동차에 비유하자면!). SQL 만세!
요점을 놓치고 있지 않나요? SQL은 버리기에는 너무 유용하기 때문에 NoSQL은 좋지 않은 레이블입니다.
그러나 RDMS에서 비 RDMS로 패러다임이 전환되고 있습니다.
빅 데이터(5V)는 계속 존재하지만 RDMS는 이를 저장하거나 쿼리할 수 없습니다!
따라서 지난 30년 이상 이 분야를 지배해 온 관계형 모델 외에도 다양한 데이터 모델이 필요하게 될 것입니다.