DBMS 데이터 모델 및 스키마와 인스턴스
* 모델
- 대상을 잘 설명하기 위한 방법론
- 구조, 연산, 제약조건으로 설명함
1. 데이터 모델
• 데이터를 잘 설명하기 위한 방법론
• 어떤 데이터에 대한 개념적, 형식적 표현
• 어떤 데이터를 모델링하기 위해서는 구조, 연산, 제약조건이 표현되어야 함.
1) 구조(structure)
: 데이터(db)의 구조(structure)
ex) DML을 정의한다: CREATE SCHEMA …
2) 연산(operation)
: 데이터베이스를 운용하기 위한 연산(operation)들
즉, 데이터베이스로부터 데이터를 추출, 삽입, 갱신하기 위한 연산들이 설명되어야 함
ex) DML을 정의한다: SELECT FROM …
3) 제약 조건(constraint)
: 데이터베이스가 지켜야 하는 제약 조건(constraint)들을 표현하기 위한 ‘개념들의 집합’이 설명되어야 한다.
* 구조에 따라 연산, 제약 조건이 바뀌기도 한다.
* ex) 계층구조(hierarchy), deduction 등
데이터베이스 종류
• 개념적 데이터 모델 (Conceptual Data Model)
- 데이터를 고수준, 의미적 수준으로 표현하는 데이터 모델
- ex) "학생" 테이블의 구성요소인 "나이", "주소" 등을 정함
• 물리적 데이터 모델 (Physical Data Model)
- 데이터를 저수준, 물리적 수준으로 표현하는 데이터 모델
- 구체적인 구현 수준의 실질적 데이터 모델
- ex) 학생 데이터가 디스크에 어떻게 저장되는 것이 효과적인가? '나이'는 4바이트 정수로 하자! 여기에 B-tree index를 구축해서 빨리 찾자! 등을 정하는 일
• 구현 데이터 모델 (Implementation Data Model)
- 상위 두 모델의 중간 레벨
- 상용 제품의 구현 시 적용되는 데이터 모델
• 자가설명형 데이터 모델 (Self-describing Data Model)
- data value들을 가진 data의 설명을 결합한 데이터 모델
- ex) XML, NoSQL
2. 스키마와 인스턴스
• 스키마(Schema)
: 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것(연산은 x 연산은 인스턴스에 부여됨)
: 데이터베이스에 대한 설명서(구조, 뼈대)
- 데이터베이스 카탈로그에 존재
- 스키마는 자주 변하지 않는다.
- 주로 deductive DB에서, 스키마는 “intention”이라고도 부른다.
- 스키마 정보 = type information, rule, key, attributes
- 키워드) Catalog, Structure, Type, Rule, Intention, a seq. Of Attr.
• 인스턴스(Instance)
: 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값
- 데이터베이스 상태(state)라고도 하는 인스턴스는 데이터베이스가 갱신될 때마다 변함.
- 주로 deductive DB에서, 인스턴스는 extension이라고도 부른다.
- 어떤 특정 시간에 데이터베이스에 실제로 저장되어 있는 실체
- value information
- Initial Database State: 초기에 로딩된 데이터
- Valid State: 데이터베이스의 구조와 제약조건을 만족하는 상태
- a sequence of attribute values. value들 간의 순서가 중요함
- 레코드(디스크에 존재할 때) == 튜플(논리적으로 얘기할 때)
instance = occurrence = snapshot = record instance = table instance = entity instance
- 키워드) Record, Tuple, State, Snapshot, Extension, a seq. Of Attr. Values
3. 3단계 스키마 구조
DBMS가 Program-data independence (상호간의 독립성. 데이터가 바뀌어도 쿼리는 동일)와 데이터의 복수개의 뷰(multiple view)를 제공하기 위해 만들어짐.
1) External schemas(외부 스키마): 다양한 사용자 뷰(view)들을 기술하는 레벨.
- 동일한 스키마를 가지고 사용자에 따라 특정 속성들만 보여줌. 권한에 따라 볼 수 있는 게 다르게
2) Conceptual schema(개념 스키마): 전체 데이터베이스에 대한 데이터의 구조와 제약조건 기술. 스키마의 실체
3) Internal schema(내부 스키마): physical data model을 표현해주는 것.
- data storage 구조, Access path들과 같은 디스크에 어떻게 저장할 것인가 등 구체적 방법 기술
4. 데이터 독립성 (Data Independence)
* mapping
user가 보는 view를 기반으로 질의가 주어졌을 때, computer가 보는 view의 관점으로
변환시켜 주기 위해 각 레벨 간에 “mapping = query 변환”이 필요함.
!! 왜 mapping을 하는가?
--> 하위 레벨(아래, 복잡한 것)로부터 독립하기 위해
상위 레벨은 안 바꾸고, mapping만 바꾸는 것
1) 논리적 데이터 독립성 (Logical Data Independence)
- external schema나 그들을 이용하는 응용프로그램들을 전혀 바꾸지 않고도
conceptual schema가 변경될 수 있도록 DBMS가 지원하는 특성
2) 물리적 데이터 독립성 (Physical Data Independence)
- conceptual schema를 전혀 바꾸지 않고도 internal schema만 변경해도 되도록 지원하는 특성
• 하위 레벨에 있는 어떤 스키마에 변경이 생겼을 때, 단순히 mapping만을 변경해서
상위 레벨 스키마들을 직접 바꾸지 않아도 되도록 ‘데이터의 독립성’ 지원 - DBMS가 mapping을 해서 연결해줌
• 그 상위 레벨 스키마들은 안 바뀜
마무리
데이터베이스는 구조, 연산, 제약 조건을 명시해야 함.
스키마는 구조, 인스턴스는 실제 값
데이터 독립성 유지를 위해 스키마가 3단계로 나뉘어짐.