Edgar Frank Codd

Edgar Frank Codd
Data i miejsce urodzenia

23 sierpnia 1923
Isle of Portland

Data i miejsce śmierci

18 kwietnia 2003
Williams Island, Aventura

Edgar Frank „Ted” Codd (ur. 23 sierpnia 1923 w Isle of Portland, zm. 18 kwietnia 2003 w Williams Island, Aventura) – brytyjski informatyk, wniósł wkład w rozwój teorii relacyjnych baz danych.

Życiorys

Rodzina i lata młodzieńcze

Urodził się w 1923 r. na Isle of Portland w hrabstwie Dorset na południowym wybrzeżu Anglii. Jego ojciec był producentem skór, a matka nauczycielką. Był najmłodszym z siedmiorga dzieci. W latach trzydziestych XX w. uczęszczał do Poole Grammar School w Dorset. Otrzymał pełne stypendium na Oxford University, gdzie początkowo studiował chemię. W 1942 roku, mimo uprawnień do odroczenia służby wojskowej z powodu studiów, zgłosił się na ochotnika do armii i został pilotem Royal Air Force. Po wojnie powrócił na Uniwersytet Oksfordski, aby ukończyć studia. Zmienił wtedy kierunek na matematykę i uzyskał tytuł zawodowy magistra w 1948 roku[1].

Praca w Ameryce Północnej

W 1949 roku przeniósł się do Nowego Jorku, gdzie podjął pracę dla IBM jako programista. Brał udział w pracach nad maszyną obliczeniową Selective Sequence Electronic Calculator – pierwszym elektromechanicznym komputerem firmy IBM. Przez krótki czas mieszkał w Waszyngtonie, gdzie pracował nad IBM Card Programmed Electronic Calculator. We wczesnych latach pięćdziesiątych zaangażował się w projektowanie komputera IBM 701, przeznaczonego do celów naukowych[2].

W 1953 roku Codd opuścił Stany Zjednoczone (oraz firmę IBM) w geście protestu przeciwko działaniu komisji senatora Josepha McCarthy’ego (makkartyzm) i przeprowadził się do Ottawy w Kanadzie. Pracował tam dla Computing Devices of Canada Limited. Prowadził dział przetwarzania danych na potrzeby rozwoju kanadyjskiego programu rakietowego. Po przypadkowym spotkaniu ze swoim menedżerem z IBM zdecydował się powrócić do USA w 1957 roku i dołączył znowu do IBM.

W Poughkeepsie w Nowym Jorku pracował nad projektem STRETCH (IBM 7030, który następnie doprowadził do rozwoju technologii mainframe IBM 7090). Kierował zespołem, który opracował pierwszy na świecie system multiprogramowania. W 1961 roku, w ramach stypendium IBM, przeniósł się do Ann Arbor w stanie Michigan, gdzie uczęszczał na University of Michigan. Uzyskał tytuł magistra inżyniera, a w 1965 roku obronił doktorat z informatyki. Jego praca – opublikowana przez Academic Press w roku 1968 – nosiła tytuł Cellular Automata. Była kontynuacją i uproszczeniem prac Johna von Neumanna nad samoreplikującymi się automatami (maszynami)[2].

W 1967 roku Codd przeniósł się do Laboratorium Badawczego firmy w San Jose (Kalifornia), gdzie stworzył koncepcję relacyjnych baz danych[3]. W 1970 roku wydał fundamentalną pracę A Relational Model of Data for Large Shared Data Banks, w której przedstawił relacyjny model zarządzania bazami danych. Ku jego rozczarowaniu IBM zwlekał z wdrożeniem zaprezentowanych rozwiązań aż do chwili, gdy konkurencyjne firmy zaczęły stosować ten model – przykładem była baza danych Oracle, opracowana przez Larry’ego Ellisona na bazie idei Codda[2]. Wkrótce potem Codd odszedł z IBM i założył z Chrisem Datem firmą consultingową[4].

Relacyjny model bazy danych

Model relacyjny, osiągnięcie techniczne XX wieku, zrewolucjonizowało sposób postrzegania baz danych. Codd stworzył teoretyczne ramy dla rozwoju dyscypliny naukowej. Zasadniczo wszystkie bazy danych rozwijane obecnie, np. obsługujące bankomaty, udostępniające bilety lotnicze lub rozliczające karty kredytowe, są oparte na pomysłach Codda[5].

Codd nie ograniczył się do opisania swojego modelu. Badał jego implikacje w serii prac badawczych, które opublikował w ciągu następnych lat. Był nieustępliwy w obronie idei baz danych przed krytyką. Model relacyjny był de facto pierwszym abstrakcyjnym modelem bazy danych, który należy zdefiniować. Dlatego Codd nie tylko wynalazł model relacyjny, ale tak naprawdę wymyślił koncepcję modelu danych w ogóle[5].

Na początku 1979 roku na konferencji Australian Computer Society w miejscowości Hobert w Tasmanii Codd wygłosił referat Extending the relational database model to capture more meaning, który został opublikowany w czasopiśmie „ACM Database Transactions”[6]. Rozszerzoną wersję relacyjnego modelu danych, którą sformułował w swojej pracy, nazwał RM/T („T” od Tasmania)[7].

Codd interesował się też tematem hurtowni danych, ukuł termin OLAP (OnLine Analytical Processing) i sformułował dwanaście praw techniki online analytical processing[4].

W 1981 roku został uhonorowany Nagrodą Turinga[8].

