본문 바로가기
데이터베이스 Database

데이터 모델링 Data Modeling

by 코딩균 2021. 12. 7.

현실 세계 존재하는 데이터를 컴퓨터 데이터 베이스의 구조 속으로 변환하는 작업

  • 추상화 (Abstraction) - 특정 관점에서 필요한 것들을 추출해내는 과정

 추상화를 통해서 현실 세계의 객체들을 데이터 베이스의 구조로 변환

 

개념적 데이터 모델링

현실적 세계를 개념적으로 모델링하여 ER-Diagram으로 변환하는 과정

개체(Entity)와 관계(Relation)를 중심으로 세계를 설명

개체 Entity

특정 관점에서 저장할 가치가 있는 데이터를 가지고 있고 구별되는 사람, 사물, 개념, 사건 등 

  • 개체 타입? 개체를 고유의 이름과 해당 개체가 가지고 있는 속성들로 정의한 것
  • 개체 인스턴스? 개체는 틀인데, 틀이 실제 값을 가지고 실체화 된것
  • 개체 집합? 개체 인스턴트들을 모아놓은 집합

개체 종류 

(뒤의 관계 설명과 연관시켜서 이해)

> 약한 개체 (Weak Entity)

   자기 자신 만의 속성으로는 다른 개체 인스턴스들과 구별할 수 없는 개체 -> 다른 개체가 존재하고 관계되어야 구별가능한 개체

   부분키 (Partial Key) : 다른 개체의 기본키와 같이 결합되어 구별되는 약한 개체 내의 키

 

> 강한 개체 (Strong Entity)

   혼자서도 충분히 다른 개체와 구별 가능한 개체

   

 

관계 Relation

개체들 사이의 어떠한 의미있는 관계가 있는지 나타냄

개체들 집합 사이의 매핑 관계

  • 매핑 카디널리티 (Mapping Cardinality)? 관계가 있는 두 개체 집합에서, 각 개체 인스턴스가 연관을 맺고 있는 상대 개체 집합의 인스턴스 개수
  • 1:1 관계
  • 1:N 관계 -> 강한 개체와 약한개체는 일반적으로 1:N 관계!
  • N:M 관계

관계의 참여 특성

 

> 필수적 참여 (전체 참여)

   개체의 인스턴스가 관계에 반드시 참여해야함

   나중에 논리적 모델링을 통해 제약 조건으로 변환됨

   약한 개체는 강한 개체와의 관계에서 필수적으로 참여

       -> E-R 다이어그램에서 두개의 선으로 표현

   "관리"라는 관계에 제품은 반드시 참여해야하는 개체 인스턴스

 

> 선택적 참여 (부분 참여)

   개체 인스턴스가 관계에 꼭 참여해도 되지 않아도 되는 것

      -> E-R 다이어그램에서 실선으로 표현

   "구매"라는 관계에서 고객이 상품 구매를 하지 않을 수도 있다

 

 

 

제약조건

삽입, 삭제, 변경의 SQL 연산 시에는 해당 제약 조들을 확인 후 신중히 실행해야 함

  • 전체 참여가 있는 관계
  • 관계의 종속성 - 약한 개체, 강한 개체가 존재하는가?
  • 개체 집한 간의 매핑 카디널리티

 

 

속성 Attribute

개체 혹은 관계가 가지는 특성

 

속성 값의 개수에 따른 분류

 

> 단일 값 속성 (Single-valued attribute)

   개체에서 하나의 값만 가질 수 있는 속성

   ex) 학생 개체의 학번, 이름

 

>  다중 값 속성 (Multi-valued attribute)

   개체에서의 여러개의 값을 가질 수 있는 속성

   application에서 어디까지 허용하는가에 따라서 다중 값 속성은 상이하다

      -> E-R 다이어그램에서 이중 타원으로 표현

   ex) 학생 개체의 연락처, 수강 과목

 

 

 

의미 분해에 따른 분류

 

> 단순 속성 (Simple Attribute)

   의미를 더이상 분해 불가능한 속성

 

> 복합 속성 (Composite Attribute)

   의미를 더이상 분해 불가능한 속성

   ex) 주소 같은 경우 - 도, 시, 동으로 세분화 가능

 


 

> 유도 속성

   다른 속성에서의 연산을 통해서 얻어질 수 있는 속성

      -> E-R 다이어그램에서 점선으로 표현

   ex) 상품의 재고량과 판매량 수를 고려하여 판매율을 고려했을 시, 판매율은 판매량/재고량 * 100에서 유도되는 속성이다

 

> 키 속성 (Key Attribute)

   개체의 각 인스턴스를 구별/식별하는 데에 사용되는 속성

   pk (primary key)라고 하기도 한다.

   하나의 속성만 PK가 되는 것이 아니라 여러개의 속성이 PK가 되기도 함

   -> E-R 다이어그램에서 실선으로 표시

 

 

 

논리적 데이터 모델

개념적 데이터 모델링을 완성된 개념적 구조를 데이터베이스의 논리적 구조(스키마)로 표현하는 과정

관계 데이터 모델을 사용하여 표현 -> 2차원 테이블 형태