Глава 16. Основы реляционной модели данных

Содержание

16.1. Эдгар (Тед) Кодд 1924 - 2003
16.2. Крис Дж. Дейт
16.3. Структурная часть: термины
16.4. Структурная часть: домен
16.5. Структурная часть: отношения
16.6. Структурная часть: свойства отношений
16.7. 2 часть реляционной модели: целостность
16.8. Целостность: потенциальные ключи
16.9. Целостность сущностей
16.10. Целостность: внешние ключи
16.11. Метаправило ссылочной целостности
16.12. Правила внешних ключей

В главе использована книга [DATE6].

16.1. Эдгар (Тед) Кодд 1924 - 2003

Источник: http://www.research.ibm.com/resouces/news/20030423_edgarpassaway.shtml

Рисунок 16.1. Эдгар (Тед) Кодд

Эдгар (Тед) Кодд

Рисунок 16.2. Эдгар (Тед) Кодд

Эдгар (Тед) Кодд

Edgar (Ted) Codd, математик и бывший стипендиат IBM, известный как создатель "реляционной" модели представления данных, лежащей в основе сегодняшней индустрии баз данных объемом в $12 миллиардов, умер в пятницу, 18 апреля в своем доме во Флориде в возрасте 79 лет.

Большинство из неисчислимых транзакций, которые мы привычно выполняем сегодня, - использование банковских счетов и кредитных карт, торговые сделки, резервирование билетов и мест в гостиницах и участие в онлайновых аукционах - используют реляционные базы данных, основывающиеся на абстрактной и сложной математической теории, которую Кодд впервые опубликовал в 1970 году, когда работал в Исследовательской лаборатории IBM в Сан-Хосе, предшественнице сегодняшнего Исследовательского центра Альмаден.

Это открытие, однако, не пришло легко. Компьютерный мир в 1970-е годы был очень далек от гигабайтов, терабайтов и петафлопов, которые мы видим сегодня.

Компьютерные вычисления стоили сотни долларов в минуту, так что большие человеческие усилия затрачивались на то, чтобы сделать программы максимально эффективными, прежде чем запустить их на выполнение. Ранние базы данных использовали либо жесткую иерархическую структуру, либо сложный план навигации по указателям на физическое размещение данных на магнитных лентах. Целые команды программистов требовались для того, чтобы сформулировать запрос на выделение нужной информации. Хотя такие базы данных могли быть эффективным в обработке специфических данных и запросов, разработанных для них, они были абсолютно негибкими. Новые виды запросов требовали сложного перепрограммирования, а добавление новых типов данных влекло за собой полное перепроектирование самой базы данных.

В своей эпохальной статье "Реляционная модель данных для больших, совместно используемых банков данных" Кодд предложил замену иерархической или навигационной структуры простыми таблицами, содержащими строки и столбцы.

"Основная идея Теда была в том, что отношения между элементами данных должны базироваться на значениях элементов, а не на отдельно задаваемых связях или вложениях. Эта идея грандиозно упростила создание запросов и обеспечила невиданную гибкость для использования существующих наборов данных новыми способами," - сказал Дон Чемберлен, соавтор языка SQL, промышленного стандарта запросов к реляционным базам данных, научный сотрудник Альмадена. "Он верил, что пользователи компьютеров будут в состоянии работать на уровне, более приближенном к естественному языку, и не будут отвлекаться на подробности того, где и как данные хранятся."

На встрече в 1995 году ученых, которые занимались а IBM ранним проектом реляционной базы данных, Чемберлен вспоминал, каким откровением прозвучало для него впервые услышанное от Кодда на внутреннем семинаре описание его реляционной модели.

"У Кодда был пакет чрезвычайно сложных запросов." - рассказывал Чемберлен. "И поскольку я изучал CODASYL (язык, используемый для запросов к навигационным базам данных), я мог себе представить, как каждый из этих запросов мог бы быть представлен в CODASYL при помощи программы длиной страниц в пять, которая должна будет проходить через лабиринт указателей и объектов. Кодд записывал их одной строкой. ... Они даже вообще не были сложными. Я сказал, 'Wow.' Для меня это было опытом перемены взглядов. Я понял после этого, что реляционные вещи всегда были и есть вокруг нас."

Идея зависимости только от отношений, базирующихся на значениях, в то время была весьма радикальной концепцией, и многие люди относились к ней скептически. Они не верили, что сгенерированные машиной реляционные запросы смогут выполняться так же хорошо, как программы, сделанные вручную людьми - профессионалами в навигации. Но увеличивающаяся мощность новых компьютеров, произвольный доступ в магнитных дисках и длинный список инноваций в программном обеспечении дали возможность ученым донести преимущества идеи Кодда до потребителей.

