기타 업적

관계형 DBMS와의 논쟁

데이터베이스란 결국 저장장치에 특정한 형식으로 저장된 데이터이다. 그리고 이 데이터를 생성하고, 접근하고, 수정하고, 삭제하기 위해 DBMS(Data Base Management System)이라는 것을 만들어 사용한다.

IDS와 같이 저장된 데이터들이 서로 링크에 의해 연결되어 있는 방식을 네트워크형 데이터베이스라고 부른다. 네트워크형 데이터베이스는 키 값을 통해 데이터를 다룬다. 예를 들어, 제품 번호를 사용하여 제품에 대한 데이터 레코드를 접근하는 식이다. 키 값을 인자로 하는 DBMS용 함수들이 있다. 이름은 조금씩 다를 수 있지만, CREATE(생성), RETRIEVE(접근), UPDATE(수정), DELETE(삭제), GET NEXT(다음 것 가져오기) 같은 함수들이 있다.

이와 비교되는 방식이 관계형 데이터베이스이다. 관계형 데이터베이스에서는 데이터가 표table의 구조로 관리된다. 네트워크형 데이터베이스에서는 같은 종류의 여러 데이터 레코드들이 있다고 할 때, 이것들이 링크 방식으로 연결되어 있지만, 관계형 데이터베이스에서는 하나의 표 속에 순차적으로 저장되어 있다.

아울러 다른 종류의 데이터 레코드들을 연관 짓는 방법에도 차이가 있다. 네트워크형 데이터베이스에서는 일종의 주종관계로 표현이 된다. 예를 들어 어떤 제품 레코드가 있고, 이 제품을 구성하는 부품 레코드들이 있다고 했을 때 이 제품 레코드에는 이 부품 레코드들의 키 값이 저장되는데, 이것이 일종의 주종관계를 형성하는 셈이다. 이에 비해 관계형 데이터베이스는 제품 레코드가 들어 있는 테이블과 부품 레코드가 들어 있는 테이블이 독립적으로 간주되며 제품 레코드 속에는 연관된 부품 레코드의 키 값이 들어있기는 하지만 그 부품 레코드의 정보를 읽기 위해 키 값을 통해 부품 레코드에 직접 접근하기보다는 두 테이블을 JOIN이라는 방식으로 결합하여 새로운 테이블을 만든다.

관계형 DBMS에서 사용하는 인터페이스도 사뭇 다르다. 네트워크형 DBMS는 일반 프로그래밍 언어를 위한 일종의 함수 라이브러리를 제공하는 반면에, 관계형 DBMS는 SQL이라는 새로운 인터페이스 언어를 제공한다. 각 프로그래밍 언어는 SQL을 사용하는 라이브러리를 별도로 가지고 있다.

네트워크형 데이터베이스와 관계형 데이터베이스 중에서 어느 것이 더 좋은지는 오랫동안 논쟁의 대상이었다. 네트워크형 데이터베이스의 창시자인 바크먼과 관계형 데이터베이스의 창시자인 에드거 커드Edgar Codd는 양 진영의 선봉장이었다.​**​ 두 사람은 1974년에 ACM이 주최한 학술대회에서 정면으로 부딪쳤다. 이 공개 논쟁의 시발점은 바크먼의 튜링상 수상이었다. 바크먼과 커드가 함께 참석한 어떤 모임에서 바크먼이 튜링상 수상 강연을 미리 선보였다고 한다. 동석했던 이의 회고담은 이러하다.

테드(에드거 커드의 별칭)는 의자를 움켜줬습니다. 찰리가 자리에 앉는 순간 테드는 벌떡 일어나더니 이렇게 말했습니다. “찰리가 튜링상을 수상한 것에 대해 축하하고 싶습니다. 정말 대단한 일이며 그는 상을 받을 자격이 있습니다. 그는 정말 멋진 친구입니다… 하지만 그가 논문에서 주장하는 것들이 완전히 틀렸다는 사실은 바뀌지 않습니다.” 정말 테드다웠습니다! 그는 이렇게 이어갔습니다. “찰리의 주장을 허물어뜨리기 위해 말할 것들이 너무 많습니다… 이 자리는 그것을 하기에는 맞지 않습니다… 그래서 말인데, 나는 이 건을 놓고서 공개 토론을 하자는 제안을 찰리에게 하고 싶습니다.”​8​

