데이터베이스 예시 - deiteobeiseu yesi

관계형 데이터베이스란? - 목차 바로가기

  1. 예제파일 다운로드
  2. 관계형 데이터베이스란 무엇인가요?
  3. 관계형 데이터 베이스의 핵심! '고유값'
  4. 고유값을 추가하면 무엇이 좋나요?
  5. 서로 다른 두개의 데이터 연결하기
  6. 관계형 DB를 도표화 하는 방법
  7. 파워피벗으로 관계형 데이터베이스 만들기 실습 - 기초

영상강의

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [기초레벨업] 관계형 데이터베이스 기초 - 예제파일


라이브 강의 전체영상도 함께 확인해보세요!

위캔두 회원이 되시면 매주 오빠두엑셀에서 진행하는 라이브강의 풀영상을 확인하실 수 있습니다.


관계형 데이터베이스란 무엇인가요?

관계형 데이터베이스(RDBMS = Relational DataBase Management System)는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류입니다.

행과 열로 이루어진 각각의 테이블을 고유값(Primary Key)을 참조하여 서로 종속되는 관계(=연결하는것)를 표현하는 데이터 베이스 구조를 관계형 데이터베이스라고 합니다.

데이터베이스 예시 - deiteobeiseu yesi
관계형 데이터베이스는 각 테이블의 고유값을 참조하여 종속적인 관계를 갖습니다.

엑셀과 관계형 데이터베이스의 구조를 대조하면 아래 표와 같습니다.

엑셀 관계형 데이터베이스
통합문서 Schema (스키마)
시트 Table (테이블)
행 (1,2,3...) Row (행), Record (레코드)
열 (A,B,C...) Column (열), Field (필드)
데이터베이스 예시 - deiteobeiseu yesi
엑셀과 데이터베이스 구조 비교

관계형 데이터 베이스의 핵심! '고유값'

관계형 데이터베이스의 핵심은 '고유값' (= Primary Key) 입니다. 모든 데이터에는 각 레코드를 대표할 수 있는 고유값을 갖고 있어야 하는데요.

예를들어, 제품관리에 사용되는 바코드번호, 직원 관리에 사용되는 사번, 우리나라 인구 관리에 사용되는 주민등록번호 모두 고유값의 한 종류입니다.

데이터베이스 예시 - deiteobeiseu yesi
회사에서는 동명이인 문제를 방지하기 위해 사번을 고유값으로 사용합니다.

만약 각 데이터를 대표하는 고유값이 없다면, 데이터를 참조하는데 문제가 발생합니다. 따라서, 관계형 데이터베이스를 구축하려면 각 레코드를 대표할 수 있는 고유값을 반드시 추가해야 합니다.

고유값을 추가하면 무엇이 좋나요?

관계형 데이터베이스를 구축할 때, 고유값은 선택이 아닌 필수입니다. 실무에서 가장 많이 사용되는 VLOOKUP 함수를 예제로 살펴보면 아주 쉽게 이해할 수 있는데요.

아래 예제를 보면 인사팀에 근무하는 '이진아' 사원의 직급을 조회할 경우, IT팀에 근무중인 '이진아' 라는 동명이인이 있어 옳지 않은 값이 조회됩니다.

데이터베이스 예시 - deiteobeiseu yesi
이름으로 이진아를 조회하면, 동명이인으로 인해 검색하면 올바르지 않은 값이 조회됩니다.

이러한 문제를 해결하기 위하여, 사번으로 직급을 조회하면 원하는 값을 올바르게 조회할 수 있습니다.

데이터베이스 예시 - deiteobeiseu yesi
사번(고유값)으로 값을 조회하면 동명이인 문제를 해결할 수 있습니다.

VLOOKUP 함수는 범위에 중복값이 있을 경우, 범위 맨 위에 있는 값을 반환합니다. 따라서 사용자가 의도적으로 중복값을 입력한 것이 아니라면, VLOOKUP 함수로 올바른 결과를 반환할 수 없다보니 VLOOKUP 여러개 불러오기 공식, VLOOKUP 마지막 값 불러오기 공식, VLOOKUP 두번째 값 불러오기 공식 등을 사용하게 됩니다.

서로 다른 두개의 데이터 연결하기

각 테이블에 고유값을 추가했으면, 고유값을 참조하여 서로 다른 두 테이블을 연결합니다. 연결 방식은 크게 3가지로 구분됩니다.

  1. 일대일 관계(1:1)

    ■ 대한민국 국민 ↔ 주민등록번호
    '대한민국 국민은 하나의 주민등록번호를 갖습니다. 주민등록번호 또한 한 국민에게만 종속됩니다.

  2. 일대다 관계(1:M)

    ■ 제품목록 ↔ 판매기록
    ' 제품목록에는 하나의 제품만 있지만, 판매기록에는 동일한 제품이 여러개 판매될 수 있습니다.

  3. 다대다 관계(N:M)

    ■ 제품목록 ↔ 고객목록
    ' 한 제품이 여러 고객에게 판매될 수 있으며, 한 고객이 여러 개의제품을 구매할 수도 있습니다.

