대덕인재/Oracle

[Oracle] 스키마(schema)란?

꼬마버거 2025. 5. 22. 18:56

🔷 1. 스키마란? (정의 다시 보기)

**스키마(Schema)**는 데이터베이스에서 데이터 구조를 정의해 놓은 설계도 같은 거야.

예를 들어:

우리가 "학생" 정보를 저장할 테이블을 만든다고 하면,

CREATE TABLE student (
  student_id INT,
  name VARCHAR(50),
  age INT,
  grade VARCHAR(10)
);

➡️ 이 CREATE TABLE 문이 바로 스키마를 만드는 것이야.
이 테이블에 저장할 수 있는 데이터의 이름, 자료형, 길이, 규칙 등이 모두 정해져 있어.


🏫 예시: 학교 다니는 우리 반

우리 반 친구들 정보를 컴퓨터에 저장한다고 생각해보자!
저장할 내용은 이런 거야:

  • 이름
  • 나이

이 정보를 표로 저장하려면, 표의 구조를 먼저 정해야 해.
그게 바로 스키마야!

📋 이렇게 생긴 설계도 (스키마)

 

이름 (문자) 나이 (숫자) 키 (숫자)
"맛탱이" 10 140
 

이걸 스키마로 정해놓으면, 컴퓨터는 다음부터는 그 틀에 맞춰서만 데이터를 받아줘!


🔷 2. 스키마에 들어있는 정보들

스키마 안에는 어떤 게 들어있을까?

 

항목 설명 예시
테이블 이름 student, member, board 등
컬럼(열)이름 name, age, email 등
데이터 타입 INT, VARCHAR, DATE, BOOLEAN 등
제약 조건 NOT NULL, PRIMARY KEY, UNIQUE, FOREIGN KEY 등
관계 테이블 간 연결 (ex. 외래 키)
 

🔷 3. 스키마는 왜 필요해?

 

이유 설명
📦 데이터 구조 통일 모든 데이터를 같은 형식으로 정리할 수 있어.
🔐 잘못된 데이터 차단 숫자 자리에 글자 넣는 실수 방지!
🔍 검색·조회가 쉬워짐 구조가 정해져 있으니까 검색이 정확해져
🤝 여러 사람과 협업 가능 규칙이 정해져 있어 다른 개발자도 이해할 수 있음
 

🧩 스키마가 왜 중요해?

  • 📦 어떤 데이터를 저장할지 정해줌
  • ⛔️ 이상한 데이터 못 넣게 막아줌 (예: 나이에 "고양이" 이런 건 안 돼!)
  • 📖 데이터 찾기, 정리하기 쉽게 만들어줌

🗂️ 스키마는 어디에 쓰일까?

  • 데이터베이스(MySQL, Oracle, 등등)
  • 앱이나 웹사이트에서 회원 정보 관리할 때
  • 은행, 병원, 학교 같은 시스템에서 정보 저장할 때

🔷 4. 실무에서의 스키마 예시

📌 회원 테이블

CREATE TABLE member (
  id INT PRIMARY KEY,
  username VARCHAR(20) NOT NULL,
  password VARCHAR(100) NOT NULL,
  email VARCHAR(50),
  reg_date DATE DEFAULT SYSDATE
);

➡️ 이건 "회원가입" 정보의 스키마야
여기서 보면 username은 반드시 입력해야 하고,
reg_date는 입력 안 해도 자동으로 오늘 날짜가 들어가!


🔷 5. 스키마 vs 데이터베이스 vs 테이블

 

개념 설명
데이터베이스 데이터를 저장하는 공간 전체 (큰 창고)
스키마 그 안에 있는 데이터의 구조 설계도
테이블 데이터를 실제로 저장하는 표
 

비유

데이터베이스는 학교,
스키마는 학년/반의 학생정보 설계도,
테이블은 각 반의 출석부라고 보면 돼!


🔷 6. 스키마 관리 예시 (Oracle 기준)

-- 사용자(스키마) 생성
CREATE USER myuser IDENTIFIED BY mypass;

-- 권한 부여
GRANT CONNECT, RESOURCE TO myuser;

-- 해당 사용자 스키마에 테이블 생성
CREATE TABLE myuser.board (
  board_id INT PRIMARY KEY,
  title VARCHAR2(100),
  writer VARCHAR2(50),
  content CLOB
);

👉 오라클에서는 사용자 = 스키마라고 생각하면 거의 맞아!

 

✨ 한 줄 정리

스키마는 데이터 저장할 때 어떤 정보를 어떻게 저장할지 미리 정해놓는 설계도야!