3  데이터 탐정 수사 원칙

90년 후, 우리는 Pabodie가 남긴 이 비밀 기록을 발견했다. 그의 “수사 원칙”은 오늘날 데이터 위생(Data Hygiene)으로 알려진 개념의 원형이었다. 그리고 752번 사건의 진실을 밝혀낼 열쇠이기도 했다.

1930년 3월 15일, 남극 기지 DR-3
- 탐정 Frank Pabodie의 개인 기록 -

오늘로 752번 사건이 발생한 지 3주가 지났다. Lake와 Roerich의 비정상적인 측정값들, 그리고 사라진 날짜… 나는 이제 이 모든 것이 단순한 우연이 아님을 확신한다.

올바른 데이터 기록법을 따르지 않은 결과가 이런 혼란을 야기했다. 미래의 탐사대들을 위해 나는 완벽한 수사 기록 원칙들을 정리해 두어야 겠다.

이전 장에서 우리는 NULL의 미스터리한 행동과 752번 방문의 사라진 날짜에 대해 알아보았다. 이제 Pabodie의 관점에서 이 사건을 다시 살펴보고, 어떻게 올바른 데이터 관리가 이런 혼란을 방지할 수 있었는지 알아보자.

3.1 Pabodie의 4대 수사 원칙

“완벽한 수사 기록이 사건 해결의 열쇠다. 내가 정리한 이 4가지 원칙만 따르면 어떤 미스터리도 해결할 수 있다.”
- 탐정 Frank Pabodie

752번 사건의 혼란을 겪은 후, Pabodie는 데이터 기록의 중요성을 깨달았다. 그가 정리한 수사 원칙들은 오늘날 데이터 위생(Data Hygiene)의 기초가 되었다.

그림 3.1: Pabodie의 4대 수사 원칙

3.1.1 원칙 1: 원자성

“모든 단서는 최소 단위로 분해하라”. 원자성 원칙(Atomic)은 Pabodie가 1930년 남극에서 직접 경험한 혼란에서 비롯되었다. 수사 일지에는 이런 기록이 남아있다: “이름을 ’Frank Lake’로 통째로 기록하는 실수를 범했다. 나중에 성만으로 검색하려고 하니 불가능했다. 이름과 성은 반드시 별도로 기록해야 한다.”

이 원칙의 핵심은 각 데이터 필드가 더 이상 분해할 수 없는 최소 단위를 담아야 한다는 것이다. 전체 이름을 하나의 필드에 저장하는 대신, 개인 이름과 가족 이름을 별도 필드로 분리해야 한다. 이렇게 하면 나중에 성별로 검색하거나 개인 이름만으로 필터링할 때 훨씬 용이하다.

752번 방문에서 발생한 날짜 누락이나 측정자 누락 문제도 원자성 원칙 위반의 결과로 볼 수 있다. 만약 날짜와 시간을 하나의 필드에 저장했다면, 시간은 기록되었지만 날짜만 누락되는 부분적 손실도 방지할 수 있었을 것이다. 각 정보 요소가 독립적이고 완전한 형태로 저장되어야 한다는 것이 원자성의 본질이다.

3.1.2 원칙 2: 고유성

“모든 기록은 고유한 식별자를 가져야 한다”. 고유성 원칙(Unique)의 중요성을 Pabodie는 피부로 느꼈다. 일지에는 이런 고민이 적혀있다: “같은 날, 같은 사람이 여러 번 측정했을 때 기록을 구분할 방법이 없어 혼란이 발생했다. taken, person, quant 조합으로 모든 측정을 유일하게 식별할 수 있어야 한다.”

이 원칙이 없었다면 752번 방문에서 Lake가 수행한 세 가지 측정(방사능, 염도, 온도)을 구분할 수 없었을 것이다. 각 측정 기록은 방문 번호(taken), 측정자(person), 측정 유형(quant)의 조합으로 고유하게 식별된다. 예를 들어 752번 방문에서 Lake의 염도 측정은 (taken=752, person='lake', quant='sal')라는 고유한 조합으로 다른 모든 측정과 구별된다.

또한 각 테이블은 자체적인 기본 키를 가져야 한다. Person 테이블의 경우 각 탐사대원을 구분하는 id 필드가 있어서 ‘dyer’, ‘lake’, ‘pb’, ‘roe’ 같은 고유 식별자로 개인을 구분한다. 이런 체계적인 식별 방법이 없었다면 1930년대 탐사 기록의 혼란은 훨씬 심각했을 것이다.