실무에서는 99%의 경우 일대다 관계로 데이터 관계가 형성되며, 대표적으로 아래와 같은 상황에 적용됩니다.

■ 실무에서 일대다 관계를 갖는 경우

  • 직원정보 ↔ 출퇴근기록
    ' 직원정보는 고유값입니다.
    ' 출퇴근 기록 데이터에는 한 직원의 출퇴근 기록이 여러번 기록됩니다.
  • 제품정보 ↔ 입/출고 현황
    ' 제품정보는 고유값입니다.
    ' 입/출고 현황 데이터에는 각 제품의 입고/출고 현황이 여러번 기록됩니다.
  • 거래처정보 ↔ 매입 현황
    ' 거래처정보는 고유값입니다.
    ' 매입 현황 데이터에는 각 거래처별로 발생한 매입 현황이 여러번 기록됩니다.

관계형 DB를 도표화 하는 방법

관계형 데이터베이스를 구축하는데에는 여러 프로그램이 사용됩니다. 대표적으로 MySQL, MSSQL, 오라클 등이 사용되지만, 보통의 실무자가 SQL 언어를 사용하고 직접 서버를 구축하여 관계형 데이터베이스를 만드는 것은 쉽지 않은 일입니다.

따라서 대부분의 실무자에게는 엑셀의 파워피벗 이나 엑세스를 활용하여 관계형 데이터베이스를 구축하는 것이 가장 현실적인 방법이며, 정말 많은 양의 데이터를 다루지 않는다면 엑셀의 파워쿼리/파워피벗 조합으로 대부분의 관계형 데이터를 구축할 수 있습니다.

데이터베이스 예시 - deiteobeiseu yesi
엑셀의 파워쿼리/파워피벗을 활용하면 실무에서 대부분의 데이터베이스를 구축할 수 있습니다.

엑셀 2016 이전 까지는 엑셀보다 엑세스가 유리한 점이 많아 실무에서 많이 사용되었으나, 2021년 현재 기준으로는 엑셀의 파워쿼리/파워피벗 기능이 크게 향상되어 엑셀만으로 대부분의 관계형 데이터베이스를 구축하고 운용할 수 있습니다.

이번 강의에서는 파워피벗을 활용하여 간단하게 관계형 데이터베이스를 구축하는 방법에 대해 알아보겠습니다. 파워피벗을 활용하여 관계형 데이터베이스를 구축하고 데이터모델 피벗테이블을 활용하여 시각화 보고서를 작성하는 방법은 아래 라이브 강의 전체영상을 참고하세요.

엑셀 파워피벗으로 관계형 데이터베이스 만들기

  1. 파워피벗은 윈도우에서만 지원되며 Mac에서는 사용할 수 없습니다. 또한 사용 중인 엑셀 버전에 따라 포함여부가 다른데요, 일반적으로 엑셀 2016 Professional Plus, 및 엑셀 2019 이후, 그리고 M365 버전에서만 지원됩니다. 파워피벗이 제공되는 모든 엑셀버전 목록은 아래 마이크로소프트 홈페이지를 참고하세요.
  2. 예제파일을 실행한 뒤, [Power Pivot] 탭 으로 이동합니다. 예제파일에 포함된 "tbl구매내역, tbl판매내역, tbl제품, tbl공급처, tbl날짜"시트를 하나씩 돌아가며 시트 안에 입력된 표를 선택한 후 [데이터 모델에 추가] 버튼을 클릭합니다.
    데이터베이스 예시 - deiteobeiseu yesi
    표를 선택한 뒤, Power Pivot - 데이터모델에 추가 버튼을 클릭합니다.
  3. 표가 데이터모델에 추가되었습니다.
    데이터베이스 예시 - deiteobeiseu yesi
    표가 데이터모델에 추가됩니다.
  4. 파워피벗 창에서 [홈] 탭 - [다이어어그램 보기] 버튼을 클릭합니다.
    데이터베이스 예시 - deiteobeiseu yesi
    파워피벗 창에서 '다이어그램 보기' 버튼을 클릭합니다.
  5. 아래에 적어드린 방법대로 각 테이블의 관계를 설정하면 관계형 데이터베이스가 구축됩니다.

    1. [tbl공급처]의 공급처를 끌어어서 [tbl제품]의 공급처로 연결합니다.
    2. [tbl제품]의 제품명을 끌어서 각 [tbl구매내역]과 [tbl판매내역]의 제품명에 연결합니다.
    3. [tbl날짜]의 날짜를 끌어서 [tbl구매내역]과 [tbl판매내역]의 날짜로 연결합니다.

    데이터베이스 예시 - deiteobeiseu yesi
    각 데이터의 관계를 형성하여 관계형 데이터베이스를 구축합니다.