관계형 데이터베이스 란 무엇인가요?
관계형 데이터베이스에 대한 기초 이론을 엑셀 시트와 비교하여 5분 안에 간단히 살펴봅니다.
이 강의에서는 관계형 데이터베이스(RDBMS)의 기본 개념을 엑셀 시트의 구조와 비교하면서 정리합니다. 데이터의 핵심인 고유값(Primary Key)이 왜 필요한지, 일대일·일대다·다대다 관계가 실무에서 어떻게 형성되는지 구체적인 사례로 살펴보고, 엑셀 파워피벗으로 여러 테이블을 하나의 관계형 데이터 모델로 직접 연결하는 방법까지 함께 다룹니다.
실습자료를 준비했어요
수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇
관계형 데이터베이스란 무엇인가요?
관계형 데이터베이스(RDBMS, Relational Database Management System)는 현재 가장 널리 사용되는 데이터베이스 구조의 한 종류입니다.
행과 열로 구성된 여러 테이블을 고유값(Primary Key)으로 참조하여, 서로 다른 데이터 사이의 종속 관계를 표현하는 구조를 관계형 데이터베이스라고 부릅니다.

엑셀의 구조와 관계형 데이터베이스의 구조를 비교하면 아래 표와 같습니다.
| 엑셀 | 관계형 데이터베이스 |
| 통합문서 | Schema (스키마) |
| 시트 | Table (테이블) |
| 행 (1, 2, 3...) | Row (행), Record (레코드) |
| 열 (A, B, C...) | Column (열), Field (필드) |

관계형 데이터베이스의 핵심, '고유값'
관계형 데이터베이스의 핵심은 '고유값(Primary Key)'입니다. 모든 데이터에는 각 레코드를 고유하게 식별할 수 있는 값이 반드시 함께 존재해야 합니다.
대표적으로 제품 관리에 사용되는 바코드 번호, 직원 관리에 사용되는 사번, 국민 관리에 사용되는 주민등록번호가 모두 고유값에 해당합니다.

각 데이터를 식별할 고유값이 없다면, 다른 테이블에서 데이터를 정확하게 참조하기 어렵습니다. 따라서 관계형 데이터베이스를 구축할 때는 각 레코드를 대표할 수 있는 고유값을 반드시 함께 설계해야 합니다.
고유값을 추가하면 무엇이 좋나요?
관계형 데이터베이스에서 고유값은 선택이 아닌 필수입니다. 실무에서 가장 많이 사용되는 VLOOKUP 함수를 예제로 살펴보면 그 이유를 쉽게 이해할 수 있습니다.
아래 예제에서 인사팀에 근무하는 '이진아' 사원의 직급을 이름만으로 조회하면, IT팀에 근무 중인 동명이인 '이진아'가 함께 존재하기 때문에 의도하지 않은 값이 반환됩니다.

이러한 문제는 사번처럼 중복되지 않는 고유값을 기준으로 직급을 조회하면 자연스럽게 해결됩니다.

