본문 바로가기

개발 상식

데이터베이스(DB) 종류

반응형

오늘은 DB의 종류에 대해서 포스팅해보겠습니다.

사실 안드로이드 개발자이기 때문에 SQLite 만 사용하긴 하지만 (사실 몇번 안사용해봄)

예전에 한창 취업 준비를 할 때 취업 면접 문제로 데이터 베이스의 종류에 대해서 얘기하고 어떤 프로젝트엔 무엇을 사용하고 이런 것에 대한 질문이 있었다고 들었어요. 사실 그때는 준비를 안했는데 그냥 살면서 궁금하더라고요. 언제 뭐를 쓰는걸까? 싶어서요.

개발자 사이에서 대충 알아는 들어야겠다 싶어서 준비한 컨텐츠 입니다.

 

데이터베이스의 종류는 크게 두가지로 나누어 집니다.

관계형 데이터베이스 (RDBS), NoSQL(Not Only SQL)

(계층형, 네트워크형 등등 여러가지가 있지만 대표적인 것은 위에 두가지!)

관계형 데이터베이스 대학 시절 정처기 및 쪽지 시험 정답으로 많이 봤던 것 같네요. 많이들 아시겠지만 관계형 데이터베이스는 흔히 행과 열로 표현되는 테이블간의 관계를 나타낼 때 사용됩니다.

 

NoSQL은 조금 생소할 수도 있는데요. RDBS 특징 뿐만 아니라 다른 특성까지도 지언해주는 데이터베이스라는 의미라네요. RDBS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터 저장소, RDBS처럼 고정된 스키마 및 Join이 존재하지 않습니다.NoSQL은대용량 데이터를 다루거나 데이터 분산 처리에 용이하여 유연한 데이터 모델링이 가능하다고 합니다. 초당 데이터가 수십만개씩 쌒이는 서비스가 많아지면서 NoSQL을 사용하는 경우가 많아지고 있다고 합니다.

 

RDB NoSQL
정해진 규격 규격 없음
무결성 유연성
중복 허용 x 중복 허용
Join 가능 Join 불가능
트랜잭션 사용 트랜잭션 안씀
분산처리 어려움 분산처리 쉬움

 

RDBS

MS-SQL Server/ Microsoft

Window server에서만 구동이 되고 C#과 가장 높은 호환성을 자랑하는 DBMS

 

MySQL / Oracle

유닉스, 리눅스, 윈도우 운영 체제에서 사용할 수 있으며 무엇보다 오픈 소스의 장점으로 많은 기업에서 널리 이용하고 있음

사용자 편의를 위한 기능, 사용자 실수 또는 재해에 대비한 기능, 성능 향상 등 기능적 한계를 보이는 중

 

Maria DB / Maria DB 재단

My-SQL과 완벽하게 호환되며 기본적인 명령어나 사용방법까지 동일하기 때문에 개발자들이 쉽게 접할 수 있으며 My-SQL에 비해 성능이 70% 향상되었기 때문에 현재 Maria DB를 활용하는 기업들이 많이 늘어나는 추세이다.

 

DB2 / IBM

대형화된 데이터 관리를 목적으로 만들어진 IBM의 관계형 데이터베이스 관리 시스템이다.

각 워크로드의 특성에 맞게 시스템이 최적화될 수 있으며, 자가 최적화, 자가 치유, 자가 구성, 워크로드 관리, 확장된 자동화 기능 등 다양한 기능을 구현할 수 있다.

 

Sybase / Sybase

컬럼 단위 데이터 처리로 I/O 속도를 90% 향상 시켰으며, 데이터 압축 저장, 스토리지 공간의 활용도를 높였다. 오라클에 비해 비교적 저렴함.

 

 

NoSQL

MongoDB

JSON 기반 Document 기반 데이터 관리

MogoDB 같은 경우에는 RDBS와 달리 Table이 아닌 Collection이 있습니다. RDBS는 각 테이블마다 동일한 Schema를 가져야하며 스키마를 변경하고자 한다면 모든 데이터를 변경해야합니다. 그러나 MongoDB는 하나의 Collection내의 Document가 각각 다른 스키마를 가질 수 있다고 합니다. 이러한 특징을 동적 스키마라고 하고 이것을 collection 내에 document가 각자의 고유한 field를 가질 수잇다는 것을 의미한다.

 

 

 

참고

https://www.fun-coding.org/mongodb_basic1.html

 

데이터베이스 NoSQL 기본 (mongoDB): NoSQL 이해 - 잔재미코딩

1. NoSQL 이해¶ Not only SQL RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터저장소 RDBMS처럼 고정된 스키마 및 JOIN 이 존재하지 않음 스키마 변경? ALERT 등 필요 없음 1.1. Why NoSQL?¶ RDBMS를 기본으로 사용하지만, 초당 데이터가 수십만개씩 쌓이는 서비스가 많아지면서(쇼셜, 온라인 서비스등), NoSQL을 사용하는 경우가 많아지고 있음 경험적 수치 95% read, 5% write 경우는 RD

www.fun-coding.org

https://poiemaweb.com/mongdb-basics

 

MongoDB Basics - Install | PoiemaWeb

MongoDB의 기본 개념과 설치 RDMS와 MongoDB의 비교

poiemaweb.com

 

반응형

'개발 상식' 카테고리의 다른 글

힙이란? / What is the Heap Data Structure  (0) 2021.02.06
해시테이블이란? ( What is a hash table?)  (0) 2021.02.06
텔넷이란? (Telnet)  (0) 2021.01.04
인프라란?  (0) 2020.03.23
SSL 이란?  (0) 2020.03.04