Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog

[자격증]/DAsP(데이터아키텍처 준전문가)

[DAsP 한 권으로 끝내기] Chapter4.데이터 모델링 - (1)

DH’s Blog 2023. 6. 3. 18:11
반응형

 

기업이 관리하는 데이터의 양이 기하급수적으로 증가하면서 데이터의 품질 문제는 무엇보다 더 중요해졌다. 이번 장에서는 양질의 데이터 모델링 설계를 위해 알아야할 것들에 대해 배워볼 예정이다.

[Part1. 데이터 모델링]

IT 분야에 관심이 있는 사람이라면 한번쯤은 데이터 모델링이란 단어를 들어봤을 것이다. 먼저, 데이터 모델링이 무엇인지에 대해서부터 알아보도록 하자.

 

1-1. 데이터 모델링이란?

  • 업무 수행을 위한 데이터베이스(Database) 생성에 필요한 구조와 규칙을 표현한 것을 의미한다.
  • 쉽게 생각하면 데이터 모델(Data Model)은 데이터베이스 설계 과정에서 데이터의 구조와 규칙을 나타내는 도구라고 생각하면 된다. (=데이터 베이스 설계를 위한 청사진)

 

1-2. 데이터 모델링이 필요한 이유

  • 정보 요구사항을 표현하여 이해관계자 간의 의사소통 도구가 된다.
  • 데이터를 중복없고 정확하게 유지, 관리하는 것을 목적으로 하므로 데이터 품질 향상에 기여한다.
  • 데이터 모델링을 통해 시스템을 설계하고 이해할 수 있도록 도와준다.

 

데이터 모델 중 단순함을 이유로 가장 일반적으로 사용되는 것이 ‘엔터티-관계’ 데이터 모델이다. 이 모델에서 사용되는 기본 개념에 대해서 알아보자.

 

 

1-3. 엔터티-관계 데이터 모델(Entity-Relationship)

  • 엔터티란? (⇒ 데이터베이스 설계시 테이블이 되는 대상)
    • 업무 수행을 위해 필요한 사물/사건/개념을 나타낸다. (ex. 부서/사원)
    • 어떤 대상이 엔터티에 속하는지 결정하는 것이 중요하기 때문에 해당 업무를 가장 잘 아는 업무 전문가가 엔터티 결정 과정에 참여해야 한다.

 

  • 관계란?
    • 하나 또는 두 개의 엔터티 사이에 연관된 업무 규칙을 의미한다.
    • 엔터티 관계는 일대일/일대다/다대다 관계로 나타낼 수 있다.
    • 엔터티 간의 관계는 중복 데이터를 배제하는 데 도움이 되기 때문에 데이터 정확성을 향상시키게 된다.

 

  • 속성과 도메인이란? (⇒ 데이터베이스 설계시 컬럼과 컬럼 특성이 되는 대상)
    • 속성은 엔터티에 저장되는 값들의 특성을 설명하는 대상이며, 해당 속성은 한 도메인 상에서 정의된다.
    • 쉽게 생각하면 속성은 컬럼이고, 도메인은 컬럼의 데이터 타입(ex. 문자,날짜 등)을 나타내는 것이다.

 

  • 식별자란?
    • 엔터티의 특정 인스턴스(⇒ 하나의 행을 의미)를 식별할 수 있는 하나 이상의 속성을 의미한다.
    • 만약 사원이라는 엔터티가 있을 때 각 사원은 사원번호라는 속성을 통해 식별할 수 있고, 이 사원번호를 식별자라고 하게 된다.

 

 

 

위에서 다룬 개념은 모델링에서 사용되는 기본 개념이므로 꼭 알아두어야 한다. 이후 대용량의 데이터를 취급하기 위해 관계형 모델이란 개념이 새롭게 등장하게 되었다. (참고로, 관계형 모델은 수학의 집합 이론을 배경으로 만들어졌다.)

 

관계형 모델에서 데이터는 릴레이션 내에 구성되는데, 릴레이션은 무엇일까?

 

 

 

 


