DB Oracle vs MySQL vs MSSQL

Huey·2023년 12월 16일
0

DBMS

목록 보기
9/9

DB를 사용하다 보면 여러가지 종류의 DB를 보곤 하는데 이번에는 정리겸 3개의 DB를 비교해보려고 한다.

먼저 DB란 용어부터 먼저 정의하고 세가지 DB를 비교해보자

1. DB란?

여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합

즉 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높이기 위해 우리는 데이터 베이스 db란 것을 사용한다.

2. Oracle

오라클이란 미국의 오라클 회사에서 제작한 세계 점유율 1위 데이터베이스 관리 시스템이며 현재 유닉스/리눅스 체제에서 가장 많이 사용되는 DBMS이다. 관계형 데이터베이스 관리 시스템(RDBMS)의 대표 주자이며, MySQL, MSSQL 보다 대용량 정보관리를 할 때 성능이 좋다.

3. MySQL

MySQL은 전세계적으로 가장 널리 사용되고 있는 오픈 소스 데이터베이스이며, MySQL AB사가 개발하여 배포 및 판매하고 있는 데이터베이스 관리툴이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템이며, 오픈 소스로 기본적으로는 무료로 사용할 수 있다.

4. MSSQL

MSSQL DB는 마이크로소프트 SQL 서버(Microsoft SQL Server)는 마이크로소프트가 사이베이스(Sybase)를 기반으로 개발한 관계형 데이터베이스이다. 윈도우 개발환경에서 DB가 필요할 때 MSSQL을 사용한다. Microsoft의 개발 도구 및 통합 서비스와의 호환성이 높아 개발자들이 편리하게 데이터베이스 애플리케이션을 개발할 수 있도록 지원한다.

5. Oracle vs MSSQL

가. 데이터베이스 생성과 관리

Oracle : 기본적으로 하나의 데이터베이스 인스턴스를 관리하는 방식
MSSQL : 하나의 서버에 여러 개의 독립적인 데이터베이스를 생성하는 방식을 지원

이러한 차이는 각 데이터베이스 시스템이 다양한 운영 환경과 요구 사항을 고려하여 설계되었기 때문. Oracle의 접근 방식은 주로 대규모 엔터프라이즈 환경에서 사용되며, MSSQL은 중소 및 대규모 비즈니스 애플리케이션에서 널리 사용.

나. 데이터 타입 정의

Oracle 데이터 타입: VARCHAR2, NUMBER, DATE, TIMESTAMP, CLOB, BLO
MSSQL 데이터 타입: VARCHAR, DECIMAL, FLOAT, DATETIME, DATETIME2, TEXT, IMAGE

두 db 사이에 데이터 타입 정의에는 몇 가지 차이가 있다. 각각의 데이터베이스 시스템은 자체적인 데이터 타입을 정의하고 있으며, 몇 가지 기본적인 데이터 타입은 유사할 수 있지만 일부 차이가 있다.

가변 길이 문자열, 숫자 데이터, 날짜 데이터, 날짜와 시간 데이터, 대용량 문자열 데이터, 대용량 이진 데이터에서 이러한 차이가 있다.

다. 테이블 생성 시 자동 증가(auto increment)

  • Oracle : 자동 증가 옵션이 없어, 직접 구현
    (시퀀스(Sequence)와 트리거(Trigger)를 조합하여 자동 증가 기능을 구현)
CREATE SEQUENCE my_sequence
START WITH 1
INCREMENT BY 1
NOCACHE;
  • MSSQL : 테이블 생성 시 자동 증가 옵션(identity(1,1)) 사용
CREATE TABLE my_table
(
   id INT IDENTITY(1,1) PRIMARY KEY,
   -- Other columns...
);

6. Oracle vs MySQL

가. 데이터베이스 생성과 관리

Oracle : 테이블 스페이스를 사용하여 논리적인 데이터 분리를 제공하면서도 데이터 파일은 통합된 스토리지를 공유

MySQL : 각 데이터베이스가 독립적인 스토리지 디렉토리를 가지므로 데이터베이스 간에 논리적인 분리가 더 쉽게 이루어짐

Oracle Database는 상용 데이터베이스 소프트웨어이며, 사용자가 데이터베이스를 설치하고 구성하기 위해서는 Oracle Database를 다운로드하고 설치.

MySQL은 오픈 .소스 데이터베이스 관리 시스템이기 때문에 누구나 무료로 다운로드하고 사용

나. 데이터 타입 정의

  • Oracle 데이터베이스 데이터 타입

    데이터 타입 설명
    VARCHAR2 가변 길이 문자열 저장에 사용
    NUMBER 숫자 데이터 타입, 정수 및 소수점 숫자 지원
    DATE 날짜 데이터 타입
    TIMESTAMP 날짜와 시간 데이터 타입
    CLOB 대용량 문자열 데이터 저장에 사용
    BLOB 대용량 이진 데이터 저장에 사용
  • MySQL 데이터베이스 데이터 타입

    데이터 타입 설명
    VARCHAR 가변 길이 문자열 저장에 사용
    DECIMAL 숫자 데이터 타입, 고정 소수점 정밀도
    FLOAT 부동 소수점 숫자 데이터 타입
    DATE 날짜 데이터 타입
    TIMESTAMP 날짜와 시간 데이터 타입
    TEXT 대용량 텍스트 필드 저장에 사용
    BLOB 대용량 이진 데이터 저장에 사용

다. 테이블 생성 시 자동 증가(auto increment)

Oracle : SEQUENCE와 TRIGGER를 사용
MySQL : AUTO_INCREMENT 속성을 사용

  • MySQL 예시
CREATE TABLE my_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    other_column VARCHAR(50)
);

라. 그외

1). 구조적

  • Oracle : DB 서버가 통합된 하나의 스토리지를 공유
  • MySQL : DB 서버마다 독립적인 스토리지를 할당

2). 조인(join) 방식

  • Oracle : 중첩 루프 조인, 해시 조인, 소트 머지 조인 방식 제공
  • MySQL : 중첩 루프 조인 방식 제공

3). 확장성

  • Oracle : 별도의 DBMS를 설치해 사용할 수 없음
  • MySQL : 별도의 DBMS를 설치해 사용 할 수 있음

4). 메모리 사용률

  • Oracle : 메모리 사용률이 커서 최소 수백MB 이상이 되어야 설치 가능
  • MySQL : 메모리 사용율이 낮아서 1MB 환경에서도 설치가 가능

5). 구문

Null 체크

  • Oracle : NVL
  • MySQL : IFNULL

현재 날짜 및 시간

  • Oracle : SYSDATE
  • MySQL : DATE

날짜 포맷 변환

  • Oracle : TO_CHAR
  • MySQL : DATE_FORMAT

문자 합치기

  • Oracle : ''
  • MySQL : COMCAT

페이징 처리

  • Oracle : ROWNUM VETWEEN 0 AND 10
  • MySQL : LIMIT

마. 결론

여러가지로 세가지 db의 차이가 있지만 가장 큰 것은 비용 때문이다

규모가 큰 곳에서는 아무래도 기능이 많고 대용량 데이터베이스 처리 퍼포먼스가 좋은 Oracle db를 사용하고, 규모가 작은 곳에는 MySQL을 사용하며, 윈도우 서버를 기반으로 한 곳에서는 MSSQL을 사용한다.

따라서, 사용자가 가장 적합한 데이터베이스를 선택할 때는 비용뿐만 아니라 다양한 요인을 종합적으로 고려하는 것이 중요한 것 같다.

0개의 댓글