카테고리 없음

MariaDB,MySQL,MongoDB

신승호. 2023. 2. 1. 02:03

Database란?

데이터베이스를 한 마디로 정의하면 '데이터의 집합'이라고 할 수 있다.

데이터베이스에는 일상생활 대부분의 정보가 저장되고 관리된다. 오늘 보내거나 받은 카카오톡 메시지, 인스타그램에 등록한 사진, 버스/지하철에서 찍은 교통카드 등의 정보가 모두 데이터베이스에 기록된다.

 

DBMS란?

 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS(Database Management System)라고 한다. 다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 한다.

DBMS와 같은 소프트웨어는 특정 목적을 처리하기 위한 프로그램이다.

데이터베이스를 사용하기 위해서 소프트웨어, 즉 DBMS를 설치해야 하는데 대표적으로 MySQL, Oracle, SQL 서버,

MariaDB등이 있다.

DBMS 유형

DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류된다. 현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며,

MySQL도 관계형 DBMS에 포함된다.

 ● SQL(Structured Query Language)은 관계형 데이터베이스에서 사용되는 언어이다. 

 

관계형 DBMS는 줄여서 RDBMS라고 부른다. MySQL뿐만 아니라, 대부분의 DBMS가 RDBMS 형태로 사용된다. RDBMS의 데이터베이스는 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열(column)과 행(row)으로 이루어져 있다.

 

NoSQL이란?

NoSQL은 (Not Only SQL)이다. SQL 뿐만 아니다라는 의미를 지니고있다. 즉, SQL을 사용하는 관계형 데이터베이스가 아닌 데이터베이스를 의미한다. 대표적인 관계형 데이터베이스로는 MySQL, Oracle, PostgreSQL이 있고, NoSQL 진영에는 MongoDB와 Redis, HBase 등이 있다.

 

RDBMS,NoSQL 비교
MySQL

Mysql은 세계에서 가장 많이 사용하는 오픈 소스의 관계형 데이터베이스 관리 시스템이다.

오라클 회사가 인수하여 관리, 지원 하고 있으며, C언어, C++, JAVA 등 다양한 언어, API 가 지원되고 또한 유닉스, 리눅스, 윈도우 등 다양한 OS 에서 사용히 가능하다.

그리고 Apache 프로그램, php등과 같은 언어와 상호 연동이 잘 되어있어서 홈페이지나 쇼핑몰 등에 널리 사용된다.

오픈소스이기 때문에 무료로 가볍게 이용할 수 있다는 것이 장점이다.

 

MariaDB

MariaDB는 Mysql과 마찬가지로 오픈소스 데이터베이스이다. mysql 개발자 일부가 참여하여 Mysql의 대체제로 개발이 되었기 때문에 Mysql하고는 기본적으로 구조 및 사용방법 등이 모두 동일하다는 특징을 가진다.

때문에 Mysql 과는 완벽 호환이 되며, 마이그레이션이 쉽다는 장점을 가진다.

MariaDB는 MySQL 과 비교했을 떄 속도가 약 4~5천배가 차이난다.

또한 MySQL의 기능을 모두 완벽히 구현하면서도 성능도 훨씬 좋다고 자부할 수 있기 때문에 요즘은 MySQL 에서 MariaDB 로 대체하는 경우도 있다고 한다.

 

MongoDB란?

MongoDB

MongoDB는 NoSQL 데이터베이스고 다음 세 가지 특징을 가지고있다.

Document

●Base

●Open Source

MongoDB는 Document 기반 데이터베이스다.

Database > Collection > Document > Field 계층으로 이루어져 있으며 Document는 RDBMS의 Row에 해당한다. 계층은 RDBMS와 유사하다.

RDMBS와 MongoDB 데이터 계층 구조

BASE

BASE는 ACID와 대립되는 개념으로 다음 세 가지로 이루어져있다.

  • Basically Avaliable
    • 기본적으로 언제든지 사용할 수 있다는 의미를 가지고 있다.
    • 즉, 가용성이 필요하다는 뜻을 가진다.
  • Soft state
    • 외부의 개입이 없어도 정보가 변경될 수 있다는 의미를 가지고 있다.
    • 네트워크 파티션 등 문제가 발생되어 일관성(Consistency)이 유지되지 않는 경우 일관성을 위해 데이터를 자동으로 수정한다.
  • Eventually consistent
    • 일시적으로 일관적이지 않은 상태가 되어도 일정 시간 후 일관적인 상태가 되어야한다는 의미를 가지고 있다.
    • 장애 발생시 일관성을 유지하기 위한 이벤트를 발생시킨다.

이처럼 BASE는 ACID와는 다르게 일관성을 어느정도 포기하고 가용성을 우선시한다. 즉, 데이터가 조금 맞지 않더라도 일단 내려준다는 뜻이다.

 

[참고]

https://hongong.hanbit.co.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-databasedb-dbms-sql%EC%9D%98-%EA%B0%9C%EB%85%90/

https://m.blog.naver.com/ka28/222140884517

https://kciter.so/posts/about-mongodb