Chapter 4: 데이터베이스란 무엇인가?

거대한 스마트 엑셀 워크북이라고 생각해보세요

엑셀에 익숙하다면, 데이터베이스에 대해 생각보다 더 많은 것을 이미 알고 있는 셈입니다. 사실, 데이터베이스는 개념적으로 매우 강력하고 매우 똑똑한 엑셀 워크북과 유사합니다—단지 훨씬 더 큰 데이터셋을 유연하고 정교하게 다룰 수 있는 ‘슈퍼파워’를 가진 버전이라고 보면 됩니다.

당신의 엑셀 워크북이 다음과 같다고 상상해보세요:

  • 수백만 개의 행을 저장해도 느려지지 않고
  • 수십 명이 동시에 편집해도 충돌이 없으며
  • 모든 시트 간 데이터 일관성을 자동으로 보장하고
  • 사용자의 권한에 따라 접근 가능한 데이터를 세밀하게 통제하며
  • 다른 시스템 및 애플리케이션과 매끄럽게 연결되는

이것이 바로 데이터베이스가 하는 일입니다. 본질적으로 데이터베이스는 컴퓨터 시스템에 전자적으로 저장된, 구조화된 정보의 조직된 집합입니다. 이 정의는 기술적으로 들릴 수 있지만, 엑셀 사용자에게는 꽤 익숙한 개념입니다.

데이터베이스 사고방식

당신이 잘 구조화된 엑셀 워크북을 만들 때:

  • 명확한 열 헤더를 사용하고
  • 일관된 데이터 형식을 유지하며
  • 데이터 영역에 병합 셀이 없고
  • 정보 유형별로 별도의 워크시트를 만들고
  • 시트 간 데이터를 연결하기 위해 VLOOKUP이나 INDEX/MATCH를 사용한다면...

이미 데이터베이스 설계자처럼 사고하고 있는 것입니다!

차이점은 데이터베이스는 이러한 좋은 습관들을 ‘강제’하고 ‘공식화’한다는 점입니다. 그 덕분에 더 강력하고 확장 가능한 시스템이 되는 것이죠. 데이터베이스는 DBMS (Database Management System, 데이터베이스 관리 시스템) 에 의해 제어되며, 사용자와 데이터 간의 중재자 역할을 하면서 데이터의 조직, 저장, 검색을 처리합니다.

테이블, 행, 열 – 아주 익숙하죠!

오늘날 가장 일반적인 데이터베이스 형태는 관계형 데이터베이스(Relational Database) 로, 엑셀 사용자에게 매우 익숙한 테이블 구조(행과 열)로 데이터를 구성합니다.

엑셀 용어데이터베이스 용어의미
워크시트테이블 (Table)관련된 데이터의 집합
레코드 (Record)하나의 항목 또는 엔트리
필드 (Field)특정 속성 또는 특성
헤더 행필드 이름 (Field Names)각 열을 설명하는 라벨
필드 값 (Field Value)개별 데이터 항목

실제로 어떻게 보이는지 살펴볼까요? 아래는 고객 정보를 추적하는 간단한 엑셀 워크시트입니다:

엑셀 워크시트: Customers

Customer IDFirst NameLast NameEmailPhone
1001JohnSmithjohn@example.com555-1234
1002SarahJohnsonsarah@example.com555-5678
1003MiguelRodriguezmiguel@example.com555-9012

데이터베이스에서는 다음과 같은 테이블로 동일한 구조를 가집니다:

데이터베이스 테이블: Customers

customer_idfirst_namelast_nameemailphone
1001JohnSmithjohn@example.com555-1234
1002SarahJohnsonsarah@example.com555-5678
1003MiguelRodriguezmiguel@example.com555-9012

다만 몇 가지 차이점이 있을 수 있습니다:

  • 필드 이름은 소문자 + 언더스코어를 쓰는 것이 일반적 (컨벤션일 뿐 필수는 아님)
  • 데이터 타입에 더 엄격함 (예: 전화번호 필드는 전화번호만 입력 가능)
  • 입력 가능한 데이터에 대해 규칙을 강제함 (예: 고객 ID는 유일해야 함)

그러나 기본 구조인 "행과 열로 데이터 조직" 방식은 완전히 동일합니다.

기본 키와 관계 – 시트 간 VLOOKUP 같은 개념

데이터베이스의 가장 강력한 기능 중 하나는 서로 다른 테이블 간 관계를 정의하고 유지하는 방식입니다. 엑셀에서 VLOOKUP이나 INDEX/MATCH를 사용해 시트 간 데이터를 참조한 적이 있다면 이미 이 개념에 익숙합니다.

기본 키 (Primary Key): 유일한 식별자

엑셀에서 시트 간 데이터를 참조할 때는 보통 고객 ID나 주문 번호 같은 공통된 값을 기준으로 조회합니다. 데이터베이스 용어로 이 고유 식별자를 기본 키(Primary Key) 라고 부릅니다.

