강의소개 :: 엑셀 vs 데이터베이스, 무엇이 다를까? :: 2번째 이야기
엑셀 vs 데이터베이스 목차 바로가기
엑셀의 "WorkSheet(시트)" 와 데이터베이스의 "Table" 는 동일한 기능을 한다고 이해해도 무방합니다. 단, 차이점이 있다면 데이터베이스는 각 행의 ID를 참조해서 각 Record가 연결되며, 엑셀은 각 셀이 독립적으로 동작합니다.
따라서 사용자가 별도의 ID(고유값)을 작성하지 않을경우, 각 시트(표)간의 연결이 어렵습니다. 이를 알아보기 위해j 예제파일에 총 5개의 시트를 준비해드렸는데요. 각 시트간의 데이터 관계를 통해 엑셀과 데이터베이스의 차이점을 알아볼 예정입니다.
엑셀과 데이터베이스의 구조/형식 관련 차이점은 이전 강의인 엑셀 vs 데이터베이스 차이점 1탄 에서 자세히 설명드렸으니 참고해주세요.
영상강의
예제파일 다운로드
일부 예제파일은 오빠두엑셀 홈페이지 회원에게만 제공됩니다.
- [기초레벨업] 엑셀 vs 데이터베이스 차이점 2탄예제파일
1. 엑셀 데이터베이스 차이점 요약
엑셀과 데이터베이스 차이점 요약 엑셀: 편집기록 보존
엑셀을 이용하다 보면 데이터나 함수를 잘못 입력하거나 또는 잘못 변경할 때가 종종 있습니다. 해당 실수를 금방 발견한다면 괜찮겠지만, 이미 어느정도 작업이 진행 된 이후에 문제를 발견한다면 어떻게 해야 할까요?
엑셀에서는 (*대부분의 MS 오피스 프로그램에서) 되돌리기/다시실행 기능을 기본적으로 제공합니다.
되돌리기 : Ctrl + Z / 다시실행 : Ctrl + Y
되돌리기 및 다시실행은 기본적으로 16회, 최대 100회까지 설정 가능합니다. 변경작업 기록의 최대 횟수 변경방법은 아래 링크에서 확인할 수 있습니다.
[링크] MS홈페이지 변경작업 최대기록 횟수 늘리는 방법
엑셀 화면 좌측상단에 보면 되돌리기/다시실행 아이콘이 있습니다. 단축키는 Ctrl + Z / Ctrl + Y 데이터베이스: 편집기록 보존 안함
반면 데이터베이스는 데이터 변경이 일어났을 시 변경기록을 일체 기록하지 않습니다. 그래서 기본적으로 Safe Mode (한번의 작업으로 여러개의 행을 삭제하는것을 방지) 가 활성화 되어있습니다. 뿐만아니라, 테이블을 삭제 할 경우도 (MySql에서는 DROP 한다고 이야기 합니다) 사용자에게 최종 확인문구를 띄운 뒤 작업이 이루어집니다.
따라서 데이터베이스를 이용할 경우에는 주기적인 '백업'이 반드시 필요합니다. 반면 데이터 편집기록을 보존하지 않음으로써, 엑셀보다 월등한 작업처리 속도를 보여줍니다.
MySql은 기본적으로 SafeMode가 활성화 되어있습니다. 화면은 SafeMode를 꺼놓은 상태입니다. 엑셀: 문서 편집/출력까지 가능
엑셀은 기본적으로 데이터의 관리와 함께 문서편집/출력까지 가능한 프로그램입니다. 간단한 업무용 양식의 경우는 MS워드의 도움없이 엑셀 안에서 모두 편집과 출력이 가능하고, 실제로 많은 기업이 엑셀자체 양식을 작성해서 이용하고 있습니다.
또한 프레젠테이션(발표용 자료)을 위해 엑셀은 자료편집 및 그래프작성 용도로 자주 사용되며, 프레젠테이션의 대표 프로그램인 파워포인트와 데이터 연동도 아주 훌륭합니다.
엑셀은 데이터의 편집 뿐만 아니라 문서로서의 편집/출력도 동시에 가능합니다. 데이터베이스: 데이터 관리만 가능
데이터베이스는 '데이터 관리' 만 가능합니다. 즉 엑셀처럼 가져온 데이터를 바탕으로 문서화하고 출력하기 위해서는 별도의 툴이 필요한데요.
MySql 유저의 경우 많이 이용하는 WorkBench 또는 SQLYog 의 경우도 데이터의 구조화 작업과 구조화 된 데이터를 표로 출력하는 것을 도와줄 뿐이고, 해당 데이터를 문서화하기 위해서는 또다른 별도 프로그램이 필요합니다. (*여기서 프로그램은 C+, Python, VB 등의 언어로 작성된 프로그램을 이야기 합니다.)
데이터베이스는 데이터의 편집/구조화만 가능하고 문서로서의 편집/출력을 위해서는 별도의 툴이 필요합니다. 4. 데이터 동시 편집 가능여부
엑셀이 데이터베이스에서 파생 되었음에도 불구하고 데이터베이스로의 완전한 기능을 구현하지 못하는 가장 큰 이유가 '동시 편집이 불가능하다는 점' 입니다.
데이터베이스란 기본적으로 '여러개의 노드(입력단자)에서 다수의 데이터가 동시에 입력되고, 입력된 데이터를 구조화해서 보관하면서, 각 사용자가 원하는 데이터값을 바로 출력가능한 상태'를 항상 유지해야 합니다.
하지만 엑셀은 내가 파일을 편집하는 동안에는 다른 유저가 같은 파일 을 '읽기'만 가능할 뿐 동시편집이 불가능합니다. '드롭박스'나 '구글드라이브'를 이용하시는 경우에, 한개의 파일을 두명이상이 동시에 편집하고 저장할 경우 '복사본'이 저장이유가 바로 이것입니다.
드롭박스의 경우 하나의 파일을 동시에 여러유저가 편집하여 저장할 경우 이렇게 충돌이 일어납니다.
(https://dropboxfix.wordpress.com/)최근에는 MS에서 제공하는 '원드라이브' 또는 구글의 '구글시트' 등 동시편집이 가능한 스프레드시트 툴이 나와있지만 (*제 개인적인 의견으로는) 아직 데이터베이스로 이용하기에 많이 부족합니다. 자료의 변경이 일어났을 시 동기화되는 속도도 느릴뿐 아니라, 해당 파일을 사용하고 공유하기 위한 조건도 상당히 까다로운 관계로 실제 업무에서 이용하기에 많이 부족합니다.
예를들어 원드라이브의 경우는 해당 파일을 반드시 원드라이브 폴더에 위치시켜야 하고, 각 파일마다 권한을 부여해줘야 합니다. 구글시트의 경우 우리가 보통 사용하는 MS 엑셀과 자료 편집방법 및 사용되는 함수가 달라 일반 사용자가 바로 적응하기에는 많이 불편한 단점이 있습니다.
구글 시트를 동시 사용자가 편집하는 모습 만약 구글시트에 좀 더 관심이 있으신 분이라면, 아래 영문 홈페이지 링크를 참조해보시는 것도 좋을듯 합니다.
Smackdown: Office 365 vs. G Suite collaboration (오피스 365와 G Suite 비교)
A. 개인적인 의견
만약 데이터가 1)간단하고, 2)일시적이며, 3)10만행이하의 작은 데이터라면 엑셀로 작업하시길 권장드립니다.
엑셀로 데이터베이스를 구축하실 경우, 데이터의 관계가 3개 이하의 연결고리를 갖고 있다면 엑셀에서 제공되는 파워피벗/파워쿼리로 충분히 데이터관계를 구축할 수 있습니다.이 정도의 간단한 데이터구조는 엑셀로 충분히 구현가능합니다. 엑셀과 데이터베이스의 가장 큰 차이점은 무엇보다도 '관리 수준'에 있습니다. 데이터베이스를 기반으로 자료를 관리할 경우 보다 높은 수준의 관리가 필요합니다. 데이터 정규화도 더욱 체계적으로 작업해야 하고, 데이터 구조의 변경이 있을 경우에도 엑셀보다 더욱 까다로운 절차를 걸쳐서 자료를 갱신해줘야 합니다.
하지만 그만큼 엑셀에서는 구현할 수 없는 다양한 기능, 1)동시 편집, 2)복잡한 쿼리 구조화, 3)처리속도, 4)데이터범용성 의 장점을 취할 수 있습니다.
B. 저는 현재 MySql을 'Back-End'로, 엑셀을 'Front-End'로 이용하고 있습니다.
최근에는 구글(GCP) 그리고 MS(Azure) , 아마존(AWS) 에서 온라인으로 구축 가능한 SQL서버를 초보자도 사용하기 편리한 인터페이스로 제공하고 있습니다. 모두 1년간 무료로 사용할 수 있는 크레딧을 제공하고 하고 있으므로 관심있으신 분들은 한번 이용해보시길 권장드립니다.
구글 클라우드는 1년동안 $300를 무료로 사용할 수 있는 패키지를 제공합니다. (SQL만 기본사양으로 이용할 경우 $300는 충분합니다.) - 서버구축이 완료된 후 간단한 SQL 코딩만 익히시면 대부분의 기본적인 쿼리구현이 가능합니다. 간단한 쿼리작업만으로도 엑셀보다 강력한 데이터구조화가 가능합니다.
- 엑셀에서는 VBA를 통해 MySql과 연결하여 데이터를 불러오고 편집할 수 있습니다. 물론 어느정도의 자료편집을 요구하는지에 따라 작업량이 달라지겠지만, 대부분의 경우 몇시간-몇일내로 프로그램 세팅이 가능하다는 장점이 있습니다.
SQL 서버 구축만 이루어 진다면 엑셀과 연결하는 것은 VBA 코드로 매우 간단하게 구현 할 수 있습니다.