반응형

기업이 관리하는 데이터의 양이 기하급수적으로 증가하면서 데이터의 품질 문제는 무엇보다 더 중요해졌다. 이번 장에서는 양질의 데이터 모델링 설계를 위해 알아야할 것들에 대해 배워볼 예정이다.
[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를 참조하는 속성
- 도메인(속성) 무결성 규칙
- 열에 관한 무결성 규칙으로 데이터 타입/길이/허용 값 등에 관한 제약사항을 가진다.
- 연쇄 작용 또는 업무 규칙
- 데이터 입력/삭제/수정/조회 작업이 테이블에 영향을 미치는 규칙을 정의한다.
이번장에서는 데이터 모델링이 필요한 이유와 관련 기본 개념에 대해서 알아보았다. 다음장부터는 데이터 모델링의 절차에 대해서 알아볼 예정이다.
📘참고 서적: [데이터아키텍처 전문가 가이드]
한국데이터산업진흥원 지음
반응형
'[자격증] > DAsP(데이터아키텍처 준전문가)' 카테고리의 다른 글
[DAsP 한 권으로 끝내기] Chapter4.데이터 모델링 - (3) (0) | 2023.06.03 |
---|---|
[DAsP 한 권으로 끝내기] Chapter4.데이터 모델링 - (2) (0) | 2023.06.03 |
[DAsP 한 권으로 끝내기] Chapter3.데이터 표준화 - (2) (0) | 2023.06.03 |
[DAsP 한 권으로 끝내기] Chapter3.데이터 표준화 - (1) (0) | 2023.06.03 |
[DAsP 한 권으로 끝내기] Chapter2.데이터 요건 분석 - 추가자료 (2) | 2023.06.03 |