[DB] 데이터베이스 모델링

Database 강의 2강

Posted by Sol on February 23, 2021 · 2 mins read

데이터베이스 모델링은 왜 필요한가?

어떤 데이터를 저장해야 하고, 어떤 데이터를 집어넣지 않아야 하는가?

또한, 어떻게 데이터를 저장해야 하는가?

이 물음들에 대해 가장 효율적이고 합리적인 답을 도출하기 위해서 데이터베이스 모델링이 필요하다.

데이터베이스 모델링은

개념적 데이터 모델링 —> 논리적 데이터 모델링 —> 물리적 데이터 모델링

의 순서로 이루어진다.


개념적 데이터 모델링

개념적 데이터 모델링을 위해서는, 먼저 사용자 요구사항 분석이 필요하다.

데이터의 양이 폭발적으로 늘어남에 따라 데이터베이스의 구조가 점차 복잡해지고 수명 주기가 단축되고 있다.

따라서 데이터에 대한 충분한 사전 분석, 사용자 요구사항 명세와 설계가 필요하다.

따라서 제안요청서 –> 요구사항명세서 –> 요구사항정의서의 순서로 사용자 요구사항을 분석한다.


ER(Entity - Relation) 모델

실세계의 속성들로 이루어진 개체(Entity)와 개체 사이의 관계(Relation)로 데이터 구조와 관계를 표현하는 것.

현대 사회에서 사실상 표준으로 활용되는 데이터 모델이다.


개체(Entity)란?

실세계에 존재하는 다른 객체와 구별되는 유무형의 사물을 개체라 한다.

개체는 개체를 설명하는 여러 속성(attribute)으로 구성된다.

같은 속성을 공유하는 개체들의 모임을 개체 집합(Entity set)이라 한다.

예) 학생 Entity ==> 학생번호, 학생이름, 성별, 나이… 등의 속성(attribute)으로 이루어져 있다.

Entity는 테이블이 될 수도 있고 안 될 수도 있다.

논리적 모델링에서 도출된 Entity를 물리 모델링에서는(실제 Table을 생성하는 과정에서는) 쓸 수 없을 수도 있다(추상 엔티티 등).

일반적으로 한 Entity의 속성은 물리 모델링에서 컬럼(Column)이 된다.


관계(Relation)란?

개체와 개체 사이의 연관성이다.


속성(attribute)이란?

개체를 구체적으로 설명하는 것으로, 여러 종류로 나눌 수 있다.

  • 단순속성 : 더 작은 구성요소로 나눌 수 없는 속성
    • 학생 이름, 성별, 나이 등…
  • 복합속성 : 세부적인 또 다른 값으로 나눌 수 있는 속성
    • 생년월일 - 년, 월, 일 로 나눌 수 있다.
  • 단일값 속성 : 한 개체에 대해 단 하나의 값만을 갖는 속성
    • 학생이름 - 학생 개체는 하나의 이름밖에 가질 수 없음
  • 다중값 속성 : 한 개체에 대해 여러 개의 값을 갖는 속성
    • 전화번호 - 학생 개체는 복수의 전화번호를 가질 수 있음


사상수(mapping cardinality)

개체와 개체 사이의 관계 종류를 의미하며, 1:1 관계 / 1대 다 관계 / 다대다 관계 가 있다.


키(Key) 속성

각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합.

개체를 고유하게 구분하는 역할을 하며, 관계 집합의 특정 관계를 찾는 역할을 한다.


위 내용은 ‘방송통신대학교’의 데이터베이스 강의 내용을 요약 정리한 것임을 밝힙니다. (https://www.knou.ac.kr/)