W ciągu następnych kilku lat zauważył, że branża relacyjnych baz danych rozwija się dynamicznie i jest warta dziesiątki miliardów dolarów rocznie, ale nie korzystał osobiście bezpośrednio z ogromnego wzrostu. Przez resztę zawodowego życia zachęcał do opracowywania w pełni relacyjnych produktów. Edukował w tym zakresie użytkowników, sprzedawców oraz organizacje normalizacyjne[2].

Edgar Frank Codd zmarł 18 kwietnia 2003 roku na Williams Island na Florydzie[9].

Postulaty Codda dotyczące relacyjnych baz danych

Dwanaście postulatów Codda – jest to zestaw 13 zasad stworzonych przez Edgara F. Codda – pioniera relacyjnych baz danych[10]. Każda relacyjna baza danych musi je spełniać:

  1. System musi być kwalifikowany jako relacyjny, jako baza danych i jako system zarządzania.
  2. Postulat informacyjny – dane są reprezentowane jedynie przez wartości atrybutów w wierszach tabel (w krotkach).
  3. Postulat dostępu – każda wartość w bazie danych jest dostępna poprzez podanie nazwy tabeli, atrybutu i wartości klucza podstawowego (głównego).
  4. Postulat dotyczący wartości NULL – dostępna jest specjalna wartość NULL dla reprezentacji zarówno wartości nieokreślonej, jak i nieadekwatnej, inna od wszystkich i podlegająca przetwarzaniu.
  5. Postulat dotyczący katalogu – wymaga się, aby system obsługiwał wbudowany katalog relacyjny z bieżącym dostępem dla uprawnionych użytkowników używających języka zapytań.
  6. Postulat języka danych – system musi dostarczać pełny język przetwarzania danych, który może być używany zarówno w trybie interaktywnym, jak i w obrębie programów, obsługuje operacje definiowania danych, operacje manipulowania danymi, ograniczenia związane z bezpieczeństwem i integralnością oraz operacje zarządzania transakcji.
  7. Postulat modyfikowalności perspektyw – system musi umożliwiać modyfikowanie perspektyw, o ile jest ono semantycznie realizowalne.
  8. Postulat modyfikowalności danych – system musi umożliwiać operacje modyfikacji danych, musi obsługiwać operacje INSERT, UPDATE oraz DELETE.
  9. Postulat fizycznej niezależności danych – zmiany fizycznej reprezentacji danych i organizacji dostępu nie wpływają na aplikacje.
  10. Postulat logicznej niezależności danych – zmiany wartości w tabelach nie wpływają na aplikacje.
  11. Postulat niezależności więzów spójności – więzy spójności są definiowane w bazie i nie zależą od aplikacji.
  12. Postulat niezależności dystrybucyjnej – działanie aplikacji nie zależy od modyfikacji  i dystrybucji bazy.
  13. Postulat bezpieczeństwa względem operacji niskiego poziomu – operacje niskiego poziomu nie mogą naruszać modelu relacyjnego i więzów spójności.

Nagrody[11]

  • British Computer Society, 1974.
  • IBM, 1976.
  • ACM, 1981.
  • National Academy of Engineering, 1983.
  • American Academy of Arts and Sciences, 1994.

Publikacje

  • Codd, E. F. (1968). Cellular Automata. Academic Press, Inc[12].
  • Codd, E. F. (1970). „Relational Completeness of Data Base Sublanguages”. Database Systems: 65–98[13]
  • Codd, E. F. (9 November 1981). „1981 Turing Award Lecture – Relational Database: A Practical Foundation for Productivity”
  • Codd, E. F. (1990). The Relational Model for Database Management (Version 2 ed.). Addison Wesley Publishing Company
  • Codd, E. F.; Codd, S. B.; Salley, C. T. (1993).

Przypisy

  1. Edgar Frank Codd, [w:] Encyclopædia Britannica [online] [dostęp 2022-09-30] (ang.).
  2. a b c d Edgar F. Codd – A.M. Turing Award Laureate, amturing.acm.org [dostęp 2019-02-04].
  3. IBM Archives: Edgar F. Codd, www.ibm.com, 23 kwietnia 2013 [dostęp 2019-02-04] (ang.).
  4. a b Zygmunt Ryznar, Zarys historii programowania elektronicznych maszyn cyfrowych (na tle rozwoju ich konstrukcji i zastosowań), Warszawa: Ośrodek Badawczo-Rozwojowy Informatyki, 1972.
  5. a b E.F. Codd, Relational Database: A Practical Foundation for Productivity, [b.r.].
  6. Extending the database relational model to capture more meaning, „ACM Transactions on Database Systems (TODS)”, 4 (4), Nowy Jork: ACM, 1979, ISSN 0362-5915 [dostęp 2018-07-25] (ang.).
  7. Paul Beynon-Davies, Systemy baz danych, 2000.
  8. C. J. Date: Edgar F. Codd – A.M. Turing Award Winner. amturing.acm.org. [dostęp 2015-08-22]. (ang.).
  9. Computer Pioneers – Edgar Frank Codd, history.computer.org [dostęp 2019-02-01].
  10. Codd’s 12 Rules for Relational Database Management, OLAP.com [dostęp 2018-12-11] (ang.).
  11. Computer Pioneers – Edgar Frank Codd, history.computer.org [dostęp 2018-11-28].
  12. E.F. Codd, Cellular automata, ACM monograph series, New York: Academic Press, 1968 [dostęp 2018-11-22].
  13. E.F. Codd, Relational completeness of data base sublanguages, „DATABASE SYSTEMS”, 1972, s. 65–98 [dostęp 2018-11-22].