행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스.
SQL 언어를 이용해 조작함.
MySQL, PostgreSQL, 오라클 등
SQL을 사용하지 않는 데이터베이스.
MongoDB, redis 등
MongoDB
Json을 통해 데이터에 접근, BSON (Binary Json) 형태로 데이터를 저장.
확장성이 뛰어나며 빅데이터 저장할 때 성능 좋고, 스키마 없이 삽입 가능해 분석 및 로깅에 장점.
redis
문자열을 기본 데이터 타입으로 지정(최대 512MB)하며 Set, Hash 등 지원.
데이터를 빠르게 찾을 수 있는 하나의 장치.
루트 노드, 리프 노드, 그리고 루트와 리프 사이의 브랜치 노드로 구성.
정렬된 값을 기반으로 트리 탐색.
탐색하고 싶은 데이터가 들어오면 맨 위 루트 노드부터 탐색이 일어나고 브랜치 노드를 거쳐 리프 노드까지 도착.
+) B+ 트리와의 차이점
B- 트리는 브랜치 노드에 Key와 데이터를 모두 넣을 수 있다.
B+ 트리는 브랜치 노드에는 Key만 있고 리프 노드에만 데이터가 존재한다. 또한 리프 노드의 데이터는 LinkedList로 연결되어 있다.
B+ 트리의 장점: 브랜치 노드에는 데이터가 없으므로 Key를 담을 메모리를 더욱 확보할 수 있다. 또한 리프 노드만 선형탐색 하므로 풀 스캔 시 더 빠르다. (검색 속도는 약간 느릴 수 있음)
대수확장성: 트리 깊이가 리프 노드의 수에 비해 매우 느리게 성장. 트리의 깊이가 한 깊이씩 증가하면 최대 인덱스 항목의 수는 4배씩 늘어남.