3.1.3 원칙 3: 중복 제거

“같은 정보를 여러 곳에 저장하지 마라”. 중복 제거 원칙(No Redundancy)은 Pabodie가 데이터베이스 설계에서 가장 중요하게 여긴 개념이었다. 그의 일지에는 이런 통찰이 기록되어 있다: “Site 정보를 Visited 테이블에 매번 복사해서 저장했다면, 위도/경도 수정 시 모든 레코드를 찾아 바꿔야 했을 것이다. 별도 테이블로 분리한 것이 현명했다.”

실제로 탐사대 데이터베이스를 보면 이 원칙이 얼마나 중요한지 알 수 있다. DR-3 지점의 위도와 경도 정보는 Site 테이블에 한 번만 저장되어 있다. 만약 이 정보를 Visited 테이블의 각 방문 기록마다 중복해서 저장했다면, DR-3의 좌표를 수정해야 할 때 여러 레코드를 일일이 찾아서 변경해야 했을 것이다. 이는 실수의 가능성을 높이고, 데이터 불일치를 야기할 수 있다.

중복 제거는 또한 저장 공간의 효율성도 가져다준다. 1930년대에는 저장 매체가 귀했기 때문에 공간 절약이 더욱 중요했다. 하지만 무엇보다 중요한 것은 데이터의 일관성이다. 한 곳에서만 정보를 관리하면 업데이트가 필요할 때 실수 없이 정확하게 수정할 수 있다. 752번 방문 같은 복잡한 사건을 분석할 때, 데이터의 신뢰성은 진실 규명의 열쇠가 된다.

3.1.4 원칙 4: 명시성

“모든 단위와 의미를 명확히 기록하라”. 명시성 원칙 (Explicit)은 752번 사건의 핵심에 있는 문제였다. Pabodie의 일지에는 이런 깨달음이 기록되어 있다: “Roerich의 염도값 41.6이 문제가 된 이유는 단위를 명시하지 않았기 때문이다. ppt(천분율)인지 ppm(백만분율)인지 알 수 없어 혼란이 가중되었다.”

Roerich가 측정한 41.6이라는 값이 왜 그토록 논란이 되었는지 이제 명확해진다. 만약 단위가 ppm(백만분의 일)이었다면 상당히 정상적인 염도값이었을 것이다. 하지만 다른 측정자들이 사용한 ppt(천분의 일) 단위였다면 정말로 비정상적인 수치가 된다. 이런 모호함이 탐사대 내부에 불신과 혼란을 야기했던 것이다.

현대의 데이터베이스에서는 이런 문제를 해결하기 위해 측정값과 함께 단위 정보를 별도 필드로 저장하거나, 모든 값을 표준 단위로 통일한다. 단순히 숫자 41.6만 저장하는 것이 아니라, 그 값의 의미와 맥락을 명확히 해야 한다는 것이 명시성 원칙의 핵심이다. 이 원칙을 따랐다면 752번 방문에서의 혼란은 처음부터 방지할 수 있었을 것이다.

3.2 AI와 함께하는 남극 미스터리 해결

90년이 지난 지금, 우리는 AI라는 강력한 도구를 활용해 1930년대 탐사대가 놓쳤던 패턴들을 새롭게 발견할 수 있다. NULL 데이터 뒤에 숨겨진 이야기들을 AI의 시각으로 해석해보자. 마치 현대의 탐정이 90년 전 사건을 재수사하는 것처럼 말이다.

3.2.1 극한 상황에서 기록 누락

데이터 분석을 시작하면서 가장 먼저 관심을 끈 것은 일부 측정에서 측정자가 기록되지 않은 패턴이었다. 1930년대 남극이라는 극한 환경에서 이런 누락이 발생한 이유는 무엇일까? 현대 AI의 관점에서 이 문제를 어떻게 해석할 수 있을까?

ChatGPT 프롬프트: “1930년대 남극 탐사 데이터에서 일부 측정자가 기록되지 않은 경우들이 있다. 이런 누락 패턴을 분석해서 어떤 의미가 있는지 추측해줘.”