VLOOKUP 함수는 검색 범위에 중복값이 있을 경우 가장 위에 위치한 값을 반환합니다. 따라서 사용자가 의도적으로 중복값을 입력한 상황이 아니라면 VLOOKUP 함수만으로는 정확한 결과를 얻기 어렵고, 이때는 VLOOKUP 여러개 불러오기 공식, VLOOKUP 마지막 값 불러오기 공식, VLOOKUP 두번째 값 불러오기 공식 등의 응용 공식을 함께 사용합니다.
서로 다른 두 테이블을 연결하는 방법
각 테이블에 고유값을 설계했다면, 고유값을 기준으로 서로 다른 두 테이블을 연결할 수 있습니다. 연결 방식은 크게 세 가지로 구분됩니다.
- 일대일 관계 (1:1)
■ 대한민국 국민 ↔ 주민등록번호
'대한민국 국민은 하나의 주민등록번호를 가지며, 주민등록번호 또한 한 명의 국민에게만 종속됩니다. - 일대다 관계 (1:M)
■ 제품목록 ↔ 판매기록
'제품목록에서는 한 제품이 한 행으로 관리되지만, 판매기록에서는 동일한 제품이 여러 번 판매되어 여러 행으로 기록될 수 있습니다. - 다대다 관계 (N:M)
■ 제품목록 ↔ 고객목록
'한 제품이 여러 고객에게 판매될 수 있으며, 한 고객이 여러 제품을 구매할 수도 있습니다.
실무에서는 대부분의 데이터가 일대다 관계로 구성되며, 대표적으로 다음과 같은 상황에 적용됩니다.
■ 실무에서 일대다 관계가 형성되는 대표 사례
- 직원정보 ↔ 출퇴근기록
'직원정보는 직원당 한 행으로 관리되는 고유 데이터입니다.
'출퇴근 기록은 한 직원에 대해 여러 건이 누적되어 기록됩니다. - 제품정보 ↔ 입/출고 현황
'제품정보는 제품당 한 행으로 관리되는 고유 데이터입니다.
'입/출고 현황에는 각 제품의 입고와 출고 내역이 여러 건씩 누적됩니다. - 거래처정보 ↔ 매입 현황
'거래처정보는 거래처당 한 행으로 관리되는 고유 데이터입니다.
'매입 현황에는 각 거래처별 매입 내역이 여러 건씩 누적됩니다.
관계형 데이터베이스를 도표화하는 방법
관계형 데이터베이스를 구축하기 위해서는 다양한 도구가 사용됩니다. 대표적으로 MySQL, MSSQL, Oracle 등이 사용되지만, 일반적인 실무자가 SQL 언어를 익히고 서버 환경을 직접 구축해 관계형 데이터베이스를 다루기는 쉽지 않은 일입니다.
따라서 대부분의 실무 환경에서는 엑셀의 파워피벗이나 액세스를 활용하여 관계형 데이터베이스를 구축하는 방식이 가장 현실적인 선택지이며, 다루는 데이터량이 극단적으로 많지 않다면 엑셀의 파워쿼리·파워피벗 조합만으로도 대부분의 관계형 데이터를 충분히 처리할 수 있습니다.

엑셀 2016 이전에는 액세스가 더 유리한 점이 많아 실무에서 자주 사용되었으나, 2021년을 기준으로는 엑셀의 파워쿼리·파워피벗 기능이 크게 발전하여 엑셀만으로도 대부분의 관계형 데이터베이스를 구축하고 운용할 수 있습니다.
이번 강의에서는 파워피벗을 활용해 관계형 데이터베이스를 간단하게 구축하는 방법을 살펴봅니다. 파워피벗으로 관계형 데이터베이스를 만들고, 데이터모델 피벗테이블로 시각화 보고서까지 확장하는 전체 흐름은 아래 라이브 강의 전체 영상에서 확인할 수 있습니다.
엑셀 파워피벗으로 관계형 데이터베이스 만들기
- 파워피벗은 윈도우 환경에서만 지원되며 Mac에서는 사용할 수 없습니다. 또한 사용 중인 엑셀 버전에 따라 포함 여부가 다른데, 일반적으로 엑셀 2016 Professional Plus, 엑셀 2019 이후, 그리고 Microsoft 365 버전에서 지원됩니다. 파워피벗이 제공되는 모든 엑셀버전 목록은 마이크로소프트 공식 안내 페이지에서 확인할 수 있습니다.
- 예제파일을 실행한 뒤, [Power Pivot] 탭으로 이동합니다. 예제파일에 포함된 "tbl구매내역, tbl판매내역, tbl제품, tbl공급처, tbl날짜" 시트를 차례로 열어, 시트 안에 입력된 표를 선택한 상태에서 [데이터 모델에 추가] 버튼을 클릭합니다.

- 표가 데이터모델에 정상적으로 추가된 모습입니다.

- 파워피벗 창에서 [홈] 탭 - [다이어그램 보기] 버튼을 클릭합니다.

- 아래 안내에 따라 각 테이블 사이의 관계를 차례로 설정하면 관계형 데이터베이스 구조가 완성됩니다.
1. [tbl공급처]의 공급처 필드를 끌어 [tbl제품]의 공급처 필드와 연결합니다.
2. [tbl제품]의 제품명 필드를 끌어 [tbl구매내역]과 [tbl판매내역]의 제품명 필드에 각각 연결합니다.
3. [tbl날짜]의 날짜 필드를 끌어 [tbl구매내역]과 [tbl판매내역]의 날짜 필드에 각각 연결합니다.
감사합니다
데이터모델 피벗테이블을 사용하면 가능합니다.