현실 세계를 모방한 관련있는 데이터들의 집합
database management systems로 사용자를 위해 DB를 정의하고 편하게 관리하게 하기 위한 소프트웨어
DBMS에서 DB를 정의할 때 부가적인 데이터가 발생한다. 이 부가적인 데이터를 메타데이터라고 한다. 데이터를 설명하기 위한 데이터이다. 예를 들어 제약조건, 데이터 유형, 인덱스 등이 있다. 이 메타데이터 또한 DBMS에서 관리한다.
database와 dbms 그리고 이것들과 관련있는 applications를 통틀어 database system이라고 한다. 이 database system은 그냥 흔하게 database라고도 불리기 때문에 문맥과 고려해서 해석할 수 있어야 한다.
DB의 구조를 나타내는데 사용될 수 있는 개념들이 모인 집합이다. 이 데이터모델은 DB구조를 모델링, 즉 추상화를 통해 표현 가능하게 한다. 여러 종류가 있는데 추상화의 수준과 DB를 어떻게 구조화하는지에 따라 나뉜다.
DB의 구조는 데이터 유형, 데이터 관계(relationship), 제약 사항(constraints) 같이 DB의 뼈대라고 보면 된다.
사용자들이 바로 받아들이는 모델이다. 보통 비즈니스 요구 사항을 추상화하려 기술할 때 사용한다. ERD가 그 예이다.
데이터가 실제로 컴퓨터에 물리적으로 저장이 될 때의 구조와 크게 다르진 않게 DB를 구조화 할 수 있는 모델. relational data model, 즉 실제 값이 담긴 테이블들이 그 예이다.
컴퓨터에 실제로 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공해준다. data format, data orderings, access path 등이 있다.
data model을 통해 database 구조를 기술한 것이다. 보통 설계단계에서 만들어진다. 실제 database의 청사진이라고 보면 된다.
어떤 특정한 시점에 있는 데이터를 말한다. database에 있는 현재 instance의 집합이라고도 한다.
물리적으로 database의 구조가 바뀔 수도 있다. 그러나 이 바뀌는 과정에서 user에게 영향을 끼치면 안되기 때문에 3단계로 나뉘어서 즉 중간에 매니저를 둬 각각 역할을 나누어 분리시킨다.
맵핑되는 관계를 바꿔줌으로써 각각의 스키마가 변경되어도 나머지 스키마에 영향이 가지 않게 해준다.
물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 나타낸다. 실제 database에 가장 가까이 있는 스키마이다.
물리적인 저장 구조에 관한 내용은 숨긴다. entities, data types, relationships, user operations, constrains에 집중한다. logical data model을 통해 기술된다.
고객들마다 원하거나 필요한 데이터들이 다 다르다. 이 때 특정한 고색들이 요구하는 데이터만 표현해낸게 external schema이다. logical data model를 통해 표현한다.