Schema(스키마)
는 DB의 구조(개체, 속성, 관계)와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합입니다.
DBMS가 주어진 설정에 따라 데이터베이스 스키마를 생성하고, 데이터베이스 사용자가 자료를 저장・조회・삭제・변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행하는데요.
한마디로 DBMS
는 스키마를 참조하여 사용자의 명령을 수행하는 것입니다.
Schema(스키마)의 특징
1️⃣ Data Dictionary(데이터사전)에 저장이 됩니다.
2️⃣ 특정 데이터 모델을 이용해서 만들어집니다. (현실 세계의 특정한 부분의 표현)
3️⃣ 시간에 따라 불변인 특성을 가집니다.
4️⃣ 데이터의 구조적 특성을 의미하며, instance(인스턴스)에 의해 규정됩니다.
1️⃣ External Schema(외부 스키마)
= 사용자 뷰(View)
▻ 개별 사용자들의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것입니다.
▻ 외부 스키마는 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 `Sub Schema(서브 스키마)`라고도 합니다.
▻ 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재 가능하며,
하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있습니다.
▻ 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있으며,
응용 프로그래머는 C, JAVA등의 언어를 사용하여 DB에 접근할 수 있습니다.
2️⃣ Conceptual Schema(개념 스키마)
= 전체적인 뷰(View)
▻ 데이터베이스의 전체 조직에 대한 논리적인 구조로, 물리적인 구현은 고려하지 않습니다.
▻ 각 데이터베이스에는 한 개의 개념 스키마만 존재합니다.
▻ 개체 간의 관계 및 무결성 제약 조건에 대한 명세를 정의합니다.
▻ 데이터베이스 파일에 저장되는 데이터의 형태를 나타냅니다. (DBA에 의해 구성)
3️⃣ Internal Schema(내부 스키마)
= Storage Schema(저장 스키마)
▻ 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층입니다.
▻ 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것인데, 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고,
저장 데이터 항목의 표현방법, 내부 레코드 형식, 물리적 순서 등을 나타냅니다.
mata data
데이터에 대한 데이터로, 어떤 목적을 가지고 만들어진 데이터
Entity(개체)
데이터로 표현하려고 하는 객체(여러 속성들로 구성)
Attribute(속성)
개체가 갖는 속성
Relation(관계)
개체와 개체 사이의 연관성
instance(인스턴스)
비슷한 성질을 가진 여러 개의 객체를 만들기 위해서 일종의 설계도라고 할 수 있는 Constructor(생성자 함수)를 만들어서 찍어내듯 사용을 하는데, 이렇게 생성된 객체를 인스턴스라고 부릅니다.
(거푸집 = 생성자함수 || 거푸집으로 찍어낸 칼 = 인스턴스)
ERD
는 개체-관계 모델로, 테이블간의 관계를 설명해주는 다이어그램이라고 볼 수 있습니다. 이를 통해 프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있는데, API를 효율적으로 뽑아내기 위한 모델 구조도라고 생각할 수 있을 것 같습니다.
직사각형, 다이아몬드, 타원형 및 연결선과 같은 정의된 기호 집합을 사용하여 Entity, Relationships 및 해당 속성의 상호 연결성을 나타내고, 개체를 명사로, 관계를 동사로 사용하여 문법 구조를 반영합니다.
ERD 구성관계
ERD > Entity > Entity attribute
Entity(엔티티)
테이블을 구성하는 객체 구성성분. Entity는 어떤 시스템인지에 따라 사람, 장소, 사건(이벤트), 오브젝트가 될 수도 있습니다.