바크먼은 네트워크형 데이터베이스가 훨씬 빠르며 공학적으로 현실적인 방법이라고 주장했고 커드는 관계형 데이터베이스가 과학적인 엄격함이 있으며 우아하다고 주장했다. 1974년까지만 해도 관계형 데이터베이스는 이론만 있고 아직 제대로 상용화된 시스템이 없었기 때문에 열세에 있었다. 하지만 1970년대 말부터 쏟아져 나온 관계형 데이터베이스는 결국 네트워크형 데이터베이스를 압도하게 된다.

비록 현재는 관계형 데이터베이스가 대세이지만 바크먼이 네트워크형 데이터베이스를 만들면서 도입했던, 데이터베이스 고유의 이론들은 관계형 데이터베이스에도 적용되고 있다.

OSI 계층 모델

바크먼에게는 이색적인 경력이 있다. OSI 7 계층 모델을 표준화한 장본인이다. 데이터베이스 전문가이던 그가 어떻게 컴퓨터 네트워크 분야에서 표준화를 주도하게 되었는지를 조금 살펴보자.

1970년에 하니웰이 GE의 컴퓨터 사업을 인수한 후에 바크먼은 하니웰에서 계속 데이터베이스를 개선하고 확장하는 작업을 진행했다. 1970년대 중반에 하니웰은 HDSA(Honeywell Distributed System Architecture)라는 분산 시스템 구조를 추진했는데 바크먼도 자연스럽게 이 일에 동참했다.

나는 GE를 포함해서 하니웰의 초기 프로젝트들을 한 후에 깨달은 것이 있었습니다. 모든 흥미로운 것들이 가능하도록 데이터베이스를 만들어왔지만 트랜잭션 중심transaction-oriented으로 데이터베이스에 접근하도록 하는 방법들을 제공하지 않았더라구요. 그래서 (HDSA를) 1975년 정도에 시작해서 상당히 잘 정리된 명세서를 만들어냈습니다. 사실 ISO에 미국 측 제안서를 작성할 때 HDSA 명세서를 사용했습니다.​9​

1970년대에는 다양한 네트워크들이 제안되고 시도되었다. 제록스에서는 이더넷이 만들어졌고 IBM은 SNA를 제안했으며 유럽에서도 자체적으로 여러 형태와 프로토콜들이 등장했다. 이렇게 백가쟁명식으로 등장하다 보니 표준을 차지하기 위한 경쟁도 당연히 벌어졌으리라 예상할 수 있다. 1975년 가을에 영국 측에서 국제표준기구(ISO) 내에 OSI(Open Systems Interconnection)라는 위원회를 만들어 데이터 통신의 표준을 만들자는 제안을 내놓았다. 미국 측 대표에 포함되어 있던 IBM이 반대했지만 투표를 통해 위원회 구성이 통과되었다. 당시 CODASYL을 포함하여 국제 표준 활동에 꾸준히 관여해온 바크먼은 HDSA가 미국 표준안에 반영되기를 원했다. 하지만 하니웰 경영진은 이 위원회에 참여하고 싶어하지 않았다. 그래서 바크먼은 수를 썼다.

ISO SC 16 위원회를 만들려는 움직임이 벌어졌을 때 미니애폴리스에 있던 하니웰 관리자들은 이렇게 말했습니다. “우리는 그 일에 시간을 투입하지 않을 것입니다.” 당시에 하니웰에서 나는 데이터베이스보다 통신 일을 더 많이 해 온 상태여서 반드시 그 위원회에 참여해야 한다고 생각했습니다. CODASYL에서 IDS 일을 도와준 사람이 있었는데 그 사람에게 부탁했습니다. “당신이 나를 SC16 위원회 의장에 추천해주면 하니웰 경영진에서 나에게 하지 말라는 말은 못 할 겁니다.” 그래서 정확히 그대로 일이 벌어졌습니다. 그리고 나는 SC16의 의장이 되었습니다.​7​

