Home 데이터 모델링
Post
Cancel

데이터 모델링

데이터 모델링

현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정을 데이터 모델링이라 한다.

datamodeling

현실 세계에서 데이터를 추출하여 개념 세계로 옮기는 작업을 개념적 모델링, 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 구조를 표현하는 작업을 논리적 모델링이라고 한다.

데이터 모델

데이터 모델링의 결과물을 표현하는 도구로 일반적으로 데이터 구조, 연산, 제약 조건으로 구성되며 개념적 데이터 모델과 논리적 데이터 모델로 나눌 수 있다.

  • 개념적 데이터 모델 : 사람이 이해할 수 있도록 현실 세계를 개념적 데이터 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
  • 논리적 데이터 모델 : 개념적 구조를 논리적 데이터 모델 링하여 데이터베이스의 논리적 구조로 표현하는 도구

말로 표현하면 어려운데 쉽게 말해 개념적 데이터 모델은 E-R 다이어그램이라고 보면 되고 논리적 데이터 모델은 해당 다이어그램을 테이블로 만든 것이라고 보면 된다.

개체-관계 모델

현실 세계를 개체(entity)와 개체간의 관계(relationship)를 이용해 개념적 구조로 표현하는 방법이다. 이를 이용해 그림으로 표현하면 E-R 다이어그램이 된다.

개체

저장할 만한 가치가 있는 데이터를 가지고 있는 모든 것을 뜻한다. 개체는 각자의 이름을 가지며 속성을 하나 이상 가지고 있으며 개체를 고유의 이름과 속성들로 정의한 것을 개체 타입이라 한다. 이때 실체화 된 개체를 개체 인스턴스 또는 개체 어커런스라고 한다.

E-R 다이어그램에선 사각형으로 그린다.

속성

개체가 가지고 있는 고유의 특성으로 속성만으로는 의미가 없지만 관련있는 속성을 모아 개체를 구성하면 중요한 의미를 표현할 수 있다. 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위로 인식한다.

E-R 다이어그램에선 타원으로 그린다.

단일 값 속성과 다중 값 속성

개체를 구성하는 속성의 값의 개수에 따라 단일 값, 다중 값으로 분류하는데 배달 주문의 경우 주문자가 단일 값 속성, 메뉴가 다중 값 속성이라 볼 수 있다. 이 중 다중 값 속성은 E-R 다이어그램에서 이중 타원으로 그린다.

단순 속성과 복합 속성

의미의 분해 가능성에 따라 단순 속성과 복합 속성으로 나눌 수 있는데 복합 속성의 경우 생년월일을 년도, 월, 일로 나누는 것이라 생각할 수 있다.

유도 속성

값이 기존의 다른 속성 값에 의해 유도되어 결정되는 속성을 뜻하며 점수와 전체 수로 계산되는 평균 점수의 경우를 예로 들 수 있다. 또한 필요할 때마다 계산되므로 따로 저장할 필요가 없다.

널 속성

널 값이 허용되는 속성을 말하며, 이때 널은 0과 공백과 다르게 값이 존재하지 않는 것으로 아직 갖지 않은 값이라 할 수 있다. 즉 회원가입에 추천인처럼 값을 넣을 수 있지만 넣지않았을 때 추천인은 존재하지 않으므로 널 속성이라 볼 수 있다.

키 속성

개체 집합에 존재하는 각 개체 인스턴스를 식별하는데 사용하는 속성이다. 학생의 경우 동명이인이 있을 수 있는데 학번은 모두 다르므로 학번을 키 속성으로 사용할 수 있다.

E-R 다이어그램에서 밑줄을 그어 표현한다.

관계

개체 집합들 사이의 대응 관계를 의미한다. 고객이 가게에 주문을 할 때 고객 개체와 가게 개체는 주문이라는 관계를 가진다. 관계도 속성을 가질 수 있는데 이 경우 주문할 때 필요한 픽업 방식과 결제 방식이 주문의 속성이 될 수 있다. 여기서 주문을 관계 타입이라 할 수 있고 픽업방식을 배달, 결제방식을 카드로 할 때 관계의 실제 값인 배달과 카드를 관계 인스턴스로 표현할 수 도 있다.

E-R 다이어그램에서 마름모로 그린다.

관계의 유형

관계에 참여하는 개체 타입의 수를 기준으로 이항 관계, 삼항 관계, 순환 관계 등으로 나눌 수 있으며 매핑 카디널리티를 기준으로는 1:1, 1:N, N:M의 관계로 나눌 수 있다. 이때 매핑 카디널리티는 관계를 맺는 두 개체에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체의 집합 인스턴스의 개수를 의미한다.

관계의 참여 특성

두 개체 사이의 관계에서 한 개체의 모든 개체 인스턴스가 관계에 반드시 참여해야 한다면 이를 필수적 참여한다 혹은 전체 참여한다 라고 하고 일부만 참여해도 된다면 선택적 참여한다 혹은 부분 참여한다 라고 한다. 고객 개체와 가게 개체의 주문 관계에서 모든 고객이 반드시 주문해야하는 제약조건이 존재하면 고객 개체가 필수적 참여한다고 할 수 있다.

이중 필수적 참여의 경우 E-R 다이어그램에서 이중선으로 표현한다.

관계의 종속성

한 개체가 독자적으로 존재할 수 없고 다른 개체의 존재 여부에 의존적이라면 종속되었다고 한다. 다른 개체에 의존적인 개체를 약한 개체 다른 개체의 존재 여부를 결정하는 개체를 오너 개체라고 한다. 일반적으로 오너 개체와 약한 개체는 1:N의 관계를 가지고 약한 개체는 오너 개체와의 관계에 필수적으로 참여한다는 특징이 있다.

약한 개체는 자신의 속성만으로는 구분이 어려워 오너 개체의 키를 포함하여 키를 구성한다. 예를 들어 회원과 댓글의 관계의 경우 회원이 없다면 댓글이 없기 때문에 회원이 오너 개체, 댓글이 약한 개체인데 댓글의 속성중 내용은 중복이 가능하므로 회원의 아이디와 댓글의 내용 속성을 조합하여 댓글의 키를 구성할 수 있다. 이때 댓글의 내용 속성처럼 약한 개체를 구별하는 역할을 하는 속성구별자 혹은 부분키라고 한다.

E-R 다이어그램에서 약한 개체는 이중 사각형, 약한 개체와 오너 개체가 맺는 관게는 이중 마름모로 표현한다.

논리적 데이터 모델

E-R 다이어그램으로 표현된 개념적인 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조를 말하며 사용자가 생각하는 데이터베이스의 모습이라 생각하면 된다. 데이터들의 관계를 표현하는 방법에 따라 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델로 구분할 수 있다.

  • 관계 데이터 모델 : 2차원 테이블 형태의 모델이다.

  • 계층 데이터 모델 : 트리 형태의 모델이다.
  • 네트워크 데이터 모델 : 그래프 또는 네트워크 형태의 모델이다.
This post is licensed under CC BY 4.0 by the author.

데이터베이스 시스템

관계 데이터 모델