이전글
데이터 모델(Data Model)이란?
데이터 모델이란 데이터를 저장하고 접근하는 방식을 개념적으로 정의한 것입니다. 위키백과에 검색을 해보자면 아래와 같이 정의되어있습니다.
데이터 모델(data model)은 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형이다.
말이 너무 어려워서 그렇지 데이터를 어떤 형태로 저장할것인지, 그렇게 저장된 데이터 중 원하는 데이터에 접근하기 위해서는 어떤 방식을 사용할것인지를 정의해 둔것이라고 보면 되겠습니다.
데이터 모델의 종류
데이터 모델이라는것 자체가 처음부터 뙇! 하고 생긴것이 아니라 처음에는 이런식으로 해보는게 좋지 않을까? 하고 고민고민 하여 만들었다가 시간이 흐르고 기술이 발전하면서 단점이 드러나고 그 단점을 극복하기 위해 새로운 모델이 만들어지는 방식으로 발전해왔습니다.
앞서 말했듯 데이터 모델은 데이터를 저장하는 방식(구조)를 정의한 것이므로 우리가 흔히 알고 있는 자료구조와도 많이 겹치게 됩니다.
계층형 모델(Hierarchical Data Model)
처음으로 등장한 데이터 모델입니다. 데이터가 계층적으로 나뉘어 트리(tree) 구조를 가지게 됩니다. 데이터는 부모 자식 관계에서 1:N(하나가 여러개의 자식을 갖는) 구조를 갖게 됩니다. 반면에 자식은 하나의 부모만을 가질 수 있습니다.
특정한 상태에서 데이터의 탐색이 매우 빠르다는 장점이 있지만 한번 정의된 데이터의 구조를 변경하기 어렵고 접근의 유연성이 부족한 단점이 있습니다.
망형 데이터 모델(네트워크형 데이터 모델)
망형 데이터 모델은 네트워크 데이터 모델이라고도 하며, 그래프(graph) 구조를 기반으로 하고 있습니다. 계층형 구조의 단점을 극복하기 위해 등장하였기 때문에 계층형 구조와는 다르게 하나의 자식이 여러개의 부모를 가질 수 있는 차이점이 있습니다.
다만 그래프 구조로 인해 복잡한 포인터 구조를 사용하고 응용프로그램 개발시에 개발자가 모든 구조를 이해해야만 하는 단점이 있습니다.
관계형 데이터 모델(Relational Data Model)
관계형 데이터 모델은 1970년 E. F. Codd가 제안한 모델로 데이터를 테이블(Table) 이라는 최소단위로 표현하고 각 데이터들의 관계를 정의하는 모델입니다.
테이블은 행과 열로 이루어져 있고 각 데이터의 관계는 Primary Key(기본키) 와 Foreign Key(외래키)를 사용하여 정의해줍니다.
이 개념을 도입한 DBMS를 RDB 또는 RDBMS라고 합니다. 관계형 DB 모델은 가장 많이 사용하는 데이터 모델이며, 시퀄 또는 에스큐엘이라고 불리우는 SQL(Structured Query Language)이라는 언어를 사용하여 데이터를 다룹니다.
객체 지향형 데이터 모델(Object Oriented Data Model)
객체지향형 데이터 모델은 1980년 후반에 등장한 모델로 객체지향 언어인 Java나 C++ 등에서 사용하는 그 개념과 동일한 개념을 기반으로 하는 데이터 모델입니다. 데이터를 각각의 독립된 객체로 하여 상속 등의 개념을 도입하였습니다.
오라클을 포함한 몇몇 DBMS가 이 객체지향형 모델 개념을 도입하였는데, 아직까지는 객체지향형 DBMS로 사용하기 보다는 관계형 DBMS로 사용하는 것이 대세인것 같습니다.
'데이터베이스[DB]' 카테고리의 다른 글
[MySQL] 데이터 여러개(여러행) 동시에 입력하는 방법 (0) | 2019.06.09 |
---|---|
[MySQL] 테이블 백업, 복사하는 방법 (0) | 2019.06.09 |
[Database] DBMS란? DBMS 개념 및 데이터베이스 시스템에 대해 (0) | 2019.06.08 |
[ORACLE] 오라클 설치시 "INS-13001 환경이 최소 요구 사항을 충족하지 않습니다." 오류 해결 방법 (1) | 2019.03.13 |
[ORACLE] 오라클 11g Enterprise 버전 다운로드 및 설치하기 (0) | 2019.03.13 |