Database/Cassandra

[Cassandra][datastax] Conceptual Data Modeling, Entity-Relationship (ER) Model

bisi 2020. 5. 25. 16:03

강의에서는 카산드라 모델링 과정을 아래와 같이 가이드 하고 있다. 

cassandra modeling

 

 

그중 Conceptual Data Model을 먼저 작성해보자.

 

데이터 모델링의 개념적 접근을 위해 Entity-Relationship (ER) Model 개념을 선행한다. 

 

Entity-Relationship (ER) Model은 데이터베이스를 디자인하기 위해 이용되는 모델링 기법으로 데이터베이스 요구 사항을 그래픽 적으로 표현하는 방법이다. ER 모델에서는 데이터 베이스에 저장되는 데이터를 추상화하여 나타내기 때문에 특정 DBMS 및 하드웨어에 독립적으로 데이터베이스의 구조를 나타낼 수 있다.

 

Entity-Relationship (ER) Model은 Entity Types - Relationship Type - Attribute Types으로 구성되어 있다. 

엔티티 타입, 관계형 타입, 어트리뷰트 타입을 한꺼번에 나타낸 그림이다. 

 

 

세부적으로 자세히 알아 보자.

 

EntityType

  • Video와 Actor 를 Entity Type이라고 보면된다. 
  • 테이블 설계할 때, 테이블로 구성되는 후보이다.

 

Relationship Type

  • 테이블 간의 관계를 나타낸다. 
  • 카산드라는 내부 조인이 없기 때문에 테이블간의 관계는 하나의 테이블로 구성하거나, 두개의 테이블에서 각각 데이터를 가져와 처리하는 방법이 있다. 

 

Cardinality

  • video 와 actor는 n: m 관계임을 나타낸다.

 

Attribute Types

  • Video의 속성 : url, description, title, id, tags, genres
  • Actor의 속성 : name (first name, last name)

 

 

Key Attribute

  • 엔티티의 속성중 유니크한 속성으로 구별하여 관리한다.
  • ex ) Video : id, Actor : name

 

 

Composite Attribute

  • 복합 속성 : 두개이상의 속성으로 구성된것을 의미한다.
  • 예를들어 genres는 코미디, 공포등 여러개의 값이 동시에 구성될 수 있다. 

 

 

Multi-Valued Attribute

  • 하나의 객체가 여러 값을 가질 수 있는 속성을 말한다.
  • 예를 들어 이름은 first-name, last-name으로 여러개로 분류하여 존재할 수 있다.

 

 

Weak Entity Types

  • 개체가 가진 속성들로는 개체를 고유하게 정의할 수 없는 개체를  말한다
  • 예를 들어 Encoding은 Video와의 관계를 명시엥 정의할 수 있고, 의미가 있어진다. 따라서 Encoding은 weak entity에 해당한다. 
  • weak entity가 아닌 모든 개체는 regular entity라고 말한다.

 

 

 

참고 사이트 

https://blog.softwaremill.com/7-mistakes-when-using-apache-cassandra-51d2cf6df519

https://academy.datastax.com/paths

https://untitledtblog.tistory.com/127