[Part2. 관계형 모델]

2-1. 릴레이션에 대하여

  • 관계형 모델의 데이터는 열(column)과 행(row)으로 구성된 2차원 테이블로 표현되며, 일반적으로 릴레이션은 데이터베이스의 테이블이라 생각하면 된다.
  • 관계형 모델에서는 열을 애트리뷰트(attribute), 행을 튜플(tuple)이라 부른다는 것도 알아두어야 한다.

 

2-2. 관계형 모델의 6가지 특성

  • 열(=column, attribute)에 대한 특징
    • 각 열은 하나의 값 만을 가져야한다.
    • 각 열에 속하는 값은 모두 동일한 종류여야 한다.
    • 각 열은 유일한 이름을 가져야 한다.
    • 열의 순서에는 의미가 존재하지 않는다.

 

  • 행(=row, tuple)에 대한 특징
    • 테이블 내의 각 행은 유일해야 한다.(=중복된 행이 존재하면 안된다.)
    • 행의 순서에는 의미가 존재하지 않는다.

 

 

2-3. 관계형 모델의 데이터 조작

  • 위에서 관계형 모델은 수학의 집합 이론을 배경으로 만들어졌다고 했듯이, 데이터를 집합 단위로 처리하는 것을 지향하고 있다.
/* 데이터 집합 단위 처리 예시 */
SELECT 부서.부서명, COUNT(사원.사원번호)
FROM 부서, 사원
WHERE 부서.부서코드 = 사원.부서코드
GROUP BY 부서명
ORDER BY 부서명

 

  • 👉 (아래 더보기) 데이터의 관계 및 처리 연산자에 대하여
    • 더보기
      관계 연산자는 단순히 데이터를 조회할 때에 사용하는 연산자를 의미한다.

      ▪️Select(or Restrict) : 열을 기준으로한 행의 부분집합
      ▪️Project : 열의 부분집합
      ▪️Product : 두 관계 테이블간 행의 조합
      ▪️Join : 열을 기준으로 행을 수평적으로 묶음
      ▪️Union : 중복 없이 행을 수직적으로 묶음
      ▪️Intersection : 두 관계 테이블간 공통된 행
      ▪️Difference : 하나의 관계 테이블에만 있는 행
      ▪️Division : 다른 관계 테이블의 모든 행에 대응하는 열을 제외한 열


      처리 연산자는 테이블 내의 데이터 내용을 변화시킬때 사용하는 연산자를 의미한다.

      ▪️Insert : 행의 입력
      ▪️Update : 행의 수정
      Delete : 행의 삭제

 

2-4. 관계형 모델의 무결성

  • 관계형 모델은 데이터 관점에서 무결성을 보장하여 정확한 데이터 값을 가져야한다.
  • 엔터티 무결성 규칙
    • Primary Key는 널 값을 포함하지 않는다.
    • Primary Key(주 키) - 특정 행을 유일하게 식별할 수 있는 하나 이상의 속성

 

  • 참조 무결성 규칙
    • 모든 Foreign Key는 관련 테이블의 Primary Key 값으로 존재해야 한다.
    • Foreign Key(외래 키) - 다른 테이블의 Key를 참조하는 속성

 

  • 도메인(속성) 무결성 규칙
    • 열에 관한 무결성 규칙으로 데이터 타입/길이/허용 값 등에 관한 제약사항을 가진다.

 

  • 연쇄 작용 또는 업무 규칙
    • 데이터 입력/삭제/수정/조회 작업이 테이블에 영향을 미치는 규칙을 정의한다.

 

 

 

 

이번장에서는 데이터 모델링이 필요한 이유와 관련 기본 개념에 대해서 알아보았다. 다음장부터는 데이터 모델링의 절차에 대해서 알아볼 예정이다.

 

 

📘참고 서적: [데이터아키텍처 전문가 가이드]
한국데이터산업진흥원 지음

 

 

반응형