11/10/2026 · VietTechies · Biên tập

Tháng 6 năm 1970, Edgar F. Codd, một nhà toán học ở phòng thí nghiệm nghiên cứu của IBM tại San Jose, công bố một bài báo định nghĩa mô hình quan hệ, ý tưởng làm nền tảng cho cơ sở dữ liệu quan hệ.
Một số đồng nghiệp của ông ở IBM không hiểu nổi bài báo này. “Vài người chúng tôi bên phòng Hệ thống đã thử đọc, nhưng chẳng hiểu đầu cua tai nheo gì cả,” Irv Traiger nhớ lại tại một buổi họp mặt năm 1995 của những người từng tham gia làm các hệ cơ sở dữ liệu quan hệ đời đầu ở IBM.
Lúc ấy, IBM đang đầu tư mạnh vào một kiểu cơ sở dữ liệu khác. Theo cáo phó của Codd trên tờ The New York Times, phải đến năm 1978, Frank T. Cary, chủ tịch kiêm giám đốc điều hành của IBM, mới ra lệnh cho công ty làm một sản phẩm dựa trên các ý tưởng của Codd.
Dù vậy, IBM vẫn không phải là bên về đích đầu tiên. Tờ Times viết rằng IBM “đã bị Lawrence J. Ellison vượt mặt trong cuộc đua ra thị trường”. Ellison là một doanh nhân ở Thung lũng Silicon, và startup của ông về sau trở thành tập đoàn Oracle.
Bảng thay cho đường dẫn
Bài báo của Codd mở đầu bằng một đòi hỏi thay mặt người dùng: “Người dùng các ngân hàng dữ liệu lớn trong tương lai phải được bảo vệ để khỏi phải biết dữ liệu được tổ chức ra sao trong máy (cách biểu diễn bên trong).” Ông viết rằng người dùng ở thiết bị đầu cuối và phần lớn các chương trình ứng dụng không nên bị ảnh hưởng khi cách biểu diễn bên trong ấy thay đổi.
Theo mô tả của Codd, các hệ thống thời đó cung cấp cho người dùng “các tệp có cấu trúc cây, hoặc các mô hình dữ liệu dạng mạng tổng quát hơn một chút”. Trong cấu trúc cây, các bản ghi con nằm bên dưới bản ghi cha, và chương trình tìm đến một bản ghi bằng cách đi theo một đường dẫn từ trên xuống. Nếu cấu trúc cây thay đổi, các chương trình duyệt cây có thể bị hỏng.
Codd đề xuất một cách tổ chức đơn giản hơn, dựa trên lý thuyết tập hợp trong toán học: lưu dữ liệu trong các bảng, và để người dùng truy vấn các hàng theo giá trị mà chúng chứa. Trong ví dụ của tờ Times, người dùng có thể yêu cầu “danh sách tất cả cầu thủ bóng chày của cả hai giải National League và American League có tỷ lệ đánh bóng thành công trên 0,300”. Người dùng mô tả kết quả. Việc tìm ra kết quả ấy trở thành bài toán của hệ thống.
“Nói sao nhỉ, không được dang tay chào đón”
IBM khi đó đã có sẵn một cơ sở dữ liệu thành công, tổ chức theo cấu trúc cây. IMS, tức Hệ thống Quản lý Thông tin (Information Management System) của hãng, vốn được xây dựng cho chương trình Apollo, với nhiệm vụ theo dõi danh mục vật tư của hàng triệu linh kiện. Năm 1968, IBM công bố phát hành IMS trên các máy tính lớn (mainframe) System/360. Theo IBM, trong thập niên 1970, nhiều nhà sản xuất và nhà bán lẻ đã dùng IMS cho đủ mọi việc, từ quản lý hàng tồn kho đến xử lý giao dịch bán hàng.
Phương án thay thế của Codd được đón nhận khá lạnh nhạt. “Nói sao nhỉ, cách tiếp cận của ông không được dang tay chào đón ở IBM,” Harwood Kolsky, nhà vật lý từng làm việc cùng Codd ở IBM trong thập niên 1950 và 1960, nói với tờ Times.
Khoảng năm 1970, Bob Yost thuộc Bộ phận Phát triển Hệ thống Tiên tiến của IBM đang làm việc với nhóm IMS. Khi ấy, ông cùng vài đồng nghiệp đến xem các nghiên cứu về mô hình quan hệ. “Chúng tôi không tin nổi; chúng tôi nghĩ phải mất ít nhất mười năm nữa mới có được thứ gì đó,” ông nhớ lại tại buổi họp mặt. “Và đúng là mười năm thật.”
IBM có làm, nhưng chậm
Theo lời Traiger, Codd muốn “lập một góc riêng cho mình”, tức một nhóm nhỏ của riêng ông, và nhóm ấy trở thành một dự án mang tên GAMMA-0. Ban đầu dự án có ba người, trong đó có Traiger, chính người từng không hiểu nổi bài báo của Codd.
Theo IBM, năm 1973, một nhóm lập trình viên bắt tay làm System R, “một bản hiện thực đủ mạnh để dùng trong công nghiệp” của mô hình do Codd đề xuất. Trong nhóm có Donald Chamberlin và Raymond Boyce; IBM ghi nhận hai người này, chứ không phải Codd, là những người phát triển SQL (Structured Query Language), tức ngôn ngữ truy vấn có cấu trúc.
Có điều, nguyên mẫu nghiên cứu không phải là sản phẩm. Bob Jolls từng phụ trách thiết kế cơ sở dữ liệu ở Santa Teresa, phòng thí nghiệm chính của IBM về cơ sở dữ liệu. Ông nhớ lại rằng nhóm của mình đã quyết định “cứ thế mà dùng System R làm nền cho SQL/DS”, tức hệ thống SQL/Data System của IBM. Theo lời ông, những người còn lại trong phòng thí nghiệm “dồn hết tâm trí vào chuyện làm sao thay thế hoàn toàn IMS”, và điều đó “kiểu như giúp chúng tôi tránh được mọi họng súng”.
Còn kinh phí thì lại là chuyện khác. Trong đợt lập kế hoạch mùa thu, IBM xếp các dự án vào hai diện: “in plan”, tức được cấp ngân sách, và “out plan”, tức không đủ tiền để làm. Jim Gray, thành viên nhóm System R, nhớ lại rằng cơ sở dữ liệu quan hệ cho phân khúc thấp đã bị xếp vào diện “out plan”. Phòng thí nghiệm của IBM ở Endicott, bang New York, nơi dự án hệ điều hành của chính họ vừa bị hủy, đã đứng ra nhận phần việc này. Mike Blasgen, cũng thuộc nhóm System R, cho biết người của Endicott “đã không quyết định lại những gì đã quyết, và nhờ thế tiết kiệm được hai năm”.
Tháng 2 năm 1981, chính Codd viết bài cho tạp chí Computerworld về ý nghĩa của việc công bố SQL/DS. Tiếp theo là DB2, cơ sở dữ liệu quan hệ của IBM dành cho các dòng mainframe cỡ lớn; theo IBM, DB2 được xuất xưởng lần đầu vào năm 1983.
Một startup nhanh chân hơn IBM
Năm 1977, Larry Ellison, Bob Miner và Ed Oates lập một công ty tư vấn tên là Software Development Laboratories, về sau trở thành Relational Software, Inc. Năm 1979, công ty này phát hành Oracle Version 2, sản phẩm mà Oracle gọi là “RDBMS dựa trên SQL đầu tiên được bán thương mại”, tức một hệ quản trị cơ sở dữ liệu quan hệ xây dựng quanh SQL.
Oracle chưa từng có Version 1. “Phiên bản đầu tiên của Oracle là Version 2, vì họ nghĩ sẽ chẳng ai mua Version 1,” Roger Bamford, người từng làm ở IBM trước khi về Oracle, kể lại.
Tại buổi họp mặt, Blasgen cho biết Oracle không có code của IBM. “Họ lấy bản đặc tả SQL đã được công bố, làm theo đúng bản đó, rồi thêm vào những thứ khách hàng muốn,” Bamford nói. Tờ Times viết rằng Ellison đã “dùng các bài báo của Tiến sĩ Codd làm nền tảng cho một sản phẩm”. Bamford tóm gọn: “IBM phát minh ra ngôn ngữ, nhưng Oracle mới là bên đưa nó ra thị trường trước.”
Bị phớt lờ, hay chỉ là chậm?
Mỗi nguồn kể một kiểu. Cáo phó của Codd viết rằng IBM “phần lớn đã phớt lờ công trình của ông”, điều khiến ông bực bội. Còn theo một bài viết về Codd của IEEE Computer Society, hội máy tính thuộc Viện Kỹ sư Điện và Điện tử (IEEE), IBM “không mấy mặn mà với công trình đó”. Trang lịch sử của chính IBM thì viết rằng hệ thống của ông “ngay lập tức được nhìn nhận là có tiềm năng tạo ra bước ngoặt, nhưng vẫn phải được kiểm nghiệm”.
Tư liệu lịch sử ủng hộ một câu trả lời nằm ở khoảng giữa. Vài năm sau khi bài báo ra đời, IBM Research bắt đầu xây dựng một nguyên mẫu, các nhà nghiên cứu của hãng thiết kế và công bố SQL, và IBM tung ra các sản phẩm cơ sở dữ liệu quan hệ vào đầu thập niên 1980. Chỉ có điều, IBM không gấp rút, và một startup dựa vào các nghiên cứu đã công bố đã đến với khách hàng trước.
Codd, thường được gọi là Ted, nhận Giải thưởng Turing năm 1981 của Hiệp hội Máy tính ACM (Association for Computing Machinery). “Điều đáng buồn là Ted chưa bao giờ giàu lên nhờ ý tưởng của mình,” Chris Date, chuyên gia cơ sở dữ liệu và từng là đối tác kinh doanh của Codd, nói với tờ Times. “Người khác thì có, còn Ted thì không.”
Ngân sách và sự tập trung
Bài học ở đây là về ngân sách và sự tập trung, chứ không phải về thiên tài. IBM có ý tưởng, có các nhà nghiên cứu, có một nguyên mẫu chạy được và một nhóm sản phẩm muốn dùng nguyên mẫu ấy. Theo lời kể của những người trong cuộc, sản phẩm bị để ngoài kế hoạch có ngân sách, rồi bắt đầu có tiến triển khi một phòng thí nghiệm đang rảnh tay nhận làm mà không lật lại những quyết định cũ.
Một tổ chức có thể trì hoãn một ý tưởng mới mà không cần thẳng thừng bác bỏ nó. Có khi chỉ cần để ý tưởng ấy nằm ngoài ngân sách, trong lúc những người có thể hiện thực nó đang bận việc khác, là đã đủ. Ở nơi bạn làm việc, ý tưởng nào đang nằm trong diện “out plan” ngay lúc này?
Bài liên quan
Đọc bằng ngôn ngữ khác: English
Nguồn
- E. F. Codd, “A Relational Model of Data for Large Shared Data Banks”, Communications of the ACM 13(6), tháng 6 năm 1970, tr. 377–387
- Katie Hafner, “Edgar Codd, Key Theorist of Databases, Dies at 79”, The New York Times (ngày 23 tháng 4 năm 2003), bản đăng lại trên mailing list ASIS-L
- Paul McJones (biên tập), “The 1995 SQL Reunion: People, Projects, and Politics”, phần tiền sử (Prehistory)
- “The 1995 SQL Reunion”, phần SQL/DS
- “The 1995 SQL Reunion”, phần Oracle
- IBM, “The relational database”
- IBM, “Edgar F. Codd”
- IBM, “Information Management System”
- IEEE Computer Society, “Edgar F. Codd”, chuyên mục Computer Pioneers
- Oracle, “Introduction to Oracle Database”, tài liệu Database Concepts (phần lịch sử Oracle)
- Thư mục tài liệu về System R (có liệt kê bài của Codd, “The Significance of the SQL/Data System Announcement”, Computerworld, ngày 16 tháng 2 năm 1981)
- Ảnh bìa (ảnh minh họa): các công tắc trên một máy IBM System/360. Ảnh do Marcin Wichary chụp, qua Wikimedia Commons, CC BY 2.0
