Databasemedium면접 빈도: medium

Schema

Schema (스키마)

📝 스키마란?

데이터베이스의 구조와 제약 조건에 관한 전반적인 명세

메타데이터의 집합

정의 내용:

  • 데이터 개체 (Entity)
  • 속성 (Attribute)
  • 관계 (Relationship)
  • 제약 조건

🔑 메타데이터란?

데이터에 대한 데이터

목적: 어떤 목적을 가지고 만들어진 데이터


🆚 스키마 vs ERD

ERD (Entity Relationship Diagram)

설계도

시점: 데이터베이스 생성 전

목적: 테이블 간 관계 설명


Schema

구현

시점: 데이터베이스 생성 시

생성: DBMS에서 생성


✅ 스키마의 특징

1. 데이터 사전에 저장

Data Dictionary: DBMS를 효율적으로 사용하기 위한 정보 요약

별칭: 메타데이터


2. 시간에 따라 불변

구조적 특성 유지


3. 인스턴스에 의해 규정

데이터 구조적 특성 의미


🏗️ 스키마의 3계층

사용자 관점에서 설계

DBMS 역할: 외부 → 개념 → 내부 스키마로 변환


1. 외부 스키마 (External Schema)

= 사용자 뷰 (View) = 서브 스키마 (Sub Schema)

정의: 사용자/응용프로그래머 입장의 논리적 구조

특징:

  • 전체 DB의 한 논리적 부분
  • 여러 개 존재 가능
  • 하나를 여러 사용자가 공유 가능
  • 서로 다른 관점 정의 허용

사용자:

  • 일반 사용자: SQL 사용
  • 응용 프로그래머: C, Java 등 사용

2. 개념 스키마 (Conceptual Schema)

= 전체적인 뷰 (View)

정의: DB의 전체적인 논리적 구조

특징:

  • 조직 전체의 DB
  • 하나만 존재
  • 개체 간 관계와 제약 조건 표현
  • 접근 권한, 보안, 무결성 규칙 정의

관점: 기관/조직체

관리: DBA (Database Administrator)

별칭: 단순히 "스키마"라고 하면 개념 스키마


3. 내부 스키마 (Internal Schema)

= 저장 스키마 (Storage Schema)

정의: 물리적 저장장치 입장의 DB 구조

특징:

  • 물리적 저장장치와 밀접
  • 레코드의 물리적 구조 정의
  • 저장 데이터 항목의 표현 방법
  • 내부 레코드의 물리적 순서

관점: 시스템 프로그래머/설계자


📊 3계층 구조도

┌─────────────────────────┐
│   외부 스키마 (View 1)   │ ← 사용자 1
├─────────────────────────┤
│   외부 스키마 (View 2)   │ ← 사용자 2
├─────────────────────────┤
│   외부 스키마 (View 3)   │ ← 사용자 3
└─────────────────────────┘
            ↓
┌─────────────────────────┐
│   개념 스키마 (전체)     │ ← DBA
└─────────────────────────┘
            ↓
┌─────────────────────────┐
│   내부 스키마 (물리)     │ ← 시스템
└─────────────────────────┘

❓ 면접 질문 예시

Q1. 스키마란 무엇인가요?

답변: 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합입니다. 데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등을 전반적으로 정의합니다.

Q2. 스키마와 ERD의 차이점은?

답변: ERD는 설계도이고 스키마는 구현입니다. ERD는 데이터베이스를 생성하기 전에 테이블 간 관계를 설명하는 다이어그램으로 설계 단계에서 작성합니다. 스키마는 ERD를 통해 데이터베이스를 생성할 때 DBMS에서 실제로 생성되는 것입니다.

Q3. 스키마의 3계층을 설명해주세요.

답변: 스키마는 외부, 개념, 내부 스키마로 구성됩니다. 외부 스키마는 사용자 입장의 논리적 구조로 여러 개 존재 가능하며, 개념 스키마는 조직 전체의 DB 구조로 하나만 존재하고 DBA가 관리하며, 내부 스키마는 물리적 저장장치 입장의 구조로 시스템 프로그래머가 관리합니다.

Q4. 외부 스키마의 역할은?

답변: 외부 스키마는 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것입니다. 전체 데이터베이스의 한 논리적 부분으로 서브 스키마라고도 하며, 하나의 데이터베이스에 여러 개 존재할 수 있고 같은 DB에 대해 서로 다른 관점을 정의할 수 있습니다.

Q5. 개념 스키마와 내부 스키마의 차이는?

답변: 개념 스키마는 데이터베이스의 전체적인 논리적 구조로 기관이나 조직체의 관점에서 정의하며 DBA가 관리합니다. 내부 스키마는 물리적 저장장치의 입장에서 본 구조로 실제 저장될 레코드의 물리적 구조, 저장 방법, 물리적 순서 등을 정의하며 시스템 프로그래머나 설계자가 관리합니다.


📚 원본 참고 자료

출처: 2023-CS-Study

⬅️이 문서를 참조하는 문서

이 개념을 기반으로 하는 고급 주제들입니다.