본문 바로가기

데이터베이스

[Database] 데이터 모델링

 

데이터 모델링data modeling

현실 세계에 존재하는 데이터를 추상화를 통해 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

데이터 모델링에는 개념적 모델링논리적 모델링 2가지로 나뉘며,

일반적으로 명확하게 구분하지는 않고 합쳐서 데이터 모델링이라고 표현을 합니다.

추상화abstraction

현실 세계의 수많은 데이터 중 필요한 데이터를 뽑아내는 작업

현실세계의 수 많은 데이터들이 있습니다.

이러한 데이터들을 추상화하여 개념 세계로 옮기는 작업을 개념적 모델링라고 하며,

개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 표현하는 작업을 논리적 모델링이라고 합니다.


데이터 모델링은 선택 기준, 표현방법 등 쉽게 할수 있는 것이 아닙니다.

이러한 데이터 모델링을 쉽게 도와주는 도구가 데이터 모델입니다.

데이터 모델data model

데이터 모델링의 결과물을 표현하는 도구로 데이터 구조, 연산, 제약조건으로 구성되어 있으며,

개념적 데이터 모델논리적 데이터 모델이 있습니다.

개념적 데이터 모델은 현실 세계의 정보를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구이며,

논리적 데이터 모델은 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구입니다.


보통 개념적 데이터 모델링과 논리적 데이터 모델링을 통틀어 데이터베이스 설계라고 합니다.

데이터 모델링 과정을 통해 논리적 구조가 결정되면,

저장장치에 저장되는 형태인 물리적 구조로 변환하는 작업을 통해 최종적으로 컴퓨터 속에 저장을 하게 됩니다.


개념적 데이터 모델에서 대표적으로 많이 사용되는 것이 개체-관계 모델이며

개체-관계모델을 이용해 모델링하여 그림으로 표현한 것이 개체-관계 다이어그램(E-R 다이어그램)입니다.

개체 관계 모델E-R Model; Entity-Relationship Model

피터 첸이 1976년 제안한 것으로, 개채와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현한 것

개체 관계 모델을 제대로 활용하기 위해선 개체, 속성, 관계를 이해해야한다.

개체entitiy

현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것(가치 있는 데이터)을 의미

개체 타입 : 개체를 고유의 이름과 속성들로 정의한 것

개체 인스턴스 : 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체

개체 집합 : 특정 개체 타입에 대한 개체 인스턴스를 모아 놓은 것 (논리적 : 개체, 물리적 : 테이블)

속성attribute

개체가 가지고 있는 고유의 특성, 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위

값에 따른 속성 : 특정 개체를 구성하는 속성의 값, (1개이면 단일 값 속성, 여러 개이면 다중 값 속성)

의미에 따른 속성 : 의미를 더는 분해할 수 없는 경우 단순 속성

의미를 분해할 수 있어 값이 여러 개일 경우 복합 속성

유도 속성 : 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값(저장 속성)에서 유도되어 결정되는 속성

널 속성 : 널 값(아직 결정되지 않았거나 모르는 값)이 허용되는 속성

키 속성 : 개체를 구성하는 속성들 중에서 특별한 역할을 하는 속성 (ex. 고객 아이디)

관계relationship

개체와 개체가 맺고 있는 의미 있는 연관성으로, 개체 집합들 사이의 대응관계 = 매핑)을 의미

관계 유형) 매핑 원소의 수, 즉 매핑 카디널리티로 나뉜다. (1:1, 1:n, n:n)

관계의 참여 특성) 개체가 관계에 선택 참여하는지, 필수 참여인지 구분하는 것

관계의 종속성) 다른 개체의 존재 여부에 의존적인 개체를 약한 개체

다른 개체의 존재 여부를 결정하는 개체를 강한 개체


논리적인 데이터 모델은 E-R 다이어그램으로 표현된 개념적인 구조를 데이터베이스에 표현하는 형태이며,

일반적으로 많이 사용되는 모델은 관계 데이터 모델로 데이베이스의 논리적 구조가 2차원 테이블 형태입니다.

관계 데이터 모델이 제안되기 전에는 계층 데이터 모델과 네트워크 데이터 모델이 주로 사용되었다.

두 모델의 경우 1:n관계만 직접 표현이 가능하며 n:n관계는 두 개체 사이의 1:n 관계를 이용하여 표현한다.

계층 데이터 모델

데이터베이스의 논리적 구조가 트리 형태이며, 루트 역할을 하는 개체가 존재하고 사이클이 존재하지 않는다.

개체 관계를 링크로 나타내며, 두 개체 사이에 관계를 하나만 정의할 수 있어 관계에 이름을 붙여 구별하지 않는다.

상위 개체를 부모 개체, 하위 개체를 자식 개체라고 표현하기도 하며, 부모 자식 관계라 한다.

단점) 관계 정의 시 여러 제약이 존재하므로 논리적 모델링을 자연스럽게 하기 힘들며,

데이터의 조작 기능(C, R, U, D)이 쉽지 않다.

네트워크 데이터 모델

데이터베이스의 논리적 구조가 그래프 또는 네트워크 형태

개체 관계를 화살표로 나타내며, 두 개체 사이에 관계를 여러 개 정의할 수 있어 관계를 이름으로 구별한다.

일대다 관계에서 각각 오너와 멤버라 부르고, 오너-멤버 관계라 한다.

장점) 같은 개체들 사이의 관계를 두 개 이상 표현할 수 있어 계층 데이터 모델보다 논리적 모델링이 자연스럽다.

단점) 계층 데이터 모델보다 구조가 훨씬 복잡해질 수 있고, 데이터의 조작 기능(C, R, U, D)이 더 어려워진다.