[데이터베이스] DBMS 데이터모델 개념, 스키마와 인스턴스 비교

728x90
반응형
 

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단계로 나뉘어짐. 

 

 

 

 


참고 및 출처

https://techvu.dev/131

https://computer-science-student.tistory.com/478

728x90
반응형