ChatGPT 응답: “측정자가 기록되지 않은 경우는 보통 다음과 같은 이유일 것입니다:

  1. 긴급 상황에서 측정했을 때
  2. 여러 사람이 공동으로 측정했을 때
  3. 기록 담당자가 부재했을 때 특히 극한 추위(-26도)에서 측정한 경우 기록자 누락이 있을 것입니다.”

ChatGPT의 답변은 매우 현실적이고 합리적이었다. 특히 마지막에 언급한 “-26도”라는 구체적인 온도가 인상적이었다. AI가 어떻게 이런 구체적인 수치를 추론해낼 수 있었을까? 1930년대 남극의 기후 조건과 인간의 생리적 한계를 종합적으로 고려한 결과인 것 같았다.

SQL로 검증해보기:

-- 측정자가 누락된 레코드들의 패턴 분석
SELECT taken, person, quant, reading
FROM Survey 
WHERE person IS NULL OR person = '-'
ORDER BY taken;
taken person quant reading
735 - sal 0.06
735 - temp -26.0

검증 결과는 정말로 놀라웠다. 측정자가 누락된 기록은 735번 방문에서 단 두 건뿐이었는데, 그중 하나가 정확히 -26도의 온도 측정이었던 것이다. ChatGPT가 추측한 온도와 정확히 일치했다! 이는 우연의 일치라고 보기에는 너무나 정확한 예측이었다.

이 결과는 1930년대 남극 탐사의 현실을 생생하게 보여준다. -26도의 극한 추위에서는 장갑을 벗고 세밀한 기록을 남기는 것이 거의 불가능했을 것이다. 동상의 위험이 있는 상황에서는 측정을 완료하는 것 자체가 우선이었고, 누가 측정했는지 기록하는 것은 부차적인 문제였을 것이다. 생존이 우선인 극한 상황에서의 인간적인 현실을 데이터를 통해 엿볼 수 있는 순간이었다.

3.2.2 752번 방문 숨겨진 진실

752번 방문에서 날짜가 누락된 것에 대해 더 깊이 파고들어보자. 8번의 방문 기록 중 유독 이 방문만 날짜가 사라진 이유는 무엇일까? 이것이 단순한 기록 실수였을까, 아니면 뭔가 의도적인 것이었을까? 1930년대 탐사 환경을 고려할 때 어떤 해석이 가능한지 AI의 관점을 들어보고 싶었다.

ChatGPT 프롬프트: “752번 방문에서 날짜가 누락된 것이 단순한 실수일까, 아니면 의도적인 것일까? 데이터를 보고 추측해줘.”

ChatGPT 응답: “752번 방문은 의도적으로 날짜를 기록하지 않았을 가능성이 높습니다. 이유:

  1. 비공식적인 측정이었을 가능성
  2. 위험한 상황에서 급하게 측정
  3. 보안상 기록하지 않기로 결정

특히 이 방문에서 특별한 발견이 있었다면 기밀 유지를 위해 날짜를 숨겼을 것입니다.”

AI의 답변은 예상보다 훨씬 구체적이고 흥미로웠다. 단순한 기록 누락이 아니라 의도적인 정보 은폐 가능성을 제기한 것이다. 특히 “특별한 발견”과 “기밀 유지”라는 표현이 마치 탐정 소설의 한 장면 같은 긴장감을 자아냈다. 과연 1930년대 남극 탐사에서 그런 일이 실제로 가능했을까?

SQL로 검증해보기:

-- 752번 방문의 특별한 점들 분석
SELECT s.taken, s.person, s.quant, s.reading, v.dated, v.site
FROM Survey s
JOIN Visited v ON s.taken = v.id
WHERE s.taken = 752;
taken person quant reading dated site
752 lake rad 2.19 -null- DR-3
752 lake sal 0.09 -null- DR-3
752 lake temp -16.0 -null- DR-3
752 roe sal 41.6 -null- DR-3

데이터를 자세히 살펴보니 ChatGPT의 추측이 상당한 설득력을 갖는다는 것을 발견했다. 이 방문에서 Roerich가 측정한 염도값이 41.6이라는 극단적으로 높은 수치였던 것이다. 다른 모든 염도 측정값이 0.05~0.21 범위인 것과 비교하면, 41.6은 정말로 “특별한 발견”에 해당한다. 이런 비정상적인 수치가 나왔다면 탐사대 내부에 상당한 논란이 있었을 것이고, 추가 검증이 필요한 상황에서 임시적으로 기록을 보류했을 가능성도 있다. 아니면 정말로 중요한 지질학적 발견이어서 외부 유출을 방지하기 위해 의도적으로 날짜를 숨겼을 수도 있다. AI의 추론이 단순한 상상이 아닌 현실적인 시나리오로 다가온다.

