Jak nauczyliśmy maszyny liczyć i myśleć za nas? Część 41: Bazy danych

W poprzednich odcinkach tego cyklu omawiałem historię powstania i rozwoju edytorów tekstowych, arkuszy kalkulacyjnych i programów do tworzenia prezentacji, czyli narzędzi informatycznych wchodzących w skład skomputeryzowanego cyfrowego biura. Teraz nadeszła pora na bazy danych.

Publikacja: 09.03.2023 22:00

Współczesne rozbudowane bazy danych potrzebują nowoczesnych serwerowni

Współczesne rozbudowane bazy danych potrzebują nowoczesnych serwerowni

Foto: Gorodenkoff /stock.adobe.com

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...

Relacyjny model bazy danych

W 1970 r. Edgar Frank Codd, pracownik IBM, zaproponował tzw. relacyjny model bazy danych. Z teoretycznego punktu widzenia było to znaczące osiągnięcie, pozwalające tworzyć integralne systemy wykorzystujące bardzo duże ilości danych o skomplikowanej strukturze i złożonych powiązaniach. Ale firma IBM nie miała początkowo ochoty wdrażać tej idei, co spowodowało, że Codd opuścił tę firmę.

Pierwsza relacyjna baza danych oparta na koncepcji Codda powstała w 1977 r. w firmie Oracle, a jej twórcą był założyciel tej firmy – Lawrence Joseph Ellison. Ściślej mówiąc, w momencie wypuszczania tego pierwszego systemu bazodanowego firma Ellisona nazywała się SLD (Software Development Laboratories) i Larry Ellison oraz jego dwaj współpracownicy – Bob Miner i Ed Oates – właśnie ją założyli. Stworzony program zarządzający relacyjną bazą danych nazwano Oracle (po polsku: Wyrocznia) – i ta nazwa tak się spodobała, że cała firma zmieniła nazwę z SLD na Oracle.

Firma Oracle w krótkim czasie stała się jednym z czołowych dostawców systemów bazodanowych, Ellison zaś z majątkiem w wysokości 52,2 mld USD (w 2017 r.) zajmował piąte miejsce na liście najbogatszych ludzi w USA!

IBM jak zwykle nie odpuszcza

Pierwsze systemy do tworzenia i eksploatacji baz danych, budowane przez CODASYL i Oracle, nie wywoływały zainteresowania największego producenta komputerów i programów – firmy IBM. Potem jednak olbrzym się obudził i zaprezentował pod koniec lat 70. XX w. System R (System Rational) – własną relacyjną bazę danych. Przy okazji inauguracji Systemu R IBM pokazał swój naprawdę rewelacyjny produkt: utworzony w 1974 r. język SQL (Structured Query Language). W 1983 r. IBM udostępnił program DB2. Dwójka w tej nazwie miała sygnalizować, że chodzi o system drugiej generacji, odchodzący od modelu hierarchicznego na rzecz modelu sieciowego. Kolejne wersje systemu DB2 są udostępniane w kolejnych latach (w grudniu 2007 r. została wprowadzona na rynek wersja o numerze 9,5 – oferowana jest w trzech komercyjnych edycjach: Express, Workgroup i Enterprise oraz bezpłatnej edycji DB2 Express-C). Jednak DB2 nie zawojowało rynku!

System R i DB2 nie odegrały tak poważnej roli w historii rozwoju informatyki, jak powinny, ze względu na początkowe zaniechania IBM i oddanie inicjatywy w tym sektorze rynku firmie Oracle. Natomiast stworzony w IBM język SQL stał się na długo w skali światowej najważniejszym narzędziem do tworzenia baz danych, do ich modyfikowania oraz do wprowadzania do baz nowych danych, a także (co dla użytkownika najważniejsze) – do wyszukiwania i wydobywania z bazy potrzebnych danych.

