데이터베이스 모델링

3 minute read

데이터 모델링의 이해

모델링(Modelling)

모델링은 Software를 개발하기 위해 복잡한 현실세계를

  • 추상화 : 특징을 추출
  • 단순화 : 이해하기 쉽게, 개념도
  • 명확화 : 구현을 위해 구체화

하기 위해 일정한 표기법으로 표현하는 것이다. 또한 모델링은 만들고자 하는 대상을 이해하는 과정이다.

모델링의 관점

  • 데이터 관점 : 관리하고자 하는 정보, 정보간의 관계는 무엇인지 대해 모델링 하는 방법. ERD.

  • 프로세스 관점 : 수행하는 업무가 무엇인지, 무엇을 해야하는지를 모델링 하는 방법. 프로세스 설계, 화면설계서.

  • 데이터 - 프로세스 관점 : 어떤 프로세스가 어떤 데이터를 생성하고 관리하는 지 확인. 데이터와 프로세스의 누락여부 검증시 사용.

데이터 모델링

데이터 모델링은 정보시스템을 구축하기 위한 데이터 관점의 업무분석 기법이며, 데이터베이스를 구축하기 위한 분석/설계의 과정이다.

* 데이터 모델링의 3단계
  1. 개념적 단계 : 포괄적 수준의 모델링, 추상화 수준이 높고 업무중심적. 전사적 데이터 모델링
  2. 논리적 단계 : KEY, 속성, 관계를 정확히 표현. 정규화, 구현해야할 모든 Entity 도출
  3. 물리적 단계 : 실제 데이터 베이스에 이식하기 위한 물리적 성격(저장방법,성능) 고려. 반정규화.
* 데이터 모델링 시 유의점
  • 중복 : 중복 저장될 시 데이터 정합성(데이터가 모순없이 일관되게 일치하는 것)에 문제가 생긴다.

  • 비유연성 : 프로세스에 종속된 데이터 모델은 유지보수가 어렵다. (프로세스는 수시로 변경되기 때문에) 따라서 데이터는 프로세스랑 어느 정도 분리되어야 한다.

  • 비일관성 : Business Rule의 불일치. ex) 사원은 부서 정보를 가져야한다 -> 부서정보가 없는 사원이 존재할 경우. 데이터간 상호 연관관계를 명확히 정의하면 예방할 수 있다.

* 데이터베이스의 3단계 구조

위와 같은 중복/비유연성/비일관성을 극복하기 위해 데이터 독립성 모델, 데이터 3단계 구조가 등장했으며, 이것을 기반으로 DBMS가 설계된다. 각 단계는 서로 영향을 주지 않는다.

데이터 독립성 : 상호 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 기능을 극대화 하는 것.

데이터베이스 3단계 구조는 초창기 모델인 점을 참고하자.

항목 내용 비고
외부스키마 사용자 관점의 모델 구조. 사용자에 따라 다양한 모델(권한에 따라 조회) 사용자관점
개념스키마 전사/통합적 관점에서 바라보는 모델 구조. ERD. 단 하나만 존재. 통합관점
내부스키마 물리장치에 저장하는 관점의 모델 구조. 저장방법, 성능 제약에 따라 다양한 모델. 물리적 저장구조
* 좋은 데이터 모델의 요소
  1. 완전성 : 필요로하는 데이터는 모두 데이터 모델에 정의되어야 한다.
  2. 중복배제 : 동일한 사실은 한번만 기록해야 한다.
  3. 업무규칙 : 업무규칙을 데이터 모델에 표현. (너무 많이 반영하면 유연성이 떨어진다.)
  4. 데이터 재사용 : 독립성에 대한 고려 필요.
  5. 의사소통 : 데이터모델을 통해 의사소통을 한다.
  6. 통합성 : 동일한 데이터는 조직전체에서 하나만 정의되도록 통합해야.

데이터 모델링의 요소

* 데이터 모델링의 3요소

