На основе модели данных CODASYL был создан ряд широко распространенных коммерческих СУБД. Однако ее создание имело не только важное практическое значение. Весьма важны методологические аспекты этой работы. В документах CODASYL были впервые систематически сформулированы хотя и в контексте сетевой модели данных, но заведомо выходящие по значимости за ее рамки, некоторые фундаментальные концепции технологии баз данных. Здесь был впервые предложена концепция многоуровневой архитектуры СУБД, воплощенный в конструктивном и целостном виде в спецификациях языковых средств для всех уровней архитектуры, включая и среду хранения данных. Точно также впервые была предложена идея использования языка определения данных, независимого от языков программирования, на которых создаются приложения, и схемы базы данных, отчужденной от самих данных. Подсхема CODASYL – это предвестник хорошо известной концепции представления (View) в реляционных базах данных. Процедуры базы данных CODASYL стали средством создания активных баз данных задолго до того, как в языке SQL была предложена аналогичная концепция триггера.

Версия иерархической модели, воплощенная в системе IMS, наряду с сетевой моделью данных CODASYL является хрестоматийной разновидностью графовой модели данных. Она имеет дело с иерархическими древовидными структурами данных. Вершинами такой структуры являются записи соответствующего ей типа, называемые сегментами. Сегменты представляют собой записи, состоящие из простых элементов данных различных типов. При этом родительскому сегменту соответствует произвольное число экземпляров подчиненных сегментов каждого типа. Экземпляр сегмента каждого типа идентифицируется уникальным ключом, определенным для этого типа. База данных представляет собой совокупность таких деревьев. В модели данных предусматриваются навигационные операции по структуре базы данных и операция поиска сегмента, в том числе и с использованием иерархического ключа. Поддерживается концепция текущего состояния, идентифицирующего вершину дерева структуры данных (в терминах экземпляров, а не типов), достигнутую в результате последней выполненной навигационной операции. Навигационные операции могут использовать идентификацию целевого сегмента относительно этого текущего состояния. Наряду с навигационными операциями поддерживаются операции манипулирования данными - вставка, обновление и удаление сегментов с естественным каскадным распространением операции удаления.

НЕ нашли? Не то? Что вы ищете?

Различные разновидности иерархической модели данных активно использовались во многих СУБД на платформе мейнфреймов до появления реляционных систем.

Реляционная модель. Существует ряд версий реляционной модели данных. В отличие от других ее версий, модель, предложенная в 1969 г. Э. Коддом (E. Codd), сотрудником исследовательского центра компании IBM в Сан-Хосе (Калифорния), получила название базовой реляционной модели. Именно эта модель стала основой коммерческих реляционных СУБД.

Базовая реляционная модель данных основана на математическом понятии отношения (англ. Relation, откуда и происходит название модели). Отношения представляются в форме двумерных таблиц. Операционные возможности модели имеют две эквивалентные формы, одна из которых - реляционная алгебра, другая - реляционное исчисление. Благодаря простоте и естественности используемой в ней структуры данных и манипулятивных операций, полной независимости от среды хранения данных, поддержке виртуальных, а не физических связей между данными (на основе значений данных, а не указателей), существованию ее строгого формального определения, реляционная модель позволила сформировать развитую математическую теорию реляционных баз данных. СУБД, поддерживающие реляционную модель, заняли доминирующее положение среди инструментальных средств разработки систем баз данных.