3.2.3 Pabodie 숨겨진 패턴

세 번째 미스터리는 탐사대에서 두 번째로 많은 측정을 수행한 Frank Pabodie에게서 발견된다. Lake가 12번의 측정으로 가장 활발했다면, Pabodie는 5번의 측정으로 그 뒤를 따랐다. 하지만 Pabodie의 데이터에는 Lake와는 다른 특별한 패턴이 숨어있었다. 탐사대 전체에서 측정자가 기록되지 않은 기록들이 몇 건 있는데, 과연 이것이 Pabodie와 어떤 관련이 있을까? 그가 자신의 이름을 의도적으로 숨긴 이유가 있을까?

ChatGPT 프롬프트: “Pabodie는 5번의 측정을 공식 기록했지만, 탐사대에는 측정자가 불분명한 기록들도 있다. 이것이 Pabodie와 관련이 있을까?”

ChatGPT 응답: “Pabodie는 공식적인 측정과 비공식적인 측정을 구분했을 것입니다:

  1. 공식 측정: 자신의 이름 기록
  2. 비공식/확인 측정: 이름 누락
  3. 다른 사람의 측정 검증: 익명으로 처리

아마도 팀 내 갈등이나 측정 결과에 대한 의견 차이가 있었을 것입니다.”

AI의 분석은 예상보다 훨씬 정교하고 인간적이었다. 단순히 기록 누락을 기술적 문제로 보지 않고, Pabodie의 성격과 팀 내 역학관계까지 고려한 해석을 제시한 것이다. 특히 “팀 내 갈등이나 의견 차이”라는 표현은 90년 전 남극 기지에서의 미묘한 인간관계를 연상시킨다.

SQL로 검증해보기:

-- Pabodie의 기록 패턴과 누락 패턴 비교
SELECT 
    '공식기록' as 유형,
    COUNT(*) as 건수,
    AVG(reading) as 평균값
FROM Survey 
WHERE person = 'pb'
UNION ALL
SELECT 
    '누락기록' as 유형,
    COUNT(*) as 건수,
    AVG(reading) as 평균값
FROM Survey 
WHERE person IS NULL OR person = '-';
노트UNION ALL: 두 쿼리 결과 합치기

UNION ALL은 두 개의 SELECT 쿼리 결과를 하나로 합치는 SQL 명령어입니다. 탐정이 서로 다른 조건으로 수사한 두 가지 증거를 하나의 보고서로 만드는 것과 같습니다.

  • UNION: 중복 제거하고 합치기
  • UNION ALL: 중복 포함하여 모두 합치기 (더 빠름)

두 쿼리의 컬럼 개수와 데이터 타입이 같아야 합니다. 위 예시에서는 Pabodie의 공식 기록과 누락 기록의 통계를 비교하기 위해 사용했습니다.

유형 건수 평균값
공식기록 5 -4.004
누락기록 2 -12.97

데이터 분석 결과는 ChatGPT의 추측을 강력하게 뒷받침한다. Pabodie의 공식 기록 5건의 평균 측정값은 -4.004도였지만, 측정자가 누락된 기록 2건의 평균값은 -12.97도로 거의 9도나 더 추웠다. 이는 극한 상황에서의 측정임을 의미한다. 아마도 Pabodie는 다른 팀원들이 측정하기 어려운 위험한 상황에서 추가 측정을 수행했지만, 공식 절차를 따르기 어려운 상황이어서 자신의 이름을 기록하지 않았을 것이다.

이런 행동 패턴은 Pabodie라는 인물의 성격을 깊이 있게 보여준다. 그는 완벽주의자이면서 동시에 배려심 깊은 사람이었을 것이다. 다른 사람의 측정 결과가 의심스러우면 직접 확인 측정을 했지만, 원래 측정자의 권위와 체면을 존중하여 자신의 이름은 남기지 않았을 것이다. 이런 세심한 배려와 과학적 엄밀성, 그리고 극한 상황에서도 측정을 포기하지 않는 책임감이 그를 탐사대의 핵심 인물로 만들었던 것 같다.


3.2.4 AI와 SQL 협업