Jako ciekawostkę warto dodać, że początkowy sukces języka SQL (w pełni zasłużony!) wziął się stąd, że zastosowała go w swoich produktach firma Oracle, konkurencyjna w stosunku do IBM. Nawiasem mówiąc, Ellison z Oracle próbował nawiązać współpracę z IBM i proponował wspólne opracowanie systemu opartego zarówno na sprawdzonych elementach systemu Oracle, jak i na rozwiązaniach zawartych w Systemie R IBM – ale do współpracy nie doszło. Z winy IBM!

Perypetie języka SQL

Język SQL, stworzony przez IBM i rozpropagowany przez Oracle, zaczęły wprowadzać do swoich produktów bazodanowych także inne firmy. To jednak doprowadziło do kłopotliwego powstania wielu „dialektów” SQL, bo każda firma dodawała jakieś własne poprawki i uzupełnienia. Konieczne stało się wprowadzenie standardu języka SQL, co stało się w 1986 r. Zaaprobowały go dwie najważniejsze instytucje normalizacyjne: amerykańska ANSI i europejska ISO.

Wprowadzenie standardów SQL86 i SQL89 nie rozwiązało jednak problemu do końca, bo producenci systemów bazodanowych nadal mieli za dużo swobody, a to powodowało, że przy budowie systemów współpracujących z różnymi bazami danych nadal pojawiały się trudności komunikacyjne. W efekcie to rynek użytkowników baz danych wymusił kolejną, znacznie bardziej rygorystyczną normalizację. Zbudowany standard SQL92 obowiązuje do dziś dla produktów komercyjnych, chociaż w powstał także standard SQL:2003.

Różne bazy danych

Postęp w dziedzinie baz danych następował wielokierunkowo, w dużej mierze podążając za różnymi „modami”, jakie pojawiały się w informatyce. W latach 80. XX w. coraz chętniej stosowane były sieci komputerowe, w związku z czym zaczęły się pojawiać programy do tworzenia tzw. rozproszonych baz danych. W latach 90. XX w. modne stało się podejście obiektowe (opisane w odcinku nr 23), dlatego utworzona została grupa ODMG (Object Database Management Group), która tworzyła standardy dla obiektowych baz danych, wyrastających wtedy jak przysłowiowe „grzyby po deszczu”. Również w latach 90. dużo uwagi w świecie informatyki przywiązywano do ruchu wolnego oprogramowania i otwartego kodu (Free Software i Open Source – opisane w odcinkach 26 i 27), powstały więc otwarte systemy zarządzania bazami danych: MySQL, SQLite, PostgreSQL.

Na początku XXI stulecia wysokim uznaniem informatyków cieszył się uniwersalny język znaczników, przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. Język ten, nazywany XML, jest niezależny od platformy, na której opiera się tworzony program, dlatego bardzo dobrze służy przy przesyłaniu danych między różnymi komputerami – na przykład w internecie. Nic dziwnego, że bardzo popularne stały się bazy danych oparte na XML, takie jak Apache XIndice, BaseX, eXist-db, OZONE i wiele innych.

Opisane w tym felietonie bazy danych dotyczyły historii programów lokowanych na dużych komputerach i wykorzystywanych przez wielu użytkowników. Natomiast w następnym odcinku opiszę historię rozwoju programów pozwalających na budowę baz danych na komputerach klasy PC i wykorzystywanych w sieciach lokalnych niedużych przedsiębiorstw, a nawet przez użytkowników indywidualnych.

Autor jest profesorem AGH w Krakowie

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).

Pozostało 94% artykułu
2 / 3
artykułów
Czytaj dalej. Subskrybuj
Historia świata
Pasażerowie "Titanica" umierali w blasku gwiazd
Historia świata
Odzwierciedlają marzenia i aspiracje panny młodej. O symbolice dywanu posagowego
Historia świata
Bezcenne informacje czy bezużyteczne graty? Kapsuły czasu trwalsze od fundamentów
Historia świata
Ludobójstwo w Rwandzie – szczyt obłędu
Historia świata
Prezydent, który zlecił jedyny atak atomowy w historii. Harry S. Truman, część III