바크먼은 SC16 미국 측 대표단 단장으로 임명되었다. 그리고 SC16의 사무국을 미국이 맡으면서 자연스럽게 SC16 대표 의장도 바크먼의 차지가 되었다. 하니웰은 그의 활동을 방해하지 않았다.​2​

OSI 7 계층 모델은 기본적으로 미국의 제안서를 바탕으로 하고 있다. 그리고 미국 측 제안서의 75%는 HDSA와 동일했다. 바크먼은 HDSA 작업을 하면서 IBM의 SNA를 참고했다. SNA는 6개의 계층으로 구성되었다. 상당히 구조가 잘 짜여 있다고 바크먼은 생각했지만 의아한 점이 있었다. 통신 기기의 데이터 포맷 비호환성을 고려하지 않은 것이다. 예를 들어 어떤 컴퓨터에서는 통신 프로그램이 ASCII 코드를 사용하고 다른 컴퓨터에서는 UNICODE를 사용한다고 했을 때 SNA는 프로그램의 데이터가 깨지거나 사라지는 일 없이 잘 전달되는 것만 보장했다. 하지만 바크먼은 ASCII 코드가 UNICODE로 바뀌어야 한다고 생각했다. 이는 그가 이 기종 사이에서 데이터베이스를 공유하려 했을 때 고민했던 사항이기도 했다.

하니웰에서 일할 때 우리는 응용 계층Application Layer를 한 단계 올리고 그 자리에 새로운 여섯 번째 계층인 표현 계층Presentation Layer을 넣었습니다… 만약 A라는 응용 프로그램과 B라는 응용 프로그램이 같은 포맷을 사용하고 서로 통신한다면 이 표현 계층은 아무 일도 하지 않습니다. 만약 두 응용 프로그램의 데이터가 호환되지 않는다면 포맷을 변환하는 소프트웨어가 표현 계층에 들어갈 것입니다.​10​

OSI 7 계층 모델은 컴퓨터 통신 관련 책에서 약방의 감초처럼 항상 등장한다. 통신 기기 사이의 데이터 통신을 개념적으로 아주 깔끔하게 정리했기 때문이다. 하지만 안타깝게도 OSI 7 계층 모델은 현장에서 사용되지 않았다. 그 이유는 여러 가지가 있겠으나 바크먼은 때를 놓쳤기 때문이라고 보았다.

살아남은 녀석은 TCP/IP죠. OSI 계층 모델의 표준이 발표되었을 시기에는 이미 TCP/IP를 기반으로 많은 것들이 만들어져 있는 상황이었습니다… 우리 위원회가 더 빨리 움직였으면 어땠을까 하고 생각하기도 합니다… 하지만 연방정부가 TCP/IP에 자금 지원을 하고 있어서 그쪽에 훨씬 동력이 있었습니다. ARPA나 군 통신시스템에서 출발한 현실적 접근 방식을 따라잡기에는 우리가 인원도 너무 적었고 시기도 너무 늦었습니다.​2​

사라 튜링과의 만남

바크먼은 튜링상을 수상하기 전까지는 앨런 튜링을 알지 못했다고 솔직히 고백한 바가 있다. 하지만 튜링상을 수상한 후에는 다른 어떤 수상자보다도 앨런 튜링에 관심을 가졌던 것으로 보인다.

