데이터 베이스 기본 (1)

사람들에게 가장 대중적으로 알려 진 데이터 저장 방식이 엑셀이라 생각 됩니다. 엑셀은 충분히 강력한 기능을 제공하고 또 일부 데이터베이스 기능을 가지고 있지만 데이터베이스 프로그램이 아닙니다. 엑셀을 데이터베이스 용도로 사용하는 사람이 점점 많아 지자 마이크로 소프트에서 데이터베이스 기능을 하나 둘씩 추가해서 지금 이렇게 된 것이지 근본적인 엑셀의 문제점은 파일 구조를 다 고치지 않는 한 해결이 불가능 합니다. 이번 포스팅에서는 엑셀이 가진 여러 한계 중 가장 기본적인 파일 사이즈와 공동 작업에 관한 내용입니다.

  1. 데이터를 관리하기 위한 데이터 베이스

    데이터 베이스 전용 프로그램을 사용하는 이유는 데이터를 보관하기 위해서가 아닙니다. 단순 데이터의 보관은 Flat형 파일 시스템인 엑셀로도 충분히 가능하죠. 데이터베이스 프로그램을 사용하는 이유는 데이터를 관리 하기 위해서 입니다. 특히 큰 데이터를 관리 하기 위해서 데이터 베이스 관리 프로그램을 사용하게 되고 이런 관리 시스템을 DBMS (Database Management System)이라고 합니다. 대기업 이나 정부 단체 등 많은 데이터를 사용하는 곳에서는 이미 이런 시스템들이 매우 잘 구축 되어 있습니다. 그리고 한국의 중소기업들에서는 엑셀을 사용하는 곳이 많았죠. 그러나 엑셀을 사용하다가 결국엔 문제점에 봉착하게 되고 근본적인 문제를 해결하기 위해서는 엑셀처럼 스프레드시트 프로그램이 아닌 DBMS가 필요하다는 것을 깨닫게 됩니다.

     

    제가 제공해 드린 연습 파일의 데이터는 크게 4분류로 나눌 수가 있습니다. 제품 정보, 제조 업체 정보, 제품 수리 정보, 매장 정보 입니다.

     

  2. 엑셀의 문제점 à 데이터의 크기

    엑셀에 모든 데이터를 기록하게 되면 봉착하게 되는 가장 쉬운 문제점은 파일 사이즈의 크기와 그에 따른 속도 저하 입니다. 처음 엑셀로 데이터를 기록하기 시작 하면 데이터를 기록하는 행뿐만 아니라 그 데이터의 속성을 주로 나타내는 열 의 개수도 점점 늘어나게 되고 공식적으로는 2 GB의 파일 사이즈를 제공하는 엑셀이지만 화면에 데이터를 표시하는 렌더링 때문에 몇 십 메가만 되어도 현저한 속도 저하를 느끼게 됩니다. 여기서 데이터를 더 추가하게 되면 한번의 행 이동을 할 때마다 화면이 멈출 것 같아 겁이 나게 됩니다. 이건 엑셀의 파일 시스템 특성상 한 스프레드 시트에 있는 데이터의 정보를 모두 가지고 있기 때문에 그런 것인데 엑셀 파일의 구조적인 문제와 관련이 있습니다. 너무 과도한 데이터의 정보가 항상 메모리에 상주하고 있기 때문에 생기는 문제점으로 데이터베이스 프로그램은 이런 문제를 해결해 줍니다.

    처음에 내가 가지고 있는 제품을 엑셀로 정리하기 위해서 이렇게 4가지의 필드를 만들어서 시작한다고 합시다.

     

     

    그런데 내가 구매한 장소의 정보도 정리 하고 싶다면 이렇게 3개의 필드가 늘어나게 됩니다.

     

     

    여기서 또 구매한 브랜드의 정보를 추가 하게 된다면 일단 5개의 필드가 늘어 나게 됩니다.

     

    처음 데이터를 엑셀에 기록하기 시작하면 데이터가 얼마만큼 커질지 아무도 모릅니다. 회사라면 회사의 데이터는 회사의 모든 것이라고 해도 과장이 아닙니다. 소중한 고객 정보가 들어 갈수도, 일년의 매출이 들어갈 수도 있습니다. 이렇게 데이터를 쌓아 가다가 엑셀의 한계 때문에 속도가 점점 느려 지고 오류가 많아 지면 그때는 이미 돌이킬 수 없을 정도로 많은 데이터가 엑셀에 저장되고 있을 것 입니다. 먼가 다른 솔루션을 그제서야 찾기 시작하죠. 또 개인용 데이터 베이스의 물품도 몇 백 개가 넘어갈 수 있는데 중소 기업이라면요? 수십만개의 데이터 개수를 넘기는 것은 흔한 일입니다. 엑셀이나 어떤 스프레드 시트라도 결국은 한계에 부딪히게 됩니다. 엑셀의 행의 제한은 1,048,576 입니다. 무제한 이라고 생각할지 모르지만 몇 년 이상 된 기업에서 이 정도 행의 개수는 쉽게 초과하게 됩니다.

    엑세스도 역시 파일 사이즈의 한계를 가지고 있지만 어디까지나 로컬 버전일 경우 입니다. 엑셀의 모든 데이터는 데이터 베이스 전문 서버로 쉽게 이전할 수 있고 데이터 사이즈의 한계는 거의 없습니다. 또 엑세스는 크기는 전문 서버에 비해 작지만 어쨌건 전문 DBMS 입니다. 엑세스 처럼 데이터 사이즈에 따라서 속도 저하는 거의 없다고 보시면 됩니다. 이것은 또 엑세스의 데이터 처리 방식과 관계가 있으며 자세한 사항은 엑세스 공부를 위해선 필요 없습니다.

  3. 엑셀의 문제점 à 공동 작업

    제가 올려 드린 예제 파일은 개인 물품 재고 정리 이지만 만약 내가 작은 회사를 운영한다고 해봅시다. 많은 직원들이 있을 것이고 모든 직원들이 동시에 같은 모든 제품 정보에 동시에 접속 할 수 있어야 하고 수정 할 수 있어야 합니다. 엑셀은 2016부터 공동 작업이 강화 되긴 했지만 2명 이상만 작업을 해도 오류가 심심치 않게 납니다. 회사의 입장에서는 어떠한 동기화 오류도 허용 할 수 없고 매우 안정적인 시스템이 필요 합니다. 엑셀은 파일 시스템 구조상 회사 단위의 공동 작업을 구성하기가 매우 힘들고 그러기 위해서는 지금 엑셀에서 제공하는 몇 가지 기능들은 없어지게 됩니다. 엑셀과 엑세스는 처음부터 목적이 다르기 때문에 당연히 기능도 다르지요. 그러나 엑세스 처럼 전문 DBMS를 사용하게 된다면 엑세스의 데이터를 두고 여러 명이 동시에 최신 정보를 네트워크를 통해 가져오고 또 수정하는 것이 가능 합니다. 또 직원마다 데이터의 허용 범위를 주는 것도 매우 쉬워 집니다. 센터의 데이터는 항상 모든 직원이 같은 것이어야 하고 여러 개의 파일을 생성하게 되면 혼동을 주므로 백업본 외에는 항상 1개의 최신 데이터 베이스를 유지 해야 합니다.

     

    중앙에 데이터 서버를 두고 많은 사람들이 같은 정보를 동시에 가져오고 수정하기 위해서는 데이터 베이스 시스템이 필요합니다.

    만약 네이버에서 고객 정보를 엑셀에 저장한다면 어떻게 될까요? 온라인 엑셀의 파일 사이즈의 한계는 10 메가 입니다. 수 천만 명의 고객 정보를 저장해 두었다가 각 고객이 원할 때 그 고객에 해당하는 정보만 정확히 찾아서 제공해야 하고 수 천만 개의 블로그의 페이지를 모두 기록해야 합니다. 수백만 이상의 고객이 동시에 네이버 서버에 동시에 접근해서 정보를 기록하고 가져 갑니다. 또 그 블로그 페이지를 분석해서 검색 우선순위도 정해야 합니다. 이건 엑셀의 파일 사이즈 제한이 무제한 이라고 해도 엑셀의 기능으로는 못하는 것들이고 모든 온라인 업체들이 자체 서버를 쓰거나 아니면 전문 데이터 베이스 회사에 서버를 둡니다. 엑세스 등 데이터베이스를 사용하는 이유는 앞으로 2포스팅 정도 더 해야 할 것 같습니다. 파일 사이즈와 공동 작업의 문제는 아주 기본적인 것 중의 하나에 불과 합니다.

+ Recent posts