Data modeling

데이터 모델링의 과정

  • 개념적 모델링 : 추상화 과정을 통해 중요한 데이터를 추출해 나열한다.
  • 논리적 모델링 : 나열한 데이터의 구조를 결정하고 표시한다.
  • 이 과정을 굳이 분리하지 않고 데이터 모델링으로 이야기한다.

데이터 모델의 구성

  • 데이터 모델은 데이터 모델리의 결과물을 표현하는 도구.
  • 개념적 데이터 모델 : 사람이 이해할 수 있는 모델링을 통해 개념적 구조로 표현
  • 논리적 데이터 모델 : 데이터베이스의 논리적 구조로 표현

개념적 데이터 모델

Entity 개체

  • entity 개념 = 테이블의 record
  • 개세는 사람과 사물처럼 물리적으로 존재하는 것만을 의미하지 않는다.
  • 개체는 다른 개체와 구별되는 이름을 가지고 있다.
  • 각 개체만의 고유한 특성이나 상태, 속성을 하나 이상 가지고 있다.
  • 고유한 속성들로 정의된 개체를 entity type이라고 한다.
  • Entity의 집합을 entity instance라고 한다.

Attribute 속성

  • attribute 개념 = 테이블의 column name
  • 속성과 개체의 표현

1) 단일 값 속성 / 다중 값 속성

  • 한명의 고객에게 이름은 하나다.
  • 한명의 고객은 전화번호가 여러개일 수 있다. (집전화, 회사전화, 휴대전화)
  • attribute가 값을 여러개 가질 수 있다.
  • 다중 속성 값이다.

2) 단순 속성 / 복합 속성

  • 고객의 이름은 분해할 수 없다.
  • 고객의 생년월일은 년, 월, 일로 분리 할 수 있다.

3) 유도 속성

  • 독립적인 속성이 아니라 다른 속성에 의해 최종 데이터가 결정되는 형태를 유도 속성이라고 한다.
  • sales_price(대충 최종판매가격)을 결정하는 가격과 할인율을 stored attribute라고 한다.

4) Null 속성

  • Blank와 0과는 다르다.
  • 데이터가 없는 것.

5) Key 속성

  • 키 속성은 entity instance 내에 있는 다른 entity와 식별하는데 사용한다.
  • Entity type을 정의할 때 중요한 제약조건은 key attribute의 값이 entity마다 달라서 이 값으로 entity instance를 식별할 수 있어야한다는 점이다.
  • 여러개가 key attribute가 된다면 그 중에 하나를 사용해도 된다.

Relationship 관계

  • 관계는 entity 집합 사이의 대응 관계, 즉 mapping을 의미한다.
  • 비즈니스 요구사항에서 개체를 이용해 문장을 만들었을 때 동사에 해당한다.

예를들어 "고객은 책을 구매한다." 할때 구매가 고객와 책의 관계가 된다.

  • 이항 관계 : entity type 두개가 맺는 관계
  • 삼항 관계 : 3개
  • 순환 관계 : 자기 자신과 맺는 관계

종속성

  • 구매라는 과정은 고객이 반드시 참여해야 이루어 진다. (고객이 책을 산다)
  • 고객 entity가 구매 관계에 필수적으로 참여한다.
  • entity가 관계에 선택참여하는지, 필수 참여하는지 여부는 데이터베이스 설계 과정에서 중요하게 고려해야되는 사항이다. 이는 데이터베이스 구축 후 새로운 레코드나 테이블 삭제/변경시 제약사항으로 활용되기 때문이다.

ERD

  • 이제 설명한 내용을 토대로 개념적 모델링을 통해 entity 관계 다이어그램 표현할 수 있다.

Comments