데이타 모델
: 데이터 타입, 관계, 제약조건들을 명시하기 위해 사용할 수 있는 개념들의 집합
데이터 모델의 분류
- 저수준 또는 물리적 데이터모델
- 어떻게 데이터가 저장되는지의 세부사항을 명시하는 개념을 제공
- 표현 데이터 모델 (구현데이터모델)
- 고수준 모델과 저수준 모델 사이에 존재
- 일반 사용자가 이해할 수 있는 개념을 제공
- DBMS 가 보여주는 모델
- 고수준 또는 개념적 데이터모델
- 사용자들이 데이터를 인식 하는 방식에 대한 개념을 제공
스키마, 인스턴스 , 데이터베이스 상태
- 데이터베이스 스키마 (또는 메타데이터)
- 데이터베이스에 대한 기술
- 자주 변경되지 않음 (설계과정에서 명시)
- 스키마 다이어그램
- 데이터베이스의 스키마를 도식화 한 것
![image](https://user-images.githubusercontent.com/96935132/196613877-1b3be056-e83d-4dd3-b318-262829f171a2.png)
- 내포 (intension)
- 데이터베이스 상태
- instance 들의 집합
- 시간이 지남에 따라 계속 바뀜(갱신연산이 수행될때마다)
![](https://velog.velcdn.com/images/ssumdev/post/ece3328c-26f9-4927-881b-96a9e10ab6d7/image.png)
- 외연 (extension)
3단계 스키마 아키텍처
목적 : 사용자의 응용과 물리적 데이터베이스의 분리
- 내부단계
- 내부 스키마를 가짐
- 내부스키마 : DB의 물리적인 구조를 정의, 물리적 데이터 모델을 사용
- 데이터 저장구조의 세부사항과 데이터베이스에 대한 접근 경로를 기술
- 개념단계
- 개념 스키마를 가짐
- 개념스키마 : 하나만 존재, 전체적인 데이터베이스 구조를 기술함
- 엔티티, 데이터타입, 관계, 연산, 제약조건 들을 나타내는데 중점
- 외부단계
- 외부 스키마나 사용자 뷰들을 포함
- 데이터 추상화의 최상위 단계
- 사상(Mapping)
- 외부스키마를 참조하여 사용자가 데이타를 요구하면 이를 데이터베이스내에서 개념스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로 변환 과정을 거쳐 사용자의 뷰와 일치하도록 재구성하는 과정
- 외부 → 개념 → 내부 → DB 접근
![](https://velog.velcdn.com/images/ssumdev/post/23a9fb00-d863-4230-a275-2fbbc1caa538/image.jpeg)
데이터의 독립성
- 논리적 데이터 독립성
: 외부스키마나 응용프로그램을 변경하지 않으면서 개념스키마를 변경할 수 있는 능력(성질)
- 물리적 데이터 독립성
: 개념 스키마를 변경하지 않으면서 내부스키마를 변경할 수 있는 능력(성질)
DBMS 언어
- 데이터 정의어 (DDL)
- 저장구조 정의와 뷰정의어
- 저장구조 정의어를 사용하여 내부스키마를 나타냄
- 뷰정의어를 사용하여 뷰를 명시하거나 개념스키마 사이의 사상을 나타냄
- 데이터 조작어
- 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작언어
- 범용 프로그래밍언어에 삽입되어 사용될 수 있는데, 범용프로그래밍어를 호스트언어(=주인어)라하고 삽입된 명령어를 데이터부속어라고 함
DBMS 를 위한 아키텍처
- 중앙집중식 DBMS 아키텍처
- 2층-클라이언트-서버 아키텍처
- 3층-클라이언트-서버 아키텍처