기본 키는 다음과 같은 조건을 만족해야 합니다:

  • 각 레코드를 유일하게 식별
  • 중복값이 없어야 함
  • 비어 있을 수 없음 (NULL 불가)

위 예시에서 customer_id가 바로 기본 키 역할을 합니다.

외래 키 (Foreign Key): 관계를 만드는 열

이번에는 주문 테이블이 있다고 가정해 봅시다:

데이터베이스 테이블: Orders

order_idorder_dateamountcustomer_id
50012025-01-15120.501001
50022025-01-2075.251002
50032025-02-01200.001001

여기서 customer_id가 두 테이블에 모두 등장합니다. Orders 테이블에서는 외래 키(Foreign Key) 로, Customers 테이블의 기본 키를 참조하여 두 테이블 간 관계를 형성합니다.

엑셀에서는 아래와 같은 수식을 사용해 Orders 시트에서 고객 이름을 찾아올 수 있습니다:

=VLOOKUP(D2, Customers!A:B, 2, FALSE)

데이터베이스에서는 이 관계가 정식으로 정의되고, 시스템에 의해 강제됩니다. 즉:

  • 존재하지 않는 customer_id 값으로는 주문을 추가할 수 없음
  • 고객 정보가 변경되면 주문 테이블에서도 자동으로 반영
  • 주문이 있는 고객을 삭제하려 하면 시스템이 이를 막거나 관련된 주문을 자동 처리함

관계의 유형

데이터베이스는 다음과 같은 관계 유형을 지원합니다:

  1. 일대일(One-to-One): 하나의 레코드가 다른 하나의 레코드와만 연결됨

    • 예: 사람과 여권 정보
  2. 일대다(One-to-Many): 하나의 레코드가 여러 개 레코드와 연결됨

    • 예: 고객과 주문 (한 고객이 여러 주문 가능)
    • 가장 일반적인 관계 형태
  3. 다대다(Many-to-Many): 여러 레코드가 여러 레코드와 연결됨

    • 예: 학생과 과목 (학생은 여러 과목을 듣고, 과목도 여러 학생이 수강)
    • 이를 위해 중간에 조인 테이블(Junction Table)이 필요함

엑셀에서 서로 다른 시트에 관련 데이터를 유지하면서 VLOOKUP 등을 사용해 연결했다면, 이미 이런 관계를 간단히 구현해 본 것입니다.

데이터베이스 생태계

행과 열로 구성된 테이블은 친숙하지만, 데이터베이스는 그보다 더 큰 생태계 안에서 작동합니다:

  1. DBMS (Database Management System): 데이터베이스를 관리하고 쿼리 처리 및 접근 제어를 담당하는 소프트웨어

    • 예: MySQL, PostgreSQL, Microsoft SQL Server, Oracle
  2. SQL (Structured Query Language): 데이터베이스와 소통하기 위한 표준 언어

    • 이 책의 후반에서 자세히 다룰 예정
  3. 데이터베이스 서버: DBMS가 설치되어 실행되는 컴퓨터, 보통 데이터베이스 성능에 최적화되어 있음

  4. 클라이언트 애플리케이션: 데이터베이스에 접속하여 데이터를 추가/조회/수정/삭제하는 프로그램

    • 예: 사용자 정의 애플리케이션, 리포트 도구, 심지어 엑셀도 가능!

엑셀에서 데이터베이스로 – 마인드셋 전환

데이터베이스를 배우기 시작할 때, 엑셀에서 익숙한 개념을 데이터베이스 용어로 매핑하면 도움이 됩니다:

엑셀 개념데이터베이스 개념
워크북데이터베이스
워크시트테이블
레코드
필드
헤더 행필드 이름
VLOOKUPJOIN 연산
필터WHERE 절
피벗테이블GROUP BY 쿼리
데이터 유효성 검사제약 조건 (Constraints)
이름 정의 범위뷰 (View)
매크로저장 프로시저 (Stored Procedure)

이 매핑이 완벽하지는 않지만, 데이터베이스의 기본 개념을 이해하는 데 매우 유용한 출발점이 됩니다.

결론

엑셀에 익숙하다면, 이미 데이터베이스를 이해할 수 있는 튼튼한 기반을 가지고 있는 셈입니다. 행과 열로 구성된 테이블 구조는 그대로 유지되며, 시트 간 참조를 통한 데이터 연결 방식은 테이블 간 관계 설정과 유사합니다.

앞으로 우리는 엑셀로는 어렵거나 불가능한 작업들을 데이터베이스가 어떻게 해결하는지 알아볼 것입니다. 하지만 잊지 마세요—완전히 처음부터 시작하는 것이 아닙니다. 당신의 엑셀 경험은 데이터베이스 세계에 진입하는 데 훌륭한 출발점입니다.