Database

DB 스키마란?(Schema)

Somaz 2023. 4. 21. 19:46
728x90
반응형

Overview

오늘은 DB 스키마(Schema)에 대해서 공부해보려고 한다.
 


DB 스키마란?(Schema)

 

What is Schema?(After Academy)

 
데이터베이스 스키마는 데이터베이스 시스템에서 데이터의 구조, 구성 및 관계를 정의한다.
데이터베이스 내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.
스키마는 개체의 특성을 나타내는 속성(Attribute)과 속성들의 집합으로 이루어진 개체(Entity), 개체 사이에 존재하는 관계(Relation)에 대한 정의와 이들이 유지해야 할 제약조건을 정의한다.
 
Employee, Department 및 Project라는 세 개의 테이블이 있다고 가정한다. 
따라서 다음과 같이 스키마 다이어그램을 사용하여 이 세 테이블의 스키마를 나타낼 수 있다. 
해당 스키마 다이어그램에서 Employee와 Department는 관련되어 있고 Employee와 Project 테이블은 관련되어 있다.
 

What is Schema?(After Academy)

 


DB 스키마 아키텍처

DB 스키마 아키텍처는 데이터의 논리적 구성과 물리적 스토리지 및 사용자가 데이터와 상호 작용하는 방식을 분리하는 데이터베이스 설계 개념이다.
DB 스키마는 사용자의 관점에 따라서 외부, 개념, 내부 스키마로 구분 된다.
 

What is Schema?(After Academy)

 

1. 외부 스키마(External Schema) - (User View)

User View라고도 하는 외부 스키마는 개별 사용자 또는 응용프로그램이 데이터를 인식하고 상호 작용하는 방식을 나타낸다. 각 사용자 또는 응용프로그램은 자신의 특정 요구사항과 액세스 권한에 맞게 조정된 서로 다른 외부 스키마를 가질 수 있다. 외부 스키마는 개념 스키마의 하위 집합으로, 관련 데이터에 초점을 맞추고 전체 데이터베이스의 복잡성을 숨긴다.
전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다.응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.
 

2. 개념 스키마(Conceptual Schema) - (Logical View)

Logical View라고 하는 개념 스키마는 물리적 스토리지 또는 구현 세부 정보와 관계없이 데이터베이스에 있는 데이터의 전체 논리적 구성을 나타낸다. 모든 테이블, 열, 관계, 제약 조건 및 기타 데이터베이스 개체를 정의한다. 개념 스키마는 외부 스키마와 내부 스키마를 연결하는 브리지 역할을 하여 모든 사용자 및 응용프로그램에 대한 일관된 데이터 보기를 제공한다. 단순히 스키마라고 하면 개념 스키마를 의미하는 것이다. 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로 DBA에 의해 구성된다.
 

3. 내부 스키마(Internal Schema) - (Physical View)

Physical View라고 하는 내부 스키마는 Hard Disk 또는 SSD(Solid-State Drives)와 같은 스토리지 미디어에 있는 데이터의 실제 물리적 저장소 및 구성을 나타낸다. 여기에는 파일 구조, 인덱싱 방법 및 데이터 저장 형식과 같은 세부 정보가 포함된다. 내부 스키마는 데이터와 상호 작용하는 사용자 및 애플리케이션으로부터 이러한 세부 정보를 숨기면서 데이터 저장, 액세스 및 검색을 최적화하는 것과 관련이 있다. 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
 
요약하자면, 데이터베이스 스키마의 개념은 데이터베이스 시스템의 데이터 구조 및 구성을 정의한다.
반면, 3개 스키마 아키텍처(외부, 개념 및 내부 스키마)는 데이터의 논리적 구성을 물리적 스토리지 및 사용자 상호 작용으로부터 분리하기 위한 프레임워크를 제공한다.
 


Reference

What is Schema?(After Academy)
 
What is a Database Schema?
 
 

728x90
반응형

'Database' 카테고리의 다른 글

DB 샤딩(Sharding): 개념 및 동작방식  (0) 2024.05.10
PostgreSQL 개념 및 특징(with MySQL)  (0) 2024.03.29
MongoDB란?  (2) 2023.05.20
Mariadb란? (사용법)  (0) 2022.01.14