DB의 구조를 원하는 추상화 수준으로 기술하기 위한 개념들의 모음. 여기서 구조란 데이터 유형, 데이터끼리의 관계, 제약사항을 말한다. 읽고 쓰는 기본 동작도 데이터 모델에 포함된다.

보는 사람에 따라 달라지는 추상화

모델이 여러 종류인 이유는 누구에게 보여줄 것이냐가 다르기 때문이다. 기획자에게 보여줄 그림과 디스크에 저장되는 방식이 같을 수는 없다.

층을 나눠두면 얻는 것도 있다. 물리적 저장 방식이 바뀌어도 논리적 구조는 그대로일 수 있고, 논리적 구조가 조금 바뀌어도 사용자가 보는 화면은 그대로일 수 있다. 이 발상을 아예 아키텍처로 굳힌 것이 스키마와 3단계 스키마다.

개념, 논리, 물리

개념적 데이터 모델은 추상화 수준이 가장 높다. 누가 봐도 이해할 수 있는 개념으로만 이루어져서 비즈니스 요구사항을 기술할 때 쓴다. 대표가 개체-관계 모델이고, 그려놓은 것이 ER 다이어그램이다. DB 구조를 개체와 개체 사이의 관계로 나타낸다. 대학 도서관 시스템이라면 Student와 Book이 개체이고 reads가 관계다. 개체마다 속성을 갖는다.

논리적 데이터 모델은 이해하기 어렵지 않으면서도 디테일하게 구조화할 수 있다. 컴퓨터에 저장되는 구조와 크게 다르지 않으면서도 특정 DBMS나 저장 장치에 매이지 않는 수준이다. 대표가 관계형 모델이다. 객체 데이터 모델도 있고, 둘을 섞은 객체-관계형 모델도 있다. MySQL, Oracle, MS-SQL은 관계형이고 PostgreSQL은 객체-관계형이다.

물리적 데이터 모델은 데이터가 컴퓨터에 파일로 어떻게 저장되는지를 기술한다. 데이터 형식, 정렬 순서, 접근 경로 같은 것이다. 접근 경로란 검색을 빠르게 하려고 두는 구조체를 말하고, 인덱스가 그것이다.

관련

출처