본문 바로가기
자격증/데이터아키텍처 준전문가(DAsP)

DAsP(4과목) 1-2. 데이터 모델링 기법 이해

by 김엉배 2023. 9. 3.
728x90
반응형

1.  데이터 모델 목적


  • 데이터 모델은 데이터베이스 설계에 대한 계획 또는 청사진이다.
  • 설계자와 개발자, 사용자 등 모 든 관련자들은 데이터 모델을 통해 구축될 시스템의 데이터 구조에 대한 형상을 이해하고, 요구 사항의 구현과 변경 등에 대해 원활한 의사소통을 도모하게 된다.

 

 

 

 

2.  개체-관계 모델 기법(Entity-Relationship Modeling)

- 1976년에 피터 첸(Peter Chen)에 의해서 최초로 제안되었으며 그의 논문을 통해 이 모델의 기본적인 구성 요소가 정립되었다.


  • 데이터에 대해 관리자, 사용자, 개발자들이 서로 다르게 인식하고 있는 뷰들을 하나로 통합할 수 있는 단일화된 설계안을 만들 수 있다.
  • 개체-관계 다이어그램(ERD, Entity Relationship Diagram)으로 표현된다.
    - 개체, 관계, 속성이라는 세 개의 기본 요소를 사용
    - 엔터티와 이들 간의 관계를 미리 약속된 도형을 사 용하여 알기 쉽고 일목요연하게 그림으로 표시한 것이라 정의할 수 있다.

 

 

 

 

3.   개체-관계 모델 구성 요소


  • 일반적으로 개발 방법론에 의하여 논리 모델링(논리 데이터 모델링)과 물리 모델링(물리 데이터 모델링)으로 나눌 수 있다.
  • 논리 데이터 모델
    - 업무 담당자와 IT 시스템 설계자 사이의 의사소통이라 할 수 있다.
    - 데이터베이스나 하드웨어 등과 같은 시스템과 아무 런 상관없이 업무에서 필요한 데이터를 그림으로 그려놓고 이를 검증하는 방법
    - 외래키(FK, Foreign Key), 기본키(PK, Primary Key), 액세스 성능, 분산 시스템 등의 물리적 시스템 환경은 고려하지 않는다.
    - M:M 관계, 순환 관계(Recursive), 슈퍼/서브 타입(Super/Sub Type), 배타적(Arc) 관계 등을 갖고 있는 개체(엔터티)가 많다.

  • 물리 데이터 모델링
    - 논리 데이터 모델링을 기초로 현재의 시스템 환경(네트워크, 하드 웨어, 운영체제, 미들웨어, 데이터베이스, 디스크 용량, 분산 등)을 고려하여 최고의 성능 향상을 목적으로 한다.

 

가) 엔터티(Entity)

  • 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서, 그 대상들 간에 동질성을 지닌 것으로 볼 수 있는 개체 집합이나 그들이 행하는 행위의 집합으로 정의할 수 있다.
  • 동질성을 갖는 개별 개체나 행위를 지칭하며, 달리 엔터티 인스턴스 (Entity Instance)라고도 한다.

 

나) 속성(Attribute)

  • 엔터티에 저장되는 개체 집합의 특성을 설명하는 항목이라고 할 수 있다.
  • 개체-관계 다이어그램에서 속성은 개체 집합을 나타내는 직사각형에 실선으로 연결된 타원형으로 표현되며, 각 타원형은 고유의 속성 이름을 갖는다.

 

 

다) 식별자

  • 엔터티의 각 개체들은 인스턴스라고 하는데, 인스턴스는 그들을 지칭하거나 식별해 주는 속성인 식별자(Unique Identifier)를 가진다.
  • 논리적인 관점에서 사용되고 키(Key)는 물리적인 관점에서 사용된다. 따라서 엔터티는 식별 자를 가지며, 테이블은 키를 가진다고 할 수 있다. 이러한 이유로서 식별자가 엔터티에 대해 하는 역할은 키가 테이블에 대해 하는 역할과 동일하다.

 

라) 관계(Relationship)

  • 엔터티와 엔터티 간 연관성을 표현하는 것으로, 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다.
  • 관계의 표현에는 이항관계(Binary Relationship), 삼항 관계(Ternary Relationship), n항 관계가 존재할 수 있는데, 실제 삼항 관계 이상은 잘 사용되지 않는다.

 

 

