ETC

DB, DBMS 구조

ihate404 2022. 3. 20. 14:38

schema(스키마) : DB의 논리적 정의. 데이터 구조, 제약조건에 대한 명세를 기술한 것

....뭔소리야...

대충 데이터를 저장할때의 '틀'이라고 생각하면 편할듯

학생이라는 데이터를 저장할때 이름(String),나이(int),학번(int), 그리고 각각에 대해 주어지는 length.. 등의 틀을 전체적으로 총괄해서 말하는 틀!

 

스키마에는 

-데이터 객체(data Object) : 데이터 구조 표현

-개체(entity)

-속성(attribute) : 개체의 특성 표현

-이들 간 존재하는 관계에 대한 정의

-이들이 유지해야할 제약조건

이 포함된다.

 

어떤 관점에서 DB를 보느냐에 따라 스키마는 달라진다

(예로 고객에 대한 db는 고객 개인정보/고객이 주문한 물건정보 등 다양한 스키마의 관점으로 볼 수 있음)

 

그래서 데이터관리측면에선 

-데이터를 이용하는 각 개인의 뷰(=외부스키마)

-이런 개인의 모든 뷰가 종합된 기간 전체의 뷰(=개념 스키마)

-시스템(물리적 저장 장치) 입장에서 보는 저장장치 뷰(=내부 스키마)

 

세단계로 구별해 db간 관계를 정의한다 (=3단계 데이터 베이스 구조)

 

외부스키마(서브스키마)

: db의 개개 사용자/응용프로그래머가 접근하는 db를 정의한것

'개인' '특정응용'에 한정된 구조

 

개념스키마(스키마)

: 전체적, 종합적인.

범 기관적 입장에서 db를 정의한것 

모든! 응용시스템, 사용자들이 필요로 하는 데이터를 통합 한것.

이 개념스키마로부터 모든 외부 스키마가 생성되고 지원됨.

 

내부스키마

: 개념스키마의 저장구조를 정의한 것.

실제 저장될 내부 레코드 형식, 인덱스 유무, 저장데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등 표현

 

 

 

외부 단계의 외부 스키마를 보면

두 사용자(학적과, 학생과)가 각각 자신의 데이터 구조를 정의한다.

 

학적과의 사용자는 학생을

외부스키마 Sn --(개념스키마) Snumber

외부스키마 Name --(개념스키마) Name

외부스키마 Grade --(개념스키마) Grade

외부스키마 Dept --(개념스키마) Dept

네가지 속성으로 정의하고  개념 스키마의 속성에 대응된다.

학적과에서 응용프로그램 작성시엔 이 외부 스키마 범위에서만 작성가능하다.

 

!하지만

학적과의 ST, sn은 개념 스키마의 STUDENT, Snumber와 이름이 다르고

개념스키마의 Year, Address 속성이 개념스키마에 있는지 알수 없다.(알아서도 안됨)

 

---

 

한 응용프로그램이 DBSM을 통해 DB에 접근하려면

3단계 스키마에 있는 모든 개체, 속성의 대응관계를 알아야 한다

예로,

외부스키마 Sn -- 개념 스키마 Snumber

개념스키마 Snumber -- 내부 스키마 Sno

에 대응된다

이런 대응관계에 대한 정의를 사상(mapping)이라 하며, DBSM은 이런 사상정보를 유지,관리한다.

 


..아니 그럼 

DBeaver 들어갔을때 보이는 이 스키마는 

외부 / 개념 / 내부 스키마 중에 어느거란 말이지..?..

바로 밑에 테이블이 나오니까 내부 스키마(저장되는방법) 인가!!!

 


출처

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=k97b1114&logNo=140153781324 

 

데이터베이스 시스템(DBS)의 구성 - 3단계 데이터베이스 구조

데이터베이스 시스템이 기초로 하고 있는 가장 기본적이 요소는 데이터베이스인데, 이 데이터베이스의 논리...

blog.naver.com