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://www.youtube.com/watch?v=CRN4fRRS60E
'CS > Database' 카테고리의 다른 글
[Database] 데이터베이스 용어 정리 (0) | 2025.03.27 |
---|---|
[DB] DB 접속 정보 (0) | 2025.03.17 |
[MySQL] MySQL 데이터베이스 생성, 권한 부여 (0) | 2025.03.10 |
[MySQL] mysql cli syntax highlighter mycli (0) | 2022.09.01 |
[MySQL] MySQL 서버 실행 확인, 데이터베이스 생성 (+ MySQL Unknown database 해결) (0) | 2022.08.31 |
댓글