기타 업적

SQL

1969년에 관계형 모델을 처음 내부에 발표한 후 커드는 이를 현장에 적용하기 위해 끊임없이 노력했다. 하지만 이미 잘 팔리고 있던 네트워크형 데이터베이스 제품들에 영향을 줄까 우려한 IBM 경영진은 관계형 모델을 기피했다. 커드의 가장 가까운 동료이자 관계형 모델의 지지자였던 데이트C. J. Date는 이런 일화를 소개한 바가 있다.

1974년에 나는 캘리포니아 애너하임에서 열린 데이터베이스 언어 연구 모임에 참석한 적이 있습니다. 관계형 모델에 관한 기본 아이디어를 발표하기 위해서였죠… 그 모임의 참석자들은 당시의 여러 데이터베이스 제품(TOTAL, IDS, IMS 등)을 써서 다섯 가지 예제 프로그램을 작성했습니다. 그 자리에서 처음 접했던 그 예제 프로그램을 나는 ALPHA 코드를 사용해서 각각 단 한 줄로 끝내버렸습니다. 모두 놀라워했고 좋아했던 기억이 또렷이 납니다. 그런데 그때 IBM에서 대표로 참석한 이가 저를 한쪽으로 끌고 가더니 이렇게 말했습니다. “그 관계형 물건에 대해 너무 세게 밀어붙이지 마십시오.” 그래서 “왜 그러면 안 되죠?”라고 되물었죠. 그러자 그는 말했습니다. “우리가 아직 그런 제품이 없잖아요.”​7​

ALPHA는 커드가 관계형 데이터베이스를 위해 만든 질의 언어였다. 하지만 현재 우리가 관계형 데이터베이스를 위한 사용하는 질의 언어는 SQL이라고 불린다. 여기에는 이유가 있다.

한참을 뜸 들이던 IBM은 관계형 데이터베이스에 대한 외부의 관심이 증가하자 드디어 자체 제품을 개발하기로 결정했다. 그런데 이 개발팀에 커드를 포함하지 않았다. 그러다 보니 이 개발팀은 커드가 이미 정리해 놓은 질의용 언어인 ALPHA를 도입하지 않고 자체적으로 새로 질의용 언어를 만들었다. 그 언어의 이름이 SEQUEL이다. 후에 이 이름이 다른 회사의 등록 상표인 것이 확인되어 이름을 SQL로 바꾸었다. 우리가 이것을 ‘에스큐엘’이라고 읽기보다는 ‘시퀄’이라고 읽는 이유에는 이런 사정이 있다.

1974년 논쟁

관계형 데이터베이스 모델과 비 관계형 데이터베이스 모델이 부딪힌 가장 유명한 사건이 1974년에 미국 컴퓨터 학회의 SIGMOD 워크샵에서 벌어진 논쟁이다. 관계형 데이터베이스 모델을 대표하여 커드가 나섰고, 비 관계형 데이터베이스 모델을 대표하여, 데이터베이스의 시조라고 불리는 바크먼이 나섰다. 둘은 한 치의 양보도 없이 상대방의 모델이 가진 문제점을 공격했다. 관계형 데이터베이스 모델은 수학적 기반을 바탕으로 하고 있기 때문에 상대적으로 완벽하며 비 관계형 데이터베이스 모델이 가진 여러 불편한 종속성들을 피할 수 있었지만, 구현했을 때 자원을 많이 사용하고 속도가 느리다는 단점이 있었다.

논쟁의 결과가 어느 한쪽의 손을 들어주는 식으로 끝나지는 않았다. 양 진영에는 장단점이 존재했기 때문이었다. 하지만 이미 자리를 굳건히 잡은 비 관계형 데이터베이스에 맞장을 뜰 수 있을 정도로 관계형 데이터베이스도 세를 불리고 있었음을 유추할 수 있다. 미 서부를 중심으로 관계형 데이터베이스 개발 업체들이 활발히 활동하면서 결국 1980년대에 관계형 데이터베이스는 주류로 부상했다.

다중 프로그래밍 시스템