개념 내용 비고
업무가 관여하는 어떤 것(Things) 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합 엔터티(Entity)
어떤 것이 가지는 성격(Characteristic of a Things) 집합에서 관리할 정보, 엔터티는 속성을 통해 설명된다. 속성(Attributes)
어떤 것 간의 연관(Association of Things) 집합간의 관계. 관계(Relationships)

엔터티(Entity)

엔터티는 업무가 관여하는 어떤 것, 관리하고자 하는 대상의 집합이다. 유일한 식별자에 의해 실별이 가능하며, 영속적으로 존재하는 2개이상의 인스턴스 집합이다. 반드시 속성을 가지고 있고 다른 엔터티와 최소 한 개 이상의 관계가 있다.

엔터티의 분류
  • 유/무형에 따른 분류
개념 내용 예시
유형Entity 물리적인 형태가 있고, 지속적으로 활용되는 엔터티 사원,물품,강사
사건Entity 업무를 수행함에 따라 발생되는 엔터티 주문, 청구, 미납
개념Entity 관리해야할 개념적 정보 조직, 보험상품
  • 발생시점에 따른 분류
개념 내용 예시
Key Entity(기본엔터티) 스스로 존재하며 독립적으로 생성이 가능한 엔터티 사원,부서,고객
Main Entity(중심엔터티) Key Entity가 행위를 함으로서 발생되는 행위의 집합 주문,판매,계약
Action Entity(행위엔터티) 행위, 실제 발생업무. 자주변경되며 지속적 증가가 있는 엔터티 주문목록,사원변경이력

속성(Attributes)

업무에서 필요로하며, 의미상 더이상 분리되지 않는(원자단위) 것. 엔터티를 설명하고 인스턴스의 구성요소가 된다.

  • 원자단위 : 분리 불가능한 단위 (프로세스마다 틀릴 수 있다. ex: 이름(Full name), 이름(First name) - 성(Last name))
  • 유일 : 고객이라는 Entity의 고객번호 - 유일, 계약일 - 정의에 따라 하나가 아닐 수도 있음. ex) 최종계약일…
  • 근원값 : 중복방지. 다른 곳에서 만들수 없는 것.

관계

관계의 정의는 상호 연관성이 있는 상태로, 데이터모델링에서 관계는 업무가 관여하는 어떤 것(집합)간의 관계를 뜻한다.

관계의 표기법
  • 관계명(Membership) : 관계의 이름
  • 관계차수(Cardinality) : 1:1, 1:M, M:N
  • 관계선택사양(Optionality) : 필수관계, 선택관계

출처 : 데이터 전문가 지식 포털
http://www.dbguide.net/db.db?cmd=view&boardUid=148181&boardConfigUid=9&categoryUid=216&boardIdx=132&boardStep=1

식별자

식별자 분류

대표성을 가지는가에 따라 주식별자, 보조식별자 스스로 생성되었는지에 따라 내부식별자, 외부식별자 단일 속성으로 식별되는 가에 따라 단일식별자 복합식별자 일련번호등 의미있는 식별자를 대체하는 식별자를 구분하기 위해 본질식별자, 인조식별자로 구분한다.

대표성 여부 설명
주 식별자 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자. 타 엔터티와 참조관계를 연결할 수 있다.
보조식별자 엔터티 내에서 각 어커런스를 구분할 수 있으나 대표성을 가지지 못해 참조관계 연결을 못함.
스스로 생성 여부 설명
내부식별자 엔터티 내부에서 스스로 만들어지는 식별자
외부식별자 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
속성의 수 여부 설명
단일식별자 하나의 속성으로 구성된 식별자
복합식별자 둘 이상의 속성으로 구성된 식별자
대체 여부 설명
본질식별자 업무에 의해 만들어지는 식별자
인조식별자 업무적으로 만들어지지 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자 ex)사원ID
주 식별자의 특징
  • 유일성 : 모든 인스턴스(ROW)를 유일하게 구분
  • 최소성 : 식별자의 컬럼은 유일성을 만족하는 최소의 수
  • 불변성 : 식별자 값은 변하지 않아야 한다.
  • 존재성 : 식별자는 반드시 값이 존재해야한다. (NOT NULL)

Categories:

Updated:

Comments