Edgar Frank Codd

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
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, znany przede wszystkim ze swojego wkładu w rozwój teorii relacyjnych baz danych.

Życiorys[edytuj | edytuj kod]

Lata młodzieńcze i rodzina[edytuj | edytuj kod]

Najmłodszy z siedmiorga dzieci. 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ą. W latach trzydziestych 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 RAF-u (Royal Air Force). Po wojnie powrócił na Oxford, aby ukończyć studia. Zmienił wtedy kierunek na matematykę i uzyskał stopień naukowy magistra w 1948 roku[1].

Kariera w Ameryce Północnej[edytuj | edytuj kod]

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 na świecie 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 starym 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)[3].

W 1967 roku Codd przeniósł się do Laboratorium Badawczego firmy w San Jose (Kalifornia), gdzie stworzył koncepcję relacyjnych baz danych[4]. 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ł jednak 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[5]. Wkrótce potem Codd odszedł z IBM i założył z Chrisem Datem własną firmą consultingową[6].

Relacyjny model bazy danych[edytuj | edytuj kod]

Model relacyjny jest powszechnie uznawany za jedno z największych osiągnięć technicznych XX wieku. Zrewolucjonizował on sposób postrzegania baz danych. Codd stworzył teoretyczne ramy dla rozwoju dyscypliny naukowej. W związku z tym nie jest przesadą stwierdzenie, że zasadniczo wszystkie bazy danych używane lub rozwijane obecnie są oparte na pomysłach Codda. Ilekroć ktoś korzysta z bankomatu, kupuje bilet lotniczy lub używa z karty kredytowej, faktycznie polega na inwencji Codda[7].

Codd nie ograniczył się do opisania swojego modelu. Badał jego implikacje w serii prac badawczych, które opublikował w ciągu kilku następnych lat. Przez cały ten czas był pomocny i wspierał wszystkich, którzy się do niego zwracali. Chciał dowiedzieć się więcej na temat tego, co sądzą o jego pomyśle, a także zyskać pomoc w jego rozpowszechnianiu. Jednocześnie był niezłomny i nieustępliwy w obronie tych samych idei przed negatywną krytyką. Nawiasem mówiąc, należy zauważyć, że 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[8].

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ł później opublikowany w czasopiśmie "ACM Database Transactions"[9]. Rozszerzoną wersję relacyjnego modelu danych, którą sformułował w swojej pracy, nazwał RM/T ("T" od Tasmania)[10].

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

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

W ciągu następnych kilku lat zauważył, że branża relacyjnych baz danych dynamicznie się rozwija się i jest warta dziesiątki miliardów dolarów rocznie. Sam nigdy nie korzystał bezpośrednio z tego 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].

Śmierć[edytuj | edytuj kod]

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

Postulaty Codda dotyczące relacyjnych baz danych[edytuj | edytuj kod]

Dwanaście postulatów Codda – jest to zestaw 13 zasad stworzonych przez Edgara F. Codda – pioniera relacyjnych baz danych[13]. 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[14][edytuj | edytuj kod]

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

Publikacje[edytuj | edytuj kod]

  • Codd, E. F. (1968). Cellular Automata. Academic Press, Inc[15].
  • Codd, E. F. (1970). „Relational Completeness of Data Base Sublanguages”. Database Systems: 65–98[16]
  • 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[edytuj | edytuj kod]

  1. Edgar Frank Codd | American computer scientist and mathematician, Encyclopedia Britannica [dostęp 2019-02-01] (ang.).
  2. a b Edgar F. Codd - A.M. Turing Award Laureate, amturing.acm.org [dostęp 2019-02-04].
  3. Edgar F. Codd - A.M. Turing Award Laureate, amturing.acm.org [dostęp 2019-02-04].
  4. IBM Archives: Edgar F. Codd, www.ibm.com, 23 kwietnia 2013 [dostęp 2019-02-04] (ang.).
  5. Edgar F. Codd - A.M. Turing Award Laureate, amturing.acm.org [dostęp 2019-02-04].
  6. a b Zygmunt Ryznar, Zarys historii programowania elektronicznych maszyn cyfrowych (na tle rozwoju ich konstrukcji i zastosowań), Warszawa: Ośrodek Badawczo-Rozwojowy Informatyki, 1972.
  7. E.F. Codd, Relational Database: A Practical Foundation for Productivity, [b.r.].
  8. E.F. Codd, Relational Database: A Practical Foundation for Productivity, [b.r.].
  9. 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.).
  10. Paul Beynon-Davies, Systemy baz danych, 2000.
  11. C. J. Date: Edgar F. Codd – A.M. Turing Award Winner (ang.). amturing.acm.org. [dostęp 2015-08-22].
  12. Computer Pioneers - Edgar Frank Codd, history.computer.org [dostęp 2019-02-01].
  13. Codd's 12 Rules for Relational Database Management, OLAP.com [dostęp 2018-12-11] (ang.).
  14. Computer Pioneers - Edgar Frank Codd, history.computer.org [dostęp 2018-11-28].
  15. E.F. Codd, Cellular automata, ACM monograph series, New York: Academic Press, 1968 [dostęp 2018-11-22].
  16. E.F. Codd, Relational completeness of data base sublanguages, „DATABASE SYSTEMS”, 1972, s. 65–98 [dostęp 2018-11-22].