교수님 수업 자료가 너무 똥거지같다.
1. 데이터 독립성(Data independece)
하위 단계의 스키마를 변경해도 상위 단계에 영향을 주지 않는 성질을 의미한다. 독립성 덕분이 데이터베이스 구조나 데이터 표현방법, 저장위치 등에 변화가 있어도 프로그램에 영향을 미치지 않게 된다.
효율성이나 응용 데이터 요구사항에 관계없이 Conceptual schema를 상대적으로 안정된 것으로 유지시켜준다.
사용자가 보는 view와 데이타가 저장되는 방법에서의 flexibility와 adaptability
2. 구조(Architecture)
'데이터 독립성'을 위해 스키마를 3개의 레벨로 나눈다.
- 외부 스키마는 여러개가 있을 수 있지만, 개념 스키마와 외부 스키마는 하나의 데이터 베이스에 하나만 존재한다.
- DBMS에서 유저는 SQL을 이용해서 접근요청(access requests)을 할 수 있고 DBMS는 이 요청을 분석하고 외부 스키마에 맞춰 검사한다.
- DBMA는 내부 스키마에서 필요한 작업을 수행한다.
- 전체 프로세스는 해석적(interpretive)이며 성능이 좋지 않다(poor performance). 실행시간 안에 수행을 완료한다.
- 실제로 접근요청은 실행시간 이전에 컴파일 된다. (ex.DB2)
1) 외부 스키마 (External Schema, = subschema)
일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터 베이스 중 하나의 논리적인 부분이다. 또한 사용자에게 보여지는 스키마이다.
External view: 특정 사용자가 인식하는 데이터베이스의 내용으로 외부 스키마에 의해 정의된다. 그래서 사용 주체나 응용에 따라서 바라보는 구조가 다를 수 있다.
예를 들어, 응용 프로그래며는 PL/I, C++, JAVA, +DSL등 DB에 접근하는 전문적인 Language를 사용하고, 유저(end-user)는 query language나 form등을 통해서 접근한다.
DDL과 DML 등 데이터베이스 언어를 사용한다.
외부 스키마는 개념스키마의 부분집합이다.
- DDL(데이터 정의/기술 언어): 데이터베이스 개체의 정의 또는 설명하는 언어. ex 스키마, 하위 시스템, 매핑
- DML(데이터 조작 언어): 데이터 오브젝트를 조작 및 처리하는 언어.
2) 개념 스키마 (Conceptual Schema)
한 조직의 DB를 전체 입장에서 보는 것으로 개발하는데 필요한 모든 데이터베이스를 정의한 것이다. (모든 개체entities, 속성properties, 관계relationships)
매우 중요한 비중을 차지하기 때문에 하나만 존재하며 DBA(데이터베이스 관리자)가 관리한다.
보안(Security), 무결성(Integrity), 제약사항(Constraints) 등을 검사한다.
3) 내부 스키마 (Internal Schema)
물리적 저장 장치(Physical Storage Structure)에 데이터베이스가 실제로 저장되는 방법을 표현한 것이다. (ex. flat file, hierarchical/network/inverted file)
실제 구현에 대한 것으로, 이 속성이 어떤 형태이며 어느 정도의 크기를 갖는지 등에 관해 기술한 스키마이다.
4) 매핑(Mapping)
- 개념/내부 매핑(Conceptual/Internal mapping)
개념 스키마와 내부 스키마 간의 대응으로, 내부 스키마의 물리적 장치에서 개념 스키마의 데이터가 어떻게 표현되고 저장되는지를 나타낸다.
내부 스키마의 구조가 변경되는 경우, 개념/내부 매핑은 그에 따라 변경되어야 한다.
- 외부/개념 매핑(External/Conceptual mapping)
하나의 외부 뷰(External view)와 개념 뷰(Conceptual view) 사이의 관련성을 정의한다.
즉, 사용자의 외부 스키마와 개념 스키마 간의 매핑이며, 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시키는 것이다.
- 외부/외부 매핑(External/External mapping)
다른 외부스키마의 관점으로 표현되도록 하나의 외부 스키마를 정의한다.
'Programing > [DB]SQL' 카테고리의 다른 글
[DB] E-R 모델을 이용한 데이터베이스 디자인(2), UML (0) | 2020.10.11 |
---|---|
[DB] E-R 모델을 이용한 데이터베이스 디자인(1) (0) | 2020.09.28 |
[DB]데이터베이스 개념(3) - DBA, DC Manager, 클라이언트/서버, 분산처리 (0) | 2020.09.14 |
[DB] 데이터베이스 개념(1) - DBMS와 구성요소, 데이터 모델 (0) | 2020.09.12 |