데이터 구조도
튜링상 선정 이유 중 하나는 데이터 구조도Data Structure Diagram이다. 흔히 바크먼 다이어그램Bachman Diagram이라고도 불리는 데이터 구조도는 MIACS를 개발하는 과정에서 탄생했다.
바크먼이 데이터 구조도를 만든 이유는, 저장되는 데이터의 세부적인 구조와 관계를 한 눈에 이해하고 싶었기 때문이었다. 앞의 예에서 제품에 관한 레코드를 설계할 때, 제품의 세부 정보 중에는 생산 부서, 부품 등의 정보가 있었다. 그런데 생산 부서는 그 자체로 다음과 같이 또 다른 세부 정보를 형성할 수 있다.
- 부서 일련번호
- 부서 이름
- 주소
- 연락처
부품도 마찬가지이다.
- 부품 일련번호
- 부품 이름
- 구매 담당자
- 재고량
데이터 구조도는 각 레코드 종류(예: 제품, 생산 부서, 부품)마다 소속된 세부 정보의 목록과, 주종관계(예: 제품->생산부서, 제품->부품)를 표현한다.
데이터 구조도와 유사한 것으로 1976년에 등장한 ER 다이어그램이 있다.6 데이터 구조도는 주로 네트워크 데이터베이스 모델에서 사용되고 ER 다이어그램은 관계형 데이터베이스 모델에서 사용된다. 데이터 구조도는 하나의 Entity(레코드)에서 세부 정보들 간의 관계를 표현하는 식이고, ER 다이어그램은 Entity들 사이의 관계를 표현하는 식이다.
CODASYL DBTG
CODASYL(Conference/Committee on Data Systems Languages)은 프로그래밍 언어의 표준화를 위해 구성된 단체이다. 1959년에 결성된 CODASYL은 크게 두 가지 결과물을 만들었다. 하나는 코볼 언어 개발이고 다른 하나는 데이터베이스 인터페이스 표준화이다.
데이터베이스 인터페이스 표준화는 1965년에 LPTF(List Processing Task Force)라는 하위 조직이 생기면서 시작되었다. 원래는 코볼 언어에서 사용 가능한 데이터베이스 인터페이스 표준을 목표로 했다. 이 조직의 이름은 1967년에 DBTG(Data Base Task Group)으로 바뀐다. 이를 보면 1965년까지만 해도 데이터 베이스라는 표현이 보편화되지 않았음을 엿볼 수 있다.
실질적으로 벌어진 작업은, IDS 시스템을 사용하기 위한 코볼 언어 명세서 작성이라고 할 수 있다. IDS 시스템을 가장 잘 아는 바크먼이 참여하는 것은 너무도 당연했다. 당시 GE는 소프트웨어가 특허의 대상이 되지 못한다고 판단했고 IDS를 중심으로 표준이 이루어지면 GE의 컴퓨터 사업에 큰 도움이 되리라고 생각했다.7
이 작업을 통해서 많은 용어가 정리되었다. IDS 방식의 데이터베이스를 네트워크 방식 데이터베이스라고 명명했으며, IDS에서는 ‘마스터master‘ 레코드와 ‘세부정보detail” 레코드라고 부르던 것이 ‘소유주owner‘ 레코드와 ‘멤버member‘ 레코드라고 불리게 되었으며 레코드 사이의 연관 관계를 ‘셋set‘이라고 칭했다.
또한 레코드의 구조와 접근 방식을 프로그램 내에서 표현하기 위한 방법으로 DDL(Data Definition Language)과 DML(Data Manipulation Language)이 정리되었으며, 데이터 레코드의 구조를 표현하기 위한 용도로 ‘스키마schema‘라는 단어가 처음 등장했다.
CODASYL DBTG는 1969년에 첫 명세서를 발표했다. 이 명세서는 국제 표준으로 채택되지는 않았으나 네트워크 방식 데이터베이스 구현을 위한 지침서 역할을 했다. 이 명세서를 기반으로 여러 회사들이 자체 DBMS를 개발했고 1970년대에 주요 소프트웨어 제품으로 자리 잡았다.