그 당시에 나는 앨런 튜링이 누군지 몰랐습니다. 코니(바크먼의 부인)가 하버드와 MIT의 도서관에 가서 앨런 튜링에 관한 책이 있는지 찾아보았습니다. 딱 한 종류가 있었는데 그의 어머니가 쓴 책이었습니다. 미국에서는 그 책을 살 수가 없어서 코니가 영국에 있는 출판사에 편지를 썼죠. 4~5권이 남아 있었고 코니가 모두 주문했습니다… 그런데 출판사 직원이 이런 말을 했습니다. “앨런 튜링의 어머니가 아직 살아계신 걸 아시나요? 런던 남쪽에 있는 요양원에 사신답니다.”
코니와 나는 런던으로 향했고 차를 한 대 빌려서 서리 길포드로 갔습니다. 아주 멋진 방문이었습니다. 그녀는 의료진의 돌봄을 받고 있었는데 90대였고 신체적으로 매우 약했습니다… 그녀는 아들에 관해 많은 이야기를 들려주었지만 주로 학생 시절의 이야기였습니다. 달리기 대회에서 여러 번 상을 받았다더군요. “앨런이 학교를 졸업한 후에 그 학교의 달리기 대회 우승상을 ‘튜링상(Turing Award)’이라고 부른다오. 우리 아이가 그렇게 달리기를 잘했어요.” 그녀는 이렇게 말했습니다.​2​


  1. ​*​
    출처: https://en.wikipedia.org/wiki/Charles_Bachman, CC BY 2.0
  2. ​†​
    출처: https://en.wikipedia.org/wiki/High-voltage_switchgear, CC BY-SA 3.0
  3. ​‡​
    결과적으로는 컴퓨터가 목적을 달성했다고 한다. 방향을 바꾸면서 비행하느라 일본 폭격기가 제대로 목표물을 맞춘 적이 드물었기 때문이다.
  4. ​§​
    출처: https://www.youtube.com/watch?v=WRJYtbDHCto
  5. ​¶​
    세 번째 직원에 대해서는 바크먼도 혼동한 바가 있다. 일부 인터뷰에서는 밥 코너스를 언급했지만 그가 2009년에 발표한 IDS관련 논문에서는 호머 카니로 명시하고 있다.
  6. ​#​
    이 때 GE에서 사용하는 고급 언어는 GECOM이라는 것이었는데 서브루틴 호출을 언어에서 지원하지 않았던 것으로 추측된다.
  7. ​**​
    에드거 커드는 1981년에 튜링상을 수상했다.

참고문헌

  1. 1.
    Bachman CW. The programmer as navigator. ACM Turing Award Lectures.:1973. doi:10.1145/1283920.1283928
  2. 2.
    Haigh T, Bachman CW. Charles W. Bachman interview. ACM Oral History interviews on –. Published online 2006. doi:10.1145/1141880.1141882
  3. 3.
    데이터베이스. 위키백과. Accessed April 24, 2022. https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4
  4. 4.
    Database. Wikipedia. Accessed April 24, 2022. https://en.wikipedia.org/wiki/Database
  5. 5.
    Bachman CW. The Origin of the Integrated Data Store (IDS): The First Direct-Access DBMS. IEEE Annals Hist Comput. Published online October 2009:42-54. doi:10.1109/mahc.2009.110
  6. 6.
    Chen PPS. The entity-relationship model—toward a unified view of data. ACM Trans Database Syst. Published online March 1976:9-36. doi:10.1145/320434.320440
  7. 7.
    Charles Bachman 1973 Turing Award Recipient – Interviewed by Gardner Hendrie. Computer History Museum; 2015:58. https://amturing.acm.org/pdf/BachmanTuringTranscript.pdf
  8. 8.
    Haigh T. Charles W. Bachman: Database Software Pioneer. IEEE Annals Hist Comput. Published online April 2011:70-80. doi:10.1109/mahc.2011.68
  9. 9.
    Interview of Charles Bachman by James L. Pelkey. Computer History Museum; 1988:11. https://archive.computerhistory.org/resources/access/text/2018/02/102738717-05-01-acc.pdf
  10. 10.
    Oral-History: Charles Bachman, Conducted by Andrew L. Russell. IEEE History Center; 2011:. https://ethw.org/Oral-History:Charles_Bachman

1 2 3 4 5