Развитие фактографических моделей
Лекция 3. Развитие фактографических моделей
Несколько последних десятилетий появлялось множество СУБД, основанных на трех базовых моделях данных: иерархической, сетевой и реляционной. Последнее время активные работы ведутся в направлении постреляционных СУБД.
Иерархическая модель
Первые иерархические и сетевые СУБД были созданы в начале 60-х годов. Причиной послужила необходимость управления миллионами записей (связанных друг с другом иерархическим образом), например при информационной поддержке лунного проекта Аполлон. Из иерархических СУБД, самое большое распространение получила СУБД IMS (Information Management System компании IBM).
Отношения в иерархической модели данных организованы в виде совокупностей деревьев, где дерево - структура данных, в которой тип сегмента потомка связан только с одним типом сегмента предка. Графически: Предок - узел на конце стрелки, а Потомок - узел на острие стрелки (рисунок 3.1). В базах данных определено, что узлы - это типы записей, а стрелки представляют отношения один - к - одному или один - ко - многим.
Рисунок 3.1 - Иерархическая база данных
Если структура данных не соответствует строгой иерархии то использование иерархических СУБД становится невозможным.
Рекомендуемые материалы
Сетевая модель
Сетевая модель являлась улучшенной иерархической моделью, в которой одна запись могла участвовать в нескольких отношениях предок/потомок, как показано на рисунке 3.2, это давало определенную гибкость. В сетевой модели такие отношения назывались множествами.
Рисунок 3.2 - Сетевая модель данных
В 1971 году на конференции по языкам систем данных был опубликован официальный стандарт сетевых баз данных, который известен как модель CODASYL. В 70-х годах независимые производители программного обеспечения реализовали сетевую модель в таких продуктах, как IDMS компании Cullinet, Total компании Cincom и СУБД Adabas, которые приобрели большую популярность. Тем временем IBM продолжили развитие своего проекта IMS.
Как и иерархические базы данных, сетевые БД были очень жесткими. Наборы отношений и структуру записей приходилось задавать наперёд. Изменение структуры базы данных обычно означало перестройку всей базы данных. Реализации многих запросов иногда требовали переписывания кодов и, следовательно, вмешательства программистов.
Реляционная модель
Недостатки иерархической и сетевой моделей привели к появлению новой, реляционной модели данных, созданной Э. Ф. Коддом в 1970-1971 годах и вызвавшей всеобщий интерес. Реляционная модель была попыткой упростить структуру базы данных. В ней отсутствовали явные указатели на предков и потомков, а все данные были представлены в виде простых таблиц, разбитых на строки и столбцы.
Реляционной называется база данных, в которой все данные, доступные пользователю, организованны в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами.
На сегодняшний день реляционная модель данных является наиболее популярной. На ее идеологии построены СУБД: FoxPro, Paradox, MS Access и т.д.
Постреляционные модели
Современные программные системы становятся сложнее, претендуя на решение глобальных задач, например таких, как создание единой системы управления предприятием. При этом автоматизация отдельных операций или отделов фактически исчерпала свой потенциал, для создания таких систем реляционные СУБД могут оказаться малоэффективными. Все это послужило предпосылкой к созданию новых моделей – пострелляционных.
Постреляционными моделями принято называть объектные или объектно-ориентированные модели данных.
Один из идеологов ООСУБД Versant, очень кратко и точно сформулировала актуальность объектного подхода к базам данных: “Модель данных более близка сущностям реального мира. Объекты можно сохранить и использовать непосредственно, не раскладывая их по таблицам. Типы данных определяются разработчиком и не ограничены набором предопределенных типов”.
Когда сложный объект заносится в реляционную базу, обязательна процедура декомпозиции его данных для их размещения в таблице. При чтении объекта из реляционной базы он собирается из отдельных элементов и только затем пригоден для использования. В объектных СУБД все иначе. Данные объекта, а также его методы помещаются в хранилище как единое целое.
Объектная СУБД, как правило, поддерживает один или несколько объектно-ориентированных языков - C++, Java, Smalltalk, Object Lisp и т.п. Программист использует единый язык программирования для создания логики приложения, разработки интерфейса и общения с базой данных, а также для поддержания целостности данных.
Структура объектной модели описываются с помощью трех базовых концепций:
§ инкапсуляция – возможность объединенного хранения данных и методами для их обработки внутри одного объекта. Таким образом, объекты можно рассматривать как самостоятельные сущности, отделенные от внешнего мира.
§ наследование - подразумевает возможность создавать из классов объектов новые классы объекты, которые наследуют структуру и методы своих предков, добавляя к ним черты, отражающие их собственную индивидуальность.
§ полиморфизм - различные объекты могут по разному реагировать на одинаковые внешние события в зависимости от того, как реализованы их методы.
Основными достоинствами объектно-ориентированного подхода являются увеличение коэффициента повторно используемого кода, а также возможность модификации и развития. Применительно к базам данных, это положение позволяет начать проектирование будущей системы, не имея исчерпывающего представления о предметной области. Поскольку получение детальной информации о предметной области - процесс весьма трудоёмкий, то это может сократить сроки разработки систем, а, следовательно, и их стоимость.
Объектно-ориентированным моделям также присущи и недостатки, которые связанны с большой стоимостью и сложностью БД, кроме того, сложен и сам процесс перехода от имеющихся реляционных СУБД к объектным или объектно-ориентированным.
В заключении необходимо отметить, что всем моделям присущи свои недостатки, возможно, качественно новым направлением является интеграции объектно-ориентированной технологии и реляционной модели данных. Слияние этих ведущих направлений открывает новые возможности как в процессе проектирования баз данных, так и на стадиях эксплуатации и модернизации. Возможно, это направление позволит максимально использовать преимущества реляционной и объекто-ориентированной моделей.
Контрольные вопросы
1. В чем различие между иерархической и сетевой моделями данных?
2. В чем заключаются ограничения иерархической модели данных?
3. Какие общие недостатки присущи иерархической и сетевой моделям?
4. В чем суть реляционной модели данных?
5. Какие модели называют постреляционными и почему?
Обратите внимание на лекцию "7 - Источники конфликтов и стрессов".
6. Какие преимущества имеют постреляционные модели данных?
7. Какие принципы лежат в основе объектной модели?
8. Какие языки используют в ОО СУБД и почему?
9. Почему ОО БД не получают большого распространения?
10. Исчерпали ли свои возможности РСУБД?