Duże bazy danych, gromadzące rozmaite informacje i dotyczące różnych zagadnień, tworzą i udostępniają wyspecjalizowane firmy na bardzo dużych komputerach. Do tego celu powstały pierwsze programy bazodanowe i o nich właśnie jest ten tekst. Natomiast w następnym odcinku tego cyklu felietonów omówię programy pozwalające na tworzenie małych baz danych, przeznaczone dla pojedynczych użytkowników, którzy z jakichś powodów chcą gromadzić i szybko wyszukiwać jakieś prywatne dane. Prywatne to znaczy takie, które dotyczą ich własnej działalności – zawodowej albo osobistej (na przykład hobbystycznej).
Szybka i pojemna pamięć to podstawa
Na początku ery informatyki o bazach danych nie mogło być mowy. Do gromadzenia danych w komputerze potrzebna jest szybka i pojemna pamięć. Tymczasem we wczesnych komputerach to była ich najsłabsza strona. Przypomnę, że ENIAC (pierwszy elektroniczny komputer) liczył już całkiem szybko (5 tys. dodawań na sekundę), ale pamięci nie miał wcale i był programowany za pomocą przełączania wtyków kablowych. Pierwszy seryjnie produkowany (od 1951 r.) komputer UNIVAC miał pamięć o rozmiarze 1000 słów po 12 znaków każde. Pierwszy komputer, na jakim ja pracowałem, Odra 1013, produkowany w 1967 r., miał pamięć o pojemności 256 słów (plus bęben magnetyczny, ale na nim bazy danych nie dało się zbudować). Nie ma potrzeby kontynuowania tej wyliczanki, ale chciałbym podkreślić, że wprowadzenie tego pojęcia przez pioniera baz danych Charlesa Williama Bachmana w 1963 r. podczas sympozjum Development and Management of a Computer-centered Data Base było dużym zuchwalstwem!
Jakie rodzaje baz danych były początkowo rozwijane? Pomysł Bachmana polegał na tym, że aby mieć bazę danych, nie wystarczy mieć dużo pamięci – trzeba dodatkowo mieć program, którego zadaniem jest zarządzanie taką bazą danych. W tym zakresie na początku powstały dwie koncepcje: sieciowa i hierarchiczna. Ta druga lepiej nawiązywała do ówczesnych (lata 60. XX w.) realiów sprzętowych (pamięci masowe na taśmach magnetycznych) i do praktycznych doświadczeń ówczesnych programistów, dlatego wcześniej weszła do praktyki. Koncepcja sieciowa została dopracowana przez CODASYL (Conference on Data Systems Languages), przy czym znana jest data, kiedy to przemysłowe konsorcjum IT rozpoczęło pracę nad tym modelem. Było to 28 maja 1959 r. – i tę datę można przyjąć za datę rozpoczęcia prac nad teorią baz danych.
Na Księżycu i w szpitalu
Równolegle toczyły się prace praktyczne zmierzające do zbudowania pierwszego hierarchicznego systemu bazodanowego, któremu nadano nazwę IMS (Information Management System). System ten opracowała w 1966 r. firma IBM na potrzeby tworzonego wtedy programu kosmicznego Apollo (którego celem był załogowy lot na Księżyc). System IMS dzielił się na dwie części: IMS/Data Base i IMS/Data Communications. Podobny podział na część zajmującą się gromadzeniem oraz aktualizacją danych oraz na część obsługującą zapytania użytkowników kierowane do bazy danych stosowano potem w wielu systemach obsługujących bazy danych, ale warto pamiętać, że IMS był pierwszym takim systemem.
W tym samym czasie, co system IMS obsługujący loty kosmiczne, opracowano pierwszy system bazodanowy na potrzeby służby zdrowia. System ten nazywał się MUMPS (Massachusetts General Hospital Utility Multi-Programming System) i obsługiwał bazę danych szpitala. System IMS powitano z entuzjazmem i zrobiono wokół niego dużo szumu, ponieważ w latach 60. XX w. program lotu na Księżyc miał najwyższy priorytet (chodziło o rywalizację USA i ZSRR), podczas gdy „premiera” systemu MUMPS właściwie przeszła niezauważona. Ale astronauci na Księżyc polecieli, wrócili – i pierwotny entuzjazm, z jakim witano pierwszy krok człowieka na srebrnym globie, wygasł. Dziś już mało kto to wspomina. Podobnie nikt już nie wspomina systemu IMS, chociaż on także otwierał pewną epokę. Natomiast system MUMPS – oczywiście systematycznie doskonalony i wzbogacany – obecnie wciąż jest w użyciu...