데이터베이스 스키마
From IT위키
데이터베이스 스키마(Database Schema)는 데이터베이스의 구조를 정의하는 청사진 또는 모델이다. 스키마는 데이터베이스 내의 테이블, 열, 데이터 타입, 관계 및 제약조건 등을 포함하여 데이터가 어떻게 조직되고 저장될지를 설명한다.
구성 요소
- 테이블 (Tables):
- 데이터를 저장하는 기본 단위이다. 각각의 테이블은 특정 주제나 개체를 나타낸다.
- 예:
Employees
,Departments
,Products
등
- 열 (Columns):
- 각 테이블의 필드를 정의한다. 열은 테이블 내의 개별 데이터 항목을 나타낸다.
- 예:
employee_id
,name
,department_id
,salary
등
- 데이터 타입 (Data Types):
- 각 열에 저장될 수 있는 데이터의 종류를 정의한다. 데이터 타입은 텍스트, 숫자, 날짜, 불리언 등 다양한 형식이 있다.
- 예:
VARCHAR
,INT
,DATE
,BOOLEAN
등
- 관계 (Relationships):
- 테이블 간의 연관성을 정의한다. 관계는 주로 **외래 키 (Foreign Key)**를 통해 설정된다.
- 예:
Employees.department_id
가Departments.department_id
를 참조하는 경우.
- 제약조건 (Constraints):
- 데이터의 무결성을 유지하기 위해 적용되는 규칙이다. 제약조건은 특정 열의 데이터가 특정 조건을 만족해야 함을 보장한다.
- 예:
PRIMARY KEY
,FOREIGN KEY
,UNIQUE
,NOT NULL
등
스키마의 종류
- 물리적 스키마 (Physical Schema):
- 데이터베이스의 실제 저장 구조와 접근 방법을 정의한다. 물리적 스키마는 데이터가 어떻게 디스크에 저장되는지와 관련이 있다.
- 논리적 스키마 (Logical Schema):
- 데이터의 구조를 정의하지만, 실제 저장 방식에 대한 정보는 포함하지 않는다. 논리적 스키마는 테이블, 열, 데이터 타입 및 관계를 설명한다.
- 뷰 (Views):
- 특정 쿼리의 결과를 저장하는 가상의 테이블이다. 데이터의 특정 하위 집합을 쉽게 접근할 수 있도록 도와준다.
스키마 예시
다음은 간단한 데이터베이스 스키마의 예이다:
Employees 테이블
Column Name | Data Type |
---|---|
employee_id | INT |
name | VARCHAR |
department_id | INT |
salary | DECIMAL |
Departments 테이블
Column Name | Data Type |
---|---|
department_id | INT |
department_name | VARCHAR |
ER 다이어그램
데이터베이스 스키마를 시각적으로 표현할 때, ER 다이어그램(Entity-Relationship Diagram)을 사용할 수 있다.
- 이 다이어그램은 엔티티, 속성, 관계를 나타내어 데이터베이스의 구조를 명확하게 보여준다.
인스턴스와의 차이
데이터베이스 인스턴스는 스키마와 유사하게 데이터베이스의 현재 상태를 의미하지만, 스키마는 데이터는 포함하지 않고 구조만 지칭하는 것과 달리 인스턴스는 현재 저장된 데이터를 나타낸다.