티스토리 뷰

카테고리 없음

데이터 모델

BK's 코딩 2019. 11. 12. 12:21

데이터 모델이란?

컴퓨터에 데이터를 저장할 때 어떻게 저장할지 개념 모형이다.

대표 데이터 모델에는 계층형, 네트워크형, 관계형, 객체 지향형 등이 있다.

 

 

계층형 데이터 모델 hierarchical data model

 

계층형 데이터 모델과 네트워크 데이터 모델은 1960년대 말부터 1980년대 말까지 상업용 데이터베이스 시장에서 많이 사용한 데이터 모델이다.

 

계층형 데이터 모델은 나무가지 형태의 트리 tree 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리한다. 계층형 데이터 모델을 이해하기 위해서는 일대다 1:N 관계의 데이터 구조를 파악해야 한다.

이 모델에서는 데이터가 저장된 파일은 다음과 같이 상위 개념에 하위개념이 포함되어 있는 특징이 있다.

기본적으로 하나의 부모 개체가 여러 자식을 가질 수 있는 반편에 자식개체는 여러 부모 개체를 가질 수 없다는 제약이 있다. 따라서 일대다 구조의 데이터를 표현하기에 알맞지만 자식 개체가 여러 부모를 가진 관계는 표현할 수 없다.

 

 

네트워크형 데이터 모델 Network data model

네트워크형 데이터 모델은 망형 데이터 모델이라고 하며 그래프 graph 구조를 기반으로 한다.

다시 말해 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다는 점에서 계층형 데이터 모델과 차이가 있다.

 

객체 지향형 데이터 모델

객체 지향형 데이터 모델 object - oriented data model은 1980년대 후반에 등장한 모델로 객체 지향 프로그래밍에서 사용하는 객체 개념을 기반으로 한 데이터 모델이다. 그리고 객체 지향 프로그르밍처럼 데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에 사용되는 강력한 기능을 활용할 수 있다.

하지만 이러한 객체 지향형 모델 개념을 완전히 데이터베이스에 적용하는 것은 쉽지 않기 때문에 이를 적용한 상용 DBMS는 많지 않다. 다만 오라클 데이터베이스와 같은 여러 DBMS 제품군이 바로 뒤에 설명할 관계형 데이터 모델을 바탕으로 객체 개념을 도입하여 '객체 관계형 DBMS'로 영역을 확장하고 있다.

 

여기서 객체지형프로그래밍은 컴퓨터 프로그램을 하나의 독립된 '객체'로 바라보는 관점의 프로그래밍 기법이다. 자바, C++, 파이썬 프로그래밍 언어가 객체 지향 프로그래밍을 지원한다.

 

 

관계형 데이터 모델

관계형 데이터 모델 relational data model은 1970년 에드거 프랭크 커드 (E. F. Codd)가 제안한 모델로서 현대에 가장 많이 사용하는 관계형 데이터베이스의 바탕이 되는 모델이다. 관계형 데이터 모델은 다른 모델과 달리 데이터 간 관계(relationship)에 초점을 둔다.

예를 들어 회사의 사원 정보와 사원이 소속된 부서 정보를 데이터로 관리하는 경우를 생각하면, 사원 정보와 부서 정보를 하나의 묶음으로 관리하면 데이터 구조가 간단해진다. 왜냐하면 부서 이름이 바뀌면 해당 부서 사원들의 부서 정보를 일일이 찾아서 모두 변경해 주어야 하기 때문이다.

 

관계형 데이터 모델의 핵심 구성요소를 간단히 표로 정리한 내용이다.

이름 설명
개체 entity 데이터베이스에서 데이터화려는 사물, 개념의 정보 단위이다. 관계형 데이터베이스의 테이블 table 개념과 대응되며 테이블은 릴레이션 relation으로 표기한다.
속성 attribute 개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류, 특성, 상태 등을 정의한다. 관계형 데이터베이스에서 열 column 개념과 대응된다.
관계 relationship 객체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용한다. 관계형 데이터베이스에서는 테이블 간의 관계를 외래키 foreign key 등으로 구현하여 사용한다.

 

이 핵심 구성요소를 활용하여 데이터의 독립성 independency과 무결성 integrity과 같은 데이터를 안전하게 관리하기 위해 필요한 개념들을 정의하게 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함