마) 카디날리티(Cardinality)

  • 개체-관계 다이어그램은 데이터베이스가 지켜야 할 제약 조건들을 명시할 수 있다.
  • 관계의 연결은 1:1, 1:M, M:M으로 분류된다.
    - 일대일(One To One, 1:1) : X에 속하는 한 개체는 Y에 속하는 한 개체에만 연결되며, Y에 속하는 한 개체도 X 에 속하는 한 개체에만 연결된다.
    -
    일대다(One To Many, 1:M) : X에 속하는 한 개체는 Y에 속하는 한 개체에만 연결되며, Y에 속하는 한 개체는 X에 속하는 여러 개체와 연결된다.
    - 다대다(Many To Many, M:M) : X에 속하는 한 개체는 Y에 속하는 여러 개체와 연결될 수 있으며, Y에 속하는 한 개체도 X에 속하는 여러 개체와 연결될 수 있다.

 

바) 존재  종속

  • 만약 한 엔터티의 존재가 다른 엔터티(들)의 존재에 영향을 받는다면 이를 존재 종속 (Existence-Dependent)이라 한다.

 

사) 서브 타입

  • 의미로는 서브 타입 엔터티이며 그것의 전체집합인 슈퍼타입(Supertype)의 부분집합이다.
  • ex) 학생들은 학 부학생이나 대학원생으로 분류될 수 있다. 이 경우 학생이 슈퍼타입이고 학부학생과 대학원생은 서브타입이다.

 

 

 

 

 

 

4.   객체지향 모델링(Object-Oriented Modeling)


가) 객체지향 개념

  • 조직이나 시스템은 객체(Object)라는 것에 관련되어 있고 객체에 대한 정보를 저장한다.(고객, 직원, 교실, 책 등)
  • 객체는 대개 객체를 기술하는 데이터와 그 기술 데이터를 운영하는 메소드(Method)로 구성된다. 속 성 유형과 메소드를 공유하는 객체가 그룹화되어서 객체 클래스(또는 클래스)로 된다.
  • 객체 인스턴스는 객체 클래스의 어커런스이다. 예를 들어, 직원이 객체 클래스이면 ‘홍길동’은 클래 스 직원의 객체 인스턴스이다.
  • 객체는 연관(Association) 또는 상속(Inheritance)을 통해서 다른 객체들에 연결된다. 연관은 객체 간의 자연적 관계이다.

 

나) 객체 모형

  • 객체 모형을 생성시키기 위해서 아래와 같은 방법을 취한다.
    1) 주제에 연관된 기본(Basic) 객체를 식별한다. 그 결과는 엔터티 목록과 같은 것이다.
    2) 객체 간의 연관(Association)을 식별한다.
    3) 많이 알려져 있는 객체 모델링의 규약을 이용해서 객체의 다이어그램을 그린다
    4) 객체 간의 메시지는 다이어그램에 추가될 수 있다.

 

다) 객체 모형의 메소드

  • 객체 메소드가 복잡하지 않다면 메소드는 간단한 설명부(Narrative) 또는 구조화된 기법으로 가장 잘 문서화된다.
  • 복잡한 메소드는 좀 더 정교한 문서화 접근 방식이 필요하다.
  • 이벤트 지향적인 프 로세스는 상태 전이 모델링(State Transition Modeling)과 같은 동적(Dynamic) 프로세스 모델링 기법이 필요
  • 정적인 프로세스는 데이터 흐름 다이어그램이나 기능 분해(Functional Decomposition)와 같은 기법을 사용

 

라) 객체지향 모델링과 논리 데이터 모델링 간의 관계

  • 객체지향 모델링 개념은 논리 데이터 모 델 링의 개념과 매우 유사하나 객체지 향 모델링에서만 유일한 것은 데이터와 프로세스를 같은 엔터티로 결합시킨다.

 

마) 객체 지향 모델링 장점

  • 재사용 코드와 같은 개념이 실제로 가능한 환경을 제공한다는 것이다.
  • 데이터와 프로세스가 객체의 성질인 반면 데이터와 프로세스 각각은 그들의 풍부함(Richness)을 달성하는 다른 접근 방식을 필요로 한다는 사실이 위의 사항들을 확신하게 한다.
728x90
반응형