752번 방문의 미스터리를 파헤치는 과정에서 우리는 ChatGPT와 SQL이라는 두 강력한 도구의 시너지를 경험했다. 이 사건은 단순한 데이터 분석을 넘어서 현대 데이터 과학의 본질적 질문을 던져준다. AI의 직관적 추론과 SQL의 정밀한 검증, 과연 어떤 조합이 진실에 가장 가까이 다가갈 수 있을까?

표 5.2 은 752번 사건 분석을 통해 드러난 각 도구의 특성을 보여준다:

표 3.1: AI와 SQL 누락 데이터 분석 비교
분석 영역 ChatGPT SQL 승자
패턴 인식 직관적 추측 정확한 상관관계 SQL ✅
가설 생성 창의적 시나리오 불가능 ChatGPT ✅
인과관계 추론 논리적 연결 통계적 근거 무승부
숨겨진 의미 발견 스토리텔링 우수 수치 기반 ChatGPT ✅
검증 가능성 불가능 완벽한 검증 SQL ✅

흥미롭게도 승부는 거의 대등했다. ChatGPT는 Pabodie의 ‘이중 생활’이나 Roerich의 ’특별한 발견’ 같은 창의적 가설을 제시하는 데 탁월했다. 하지만 이런 추론들이 실제로 타당한지 검증하려면 SQL의 정확한 데이터 분석이 필수였다. 반대로 SQL만으로는 “왜 752번 방문의 날짜가 누락되었는가?”라는 근본적 질문에 답할 수 없었다. 수치와 패턴은 보여줄 수 있지만, 그 이면의 인간적 동기나 상황적 맥락은 AI의 영역이었다.

실제 데이터 분석 현장에서 가장 효과적인 접근법은 두 도구의 협업이다. ChatGPT로 “왜 이런 일이 일어났을까?”라는 다양한 가설을 생성하고, SQL로 “실제로 그런 패턴이 존재하는가?”를 검증하는 것이다. 예를 들어 ChatGPT가 “극한 추위에서 측정이 어려웠을 것”이라고 추측하면, SQL로 기온과 누락 데이터 간의 상관관계를 분석해 이를 뒷받침하거나 반박할 수 있다. 이런 순환적 접근을 통해 AI의 창의성과 SQL의 정확성이 만나 더 깊은 통찰을 얻을 수 있다.

752번 사건의 분석을 마무리하며, 우리는 Frank Pabodie가 이 혼란을 겪은 후 정리했을 것으로 추정되는 데이터 원칙들을 발견할 수 있다. 이 원칙들은 오늘날 데이터 위생(Data Hygiene)의 기초가 되었으며, 90년이 지난 지금도 여전히 유효하다. 첫째는 원자성으로, 각 필드는 더 이상 분해할 수 없는 최소 단위여야 한다는 것이다. 둘째는 고유성으로, 모든 레코드는 고유한 식별자를 보유해야 한다. 셋째는 중복 제거로, 같은 정보를 여러 곳에 저장하지 않아야 하며, 넷째는 명시성으로, 모든 단위와 의미를 명확히 기록해야 한다는 것이다.

만약 1930년의 탐사대가 이런 원칙들을 미리 알고 있었다면 752번 방문의 혼란도 방지할 수 있었을 것이다. 하지만 역설적으로 그 혼란이 있었기에 우리는 더 깊은 교훈을 얻을 수 있었다. 데이터의 ‘없음’ 속에서 ’있음’을 발견하고, AI와 SQL의 협업을 통해 90년 전 남극의 인간 드라마를 재구성할 수 있었던 것이다.


3.3 퍼즐 조각이 맞춰지는 순간

지금까지 우리는 개별적인 미스터리들을 하나씩 분석해왔다. 752번 방문의 사라진 날짜, Lake의 의문스러운 행동 패턴, Pabodie의 숨겨진 측정 기록들… 각각은 흥미로운 단서였지만, 이제 이 모든 퍼즐 조각들이 하나의 완전한 그림으로 맞춰지는 순간이다. 90년 전 남극 기지에서 실제로 무슨 일이 일어났는지, 누락된 데이터들이 감추려 했던 진실이 무엇인지 드러나기 시작한다.