Практическая реализация System R

Для того, чтобы реляционная модель стала доступной, она должна была быть подкреплена промышленной реализацией. Это и было целью проекта System R, начатого IBM в Исследовательской лаборатории в Сан-Хосе в 1973 году.

Среди прочих важных технологий, разработанных для System R, были:

  1. Структурированный Язык Запросов (SQL), разработанный Чемберленом и Реем Бойсом для формулирования запросов.

  2. Оптимизатор Пата Селинджера, основанный на стоимости выполнения, который автоматически транслировал высокоуровневый запрос в эффективный план его выполнения.

  3. Компилятор запросов Раймонда Лори, который сохранял планы запросов для дальнейшего использования.

  4. Специальные средства формулирования и выполнения запросов, обеспечивающие быструю разработку и тестирование.

  5. Онлайновое определение данных для поддержки новых приложений без выключения системы.

Бойс также работал с Коддом в разработке Нормальной Формы Бойса-Кодда для эффективного проектирования таблиц реляционной базы данных без избыточного дублирования информации в разных таблицах.

Проект System R был успешным и в 1981 году фирма IBM объявила свой первый продукт класса реляционных баз данных, SQL/DS. DB2, изначально для больших машин, мейнфреймов, была объявлена в 1983 году. Сейчас семейство баз данных DB2 способно хранить данные от карманных устройств до суперкомпьютеров и ежедневно обрабатывает миллиарды транзакций, это один из самых успешных программных продуктов IBM.

Кроме исследователей проекта IBM System R, были и другие пионеры, которые поспешили использовать реляционные концепции Кодда в 1970-е годы, включая команду INGRES Майка Стоунбрейкера в Университете Беркли и Ларри Эллисона, чья фирма Relational Software Inc. выпустила первую коммерческую реляционную базу данных в 1977 году. Шестью годами позже Эллисон переименовал свою компанию в Oracle.

Ранние достижения Кодда

Уроженец Англии, Код закончил Оксфордский Университет, где получил степени по математике и по химии, был пилотом в Королевских Воздушных Силах во время Второй Мировой войны. Затем он переехал в Соединенные Штаты и в 1949 году поступил работать в IBM в качестве математика-программиста на Selective Sequence Electronic Calculator - большом ламповом компьютере, который имел достаточную скорость и гибкость для решения многих значительных научных проблем тех дней.

Он ввел новый метод "мультипрограммирования" для экспериментального компьютера IBM STRETCH. Этот метод дал возможность компьютеру STRETCH, предшественнику современных мейнфреймов, выполнять несколько программ одновременно.

После получения им в 1967 году степени доктора компьютерных наук в Мичиганском Университете по полной стипендии от IBM, Кодд перешел в Исследовательскую лабораторию IBM в Сан-Хосе, где он занялся своей реляционной моделью.

Кодд был назван "Человеком IBM" в 1976 году, а в 1981 году он получил Премию Тьюринга, высшую техническую награду в профессии компьютерщика. В 2002 году журнал "Форбес", назвал реляционную модель данных Кодда в числе самых важных открытий за последние 85 лет.

Крис Дейт, сотрудничавший с ним долгое время, говорил: "Самым большим и всеобъемлющим достижением Кодда было превращение управления базами данных в науку. Он поставил эту область на солидную научную основу тем, что обеспечил ей теоретический каркас - реляционную модель, - с которой к решению широкого спектра различных проблем можно подходить научными методами."

Джанет Перна, генеральный менеджер Решений по Управления Данными в IBM Software Group, так объясняет свое восхищение продуктом, за который она сейчас отвечает. Она говорит, что "Теда Кодда всегда будут помнить как отца реляционных баз данных. Его выдающееся предвидение и интеллектуальный гений открыли совершенно новую эпоху инноваций, которая изменила сегодняшний мир технологий, - но, возможно, величайшим его достижением является то, что он вдохновил целое поколение людей, которые продолжают строительство на заложенном им фундаменте. Профессионалы баз данных во всем мире скорбят о его уходе."

Кодд оставил жену, Шарон, четырех детей и шесть внуков.

Коллекция работ:http://www. informatik.uni-trier.de/%7Eley/db/about/codd.html

Кодд в Википедии: http://en.wikipedia.org/wiki/ Edgar_F._Codd