다중 프로그래밍 시스템이란 한 대의 시스템에서 여러 명이 프로그래밍 작업을 할 수 있는 것을 말한다. 다중 처리multiprocessing 시스템과 유사한 면이 있으나 다중 처리 시스템은 일반 응용 프로그램들이 동시에 한 대의 컴퓨터에서 수행되는 것을 말하고 다중 프로그래밍 시스템은 프로그래밍 작업에만 집중한다. 다중 프로그래밍 시스템은 다중 처리 시스템으로 가기 전초 단계였다고 생각하면 좋겠다. 초기에 컴퓨터의 사용자는 지극히 제한되어 있었고 한 번에 여러 명이 사용할 일이 없었다. 오직 프로그래머들만이 아우성쳤을 뿐이다.

커드는 Stretch 컴퓨터​¶​를 설계하는 과정에서 다중 프로그래밍 시스템의 필요성을 느꼈다고 한다. 그래서 어떤 작업자가 외부 저장 장치에 읽기나 쓰기 작업을 할 때, 다른 작업자는 컴퓨터의 CPU를 사용할 수 있도록 허용하는 식으로 시스템을 구현했다.​2​

셀룰러 오토마타

오토마타는 질문이 입력되는 “예” 또는 “아니오”라는 답을 출력하는 일종의 블랙박스이다.​8​ 블랙박스이므로 어떻게 구현이 되는지에 대한 제한은 없지만, 흔히 여러 개의 상태들이 존재하고 그 상태들 사이의 전이 조건들이 제시된다. 셀룰러 오토마타는 폰 노이만이 제안한 오토마타이다.​9​

폰 노이만은, 스스로 번식하는 오토마타self-reproducing automata를 만들기 위해서는 29개의 상태가 필요하다고 보았는데 커드는 그의 박사 논문을 통해서 8개의 상태만 있으면 가능함을 증명했다.


  1. ​*​
    출처: https://en.wikipedia.org/wiki/Edgar_F._Codd
  2. ​†​
    인덱스라고 부르기도 한다.
  3. ​‡​
    여기서 언급한 문제점은 1969년의 상황이다. 후에 네트워크형 모델도 꾸준히 개선이 되었으므로 여기서 언급된 문제점들이 많이 완화되었을 수 있다. 1981년에 커드는 튜링상 수상 강연에서 네트워크형 모델의 문제점을 지적할 때 생산성에 초점을 맞추었다.
  4. ​§​
    ‘관계’란 결국 n-tuple의 집합이며, 실질적으로는 하나의 데이터베이스 테이블이다.
  5. ​¶​
    Stretch 컴퓨터 개발팀에는 RISC 구조로 유명한 존 코크도 있었다.

참고문헌

  1. 1.
    Codd EF. Relational database: a practical foundation for productivity. ACM Turing Award Lectures.:1981. doi:10.1145/1283920.1283937
  2. 2.
    Edgar F. (“TED”) Codd. A.M. Turing Award Laureates. Accessed October 31, 2022. https://amturing.acm.org/award_winners/codd_1000892.cfm
  3. 3.
    Codd Edgar F. Cellular Automata. Academic Press; 2014.
  4. 4.
    In his own words: A tribute to E.F. Codd. Business Rules Journal. Accessed October 27, 2022. https://www.brcommunity.com/articles.php?id=b160
  5. 5.
    Codd EF. A relational model of data for large shared data banks. Commun ACM. Published online June 1970:377-387. doi:10.1145/362384.362685
  6. 6.
    찰스 바크먼 – 튜링상 수상자 시리즈. 지식함지. Accessed April 22, 2023. https://knowledgebasin.com/archives/persons/%ec%b0%b0%ec%8a%a4-%eb%b0%94%ed%81%ac%eb%a8%bc
  7. 7.
    Date CJ. Edgar F. Codd: a tribute and personal memoir. SIGMOD REcord. 2003;32(4):.
  8. 8.
    Rabin MO, Scott D. Finite Automata and Their Decision Problems. IBM J Res & Dev. Published online April 1959:114-125. doi:10.1147/rd.32.0114
  9. 9.
    Cellular automaton. Wikipedia. Accessed November 2, 2022. https://en.wikipedia.org/wiki/Cellular_automaton

1 2 3 4