- •Информация и субд
- •Структуры хранения данных и методы доступа к ним
- •Индексирование
- •Функции и архитектура субд
- •Процессор запросов
- •Журнализация
- •Поддержка языков бд
- •Организация современной субд
- •Ранние подходы (дореляционные) к организации бд
- •Сетевая модель данных
- •Реляционные базы данных
- •Реляционная модель
- •Базисные операции реляционной алгебры
- •Операция расширения и подведения итогов
Сетевая модель данных
Отдел
сотрудник
сотрудник
Заказчик
Контракт
Контракт
Сотр-контр
Сотр-контр
Сотр-контр
Сотр-контр
Сетевая модель данных – модель, состоящая из записей, элементов данных и связей типа 1 ко многим установленных между записями. На разработку стандартов большое влияние оказал ученый Чарльз Бахман. Основные принципы сетевой модели данных были разработаны в середине 60х годов, а эталонный вариант сетевой модели данных описан в отчетах группы CODASYL в 1971.
Сетевая модель определяется тем же термином, что и иерархическая. Основное различие этих моделей состоит в том, что в сетевой модели запись может быть членом более чем одного группового отношения. При этом имеется следующее ограничение: экземпляр записи не может быть членом двух экземпляров групповых отношений одного типа. Для отображения связей типа N->N вводится запись типа Сотрудник-контракт, которая служит для связи записей типа Контракт-Сотрудник. В этой записи может храниться дополнительная информация, например доля вознаграждения сотрудника за работу по данному контракту.
В сетевой структуре, показанной на рисунке, сотрудник входит в групповые отношения: как работник отдела и как исполнитель у заказчика.
Каждый экземпляр группового отношения характеризуется следующими признаками:
Способ упорядочивания подчиненных записей. Варианты:
А) произвольный Б) хронологический В) обратный хронологический Г) сортированный
Режим включения:
А) автоматический – невозможно добавить запись в БД без того, чтобы она не была сразу же закреплена за неким владельцем
Б) ручной – позволяет запомнить в БД подчиненную запись и не включать ее немедленно в экземпляр группового отношения
Режим исключения:
А) Фиксированный режим – подчиненная запись жестко связана с записью владельца и ее можно исключить из группового отношения только удалив. При удалении записи владельца, все подчиненные записи тоже удаляются (пример фиксированной связи – связь между заказчиком и контрактов)
Б) Обязательный режим – допускается переключение подчиненной записи на другого владельца, но не возможно ее существование без владельца. При удалении записи владельца, необходимо чтобы она не имела подчиненных записей с обязательным членством. Таким отношением связаны сотрудник и отдел. Если отдел расформировывается, то все сотрудники должны быть переведены в другие отделы, либо уволены
В) Необязательный режим – можно исключить запись из группового отношения, но сохранить ее в БД не прикрепляя к другому владельцу. При удалении записи владельца, ее подчиненные записи – не обязательные члены, сохраняются в базе, но не участвуют более в групповом отношении такого типа. Примером такого группового отношения служит связь между контрактом и сотрудником. Так как в организации могут существовать работники, не выполняющие работы по контракту
Языки
Язык SDDL – язык определения структуры БД. При помощи него описываются все типы записей и все типы наборов.
Язык DML. Команды этого языка оперируют с каждой записей в отдельности, а не с целым набором сразу. Для организации работы с многими записями необходимо использовать обычные программные выражения типа условное выражение и цикл.
Операции над данными:
Добавить запись, в зависимости от режима включения: то есть либо включить ее в групповые отношения, либо не включать ни в какое
Включить в групповое отношение
Переключить – связать существующую подчиненную запись с другой записью владельцом в том же групповом отношении. Например, перевести сотрудника в другой отдел
Обновить – значение элемента в предварительно извлеченной записи
Извлечь – извлечь по значению ключа а также использую групповые отношения переходить от владельца записи к потомком и наоборот
Удалить – убрать запись из БД в зависимости от режима исключения
Исключить из группового отношения, ну то есть о5 сделать запись непривязанной ни к какому предку
Как и в иерархической модели обеспечивается только целостность по ссылкам (владелец отношения – член отношения).