가장 중요한 열쇠는 752번 방문에서 발견된 Roerich의 염도값 41.6이었다. 이 수치는 다른 모든 염도 측정값(0.05~0.21 범위)과 비교했을 때 200배 이상 높은 극단적인 값이다. 단순한 측정 오류라고 치부하기에는 너무나도 일관된 패턴이 뒤따랐다. 바로 그 날부터 Lake는 DR-3 지역에 대한 집착적인 모니터링을 시작했고, 심지어 다른 팀원들이 측정하지 못하는 극한 상황에서까지 Pabodie가 비공식적인 확인 측정을 수행하기 시작했던 것이다.

더욱 흥미로운 것은 이 모든 사건의 시간적 흐름이다. 752번 방문의 날짜만 의도적으로 기록되지 않았는데, 이는 우연이 아니었다. 만약 이것이 정말로 중대한 과학적 발견이었다면, 당시 국제적으로 민감한 남극 탐사 경쟁 상황에서 발견 일자를 숨기는 것은 매우 현실적인 판단이었을 것이다. 특히 그 이후 Lake가 보인 DR-3 지역에 대한 지속적인 감시 활동은 단순한 호기심을 넘어선 전략적 행동으로 해석된다.

Pabodie의 행동 역시 이런 맥락에서 이해할 수 있다. 그의 비공식 측정들이 모두 극한 추위(-12.97도 평균)에서 이루어졌다는 사실은 일반적인 탐사 활동의 범위를 벗어난 것이었다. 아마도 그는 Roerich의 발견을 검증하기 위해, 혹은 추가적인 증거를 수집하기 위해 위험을 무릅쓰고 측정을 계속했을 것이다. 하지만 공식 기록에 자신의 이름을 남기지 않은 것은 발견의 진정한 의미를 이해하고 있었기 때문일 것이다.

중요1930년 남극에서 무슨 일이 일어났나?

90년 전 DR-3 지역에서 발견된 41.6이라는 염도값은 단순한 측정 오류가 아니었다. 이는 당시로서는 예상하지 못한 중대한 지질학적 현상의 증거였고, 탐사대는 이 발견의 중요성을 인식하고 있었다.

752번 방문의 날짜를 의도적으로 기록하지 않은 것, Lake의 지속적인 DR-3 감시, Pabodie의 극한 상황에서의 비공식 측정들… 이 모든 것이 하나의 거대한 발견을 둘러싼 신중한 대응이었던 것이다.

결국 우리가 ‘누락된 데이터’라고 여겼던 NULL 값들은 사실 가장 중요한 정보를 담고 있었다. 무엇을 기록하지 않았는가가 무엇을 기록했는가보다 더 많은 것을 말해주었던 것이다. 이는 현대 데이터 분석에서도 마찬가지다. 때로는 데이터의 ’없음’ 속에서 가장 중요한 통찰을 발견할 수 있으며, 그것이 바로 NULL을 단순한 빈 공간이 아닌 ’알 수 없음’이라는 적극적 상태로 다뤄야 하는 이유인 것이다.

3.4 데이터베이스 키의 비밀

752번 미스터리를 해결하는 과정에서 우리는 중요한 사실을 깨달았다. 서로 다른 테이블에 흩어져 있던 정보들을 연결하여 전체 그림을 그릴 수 있었던 것은 바로 키(Keys) 덕분이었다는 점이다. Pabodie가 후에 정리한 데이터 위생 원칙 중 “고유성”이 실제로 어떻게 작동하는지 보여주는 완벽한 사례였던 것이다.

생각해보면 우리가 752번 방문에서 Lake와 Roerich의 측정 기록을 연결할 수 있었던 이유, Pabodie의 숨겨진 패턴을 발견할 수 있었던 이유는 모두 각 테이블의 데이터들이 고유한 식별자로 정확하게 연결되어 있었기 때문이다. 만약 이런 체계적인 연결고리가 없었다면 우리는 개별적인 숫자들의 나열만 보고 있었을 것이고, 그 속에 숨겨진 인간 드라마는 영원히 발견하지 못했을 것이다.

1930년대 탐사대 기록에서 발견할 수 있는 키 체계는 현대 데이터베이스 설계의 기초가 되는 세 가지 핵심 개념을 모두 포함하고 있다. 이는 Pabodie와 같은 과학자들이 이미 90년 전부터 데이터의 체계적 관리가 얼마나 중요한지 이해하고 있었음을 보여준다.

노트데이터베이스 세 가지 키 체계

