본문 바로가기
CS/Database

[MySQL/Oracle] MySQL과 Oracle 데이터베이스 및 스키마 구조 비교

by clolee 2025. 3. 12.

MySQL과 Oracle 데이터베이스 및 스키마 구조 비교

MySQL과 Oracle은 대표적인 관계형 데이터베이스(RDBMS)이지만, 데이터베이스(Database)와 스키마(Schema)의 개념이 다름.
아래 이미지처럼 MySQL과 Oracle의 데이터베이스 구조를 비교하면서 설명함.


1. MySQL의 데이터베이스 및 스키마 개념

① MySQL에서 데이터베이스(Database)란?

  • MySQL에서는 데이터베이스와 스키마가 동일한 개념임.
  • 즉, CREATE DATABASE mydb;를 실행하면 mydb라는 데이터베이스(=스키마)가 생성됨.
  • MySQL에서는 한 개의 데이터베이스 안에 테이블, 뷰, 인덱스, 트리거, 프로시저 등의 객체가 포함됨.

② MySQL의 구조 (이미지로 설명)

아래와 같은 데이터베이스 구조를 가짐.


  
MySQL Server (Instance)
├── mydb (Database = Schema)
│ ├── users (Table)
│ ├── orders (Table)
│ ├── products (Table)

③ MySQL 데이터베이스 툴에서 보이는 구조 (예: DBeaver, Workbench)


  
localhost (MySQL 서버)
├── Databases
│ ├── mydb
│ │ ├── Tables
│ │ │ ├── users
│ │ │ ├── orders
│ │ │ ├── products
│ │ ├── Views
│ │ ├── Procedures

🔹 MySQL에서는 데이터베이스가 곧 스키마이므로, Databases 아래 mydb가 하나의 스키마처럼 보임.
🔹 여러 개의 데이터베이스를 한 서버에서 운영할 수 있음.


2. Oracle의 데이터베이스 및 스키마 개념

① Oracle에서 데이터베이스(Database)란?

  • Oracle에서 데이터베이스는 여러 개의 스키마를 포함하는 단위임.
  • 하나의 데이터베이스는 SID(System Identifier, 예: ORCL)와 연결됨.
  • 데이터베이스는 데이터 파일, 컨트롤 파일, 로그 파일, 테이블스페이스 등의 물리적인 요소로 구성됨.

② Oracle에서 스키마(Schema)란?

  • Oracle에서는 스키마 = 사용자(User)임.
  • 사용자마다 관리하는 스키마가 존재함
    오라클에서는 사용자를 생성할 때, 자동으로 스키마를 생성.
    그리고 그 스키마를 관리하는 건 바로 사용자
  • 즉, 각 사용자는 고유한 스키마를 가지며, 스키마 내부에 테이블과 객체들을 소유함.
  • CREATE USER hr IDENTIFIED BY password;를 실행하면 새로운 스키마(사용자)가 생성됨.

③ Oracle의 구조 (이미지로 설명)


  
Oracle Database (예: ORCL)
├── HR (Schema/User)
│ ├── EMPLOYEES (Table)
│ ├── DEPARTMENTS (Table)
│ ├── JOBS (Table)
├── SALES (Schema/User)
│ ├── CUSTOMERS (Table)
│ ├── ORDERS (Table)
│ ├── INVOICES (Table)

④ Oracle DB 툴 (예: DBeaver, SQL Developer)에서 보이는 구조


  
ORCL (Oracle Database)
├── Schemas
│ ├── HR
│ │ ├── Tables
│ │ │ ├── EMPLOYEES
│ │ │ ├── DEPARTMENTS
│ │ ├── Views
│ │ ├── Procedures
│ │ ├── Sequences
│ ├── SALES
│ │ ├── Tables
│ │ ├── Views
│ │ ├── Procedures

🔹 Oracle에서는 하나의 데이터베이스 안에 여러 개의 스키마(사용자)가 존재함.
🔹 따라서 Schemas 아래 여러 개의 사용자(HR, SALES 등)가 보임.
🔹 각각의 사용자가 소유한 테이블과 객체들이 개별적으로 관리됨.


3. MySQL과 Oracle 데이터베이스 구조 비교 요약

개념 MySQL Oracle

데이터베이스(Database) 데이터 저장 공간이며, 곧 스키마와 동일한 개념 여러 개의 스키마(사용자)를 포함하는 단위
스키마(Schema) 데이터베이스와 동일함 사용자의 데이터 저장 공간, 사용자 계정과 동일 개념
사용자(User) 별도로 관리되며, 특정 DB에 대한 권한을 가짐 사용자 = 스키마 (사용자가 생성되면 자동으로 해당 스키마가 생성됨)
서버 구조 하나의 MySQL 인스턴스에서 여러 개의 데이터베이스 관리 하나의 Oracle 인스턴스에서 여러 개의 스키마 관리

4. 이미지와 비교한 설명

① MySQL에서 데이터베이스와 스키마

  • MySQL에서는 데이터베이스 = 스키마이므로 Databases 아래 mydb가 하나의 스키마처럼 보임.
  • 여러 개의 데이터베이스를 하나의 MySQL 서버에서 운영할 수 있음.

② Oracle에서 데이터베이스와 스키마

  • ORCL이 오라클 데이터베이스이며, 그 내부에 Schemas(스키마/사용자)가 존재함.
  • 하나의 데이터베이스(ORCL)에서 여러 개의 사용자(스키마) HR, SALES 등이 각각 테이블을 가짐.

5. 결론

  • MySQL에서는 데이터베이스 = 스키마
  • Oracle에서는 데이터베이스가 여러 개의 스키마(사용자)를 포함하는 구조
  • Oracle에서는 사용자가 곧 스키마이며, 데이터베이스 내에서 논리적인 데이터 그룹을 형성
  • Oracle에서 ORCL은 전체 데이터베이스이며, 그 내부에 여러 개의 스키마(사용자 계정)가 존재함.
  • MySQL에서는 하나의 데이터베이스(mydb)가 곧 스키마이며, 서버 내에서 여러 개의 데이터베이스를 운영할 수 있음.

 

참고 :

https://velog.io/@wordi/Oracle-MySQL%EC%9D%98-%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0-%EC%B0%A8%EC%9D%B4

https://www.youtube.com/watch?v=CRN4fRRS60E

 

 

댓글