SQLD 자격증 스키마 관련 자세히

250x250
728x90

SQLD 자격증 스키마 관련 자세히 

안녕하세요! 취준퇴준입니다.  개발직군은 아니지만, 데이터와 아주 밀접한 직군이다보니 SQLD 자격증을 준비하면서 노노트 정리겸 스키관련 글들을 준비해봤습니다. 

SQL에서 스키마(schema)는 데이터베이스의 구조를 정의하는 틀을 말합니다. 이것은 테이블, 뷰, 인덱스, 사용자, 저장 프로시저 등 데이터베이스 객체들의 조직을 나타내는데, 마치 목차가 책의 내용을 조직하는 것과 비슷합니다. 스키마는 데이터베이스의 청사진으로 생각할 수 있으며, 데이터베이스의 논리적 구조를 정의합니다.

스키마 (Schema)

  • 정의: 데이터베이스의 구조, 객체, 타입 등을 정의한 것으로 데이터베이스 내에서 데이터의 조직, 관계 및 제약 조건에 대한 정보를 담고 있습니다.
  • 용도: 데이터베이스의 구조를 쉽게 이해할 수 있게 도와주고, 데이터베이스 관리 및 데이터 간의 관계 설정에 활용됩니다.

응용 스키마 (Application Schema)

  • 정의: 특정 응용 프로그램이 사용하는 데이터베이스의 부분집합으로, 응용 프로그램의 요구 사항에 맞춰져 있습니다.
  • 용도: 특정 애플리케이션에 필요한 데이터와 관계만을 포함하여, 애플리케이션의 효율성을 높이고 관리를 단순화합니다.

스키마 예시

SQL에서 스키마를 생성하고 사용하는 기본적인 예시는 다음과 같습니다.

-- 스키마 생성
CREATE SCHEMA Sales;

-- 스키마 내 테이블 생성
CREATE TABLE Sales.Customers (
    CustomerID INT PRIMARY KEY,
    CustomerName VARCHAR(100),
    ContactName VARCHAR(100),
    Country VARCHAR(50)
);

-- 스키마 내 뷰 생성
CREATE VIEW Sales.CustomerView AS
SELECT CustomerName, ContactName, Country
FROM Sales.Customers;

-- 스키마 내 테이블에 데이터 삽입
INSERT INTO Sales.Customers (CustomerID, CustomerName, ContactName, Country)
VALUES (1, 'Cardinal', 'Tom B. Erichsen', 'Norway');

이 예에서 Sales는 스키마 이름입니다. CustomersCustomerView는 이 스키마 내에 생성된 테이블과 뷰입니다. Sales.Customers로 테이블을 참조하는 것은 Sales 스키마에 속한 Customers 테이블임을 나타냅니다. 스키마를 사용함으로써 동일한 데이터베이스 내에서 이름 충돌 없이 같은 이름의 테이블을 여러 스키마에 만들 수 있습니다.

 

스키마 종류 (Schema)

물리적 스키마 (Physical Schema)

  • 정의: 데이터가 실제로 저장되는 방식을 기술합니다. 이는 데이터베이스의 저장 파일, 인덱스, 데이터베이스에 저장된 데이터의 실제 저장소 등을 포함합니다.
  • 예시 문장: "물리적 스키마는 데이터가 디스크 상에서 어떻게 저장되고, 데이터 접근을 위한 인덱스가 어떻게 구성되는지 정의합니다."
-- 물리적 스키마는 직접적으로 SQL로 정의되지 않지만,
-- 데이터 파일이나 인덱스 관리 등의 관리 작업을 통해 영향을 줍니다.
ALTER TABLE Orders
ADD INDEX (OrderDate);

논리적 스키마 (Logical Schema)

  • 정의: 데이터베이스의 논리적 구조를 나타냅니다. 이는 테이블, 열, 데이터 타입, 관계 등 데이터와 관련된 구조를 의미합니다.
  • 예시 문장: "논리적 스키마는 데이터베이스의 구조를 정의하며, 테이블 간의 관계와 각 테이블의 열과 데이터 타입을 명시합니다."

-- 논리적 스키마 정의 예시
CREATE TABLE Employees (
    EmployeeID INT,
    LastName VARCHAR(255),
    FirstName VARCHAR(255),
    Position VARCHAR(255),
    DepartmentID INT,
    FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);

뷰 스키마 (View Schema)

  • 정의: 사용자에게 보여지는 데이터베이스의 모습을 정의합니다. 이는 데이터베이스의 복잡성을 숨기고 사용자가 필요로 하는 데이터만을 제공하기 위해 사용됩니다.
  • 예시 문장: "뷰 스키마는 사용자가 데이터베이스에 쿼리를 실행할 때 보게 되는 데이터의 구조로, 실제 데이터베이스 구조와 다를 수 있습니다."

-- 뷰 스키마 정의 예시
CREATE VIEW DepartmentSummary AS
SELECT DepartmentID, COUNT(EmployeeID) AS EmployeeCount
FROM Employees
GROUP BY DepartmentID;

이러한 스키마들은 데이터베이스 설계, 구현, 관리에 있어서 중요한 역할을 하며, 각각의 데이터베이스 시스템과 프로젝트 요구에 맞게 조정됩니다.

 
 
 
728x90

댓글

Designed by JB FACTORY