웹 DB 종류 - web DB jonglyu

데이터베이스는 크게 NoSQL과 DRBMS로 분류된다.

Show

NoSQL (Non_relational Operational Database SQL)

관계형 데이터베이스 관리 시스템과는 다르게 설계된 비관계형 데이터베이스 관리 시스템으로써, 대규모의 데이터를 처리할 수 있다.

종류 : 아파치 카산드라, 하둡, 몽고디비

RDBMS (Relational Database Management System)

관계형 데이터베이스는 Key와 Value들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산 정보 데이터베이스이다.

종류 : Oracle, MySQL, Sybase

웹 DB 종류 - web DB jonglyu
다양한 종류의 DB

대표적 데이터베이스 설명

1. Oracle (RDBMS)

Oracle은 1978년 로랜스 J. 엘리슨이 오라클 첫 번째 버전을 개발하였다.

Oracle 특징

* 클라이언트 / 서버 환경 분산 처리

컴퓨터 시스템이나 네트워크를 최대한 활용할 ㅅ ㅜ있도록 데이터베이스 서버와 클라이언트 응용 프로그램에 처리를 분산시킨다.

* 접속성

오라클 소프트웨어는 서로 다른 유형의 컴퓨터와 운영체제가 네트워크를 통해 정보를 공유하도록 한다.

* 가용성

데이터베이스 배과 같은 정상적인 시스템 기능이나 부분적인 컴퓨터 시스템 장애는 데이터베이스 사용에 영향을 주지 않는다.

2. MySQL (RDBMS)

MySQL은 1990년대 MySQL AB 사에 의해 첫 번째 버전이 발표 되었고 2000년대 Sun 마이크로시스템즈 사가 인수함과 동시에 5.1 버전을 발표하였다.

Mysql 특징

* 범용성

마이크로소프트 사에서 개발한 상업용 데이터베이스로 위 데이터베이스와 다른 운영체제에서도 사용 가능하지만 그 중 윈도우에 특화되어 있다.

* 데이터의 무결성

데이터베이스 내의 데이터는 어떤 경로를 통해 들어왔던지 데이터에 오류가 있어서는 안 된다. MySQL은 무결성을 위해서 DB 내에 제약 조건이라는 특성을 가진다.

* 데이터의 독립성

데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 전혀 영향을 받지 않는다.

3. Maria DB (No-SQL)

Maira DB는 2009년 몬티 와이드니어스에 의해 개발되었다.

Maria DB 특징

* MySQL과의 호환성

Maria DB는 MySQL과 소스 코드를 같이 사용하므로 사용 방법과 구조가 MySQL과 동일하다.

* 성능

Maria DB는 MySQL과 비교해 애플리케이션 부분 속도가 약 4~5천배 정도 빠르며 제품의 기능을 완벽히 구현하면서도 성능 면에서는 최고 70%의 향상을 보인다.


사진 출처 : https://url.kr/4RDsju

수정이 필요하거나 궁금한 점 있으시면 댓글 달아주세요. 글 읽어주셔서 감사합니다. :D

개요

데이터베이스를 구축할 때 막연하게 데이터베이스를 써야지라고 하지만 데이터베이스를 관리하는 시스템의 종류도 여러 가지이다.

그렇기 때문에 어떤 걸 내 프로젝트에 써야 할까 항상 고민이 되는데,

그래서 간단하게 여러 데이터베이스 시스템들의 특징과 장단점을 정리해두고 데이터베이스를 선택할 때마다 찾아보는 수고를 줄이기로 하였다.

아 이런 DBMS들이 있구나 정도로 살펴보면 될 것 같다.

나열할 DBMS는 https://db-engines.com/en/ranking 사이트의 상위권에 있는 것들 위주로 할 생각이다.

웹 DB 종류 - web DB jonglyu

Oracle

  • 미국 오라클(Oracle) 사의 관계형 데이터베이스 관리 시스템(RDBMS)
  • 오픈 소스 DBMS가 있음에도 안정성과 유지보수를 보장받을 수 있다는 장점 때문에 비 IT업종 기업에서 많이 사용한다.

특징

  • 기업용으로 주로 사용
  • 대량의 정보관리를 할 때 타 DBMS에 비해 좋은 성능을 보인다.
  • 오라클 자체 SQL 쿼리를 사용해 표준 형식과 약간 다름

