Не реляционные модели данных. Примеры реализации
Концепция баз данных
База данных — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.
· Отчуждение данных от программ
· Хранение описания данных вместе с самими данными
· Отчуждение данных от носителей
· Поддержание баз данных в актуальном состоянии
· Защита информации от сбоев аппаратуры
· Поддержка многопользовательской работы
Идея повышения степени независимости обрабатывающих программ от способов хранения и содержания хранимых данных впервые была использована в концепции баз данных путем разделения логического и физического уровней хранения данных в 1964 году в исследованиях сотрудников фирмы IBM.
Не реляционные модели данных. Примеры реализации.
(не нашел у Фомина)
Модели данных (главные А и Б):
А) Иерархическая
Б) Сетевая
В) Объектно – ориентированная (обрабатывает данные как абстрактные объекты, наделённые свойствами и использующие методы взаимодействия с другими объектами окружающего мира)
Г) Объектно – реляционная (объекты, классы и наследование реализованы в структуре баз данных и языке запросов.)
Иерархическая модель
· Сущность ИМ: атрибут (элемент данных), запись – именованная совокупность атрибутов, тип записи определяется совокупностью ее атрибутов, групповое отношение – иерархическое отношение между записями двух типов, главная и подчиненные записи, потомок имеет ровно одного предка.
· ИМ – связный неориентированный граф древовидной структуры
· Иерархическая БД – упорядоченный набор деревьев
· В реляционной модели отношения между атрибутами записей
· Корневая запись каждого дерева обязательно должна содержать ключ с уникальным значением
· Ключи некорневых записей должны иметь уникальное значение только в рамках своего группового отношения
· Каждая запись идентифицируется полным сцепленным ключом – совокупность ключей всех записей от корневой по пути в иерархии
Особенности ИМ
· Удобно представляются иерархические данные
· В иерархической модели представляются отношения 1:N
· При наличии нескольких зависимостей возникает дублирование данных (вместо одного дерева строятся два или больше), например при представлении отношений N:N
Операции над данными в ИМ
· Добавление записи – для корневой записи формирование ключа
· Изменения данных записи – атрибуты ключа не должны меняться
· Удаление записи – удаляются все подчиненные записи
· Выборка: корневой записи по ключу; следующей записи в выбранном дереве
· Запросы «вниз» и «вверх» по дереву
Целостность данных
· Поддерживает целостность связей между главными и подчиненными записями в пределах группового отношения
· Нет связей между разными групповыми отношениями
Сетевая модель
· Определяется в тех же терминах, что и ИМ
· Запись может быть членом более чем одного группового отношения
· Каждое групповое отношение именуется и проводится различие между его типом и экземпляром: тип группового отношения задается его именем и определяет свойства общие для всех экземпляров данного типа; экземпляр группового отношения представляется записью-владельцем и множеством (возможно пустым) подчиненных записей
· ИМ может быть представлена с помощью СМ
Свойства групповых отношений в СМ
· Способ упорядочения подчиненных записей: произвольный, хронологический, сортированный
· Режим включения подчиненных записей: автоматический, ручной
· Режим исключения: фиксированное – подчиненная запись жестко связана с главной, ее можно исключить из группового отношения только удалив, при удалении главной записи удаляются все подчиненные; обязательное -0 допускается переключение подчиненной записи на другую главную, но невозможно ее существование без владельца; необязательное
Операции над данными в СМ
· Добавление записи
· Включение записи в групповое отношение
· Исключение записи из группового отношения
· Переключение записи
· Изменение полей записи
· Удаление записи
· Выборка данных
Ограничение целостности как в ИМ
Пример нереляционных СУБД: NoSQL, InterSystem Cache(иерархическая), AllegroGraph(сетевая)