논리 키 (Logical Key)

  • 정의: 실제 세상에서 의미를 갖는 자연스러운 식별자
  • 탐사대 예시:
    • Person 테이블의 id: ‘dyer’, ‘lake’, ‘pb’ (실제 사람을 구분)
    • Site 테이블의 name: ‘DR-1’, ‘DR-3’, ‘MSK-4’ (실제 지역을 구분)
  • 특징: 인간이 이해하기 쉽고 업무적 의미가 있음

기본 키 (Primary Key)

  • 정의: 데이터베이스 내부에서 각 레코드를 고유하게 식별하는 기술적 식별자
  • 탐사대 예시:
    • Visited 테이블의 ident: 619, 622, 734, 735, 751, 752, 837, 844
  • 특징: 순수하게 기술적 목적으로 사용, 중복되지 않음 보장

외래 키 (Foreign Key)

  • 정의: 다른 테이블의 기본 키를 참조하여 테이블 간 관계를 만드는 키
  • 탐사대 예시:
    • Survey 테이블의 taken: Visited 테이블의 ident를 참조
    • Survey 테이블의 person: Person 테이블의 id를 참조
  • 특징: 데이터 무결성을 보장하고 관계형 분석을 가능하게 함

이런 키 체계가 있었기에 752번 방문에서 무슨 일이 일어났는지 완전한 그림을 그릴 수 있었다. taken 값 752를 통해 Survey 테이블과 Visited 테이블을 연결하고, person 값을 통해 누가 측정했는지 파악하며, 최종적으로 Lake, Roerich, Pabodie의 행동 패턴까지 분석할 수 있었던 것이다. 만약 이런 체계적인 키 구조가 없었다면 각 측정값들은 고립된 숫자에 불과했을 것이고, 그 속에 숨겨진 탐사대의 드라마틱한 이야기는 영원히 발견되지 못했을 것이다.

3.4.1 도구와 데이터 공생 관계

752번 미스터리를 해결하는 과정에서 우리는 중요한 깨달음을 얻었다. 한걸음 물러나서 생각해보면, 데이터와 저장하는데 사용되는 도구는 공생관계다. 테이블과 조인은 데이터가 특정 방식으로 잘 조직되었다면 매우 효과적이다. 하지만 동시에, 특정 형태로 되어 있다면 효과적으로 다룰 수 있는 도구가 있기 때문에 데이터를 그와 같은 방식으로 조직하기도 한다.

인류학자가 말했듯이, “도구는 도구를 만드는 손을 만든다”(the tool shapes the hand that shapes the tool). 즉, 도구(기술, 방법론 등)가 사용자(인간, 조직 등)에게 영향을 미치며, 동시에 사용자가 그 도구를 개선하거나 변형시키는 과정을 의미한다. 결과적으로, 도구와 사용자는 서로 영향을 주고받으며 발전해 나간다는 개념을 내포하고 있다.

Pabodie가 1930년에 정리한 데이터 위생 원칙들이 90년 후 현대 데이터베이스 설계의 기초가 된 것이 바로 이런 공생 관계의 증거다. 그의 원칙들은 당시 탐사대가 직면한 현실적 문제에서 비롯되었지만, 이제는 우리가 데이터를 조직하고 사고하는 방식 자체를 형성하고 있다. 마찬가지로 우리가 오늘날 사용하는 SQL의 테이블 구조와 키 체계는 앞으로 수집되고 저장될 데이터의 형태를 결정하게 될 것이다.


💭 생각해볼 점

NULL이라는 ’없음’이 어떻게 가장 중요한 ’있음’을 드러낼 수 있는지 놀랍지 않은가? 752번 방문의 사라진 날짜, Pabodie의 익명 측정, 그리고 체계적인 키 구조가 있었기에 우리는 90년 전 남극의 인간 드라마를 재구성할 수 있었다.

Pabodie가 혼란스러운 752번 사건 이후 정리한 데이터 위생 원칙들 - 원자성, 고유성, 중복 제거, 명시성 - 은 오늘날에도 여전히 유효하다. 좋은 데이터 구조는 단순히 정보를 저장하는 것을 넘어서 진실을 발견하는 도구가 된다는 것을 보여준다.

이제 우리는 더 강력한 도구들을 손에 넣었다. 다음 장에서는 SQL의 집계 함수와 AI의 추론 능력을 결합하여 탐사대가 미처 발견하지 못한 숨겨진 패턴들을 찾아내 보자…