Базы данных. Учебное пособие
.pdfзависимость реализуется на счет тех же механизмов, что и "логическая".
Запросы приложений баз данных получают доступ к данным, основываясь на их логической структуре. Система базы данных трансформирует логическую структуру в физи- ческое представление (т. е. система базы данных интерпре- тирует запросы, извлекает данные, преобразует их в стан- дартный формат и передает данные приложению). При- кладная программа загружает данные в свои переменные, не имея никакого представления о том, как эти данные хра- нились. Физическую организацию хранения данных можно изменить, не внося изменения в приложение.
Еще одним аспектом независимости данных и про-
грамм является возможность иметь различные модели или представления данных для разных пользователей.
1.6. История развития СУБД
Основу современной информационной технологии, обеспечивающей управление информацией, составляют базы данных (БД) и системы управления базами данных (СУБД), история которых насчитывает более 40 лет. Эволюция СУБД
происходит на фоне беспрецедентного роста разнообразных ЭВМ, а технология баз данных в свою очередь обеспечивает необходимый фундамент такого роста. Технология управле-
ния данными сформировалась на основе опыта разработки и применения десятков СУБД, многих моделей данных, языков определения и манипулирования данными.
Одновременно создавалась теория БД, в которой были развиты такие разделы, как теория моделей данных, методы эквивалентности преобразований, теория функциональных зависимостей в БД, методы эквивалентных представлений БД и схем, проблемы полноты и эквивалентности в реляционном исчислении, теория БД с неполной информацией, методы обеспечения целостности БД в условиях потока конкурент- ных запросов, методы структурирования памяти для хранения разнообразных данных.
11
До появления ЭВМ 3-го поколения обработка данных осуществлялась при помощи операций ввода - вывода. Файлы в ЭВМ 2-го поколения были файлами последовательного дос- тупа. При этом физическая структура данных и логическая структура файла совпадали. Пользователям файл в этой си- туации представляется как линейная последовательность за- писей, где структура записи файла известна только програм- ме, которая работает с файлом, поскольку структура содер- жится только в ней. Если структура файла меняется, то при- ходится вносить изменения в саму программу. Это фатально,
поскольку изменения в структуре данных вносятся постоянно по мере эксплуатации. Именно это явилось толчком к реали- зации принципа независимости программ и данных, т.е. к по- явлению СУБД.
1.6.1. Ранние СУБД (1 поколение)
Предшественницами СУБД были файловые системы. Файл - это совокупность записей одного типа, в котором пе- рекрестные ссылки отсутствуют. База данных - это совокуп- ность записей различного типа, содержащая перекрестные ссылки.
Появление СУБД не привело к их полному исчезнове- нию: для выполнения некоторых специализированных задач подобные файловые системы используются до сих пор. Кроме того, файловые системы могут использоваться также СУБД для решения задач хранения данных и доступа к ним.
В середине 60-х годов XX века корпорация IBM совме- стно с фирмой NAA разработали первую СУБД - иерархиче-
скую систему IMS (Information Management System). Несмот-
ря на то, что IMS является самой первой из всех коммерче- ских СУБД, она до сих пор остается основной иерархической СУБД, используемой на большинстве крупных мейнфреймов.
Другим заметным достижением середины 60-х годов было появление системы IDS (Integrated Data Store) фирмы General Electric. Развитие этой системы привело к созданию нового типа систем управления базами данных - сетевых
12
СУБД, что оказало существенное влияние на информацион- ные системы того поколения.
Сетевая СУБД создавалась для представления более сложных взаимосвязей между данными, чем те, которые мож- но было моделировать с помощью иерархических структур, и послужили основой для разработки первых стандартов БД.
Для создания таких стандартов в 1965 году на конфе-
ренции CODASYL (Conference on Data Systems Languages)
была сформирована рабочая группа List Processing Task Force, которая должна была определить спецификацию среды, ко- торая допускала бы разработку баз данных и управление дан- ными. Полный вариант отчета этой группы был опубликован в 1971 году и содержал следующие утверждения:
Сетевая схема - это логическая организация всей базы данных в целом (с точки зрения АДБ), которая включает оп- ределение имени базы данных, типа каждой записи и компо- нентов записей каждого типа.
Подсхема - это часть базы данных, видимая конкрет- ными пользователями или приложениями.
Язык управления данными (DML) - инструмент для определения характеристик и структуры данных, а также для управления ими. Было предложено стандартизировать три различных языка.
1.Язык определения данных DDL для описания схемы БД.
2.Язык определения данных (также DDL) для подсхемы,
который позволит определять в приложениях те части базы данных, доступ к которым будет необходим.
3.Язык манипулирования данными DML, предназначен-
ный для управления данными.
Несмотря на то что этот отчет официально не был одобрен Национальным Институтом Стандартизации США (ANSI), многие системы были разработаны в полном соответ- ствии его положениями. Сетевые системы и системы на осно- ве иерархических подходов представляют собой СУБД перво-
го поколения.
13
Достоинства ранних СУБД:
∙развитые средства управления данными во внешней памяти на низком уровне;
∙возможность построения вручную эффективных при- кладных систем;
∙возможность экономии памяти за счет разделения по- добъектов (в сетевых системах).
Недостатки:
∙слишком сложно пользоваться;
∙фактически необходимы знания о физической органи- зации, и прикладные системы зависят от этой организации, поскольку независимость от данных существует лишь в ми- нимальной степени;
∙их логика перегружена деталями организации доступа
кБД, поскольку отсутствуют теоретические основы.
1.6.2.Реляционные СУБД (2 поколение)
В1970 году Э. Ф. Кодд, работавший в корпорации IBM, опубликовал статью о реляционной модели данных, позво- лявшей устранить недостатки прежних моделей. Вслед за
этим появилось множество экспериментальных реляционных СУБД, но первые коммерческие продукты появились в конце 70-х - начале 80-х годов. Особенно следует отметить проект System R, разработанный в корпорации IBM в конце 1976 го- ду (Astrahan et al., 1976). На основе этого проекта были полу- чены важнейшие результаты.
∙ Был разработан структурированный язык запросов SQL, который с тех пор стал стандартным языком любых ре- ляционных СУБД.
∙ В 80-х годах были созданы различные коммерческие реляционные СУБД - например, DB2 или SQL/DS корпорации
IBM, Oracle корпорации Oracle , др.
Реляционные системы далеко не сразу получили широ- кое распространение. В то время как основные теоретические результаты в этой области были получены еще в 70-х, и тогда же появились первые прототипы реляционных СУБД, долгое
14
время считалось невозможным добиться эффективной реали- зации таких систем. Однако отмеченные выше преимущества
и постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к то- му, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка ранние СУБД.
В настоящее время существует несколько сотен различ-
ных реляционных СУБД для мейнфреймов и персональных ЭВМ.
П р и м е ч а н и е Мэйнфрейм - высокопроизводительный компьютер общего назначения со значительным объемом оператив- ной и внешней памяти, предназначенный для выполнения интен- сивных вычислительных работ, может использоваться для хранения в ней коммерческих баз данных, серверов транзакций, приложений. Обычно с мэнфреймом работают множество пользователей, каждый из которых располагает лишь терминалом, лишенным собственных вычислительных мощностей.
В качестве примера многопользовательских СУБД мо- жет служить система CA-OpenIngres фирмы Computer Associates и система Informix фирмы Informix Software, Inc.
Примерами реляционных СУБД для персональных компью-
теров являются Access и FoxPro фирмы Microsoft, Paradox и Visual dBase фирмы Borland, а также R-Base фирмы Microrim.
Реляционные СУБД относятся к СУБД второго поколе- ния. Однако реляционная модель также обладает некоторыми недостатками - в частности, ограниченными возможностями моделирования.
Для решения этой проблемы был выполнен большой объем исследовательской работы. В 1976 году Чен предложил модель "сущность-связь" (Entity-Relationship model - ER-
модель), которая в настоящее время стала основой методоло- гии концептуального проектирования баз данных и методоло- гии логического проектирования реляционных баз данных.
Реляционная модель идейно проста - основной ее принцип - "База Данных обеспечивает хранение и выдачу ин- формации из своих прямоугольных таблиц, и ничего не же- лает знать о логической структуре данных, которую на ней реализовывают." Все логические отношения и связи между
15
разными таблицами вынесены наружу и отданы на откуп программисту. Такой подход позволяет просто и эффектив- но реализовывать саму базу данных, соответственно и быст-
родействие и мощность реляционных баз удается держать на весьма высоком уровне.
Достоинства реляционных СУБД:
∙эффективность;
∙позволяют сравнительно просто моделировать боль- шую часть распространенных предметных областей и допус- кают точные формальные определения, оставаясь интуитивно понятными;
∙наличие простого и в то же время мощного математи- ческого аппарата, опирающегося, главным образом, на тео-
рию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных;
∙для манипулирования данными необязательны знания конкретной физической организации баз данных во внешней памяти.
Недостатки реляционных СУБД:
∙некоторая ограниченность (прямое следствие просто- ты) при использовании в так называемых нетрадиционных областях (например, САПР), в которых требуются предельно сложные структуры данных.
∙невозможность адекватного отражения семантики предметной области.
Современные исследования в области постреляционных систем главным образом посвящены именно устранению этих недостатков.
1.6.3. Постреляционные СУБД (3 поколение)
3 поколение СУБД - это постреляционные системы, т.е. системы, относящиеся к следующему поколению, в настоя- щее время они находятся в стадии разработки. Основные принципы этой разработки:
16
1.Помимо традиционных услуг по управлению данны- ми, СУБД обеспечат поддержку гораздо более богатых струк- тур объектов и правил. Более богатая структура объектов ха- рактеризует средства, необходимые для хранения и манипу- лирования нетрадиционными элементами данных (тексты, пространственные данные, графика). Помимо этого, создате-
лям приложений следует предоставить возможность задавать группу правил, касающихся элементов данных, записей. Ссы- лочная целостность - элементарный пример реализации пра- вил.
2.СУБД третьего поколения должны включить в себя и СУБД второго поколения, а именно: взять от них непроце- дурный доступ и независимость данных (автоматически под- держивается согласованность всех путей доступа к данным, и оптимизатор запросов автоматически выбирает лучший спо- соб выполнения выданной пользователем команды)
3.СУБД должны быть открыты для других подсистем. Любая СУБД должны быть оснащена языком 4 поколения (4 GL), разнообразными инструментами поддержки принятия решений, интерфейсами с графическими бизнес - пакетами,
возможностью запуска приложений из базы данных на другой машине распределенной СУБД. Весь набор инструментов должен хорошо функционировать на разнообразных аппарат- ных средствах с различными операционными системами.
П р и м е ч а н и е. Языки 4GL. Аббревиатура "4GL" пред- ставляет собой сокращенный английский вариант написания терми-
на "язык четвертого поколения"(Fourth-Generation Language). He
существует четкого определения этого понятия, хотя, по сути, речь идет о некотором стенографическом варианте языка программиро- вания. Если для организации некоторой операции с данными на языке третьего поколения (3GL) типа COBOL потребуется написать сотни строк кода, то для реализации этой же операции на языке чет- вертого поколения будет достаточно нескольких строк.
В то время как языки третьего поколения являются
процедурными, языки 4GL выступают как непроцедурные. Предполагается, что реализация языков четвертого поколения будет в значительной мере основана на использовании ком- понентов высокого уровня, которые часто называют "инстру-
17
ментами четвертого поколения". Пользователю не потребует- ся определять все этапы выполнения программы, необходи- мые для решения поставленной задачи, а достаточно будет лишь определить нужные параметры, на основании которых
упомянутые выше инструменты автоматически осуществят генерацию прикладного приложения.
Вкачестве примеров языков четвертого поколения можно указать упоминавшиеся выше языки SQL и QBE.
Вцелом можно сказать, что СУБД следующего поколе- ния - это прямые наследники реляционных систем. Тем не менее, существуют различные направления систем третьего поколения, например, объектно-ориентированная модель данных - это когда в базе хранятся не только данные, но и методы их обработки в виде программного кода. Это перспек- тивное направление, пока также не получившее активного распространения из-за сложности создания и применения по- добных СУБД.
1.7.Роль и место баз данных в информационных системах
Под информационной системой обычно понимается при- кладная программная подсистема, ориентированная на сбор, хра- нение, поиск и обработку текстовой и/или фактографической информации. Или, проще говоря, информационные системы
предназначены для хранения и обработки больших объемов информации.
Это могут быть самые разные по своей предметной об- ласти, по мощности, по масштабу и т. д. программы. Например, бухгалтерские программы (1С и подобные ей), программы ме- дицинской диагностики, электронные каталоги библиотеки и т. д.
Изначально такие системы существовали в письменном виде. Для этого использовались различные картотеки, папки, журналы, библиотечные каталоги и т. д. Любая информаци- онная система должна выполнять три основные функции: ввод данных, запросы по данным, составление отчетов.
18
Ввод данных. Система должна предоставлять возмож- ность накапливания и упорядочивания данных. Необходимо обеспечить просмотр этих данных, внесение в них изменений и дополнений с тем, чтобы поддерживать актуальность ин- формации.
Запросы по данным. В системе должна существовать возможность находить и просматривать отдельные части на- копленной информации.
Составление отчетов. Время от времени возникает не- обходимость обобщать и анализировать большую группу дан- ных (или даже все данные) информационной системы, пред- ставляя ее в виде документа.
Подавляющее большинство информационных систем ра- ботает в режиме диалога с пользователем.
В наиболее общем случае типовые программные компо-
ненты, входящие в состав информационной системы, включа-
ют:
ü диалоговый ввод-вывод (пользовательский интер-
фейс);
üлогику обработки данных, которая позволяет решать задачи, ради которых, собственно, и создано конкретное прило- жение;
üлогику управления данными;
üбазу данных;
üоперации манипулирования файлами и (или) база- ми данных, т. е. СУБД.
Последние 2 компонента обязательны для информацион- ной системы, поскольку предоставляют саму информацию и возможность её обработки. Собственно, именно база данных яв- ляется целью и средством работы информационной системы.
Вопросы для самопроверки
1.Объясните своими словами смысл терминов:
∙база данных;
∙предметная область;
19
∙информационная система;
∙банк данных;
∙информация;
∙данные.
2.Из каких основных частей состоит банк данных?
3.Что такое база данных?
4.Как вы понимаете разницу между понятиями «инфор- мация» и «данные»?
5.Какими свойствами обладает информация?
6.Каково назначение информационной системы?
7.Что такое принцип независимости программ и данных?
8.Дайте ретроспективный анализ развития СУБД.
9.Что характерно для СУБД 1 и 2 поколений?
10.Назовите основные направления развития СУБД (СУБД 3-го поколения).
11.Приведите примеры СУБД разных поколений.
12.Назовите основные компоненты информационной сис- темы.
13.Каковы преимущества использования СУБД?
14.Как вы понимаете принцип независимости программ и данных?
15.В чем смысл физической и логической независимости данных?
20
