DB, DBMS 구조
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