В соответствии с базовой реляционной моделью данных, база данных представляет собой совокупность взаимосвязанных таблиц. Каждая таблица моделирует некоторый тип сущностей предметной области. Строки таблицы соответствуют экземплярам сущностей этого типа, а столбцы – их свойствам. Таким образом, все значения в столбце таблицы должны иметь один и тот же тип. Поскольку в предметной области не существует тождественных экземпляров сущностей для любого типа сущностей, в таблице не может быть тождественных строк. Чаще всего в таблице существует столбец или совокупность столбцов, из значений которых можно составить кортеж, уникальным образом идентифицирующий строки этой таблицы. Таких совокупностей у данной таблицы может быть несколько. Их называют возможными ключами таблицы. Один из возможных ключей выбирается в качестве основного идентификатора строк таблицы. Его называют первичным ключом. В реляционной базе данных для каждой ее таблицы должен быть определен первичный ключ. СУБД контролирует возможность появления строк с дублирующими значениями первичного ключа и отвергает вставку в таблицу таких строк. При отсутствии возможностей определения первичного ключа таблицы на основе содержащихся в ней данных реляционные СУБД позволяют при определении такой таблицы использовать способность СУБД поддерживать индивидуальность ее строк с помощью системно-генерируемых уникальных идентификаторов. Столбцы таблиц именуются, и их порядок не влияет на выполнение операций.

Связи между двумя таблицами в реляционной базе данных – это связи вида «1:1» или «1:N» между записями этих таблиц, которые поддерживаются по критерию равенства значений в соответствующих их ключевых столбцах либо в ключевых столбцах первой таблицы и каких-либо неключевых столбцах второй таблицы.

Операции реляционной алгебры над таблицами имеют множественный характер. Каждая из них имеет дело с множеством строк таблицы. Основные из этих операций – селекция строк таблицы, проекция и соединение таблиц.

Селекция – это одноместная операция над заданной таблицей, результатом которой является новая таблица, содержащая только строки исходной таблицы, удовлетворяющие заданному критерию селекции. Проекция таблицы представляет собой одноместную операцию, которая порождает из заданной таблицы-операнда новую таблицу, состоящую только из заданного подмножества столбцов исходной таблицы и включающая соответствующие подмножества ее строк. Соединение таблиц представляет собой двуместную операцию реляционной алгебры, порождающую новую таблицу, строки которой формируются из пар строк таблиц-операндов, удовлетворяющих заданному критерию соединения, и состоят из объединений множеств значений столбцов в паре исходных строк.

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

Таковы в общих чертах возможности реляционной модели данных. Компания IBM, сотрудником которой являлся Э. Кодд, разработала также язык SEQUEL, воплощающий функциональность предложенной реляционной модели, послуживший в дальнейшем прототипом международного стандарта языка запросов реляционных баз данных SQL. оддом в 1979 г. расширенная реляционная модель (RM/T) значительно обогатила ранее предложенную им версию модели. Некоторые нововведения RM/T стали обязательными элементами реализаций реляционных СУБД, в частности, системно-генерируемые уникальные идентификаторы кортежей отношений, поддержка неопределенных значений атрибутов, ограничения целостности по ссылке и др.

Дальнейшая эволюция технологий реляционных баз данных привела к появлению в начале второй половины 90-х годов объектно-реляционных SQL-серверов баз данных. Эта модель была узаконена в принятой в 1999 году новой версии стандарта языка SQL.

Объектная модель. Многочисленные разновидности объектной модели данных получили широкое распространение в области программирования, баз данных и информационных систем.

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

Основное понятие объектной модели – объект. При этом объект понимается как сущность, обладающая состоянием и поведением. Состояние объекта определяется совокупностью его атрибутов, которые могут принимать значения предписанных типов. Поведение объекта, в свою очередь, определяется совокупностью операций (называемых также методами), специфицированных для этого объекта. Для объектов с помощью объектного идентификатора поддерживается их индивидуальность. Объектный идентификатор не изменяется при изменении состояния объекта.

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

Объекты в объектных моделях типизируются. Свойства типа объектов (атрибуты и операции) применяются ко всем его экземплярам. Различаются встроенные типы объектов - объектов с предопределенными свойствами, и типы объектов, определяемые пользователем.

В модели предусматривается отношение наследования между типами объектов. Подтип наследует атрибуты состояния и операции своего супертипа.

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99