스키마(Schema)

 

데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술하는 것

명세 : 자세히

기술 : 대상의 과정의 내용과 특징을 있는 그대로 서술

 

영문사이트

https://www.educative.io/blog/what-are-database-schemas-examples#what

데이터베이스에 데이터를 저장하는 것을 타나내는 추상적인 디자인

 

=>한마디로 데이터베이스의 디자인을 어떻게 할것인가? (설계도 느낌)

디자인이라 하니까 이해하기 편해졌다.


스키마의 종류

 

추상적인 디자인이라 하였는데 시점에 따라 3가지로 디자인이 나뉜다.

 

1.개념스키마(Conceptual Schema)= 데이터베이스 관리자의 시점

 

데이터베이스 관리자의 시점이라는건 부분부분적인 데이터가 아닌

전체 데이터베이스 를 목적으로하는 시점이며 (정말 개발하는데 있어서 저장되는 모든 데이터)

데이터베이스 : 데이터의 모음

개체 간의 관계와 제약조건을 디자인한다. (접근권한, 보안 및 무결성 규칙)

개체 : 실제로 저장된 값(인스턴스)

 

 

2.외부스키마(External Schema) = 서브 스키마 = 사용자 뷰

 

개념스키마가 전체적인 데이터를 의미한다.

그럼 사용자는 그 전체적인 데이터를 다 알아야할까?

사용자는 필요한 데이터만 접근하면 된다.

즉, 사용자에게 필요한 데이터를 목적으로하는 구성을 디자인한다.

이게 좀 이해하기 애매했었는데 내 생각에는 DB가 응용프로그램 하나에만 쓰이는게 아니라 여러 프로그램에 쓰이기 때문에

각 프로그램마다 필요한 데이터구성이 있을텐데 이 하나하나의 디자인을 외부스키마라고 하는거 같다.

 

3.내부스키마(Internal Schema) = 저장 스키마

 

저장장치의 시점으로 보는 디자인이다.

말 그대로 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 디자인

(레코드의 구조, 필드 크기, 표현방법...)

 

이 그림이 이해하기 제일 쉬웠다.


데이터베이스 언어(Database Language)

 

DBMS를 통해 사용 가능하며 기능과 목적에 의해 3가지로 나뉜다. 아잇싯팔 또 세가지네

 

1. 데이터 정의 언어(DDL : Data Definition Language)

 

DB를 구축하거나 수정할 목적으로 사용하는 언어

수정할 목적 : DB구조, 데이터 형식, 접근 방식, 외부 스키마 정의, 데이터의 물리적 순서 등 

데이터베이스 관리자가 사용한다.

종류 역할
CREATE DB, 테이블등을 생성
ALTER 테이블을 수정
DROP DB, 테이블을 삭제
TRUNCATE 테이블 초기화

 

2. 데이터 조작 언어(DML : Data Manipulation Language)

 

사용자로 하여금 데이터를 처리할 수 있게 하는 언어,

사용자와 DBMS간의 인터페이스를 제공한다.

사용자가 사용한다는걸 옆집 개도 알수있다.

종류 역할
SELECT 데이터를 조회
INSERT 데이터를 삽입
UPDATE 데이터를 수정
DELETE 데이터를 삭제

 

3.데이터 제어 언어(DCL : Data Control Language)

 

데이터를 보호하고 데이터를 관리하는 목적으로 사용

데이터를 관리 : 보안, 무결성, 데이터 회복....

종류 역할
GRANT 특정 DB사용자에게 특정 작업에 대한 수행권 부여
REVOKE 특정 DB사용자에게 특정 작업에 대한 수행권 박탈
COMMIT 데이터 처리의 작업 결과를 저장 반영,
하나의 복구 기점이 된다.
ROLLBACK 마지막 commit시점의 상태로 복원

 

+ Recent posts