MySql

  • 관계형 데이터베이스 관리 시스템(RDMS)
  • 오픈 소스이며, 다중 사용자와 다중 스레드 지원

특징

  • 오픈 소스 라이선스를 따르기 때문에 무료로 사용 가능
  • 표준 SQL 형식 사용
  • 오픈 소스이기 때문에 기술 지원의 한계가 있음

MS-SQL

  • 미국 마이크로스프트에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)

특징

  • 분산된 기업환경에서의 집중된 서버 관리 도구 제공
  • 데이터베이스 관리 시스템 툴인 MS-SQL 서버 관리 스튜디오의 사용이 매우 편리함
  • 마이크로소프트 개발이다 보니 모든 버전의 Windows에서 문제없이 잘 작동됨
  • 중앙 집중식 테이버 베이스 제어로 통신 누락, 오류 발생 최소화
  • .Net 언어 구현에만 초점을 맞춰 설계됨

PostrgreSQL

  • 오픈 소스 객체-관계형 데이터베이스 시스템 (ORDBMS)
  • macOS 서버의 경우 기본 데이터베이스로 사용된다.
  • 북미나 일본에서 많이 사용

특징

  • 초기 개발 단계부터 완벽한 ACID와 MVCC를 지원하는 아키텍처로 설계
  • 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 SQL 차원에서 제공
  • 테이블 상속 기능을 이용해 하위 테이블 생성 가능
  • 오픈 소스임에도 상용 RDBMS급의 기능을 제공
  • 기본적인 CRUD 성능이 경쟁 DB에 비해 좋지 않다.

MongoDB

  • 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템
  • NoSQL 데이터베이스

특징

  • ACID 대신 BASE를 택해 성능과 가용성을 우선시함
  • 모든 데이터가 JSON 형태로 저장, 스키마가 없음
  • 다양한 인덱싱 제공
  • 일관성이 매우 중요한 작업에는 사용하기 힘들다

Redis

  • Remote Dictionary Server의 약자
  • Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비 관계형 데이터베이스 관리 시스템
  • 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS

특징

  • 메모리 기반이기에 속도가 빠르고 간편
  • 최고의 성능이 필요한 웹, 모바일, 게임, 광고 기술 및 IoT 애플리케이션에서 널리 사용
  • 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 자료구조의 지원

SQLite

  • 독립형 파일 기반의 오픈소스 RDBMS
  • 구글 안드로이드 운영 체제에 기본 탑재된 데이터베이스
  • ACID 준수

특징

  • 이름과 같이 매우 가볍다. 사용하는 공간은 시스템에 따라 다르지만 600kb 미만의 공간을 차지
  • 완전히 독립형이라 SQLite가 작동하기 위해 시스템에 설치해야 하는 외부 종속성이 없음
  • 이식성이 뛰어남
  • 동시성의 제한, 사용자 관리 존재의 부재, 서버리스 데이터베이스이기에 보안이 약함

MariaDB

  • 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)
  • MySQL과 동일한 소스 코드를 기반, GPL v2 라이선스를 따름
  • MySQL의 개발진들이 오라클의 정책이 추구하는 바와 맞지 않아 나와서 개발한 DB

특징

  • 위의 말한 관계로 인해 MySQL과 거의 100% 호환성을 가지고 있음
  • MySQL에 비해 애플리케이션 부분 속도가 약 4~5천 배 빠르고, 성능면에선 70% 향상을 보인다고 말함
  • 좀 더 자유로운 MySQL 정도로 이해하면 될듯함

결론

위 내용들을 하나하나 정리해보면서 규모가 크면 보통 Oracle을 사용하는 게 좋아 보이고,

소규모라면 SQLite가 적합하지 않나 생각했다.

나머지 DBMS는 각각 장단점이 있어 개발자가 편한 대로 사용하면 될 듯하다.

이번 조사를 통해 MariaDB에 관심이 생겼고, 한 번 사용해보려고 생각 중이다.

RDBMS 즉, 관계형 데이터베이스 구조와 NoSQL로 나누어져 있는데 두 개의 차이점에 대해서도 정리해보아야겠다.